Files
home-assistant/packages/energy/energy.yaml
2022-09-04 08:10:55 -07:00

567 lines
19 KiB
YAML

# Energy Package
# -----------------------------------------------------------------------------
# Energy Integration Sensors
sensor:
- name: Envoy Total Energy
platform: integration
source: sensor.envoy_202221032900_current_power_production
unit_prefix: k
unit_time: h
- name: Emporia Net Energy
platform: integration
source: sensor.emporia_d937d0_1min
unit_prefix: k
unit_time: h
- name: Total Energy From Grid
platform: integration
source: sensor.emporia_vue_net_power_from_grid
unit_prefix: k
unit_time: h
- name: Total Energy To Grid
platform: integration
source: sensor.emporia_vue_net_power_to_grid
unit_prefix: k
unit_time: h
- name: Home Total Energy
platform: integration
source: sensor.home_power_consumption
unit_prefix: k
unit_time: h
- name: Flex Alert RSS
platform: rest
resource: 'http://content.caiso.com/awe/noticeflexRSS.xml'
value_template: >
{{
(
value_json['rss']['channel']['item']
| selectattr('title', 'search', 'NOTICE')
| list
)[0]['title']
}}
json_attributes_path: '$.rss.channel'
json_attributes:
- item
# -----------------------------------------------------------------------------
# Average Panel Power 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
- name: Envoy 202221032900 Inverter 202147113780 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147113780_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147116830 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147116830_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147117162 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147117162_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147117631 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147117631_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147122858 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147122858_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147123517 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147123517_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147125027 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147125027_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147125590 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147125590_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147125734 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147125734_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147125902 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147125902_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147126079 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147126079_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147126357 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147126357_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147126997 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147126997_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147128369 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147128369_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147129445 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147129445_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147130152 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147130152_power_share
state_characteristic: mean
max_age:
hours: 24
- name: Envoy 202221032900 Inverter 202147130290 Average Power Share
platform: statistics
entity_id: sensor.envoy_202221032900_inverter_202147130290_power_share
state_characteristic: mean
max_age:
hours: 24
# -----------------------------------------------------------------------------
# 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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147113780')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147116830')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147117162')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147117631')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147122858')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147123517')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125027')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125590')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125734')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147125902')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147126079')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147126357')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147126997')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147128369')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147129445')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147130152')|default(0)|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')|default(0)|float == 0 %}
none
{% else %}
{{ (100 *
states('sensor.envoy_202221032900_inverter_202147130290')|default(0)|float
/ states('sensor.envoy_inverter_average_power')|float
) | round(1)
}}
{% endif %}
# -----------------------------------------------------------------------------
# Emporia Vue To/From Grid Sensors
- name: Emporia Vue Net Power From Grid
device_class: power
unit_of_measurement: W
state: >
{% set net_power = states('sensor.emporia_d937d0_1min')|float %}{{
iif(net_power > 0, net_power, 0)
}}
- name: Emporia Vue Net Power To Grid
device_class: power
unit_of_measurement: W
state: >
{% set net_power = states('sensor.emporia_d937d0_1min')|float %}{{
iif(net_power < 0, -net_power, 0)
}}
# -----------------------------------------------------------------------------
# Home Total Power Consumption Sensor
- name: Home Power Consumption
device_class: power
unit_of_measurement: W
state: >
{{
states('sensor.envoy_202221032900_current_power_production')|float
+ states('sensor.emporia_d937d0_1min')|float
}}
# -----------------------------------------------------------------------------
# TOU Schedules
- name: TOU Season
state: "{{ ['Winter', 'Summer'][now().month >= 6 and now().month < 10] }}"
icon: mdi:weather-cloudy-clock
- name: TOU Period
icon: mdi:calendar-clock
state: >
{% set is_weekend = now().strftime("%w") == 0 or now().strftime("%w") == 6 %}
{% if states('sensor.tou_season') == "Summer" %}
{% if now().hour >= 16 and now().hour < 21 %}
{% if is_weekend %}
{{ "Mid-Peak" }}
{% else %}
{{ "On-Peak" }}
{% endif %}
{% else %}
{{ "Off-Peak" }}
{% endif %}
{% else %}
{% if now().hour >= 16 and now().hour < 21 %}
{{ "Mid-Peak" }}
{% elif now().hour >= 21 or now().hour < 8 %}
{{ "Off-Peak" }}
{% else %}
{{ "Super Off-Peak" }}
{% endif %}
{% endif %}
# -----------------------------------------------------------------------------
# Utility Meters
utility_meter:
daily_energy:
source: sensor.total_energy_from_grid
name: Daily Energy Consumption
cycle: daily
tariffs:
- Super Off-Peak
- Off-Peak
- Mid-Peak
- On-Peak
monthly_consumed:
source: sensor.total_energy_from_grid
name: Monthly Energy Consumption
cron: 0 0 10 * *
tariffs:
- Super Off-Peak
- Off-Peak
- Mid-Peak
- On-Peak
monthly_generated:
source: sensor.total_energy_to_grid
name: Monthly Energy Generation
cron: 0 0 10 * *
yearly_consumed:
source: sensor.total_energy_from_grid
name: Yearly Energy Consumption
cron: 0 0 10 7 *
tariffs:
- Super Off-Peak
- Off-Peak
- Mid-Peak
- On-Peak
yearly_generated:
source: sensor.total_energy_to_grid
name: Yearly Energy Generation
cron: 0 0 10 7 *
automation:
# -----------------------------------------------------------------------------
# Utility Meter Automations
- alias: Set Utility Meter TOU Tariff
trigger:
- platform: state
entity_id: sensor.tou_period
- platform: homeassistant
event: start
action:
- service: select.select_option
target:
entity_id: select.daily_energy
data:
option: "{{ states('sensor.tou_period') }}"
- service: select.select_option
target:
entity_id: select.monthly_consumed
data:
option: "{{ states('sensor.tou_period') }}"
- service: select.select_option
target:
entity_id: select.yearly_consumed
data:
option: "{{ states('sensor.tou_period') }}"