initial push

This commit is contained in:
CeeWeasel
2024-04-14 14:08:56 -04:00
commit 53bf393d14
1111 changed files with 71730 additions and 0 deletions
@@ -0,0 +1,225 @@
utility_meter:
hourly_energy:
unique_id: utility_meter_hourly_energy
name: Total Hourly Energy
source: sensor.pm_grid_kwh
cycle: hourly
tariffs:
- Non-Summer
- Summer Peak
- Summer Non-Peak
daily_energy:
unique_id: utility_meter_daily_energy
name: Total Daily Energy
source: sensor.pm_grid_kwh
cycle: daily
tariffs:
- Non-Summer
- Summer Peak
- Summer Non-Peak
weekly_energy:
unique_id: utility_meter_weekly_energy
name: Total Weekly Energy
source: sensor.pm_grid_kwh
cycle: weekly
tariffs:
- Non-Summer
- Summer Peak
- Summer Non-Peak
monthly_energy:
unique_id: utility_meter_monthly_energy
name: Total Monthly Energy
source: sensor.pm_grid_kwh
cycle: monthly
offset:
days: 17
tariffs:
- Non-Summer
- Summer Peak
- Summer Non-Peak
template:
- sensor:
- unique_id: templatebinarysensor.hourly_energy_non_summer_cost
name: Hourly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_summer_peak_cost
name: Hourly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_summer_non_peak_cost
name: Hourly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_non_summer_cost
name: Daily Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_summer_peak_cost
name: Daily Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_summer_non_peak_cost
name: Daily Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_non_summer_cost
name: Weekly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_summer_peak_cost
name: Weekly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_summer_non_peak_cost
name: Weekly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_non_summer_cost
name: Monthly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_summer_peak_cost
name: Monthly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_summer_non_peak_cost
name: Monthly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_total_cost
name: Hourly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer_total_cost')|float(default=0) + states('sensor.hourly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.hourly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_total_cost
name: Daily Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer_total_cost')|float(default=0) + states('sensor.daily_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.daily_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_total_cost
name: Weekly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer_total_cost')|float(default=0) + states('sensor.weekly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.weekly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_total_cost
name: Monthly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer_total_cost')|float(default=0) + states('sensor.monthly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.monthly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_total
name: Hourly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.hourly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer')|float(default=0) + states('sensor.hourly_energy_summer_non_peak')|float(default=0) + states('sensor.hourly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_total
name: Daily Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.daily_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer')|float(default=0) + states('sensor.daily_energy_summer_non_peak')|float(default=0) + states('sensor.daily_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_total
name: Weekly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.weekly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer')|float(default=0) + states('sensor.weekly_energy_summer_non_peak')|float(default=0) + states('sensor.weekly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_total
name: Monthly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.monthly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer')|float(default=0) + states('sensor.monthly_energy_summer_non_peak')|float(default=0) + states('sensor.monthly_energy_summer_peak')|float(default=0) }}"
@@ -0,0 +1,114 @@
automation:
- id: automation_update_energy_tariff
alias: Update Energy Tariff
# Summer rates run from June 1st through September 30
# Summer peak rate starts at 14:00 and ends at 19:00
trigger:
- platform: state
entity_id: sensor.energy_tariff
to:
- Non-Summer
- Summer Peak
- Summer Non-Peak
- platform: homeassistant
event: start
- platform: event
event_type: automation_reloaded
action:
- service: select.select_option
target:
entity_id:
- select.hourly_energy
- select.daily_energy
- select.weekly_energy
- select.monthly_energy
# - select.basement_and_laundry_lights_and_plugs_hourly
# - select.basement_and_laundry_lights_and_plugs_daily
# - select.basement_and_laundry_lights_and_plugs_weekly
# - select.basement_and_laundry_lights_and_plugs_monthly
# - select.basement_bedroom_and_furnace_room_lights_hourly
# - select.basement_bedroom_and_furnace_room_lights_daily
# - select.basement_bedroom_and_furnace_room_lights_weekly
# - select.basement_bedroom_and_furnace_room_lights_monthly
# - select.basement_plugs_hourly
# - select.basement_plugs_daily
# - select.basement_plugs_weekly
# - select.basement_plugs_monthly
# - select.basement_stairs_and_lights_hourly
# - select.basement_stairs_and_lights_daily
# - select.basement_stairs_and_lights_weekly
# - select.basement_stairs_and_lights_monthly
# - select.bathroom_plug_hourly
# - select.bathroom_plug_daily
# - select.bathroom_plug_weekly
# - select.bathroom_plug_monthly
# - select.dishwasher_hourly
# - select.dishwasher_daily
# - select.dishwasher_weekly
# - select.dishwasher_monthly
# - select.dryer_hourly
# - select.dryer_daily
# - select.dryer_weekly
# - select.dryer_monthly
# - select.front_room_plugs_hourly
# - select.front_room_plugs_daily
# - select.front_room_plugs_weekly
# - select.front_room_plugs_monthly
# - select.furnace_hourly
# - select.furnace_daily
# - select.furnace_weekly
# - select.furnace_monthly
# - select.garage_and_outside_plugs_hourly
# - select.garage_and_outside_plugs_daily
# - select.garage_and_outside_plugs_weekly
# - select.garage_and_outside_plugs_monthly
# - select.garage_outside_and_front_garage_lights_hourly
# - select.garage_outside_and_front_garage_lights_daily
# - select.garage_outside_and_front_garage_lights_weekly
# - select.garage_outside_and_front_garage_lights_monthly
# - select.heat_pump_hourly
# - select.heat_pump_daily
# - select.heat_pump_weekly
# - select.heat_pump_monthly
# - select.kitchen_1_hourly
# - select.kitchen_1_daily
# - select.kitchen_1_weekly
# - select.kitchen_1_monthly
# - select.kitchen_2_hourly
# - select.kitchen_2_daily
# - select.kitchen_2_weekly
# - select.kitchen_2_monthly
# - select.laundry_plug_hourly
# - select.laundry_plug_daily
# - select.laundry_plug_weekly
# - select.laundry_plug_monthly
# - select.master_suite_hourly
# - select.master_suite_daily
# - select.master_suite_weekly
# - select.master_suite_monthly
# - select.microwave_plug_hourly
# - select.microwave_plug_daily
# - select.microwave_plug_weekly
# - select.microwave_plug_monthly
# - select.nursery_dining_kitchen_lights_hourly
# - select.nursery_dining_kitchen_lights_daily
# - select.nursery_dining_kitchen_lights_weekly
# - select.nursery_dining_kitchen_lights_monthly
# - select.stove_hourly
# - select.stove_daily
# - select.stove_weekly
# - select.stove_monthly
# - select.sump_pump_plug_hourly
# - select.sump_pump_plug_daily
# - select.sump_pump_plug_weekly
# - select.sump_pump_plug_monthly
# - select.well_hourly
# - select.well_daily
# - select.well_weekly
# - select.well_monthly
data:
option: "{{ states('sensor.energy_tariff') }}"