mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 18:40:14 -04:00
initial push
This commit is contained in:
@@ -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') }}"
|
||||
Reference in New Issue
Block a user