PVOutput Sensor


The pvoutput sensor platform consumes information from PVOutput which were uploaded by your solar photovoltaic (PV) system.

To add PVOutput details to your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
sensor:
  - platform: pvoutput
    system_id: YOUR_SYSTEM_ID
    api_key: YOUR_API_KEY
    scan_interval: 120

Configuration variables:

  • api_key (Required): Your API key. A read-only key is fine.
  • system_id (Required): The ID of your station.

It’s recommended to set scan_interval: according to a value greater than 60 seconds. The service only allows 60 requests per hour but the sensor’s default is 30 seconds.

To format the PVoutput sensor it’s recommended to use the template component. For example:

sensor:
  - platform: pvoutput
    system_id: YOUR_SYSTEM_ID
    api_key: YOUR_API_KEY
    scan_interval: 150
  - platform: template
    sensors:
      power_consumption:
        value_template: '{% if is_state_attr("sensor.pvoutput", "power_consumption", "NaN") %}0{% else %}{{ states.sensor.pvoutput.attributes.power_consumption }}{% endif %}'
        friendly_name: 'Using'
        unit_of_measurement: 'Watt'
      energy_consumption:
        value_template: '{{ "%0.1f"|format(states.sensor.pvoutput.attributes.energy_consumption|float/1000) }}'
        friendly_name: 'Used'
        unit_of_measurement: 'kWh'
      power_generation:
        value_template: '{% if is_state_attr("sensor.pvoutput", "power_generation", "NaN") %}0{% else %}{{ states.sensor.pvoutput.attributes.power_generation }}{% endif %}'
        friendly_name: 'Generating'
        unit_of_measurement: 'Watt'
      energy_generation:
        value_template: '{% if is_state_attr("sensor.pvoutput", "energy_generation", "NaN") %}0{% else %}{{ "%0.2f"|format(states.sensor.pvoutput.attributes.energy_generation|float/1000) }}{% endif %}'
        friendly_name: 'Generated'
        unit_of_measurement: 'kWh'