213 lines
7.2 KiB
YAML
213 lines
7.2 KiB
YAML
# Loads default set of integrations. Do not remove.
|
|
default_config:
|
|
|
|
# Load frontend themes from the themes folder
|
|
frontend:
|
|
themes: !include_dir_merge_named themes
|
|
|
|
automation: !include automations.yaml
|
|
script: !include scripts.yaml
|
|
scene: !include scenes.yaml
|
|
|
|
panel_custom:
|
|
- name: developer-tools
|
|
sidebar_title: Developer Tools
|
|
sidebar_icon: mdi:hammer-wrench
|
|
url_path: developer-tools/yaml
|
|
embed_iframe: true
|
|
require_admin: true
|
|
|
|
# Combined Template Section
|
|
template:
|
|
# Nest Camera Event Trigger
|
|
- trigger:
|
|
- platform: event
|
|
event_type: nest_event
|
|
event_data:
|
|
type: camera_motion
|
|
binary_sensor:
|
|
- name: "Nest Camera Motion"
|
|
state: "true"
|
|
auto_off: 10
|
|
device_class: motion
|
|
|
|
# Time-Pattern Trigger (Forces calculation updates every minute)
|
|
- trigger:
|
|
- platform: time_pattern
|
|
minutes: "/1"
|
|
sensor:
|
|
- name: "Hydro Quebec Active Rate"
|
|
unique_id: hydro_quebec_active_rate
|
|
unit_of_measurement: "CAD/kWh"
|
|
state: >
|
|
{% set daily_consumption = states('sensor.meter00_daily_grid_energy') | float(0) %}
|
|
{% set low_rate = states('sensor.hilo_rate_low') | float(0.07065) %}
|
|
{% set medium_rate = states('sensor.hilo_rate_medium') | float(0.11142) %}
|
|
|
|
{% if daily_consumption < 40.0 %}
|
|
{{ low_rate }}
|
|
{% else %}
|
|
{{ medium_rate }}
|
|
{% endif %}
|
|
|
|
- name: "HVAC Real-Time Power Draw"
|
|
unique_id: hvac_real_time_power_draw
|
|
unit_of_measurement: "kW"
|
|
device_class: power
|
|
state_class: measurement
|
|
state: >
|
|
{% if is_state_attr('climate.living_room', 'hvac_action', 'idle') or is_state('climate.living_room', 'off') %}
|
|
0
|
|
{% elif is_state_attr('climate.living_room', 'hvac_action', 'cooling') %}
|
|
2.8
|
|
{% elif is_state_attr('climate.living_room', 'hvac_action', 'heating') %}
|
|
{% if is_state_attr('climate.living_room', 'is_aux_heat', true) %}
|
|
20.5
|
|
{% else %}
|
|
2.8
|
|
{% endif %}
|
|
{% else %}
|
|
0
|
|
{% endif %}
|
|
|
|
- name: "Pool Pump Estimated Power Draw"
|
|
unique_id: pool_pump_estimated_power_draw
|
|
unit_of_measurement: "kW"
|
|
device_class: power
|
|
state_class: measurement
|
|
state: >
|
|
{% if is_state('input_boolean.pool_pump_in_use', 'on') %}
|
|
1.50
|
|
{% else %}
|
|
0
|
|
{% endif %}
|
|
|
|
# FIXED SENSOR: Pulls true variable watts from sensor.basement_power and converts to kW
|
|
- name: "Basement Heater Power Draw"
|
|
unique_id: basement_heater_power_draw
|
|
unit_of_measurement: "kW"
|
|
device_class: power
|
|
state_class: measurement
|
|
state: >
|
|
{% set raw_watts = states('sensor.basement_power') | float(0) %}
|
|
{{ (raw_watts / 1000) | round(2) }}
|
|
|
|
# WATER HEATER SENSOR: Pulls hardware power from Hilo water heater switch and converts W to kW
|
|
- name: "Water Heater Power Draw"
|
|
unique_id: water_heater_power_draw
|
|
unit_of_measurement: "kW"
|
|
device_class: power
|
|
state_class: measurement
|
|
state: >
|
|
{% set raw_watts = states('sensor.water_heater_power') | float(0) %}
|
|
{{ (raw_watts / 1000) | round(2) }}
|
|
|
|
- name: "Pool Pump Live Running Cost"
|
|
unique_id: pool_pump_live_running_cost
|
|
unit_of_measurement: "CAD/hr"
|
|
icon: mdi:cash-clock
|
|
state: >
|
|
{{ (states('sensor.pool_pump_estimated_power_draw') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
- name: "Pool Pump Total Cost Today"
|
|
unique_id: pool_pump_total_cost_today
|
|
unit_of_measurement: "CAD"
|
|
device_class: monetary
|
|
state_class: total_increasing
|
|
icon: mdi:cash-marker
|
|
state: >
|
|
{{ (states('sensor.pool_pump_total_energy') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
- name: "HVAC Live Running Cost"
|
|
unique_id: hvac_live_running_cost
|
|
unit_of_measurement: "CAD/hr"
|
|
icon: mdi:cash-clock
|
|
state: >
|
|
{{ (states('sensor.hvac_real_time_power_draw') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
- name: "HVAC Total Cost Today"
|
|
unique_id: hvac_total_cost_today
|
|
unit_of_measurement: "CAD"
|
|
device_class: monetary
|
|
state_class: total_increasing
|
|
icon: mdi:cash-marker
|
|
state: >
|
|
{{ (states('sensor.hvac_total_energy') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
# Basement live running hourly cost
|
|
- name: "Basement Live Running Cost"
|
|
unique_id: basement_live_running_cost
|
|
unit_of_measurement: "CAD/hr"
|
|
icon: mdi:cash-clock
|
|
state: >
|
|
{{ (states('sensor.basement_heater_power_draw') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
# FIXED BASEMENT TOTAL: Uses Riemann Integral with a mathematically isolated daily tracking loop
|
|
- name: "Basement Total Cost Today"
|
|
unique_id: basement_total_cost_today
|
|
unit_of_measurement: "CAD"
|
|
device_class: monetary
|
|
state_class: total_increasing
|
|
icon: mdi:cash-marker
|
|
state: >
|
|
{{ (states('sensor.basement_total_energy') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
# Water Heater live running hourly cost
|
|
- name: "Water Heater Live Running Cost"
|
|
unique_id: water_heater_live_running_cost
|
|
unit_of_measurement: "CAD/hr"
|
|
icon: mdi:cash-clock
|
|
state: >
|
|
{{ (states('sensor.water_heater_power_draw') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
# FIXED WATER HEATER TOTAL: Points to the energy helper sensor to match Daily tracking parameters
|
|
- name: "Water Heater Total Cost Today"
|
|
unique_id: water_heater_total_cost_today
|
|
unit_of_measurement: "CAD"
|
|
device_class: monetary
|
|
state_class: total_increasing
|
|
icon: mdi:cash-marker
|
|
state: >
|
|
{{ (states('sensor.water_heater_total_energy') | float(0) * states('sensor.hydro_quebec_active_rate') | float(0)) | round(2) }}
|
|
|
|
# HTTP Proxy Configuration
|
|
http:
|
|
use_x_forwarded_for: true
|
|
trusted_proxies:
|
|
- 192.168.122.1
|
|
- 192.168.1.130
|
|
- 192.168.1.125
|
|
- 192.168.1.135
|
|
|
|
# Torque OBD2 Configuration
|
|
sensor:
|
|
- platform: torque
|
|
email: torque-car@asuscomm.com
|
|
name: MyCar
|
|
|
|
- platform: history_stats
|
|
name: Nest Heating Time
|
|
entity_id: climate.living_room
|
|
state: "heat"
|
|
type: time
|
|
start: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}"
|
|
end: "{{ now() }}"
|
|
|
|
- platform: history_stats
|
|
name: Nest Cooling Time
|
|
entity_id: climate.living_room
|
|
state: "cool"
|
|
type: time
|
|
start: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}"
|
|
end: "{{ now() }}"
|
|
|
|
emulated_hue:
|
|
host_ip: 192.168.1.140
|
|
advertise_ip: 192.168.1.140
|
|
listen_port: 80
|
|
expose_by_default: false
|
|
entities:
|
|
input_boolean.cync_motion_bridge:
|
|
name: "Cync Motion Bridge"
|
|
hidden: false
|