PVOutput

The PVOutput integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] brings the data from your PVOutput account into Home Assistant. PVOutput is a free service for sharing, comparing, and monitoring live solar photovoltaic (PV) system data. If you are already uploading data from your inverter or logger to PVOutput, this integration lets you display that data in Home Assistant without running a second integration against your inverter directly.

Use cases for this integration include:

  • Monitoring the current power generation and consumption of your solar system on a Home Assistant dashboard.
  • Tracking daily energy generation and consumption over time.
  • Using your solar data in the Energy dashboard for long-term statistics.
  • Triggering automations based on how much power your system is currently producing.

Prerequisites

Before setting up this integration, you need a PVOutput account with at least one registered system. You also need the following information from your PVOutput account:

  • API key: available from the account settings page. Enable API access first if you have not done so already.
  • System ID: the numeric ID of the system you want to track. This is listed on the same account settings page, next to your registered systems.

Configuration

To add the PVOutput device to your Home Assistant instance, use this My button:

Manual configuration steps

If the above My button doesn’t work, you can also perform the following steps manually:

  • Browse to your Home Assistant instance.

  • Go to Settings > Devices & services.

  • In the bottom right corner, select the Add Integration button.

  • From the list, select PVOutput.

  • Follow the instructions on screen to complete the setup.

API key

Your PVOutput API key. You can find it on the PVOutput account settings page.

System ID

The numeric system ID for the system you want to track. Listed under your registered systems on the same account settings page.

To track more than one system, set up the integration once per system.

Supported functionality

Sensors

The integration creates a device for each configured PVOutput system, with the following sensors:

  • Energy generation
    • Description: Total energy generated by the system today, in Wh.
    • Device class: Energy
  • Energy consumption
    • Description: Total energy consumed today, in Wh. Requires a system that uploads consumption data to PVOutput.
    • Device class: Energy
  • Power generation
    • Description: Current power output of the system, in W.
    • Device class: Power
  • Power consumption
    • Description: Current power consumption, in W. Requires a system that uploads consumption data to PVOutput.
    • Device class: Power
  • Efficiency
    • Description: Normalized output of the system, in kWh/kW. This lets you compare the output of systems of different sizes.
  • Temperature
    • Description: Inverter or panel temperature reported by the system, in °C. Only available if your system uploads temperature data.
    • Device class: Temperature
  • Voltage
    • Description: DC or AC voltage reported by the system, in V. Only available if your system uploads voltage data.
    • Device class: Voltage

The sensors your system actually reports values for depend on what your PVOutput uploader sends. Sensors without data stay unavailable.

Data updates

The integration polls PVOutput every 2 minutes over the internet for updated system status. PVOutput itself imposes rate limits on its API, so the poll interval is fixed and cannot be shortened.

Examples

Notify when generation drops below a threshold

Send a mobile notification if your solar system is generating less than 100 W during the day, which may indicate a cloud cover event, shading, or a problem with the system:

alias: "Low solar generation alert"
triggers:
  - trigger: numeric_state
    entity_id: sensor.my_system_power_generation
    below: 100
    for:
      minutes: 15
conditions:
  - condition: sun
    after: sunrise
    after_offset: "01:00:00"
  - condition: sun
    before: sunset
    before_offset: "-01:00:00"
actions:
  - action: notify.mobile_app_my_phone
    data:
      title: "Solar"
      message: "Power generation is unexpectedly low."

Run appliances when solar production is high

Turn on a high-consumption appliance, such as a dishwasher or pool pump, when solar generation exceeds a threshold:

alias: "Run dishwasher on solar"
triggers:
  - trigger: numeric_state
    entity_id: sensor.my_system_power_generation
    above: 2000
    for:
      minutes: 5
actions:
  - action: switch.turn_on
    target:
      entity_id: switch.dishwasher

Known limitations

  • The integration is read-only. It cannot push data back to PVOutput.
  • Which sensors report values depends on what your PVOutput uploader sends. If your uploader only reports generation, the consumption, temperature, and voltage sensors remain unavailable.
  • The 2-minute polling interval is fixed to stay within PVOutput’s API rate limits and cannot be changed.

Troubleshooting

Invalid authentication

If you see an “Invalid authentication” error, your API key may be wrong or API access may be disabled on your PVOutput account. Go to the PVOutput account settings page, make sure API access is enabled, and copy the current API key. Then select Reconfigure on the integration card in Home Assistant to enter the new key.

All sensors are unavailable

If all sensors are unavailable shortly after setup, verify that:

  1. Your PVOutput system is actively uploading data. You can check this on the PVOutput live page.
  2. The System ID you entered matches a system that belongs to your account.
  3. Your Home Assistant instance can reach the internet.

Removing the integration

This integration follows standard integration removal, no extra steps are required.

To remove an integration instance from Home Assistant

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three dots menu. Then, select Delete.