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. Only added once your system 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. Only added once your system 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 added once your system uploads temperature data. Disabled by default.
    • Device class: Temperature
  • Voltage
    • Description: DC or AC voltage reported by the system, in V. Only added once your system uploads voltage data. Disabled by default.
    • Device class: Voltage
  • Last reported
    • Description: When your system last reported its status to PVOutput. Use this to spot an uploader that stopped sending data.
    • Device class: Timestamp

Which sensors you get depends on what your PVOutput uploader sends. The energy generation, power generation, efficiency, and last reported sensors are always added. The consumption, temperature, and voltage sensors are only added once your system reports a value for them. If your uploader starts sending one of these values later, the matching sensor is added automatically, without restarting Home Assistant.

Sensors that were added by an earlier version of this integration are kept, even if your system does not report a value for them. Enabled sensors show as unknown.

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.

PVOutput automation examples

Use the PVOutput sensors to get notified about your solar system, or to run appliances on solar power. Create an automation in Settings > Automations & scenes with the trigger, conditions, and actions below.

Tip

You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the visual automation editor in Home Assistant, and press Ctrl+V (or Cmd+V on Mac). Home Assistant automatically converts the pasted YAML into the visual editor format, whether it’s a full automation, a single trigger, a condition, or an action.

Automation: Notify when generation drops below a threshold

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

  • Trigger: Numeric state, with the PVOutput Power generation sensor below 100 for 15 minutes
  • Conditions:
    • Sun, after sunrise with an offset of 1 hour
    • Sun, before sunset with an offset of minus 1 hour
  • Action: Notifications: Send a notification message
    • Message: Power generation is unexpectedly low.
YAML example for a low generation notification

Replace the entity IDs with the ones of your PVOutput system and notification device.

AutomationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more]
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.send_message
    target:
      entity_id: notify.my_device
    data:
      title: "Solar"
      message: "Power generation is unexpectedly low."

Automation: Notify when the uploader stops sending data

When your uploader stops sending data, PVOutput keeps returning the last status of the day, so the other sensors keep showing their last values. Send a notification if your system has not reported anything for an hour while the sun is up.

The template only becomes true during the day, so it resets every night and can trigger again the next day.

  • Trigger: Template, using the template from the YAML example below
  • Action: Notifications: Send a notification message
    • Message: PVOutput has not received data from your system for over an hour.
YAML example for a stalled uploader notification

Replace the entity IDs with the ones of your PVOutput system and notification device.

AutomationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more]
alias: "PVOutput uploader stopped"
triggers:
  - trigger: template
    value_template: >
      {{ is_state('sun.sun', 'above_horizon')
         and has_value('sensor.my_system_last_reported')
         and now() - states('sensor.my_system_last_reported') | as_datetime
           > timedelta(hours=1) }}
actions:
  - action: notify.send_message
    target:
      entity_id: notify.my_device
    data:
      title: "Solar"
      message: "PVOutput has not received data from your system for over an hour."

Automation: 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.

  • Trigger: Numeric state, with the PVOutput Power generation sensor above 2000 for 5 minutes
  • Action: Switch: Turn on
    • Target: your appliance switch
YAML example for running an appliance on solar

Replace the entity IDs with the ones of your PVOutput system and appliance.

AutomationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more]
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 are added depends on what your PVOutput uploader sends. If your uploader only reports generation, the consumption, temperature, and voltage sensors are not added.
  • Sensors are never removed automatically. If your uploader stops sending a value, the matching sensor stays and shows as unknown.
  • The 2-minute polling interval is fixed to stay within PVOutput’s API rate limits and cannot be changed.
  • PVOutput does not tell which time zone a system uses. The integration assumes your PVOutput system is in the same time zone as Home Assistant. If it is not, the last reported sensor is off by the difference.

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.

Sensors show outdated values

If the sensors keep showing the same values, check the Last reported sensor. If it shows an old time, your uploader stopped sending data to PVOutput. Check your inverter, logger, or upload software, not the integration.

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. Next to the entry you want to remove, select the three dots menu. Then, select Delete.
    • Depending on the integration, the entries are listed under one of the following headings:
      • Devices
      • Hubs
      • Services
      • Integration entries
  3. To confirm, select Delete.
    • Home Assistant also deletes the devices and entities of the entry.
  4. If Home Assistant asks you to restart, restart Home Assistant.
  5. If Home Assistant asks whether to also delete the application credentials, select Remove or Keep.