Update Energy Package

This commit is contained in:
2022-07-22 08:48:20 -07:00
parent 91e4efd531
commit b2f7786ff5
5 changed files with 322 additions and 296 deletions

View File

@@ -28,34 +28,38 @@ INVERTER_SNS = [
202147130290,
]
# Jinja2 Snippet for Panel Sensors
POWER_SHARE_SENSORS = '''---
# Jinja2 Snippet for Panel Average Sensor
PANEL_AVERAGE_SENSOR = '''---
# -----------------------------------------------------------------------------
# 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 %}
- name: Envoy Inverter Average Power
platform: min_max
type: mean
entity_ids:[% for sn in serial_numbers %]
- sensor.envoy_202221032900_inverter_[[sn]]
[%- endfor %]
'''
# Jinja2 Snippet for Panel Power Share Sensors
PANEL_SHARE_SENSORS = '''---
# -----------------------------------------------------------------------------
# Panel/Inverter Monitor Template Sensors
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 %]
'''
@@ -71,9 +75,14 @@ def main():
comment_end_string='#]',
)
tmpl = env.from_string(POWER_SHARE_SENSORS)
with open('panel_average_sensor.yaml', 'w') as f:
tmpl = env.from_string(PANEL_AVERAGE_SENSOR)
f.write(tmpl.render(serial_numbers=INVERTER_SNS))
with open('panel_template_sensors.yaml', 'w') as f:
tmpl = env.from_string(PANEL_SHARE_SENSORS)
f.write(tmpl.render(serial_numbers=INVERTER_SNS))
sys.stdout.write(tmpl.render(serial_numbers=INVERTER_SNS))
if __name__ == '__main__':
main()