Initial Home Assistant commit

This commit is contained in:
2026-06-05 22:34:31 -04:00
commit 6a58b10e6c
4494 changed files with 297833 additions and 0 deletions
+212
View File
@@ -0,0 +1,212 @@
# 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