Update Energy Package

This commit is contained in:
2022-07-22 08:42:12 -07:00
parent 6023c81531
commit 91e4efd531
3 changed files with 349 additions and 47 deletions

View File

@@ -9,50 +9,5 @@ sensor:
unit_prefix: k unit_prefix: k
unit_time: h unit_time: h
# ----------------------------------------------------------------------------- # Include Sensors for Panels/Inverters (generated by generate_panel_sensors.py)
# Panel/Inverter Monitor Sensors !include "panel_sensors.yaml"
sensor:
- name: Envoy Inverter Average Power
platform: min_max
type: mean
entity_ids:
- sensor.envoy_202221032900_inverter_202147113780
- sensor.envoy_202221032900_inverter_202147116830
- sensor.envoy_202221032900_inverter_202147117162
- sensor.envoy_202221032900_inverter_202147117631
- sensor.envoy_202221032900_inverter_202147122858
- sensor.envoy_202221032900_inverter_202147123517
- sensor.envoy_202221032900_inverter_202147125027
- sensor.envoy_202221032900_inverter_202147125590
- sensor.envoy_202221032900_inverter_202147125734
- sensor.envoy_202221032900_inverter_202147125902
- sensor.envoy_202221032900_inverter_202147126079
- sensor.envoy_202221032900_inverter_202147126357
- sensor.envoy_202221032900_inverter_202147126997
- sensor.envoy_202221032900_inverter_202147128369
- sensor.envoy_202221032900_inverter_202147129445
- sensor.envoy_202221032900_inverter_202147130152
- sensor.envoy_202221032900_inverter_202147130290
template:
sensor:
- name: Envoy 202221032900 Inverter 202147113780 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147113780')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
homeassistant:
customize:
sensor.envoy_total_energy:
device_class: energy
friendly_name: Envoy Total Energy Production

View File

@@ -0,0 +1,79 @@
#!/usr/bin/python3
# ---
# Script to generate Power Share and Panel OK sensors for the solar panels
# by serial number.
import sys
import jinja2 as j2
# Serial Numbers for Panel Inverters
INVERTER_SNS = [
202147113780,
202147116830,
202147117162,
202147117631,
202147122858,
202147123517,
202147125027,
202147125590,
202147125734,
202147125902,
202147126079,
202147126357,
202147126997,
202147128369,
202147129445,
202147130152,
202147130290,
]
# Jinja2 Snippet for Panel Sensors
POWER_SHARE_SENSORS = '''---
# -----------------------------------------------------------------------------
# Panel/Inverter Monitor Sensors
sensor:
- name: Envoy Inverter Average Power
platform: min_max
type: mean
entity_ids:
[% for sn in serial_numbers %] - sensor.envoy_202221032900_inverter_[[sn]]
[% endfor %]
# Panel/Inverter Power Share Sensors
template:
sensor:
[% for sn in serial_numbers %] - name: Envoy 202221032900 Inverter [[sn]] Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_[[sn]]')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
[% endfor %]
'''
def main():
"""Generate Power Share Sensor Section for the YAML File."""
env = j2.Environment(
block_start_string='[%',
block_end_string='%]',
variable_start_string='[[',
variable_end_string=']]',
comment_start_string='[#',
comment_end_string='#]',
)
tmpl = env.from_string(POWER_SHARE_SENSORS)
sys.stdout.write(tmpl.render(serial_numbers=INVERTER_SNS))
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,268 @@
---
# -----------------------------------------------------------------------------
# Panel/Inverter Monitor Sensors
sensor:
- name: Envoy Inverter Average Power
platform: min_max
type: mean
entity_ids:
- sensor.envoy_202221032900_inverter_202147113780
- sensor.envoy_202221032900_inverter_202147116830
- sensor.envoy_202221032900_inverter_202147117162
- sensor.envoy_202221032900_inverter_202147117631
- sensor.envoy_202221032900_inverter_202147122858
- sensor.envoy_202221032900_inverter_202147123517
- sensor.envoy_202221032900_inverter_202147125027
- sensor.envoy_202221032900_inverter_202147125590
- sensor.envoy_202221032900_inverter_202147125734
- sensor.envoy_202221032900_inverter_202147125902
- sensor.envoy_202221032900_inverter_202147126079
- sensor.envoy_202221032900_inverter_202147126357
- sensor.envoy_202221032900_inverter_202147126997
- sensor.envoy_202221032900_inverter_202147128369
- sensor.envoy_202221032900_inverter_202147129445
- sensor.envoy_202221032900_inverter_202147130152
- sensor.envoy_202221032900_inverter_202147130290
# Panel/Inverter Power Share Sensors
template:
sensor:
- name: Envoy 202221032900 Inverter 202147113780 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147113780')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147116830 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147116830')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147117162 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147117162')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147117631 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147117631')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147122858 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147122858')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147123517 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147123517')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147125027 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125027')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147125590 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125590')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147125734 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125734')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147125902 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125902')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147126079 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147126079')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147126357 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147126357')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147126997 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147126997')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147128369 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147128369')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147129445 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147129445')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147130152 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147130152')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
- name: Envoy 202221032900 Inverter 202147130290 Power Share
unit_of_measurement: "%"
availability: "{{ states('sensor.envoy_inverter_average_power')|float > 5 }}"
state: >
{% if states('sensor.envoy_inverter_average_power')|float == 0 %}
undefined
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147130290')|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}