Compare commits
29 Commits
2026.1.0
...
f4e809317b
| Author | SHA1 | Date | |
|---|---|---|---|
|
f4e809317b
|
|||
|
71c4affd3c
|
|||
|
eef92467de
|
|||
|
eab0a507b7
|
|||
|
979e253ff0
|
|||
|
3aa5a1a462
|
|||
|
fc9bcc9db6
|
|||
|
57023115f1
|
|||
|
faeeb64696
|
|||
|
cc2f328dec
|
|||
|
8e8430cba0
|
|||
|
7f91e3ed04
|
|||
|
802fb39608
|
|||
|
9bc654bc70
|
|||
|
6e9e35a6a4
|
|||
|
bf094bf56a
|
|||
|
f614b3965f
|
|||
|
2c8e062666
|
|||
|
5dd003e994
|
|||
|
6cf0b6daee
|
|||
|
6b2747c518
|
|||
|
b3f8df03d4
|
|||
|
e51143f2ba
|
|||
|
d245b90092
|
|||
|
aad02f646b
|
|||
|
5e9d0efdca
|
|||
|
4fa09ba107
|
|||
|
8e3a98a30a
|
|||
|
9bdaabcb7d
|
@@ -1 +1 @@
|
|||||||
2026.1.0
|
2026.3.2
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@
|
|||||||
/.google.token
|
/.google.token
|
||||||
/.ssh
|
/.ssh
|
||||||
/.codegpt
|
/.codegpt
|
||||||
|
/.cache
|
||||||
|
|
||||||
# ignore some directories.
|
# ignore some directories.
|
||||||
/www/*
|
/www/*
|
||||||
|
|||||||
174
automations.yaml
174
automations.yaml
@@ -314,6 +314,12 @@
|
|||||||
minutes: 1
|
minutes: 1
|
||||||
seconds: 0
|
seconds: 0
|
||||||
milliseconds: 0
|
milliseconds: 0
|
||||||
|
- action: input_boolean.turn_on
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.recorder
|
||||||
|
data: {}
|
||||||
|
alias: Turn on Recorder
|
||||||
- data: {}
|
- data: {}
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id:
|
||||||
@@ -6219,6 +6225,7 @@
|
|||||||
- input_boolean.tina_morning_meds_taken
|
- input_boolean.tina_morning_meds_taken
|
||||||
- input_boolean.tina_night_meds_taken
|
- input_boolean.tina_night_meds_taken
|
||||||
alias: Reset Tina meds taken switches
|
alias: Reset Tina meds taken switches
|
||||||
|
enabled: false
|
||||||
mode: restart
|
mode: restart
|
||||||
- id: '1747130058536'
|
- id: '1747130058536'
|
||||||
alias: Shower Mode Auto Off
|
alias: Shower Mode Auto Off
|
||||||
@@ -6357,3 +6364,170 @@
|
|||||||
data:
|
data:
|
||||||
hvac_mode: heat
|
hvac_mode: heat
|
||||||
mode: restart
|
mode: restart
|
||||||
|
- id: '1771035023213'
|
||||||
|
alias: Recorder Toggle
|
||||||
|
description: Toggles the recorder on or off, so we can do database maintenance without
|
||||||
|
having to shut down Home Assistant
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- input_boolean.recorder
|
||||||
|
from:
|
||||||
|
- 'off'
|
||||||
|
to:
|
||||||
|
- 'on'
|
||||||
|
id: recorder-on
|
||||||
|
alias: Recorder On
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- input_boolean.recorder
|
||||||
|
from:
|
||||||
|
- 'on'
|
||||||
|
to:
|
||||||
|
- 'off'
|
||||||
|
id: recorder-off
|
||||||
|
alias: Recorder Off
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: trigger
|
||||||
|
id:
|
||||||
|
- recorder-on
|
||||||
|
alias: Recorder On
|
||||||
|
sequence:
|
||||||
|
- action: recorder.enable
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
alias: Enable Recorder
|
||||||
|
- conditions:
|
||||||
|
- condition: trigger
|
||||||
|
id:
|
||||||
|
- recorder-off
|
||||||
|
alias: Recorder Off
|
||||||
|
sequence:
|
||||||
|
- action: recorder.disable
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
alias: Disable Recorder
|
||||||
|
mode: restart
|
||||||
|
- id: '1773604271398'
|
||||||
|
alias: Emma Bedroom Climate Interlock
|
||||||
|
description: Makes sure only one climate device can be enabled at one time, to protect
|
||||||
|
from blowing a breaker
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- input_boolean.emma_bedroom_aircon_installed
|
||||||
|
from:
|
||||||
|
- 'off'
|
||||||
|
to:
|
||||||
|
- 'on'
|
||||||
|
id: aircon
|
||||||
|
alias: Aircon Installed
|
||||||
|
- trigger: state
|
||||||
|
entity_id:
|
||||||
|
- input_boolean.emma_bedroom_heater_installed
|
||||||
|
from:
|
||||||
|
- 'off'
|
||||||
|
to:
|
||||||
|
- 'on'
|
||||||
|
id: heater
|
||||||
|
alias: Heater Installed
|
||||||
|
conditions: []
|
||||||
|
actions:
|
||||||
|
- alias: Routing
|
||||||
|
choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: trigger
|
||||||
|
id:
|
||||||
|
- aircon
|
||||||
|
alias: Aircon Installed
|
||||||
|
sequence:
|
||||||
|
- action: climate.turn_off
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: climate.emma_bedroom_vtherm
|
||||||
|
data: {}
|
||||||
|
alias: Turn off heater thermostat
|
||||||
|
- action: input_boolean.turn_off
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.emma_bedroom_heater_installed
|
||||||
|
data: {}
|
||||||
|
alias: Remove heater
|
||||||
|
- conditions:
|
||||||
|
- condition: trigger
|
||||||
|
id:
|
||||||
|
- heater
|
||||||
|
alias: Heater Installed
|
||||||
|
sequence:
|
||||||
|
- action: climate.turn_off
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: climate.emma_bedroom_aircon
|
||||||
|
data: {}
|
||||||
|
alias: Turn off aircon
|
||||||
|
- action: input_boolean.turn_off
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.emma_bedroom_aircon_installed
|
||||||
|
data: {}
|
||||||
|
alias: Remove aircon
|
||||||
|
mode: restart
|
||||||
|
- id: '1773964427974'
|
||||||
|
alias: Temperature Window Alert
|
||||||
|
description: Alert when the temperature outside gets too cold or too hot for having
|
||||||
|
windows open
|
||||||
|
triggers:
|
||||||
|
- trigger: numeric_state
|
||||||
|
entity_id:
|
||||||
|
- weather.iron_nerd_weather_station
|
||||||
|
attribute: temperature
|
||||||
|
below: 50
|
||||||
|
id: cold
|
||||||
|
alias: Cold
|
||||||
|
- trigger: numeric_state
|
||||||
|
entity_id:
|
||||||
|
- weather.iron_nerd_weather_station
|
||||||
|
attribute: temperature
|
||||||
|
above: 80
|
||||||
|
id: hot
|
||||||
|
alias: Hot
|
||||||
|
conditions:
|
||||||
|
- condition: state
|
||||||
|
entity_id: binary_sensor.windows
|
||||||
|
state:
|
||||||
|
- 'on'
|
||||||
|
actions:
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: trigger
|
||||||
|
id:
|
||||||
|
- cold
|
||||||
|
alias: Cold
|
||||||
|
sequence:
|
||||||
|
- action: script.speech_engine
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
who: everywhere
|
||||||
|
message: It has gotten a bit chilly outside, and there are windows open.
|
||||||
|
Please consider closing them!
|
||||||
|
type: weather
|
||||||
|
alias: Play announcement for cold
|
||||||
|
- conditions:
|
||||||
|
- alias: Hot
|
||||||
|
condition: trigger
|
||||||
|
id:
|
||||||
|
- hot
|
||||||
|
sequence:
|
||||||
|
- alias: Play announcement for hot
|
||||||
|
action: script.speech_engine
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
who: everywhere
|
||||||
|
message: It has gotten pretty hot outside, and there are windows open. Please
|
||||||
|
consider closing them!
|
||||||
|
type: weather
|
||||||
|
alias: Routing
|
||||||
|
mode: restart
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ recorder:
|
|||||||
- sensor.*_count
|
- sensor.*_count
|
||||||
- sensor.*memory_available*
|
- sensor.*memory_available*
|
||||||
- sensor.*memory_used*
|
- sensor.*memory_used*
|
||||||
|
- sensor.*memory_usage*
|
||||||
- sensor.*cpu_usage
|
- sensor.*cpu_usage
|
||||||
- sensor.*cpu_temperature
|
- sensor.*cpu_temperature
|
||||||
- sensor.*gpu_temperature
|
- sensor.*gpu_temperature
|
||||||
@@ -124,6 +125,11 @@ recorder:
|
|||||||
- sensor.*_monitored_url
|
- sensor.*_monitored_url
|
||||||
- sensor.*_response_time
|
- sensor.*_response_time
|
||||||
- sensor.adguard*
|
- sensor.adguard*
|
||||||
|
- sensor.*iphone_info
|
||||||
|
- sensor.*ipad_info
|
||||||
|
- sensor.*airpods_info
|
||||||
|
- sensor.*airpods_pro_info
|
||||||
|
- sensor.*response_time*
|
||||||
entities:
|
entities:
|
||||||
- sensor.avg_ping
|
- sensor.avg_ping
|
||||||
- sensor.max_ping
|
- sensor.max_ping
|
||||||
@@ -164,14 +170,7 @@ logger:
|
|||||||
homeassistant.core: fatal
|
homeassistant.core: fatal
|
||||||
|
|
||||||
influxdb:
|
influxdb:
|
||||||
api_version: 2
|
|
||||||
host: 192.168.1.254
|
|
||||||
port: 8086
|
|
||||||
max_retries: 3
|
max_retries: 3
|
||||||
ssl: false
|
|
||||||
organization: !secret influxdb_org
|
|
||||||
token: !secret influxdb_token
|
|
||||||
bucket: home_assistant
|
|
||||||
default_measurement: state
|
default_measurement: state
|
||||||
tags:
|
tags:
|
||||||
source: HA
|
source: HA
|
||||||
@@ -291,6 +290,7 @@ influxdb:
|
|||||||
- sensor.*_response_time
|
- sensor.*_response_time
|
||||||
- sensor.*_status
|
- sensor.*_status
|
||||||
- sensor.adguard*
|
- sensor.adguard*
|
||||||
|
- sensor.*response_time*
|
||||||
entities:
|
entities:
|
||||||
- media_player.living_room_tv
|
- media_player.living_room_tv
|
||||||
- media_player.basement_tv
|
- media_player.basement_tv
|
||||||
@@ -469,6 +469,7 @@ prometheus:
|
|||||||
- sensor.*_response_time
|
- sensor.*_response_time
|
||||||
- sensor.*_status
|
- sensor.*_status
|
||||||
- sensor.adguard*
|
- sensor.adguard*
|
||||||
|
- sensor.*response_time*
|
||||||
include_entities:
|
include_entities:
|
||||||
- media_player.living_room_tv
|
- media_player.living_room_tv
|
||||||
- media_player.basement_tv
|
- media_player.basement_tv
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% set time = time|default('day') %}
|
{% set time = time|default('day') %}
|
||||||
{% if method in ['text','dashboard'] %}
|
{% if method in ['text','dashboard'] %}
|
||||||
{% if type in ['current','full'] %}
|
{% if type in ['current','full'] %}
|
||||||
The current weather is {{ states('weather.iron_nerd_weather_station') | lower }}. It is {{ state_attr('weather.iron_nerd_weather_station','temperature') | round }} degrees outside and feels like {{ states('sensor.home_temperature_feels_like') | round }} degrees.
|
The current weather is {{ states('weather.iron_nerd_weather_station') | lower }}. It is {{ state_attr('weather.iron_nerd_weather_station','temperature') | round }} degrees outside and feels like {{ state_attr('weather.iron_nerd_weather_station','apparent_temperature') | round }} degrees.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if type in ['forecast','full'] %}
|
{% if type in ['forecast','full'] %}
|
||||||
{% if 14400 <= ct <= 61200 %}
|
{% if 14400 <= ct <= 61200 %}
|
||||||
|
|||||||
@@ -25,91 +25,91 @@ template:
|
|||||||
state: "{{ states('input_datetime.kallen_fan') != states('input_datetime.kallen_bedtime') }}"
|
state: "{{ states('input_datetime.kallen_fan') != states('input_datetime.kallen_bedtime') }}"
|
||||||
- name: Living Room Front Hot
|
- name: Living Room Front Hot
|
||||||
unique_id: 8fd9db5e-7883-42f3-8918-e78d52c680c6
|
unique_id: 8fd9db5e-7883-42f3-8918-e78d52c680c6
|
||||||
state: "{{ states('sensor.living_room_front_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.living_room_front_temperature') | float) >= (states('input_number.living_room_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Living Room Front Cold
|
- name: Living Room Front Cold
|
||||||
unique_id: 48494ec8-a63f-4244-b619-ff78c44f28e8
|
unique_id: 48494ec8-a63f-4244-b619-ff78c44f28e8
|
||||||
state: "{{ states('sensor.living_room_front_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.living_room_front_temperature') | float) <= (states('input_number.living_room_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Downstairs Bathroom Hot
|
- name: Downstairs Bathroom Hot
|
||||||
unique_id: b68adefa-e30e-4454-be21-2743af0f1674
|
unique_id: b68adefa-e30e-4454-be21-2743af0f1674
|
||||||
state: "{{ states('sensor.downstairs_bathroom_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.downstairs_bathroom_temperature') | float) >= (states('input_number.downstairs_bathroom_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Downstairs Bathroom Cold
|
- name: Downstairs Bathroom Cold
|
||||||
unique_id: c477a45e-f11c-4af5-87aa-90f006b74ac5
|
unique_id: c477a45e-f11c-4af5-87aa-90f006b74ac5
|
||||||
state: "{{ states('sensor.downstairs_bathroom_temperature') | float <= 55 }}"
|
state: "{{ (states('sensor.downstairs_bathroom_temperature') | float) <= (states('input_number.downstairs_bathroom_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Stairwell Bottom Hot
|
- name: Stairwell Bottom Hot
|
||||||
unique_id: ebd09e52-c31e-442e-8767-a8083b99c66c
|
unique_id: ebd09e52-c31e-442e-8767-a8083b99c66c
|
||||||
state: "{{ states('sensor.stairwell_bottom_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.stairwell_bottom_temperature') | float) >= (states('input_number.stairwell_bottom_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Stairwell Bottom Cold
|
- name: Stairwell Bottom Cold
|
||||||
unique_id: 3f8b5340-0fb4-489f-8df7-c2843316009f
|
unique_id: 3f8b5340-0fb4-489f-8df7-c2843316009f
|
||||||
state: "{{ states('sensor.stairwell_bottom_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.stairwell_bottom_temperature') | float) <= (states('input_number.stairwell_bottom_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Upstairs Bathroom Hot
|
- name: Upstairs Bathroom Hot
|
||||||
unique_id: 86394cea-9499-4595-85d1-2a026e8e2b27
|
unique_id: 86394cea-9499-4595-85d1-2a026e8e2b27
|
||||||
state: "{{ states('sensor.upstairs_bathroom_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.upstairs_bathroom_temperature') | float) >= (states('input_number.upstairs_bathroom_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Upstairs Bathroom Cold
|
- name: Upstairs Bathroom Cold
|
||||||
unique_id: 5d720614-90f0-4e69-8086-8bc0f47a78eb
|
unique_id: 5d720614-90f0-4e69-8086-8bc0f47a78eb
|
||||||
state: "{{ states('sensor.upstairs_bathroom_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.upstairs_bathroom_temperature') | float) <= (states('input_number.upstairs_bathroom_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Emma Bedroom Hot
|
- name: Emma Bedroom Hot
|
||||||
unique_id: b453e23a-f3c9-4fab-bf82-d08af05e8a94
|
unique_id: b453e23a-f3c9-4fab-bf82-d08af05e8a94
|
||||||
state: "{{ states('sensor.emma_bedroom_temperature') | float >= 75 }}"
|
state: "{{ (states('sensor.emma_bedroom_temperature') | float) >= (states('input_number.emma_bedroom_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Emma Bedroom Cold
|
- name: Emma Bedroom Cold
|
||||||
unique_id: 41174b21-a46f-4deb-8dbc-61a356b33db1
|
unique_id: 41174b21-a46f-4deb-8dbc-61a356b33db1
|
||||||
state: "{{ states('sensor.emma_bedroom_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.emma_bedroom_temperature') | float) <= (states('input_number.emma_bedroom_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Basement Studio Hot
|
- name: Basement Studio Hot
|
||||||
unique_id: 2c5626e9-9a3f-43b0-9595-3a15c9434b0f
|
unique_id: 2c5626e9-9a3f-43b0-9595-3a15c9434b0f
|
||||||
state: "{{ states('sensor.basement_studio_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.basement_studio_temperature') | float) >= (states('input_number.basement_studio_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Basement Studio Cold
|
- name: Basement Studio Cold
|
||||||
unique_id: 985f4f8c-2297-4d32-ace7-818534c5e4b5
|
unique_id: 985f4f8c-2297-4d32-ace7-818534c5e4b5
|
||||||
state: "{{ states('sensor.basement_studio_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.basement_studio_temperature') | float) <= (states('input_number.basement_studio_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Living Room Back Hot
|
- name: Living Room Back Hot
|
||||||
unique_id: 9a2be430-9322-492b-a0c1-bb0f034979f5
|
unique_id: 9a2be430-9322-492b-a0c1-bb0f034979f5
|
||||||
state: "{{ states('sensor.living_room_back_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.living_room_back_temperature') | float) >= (states('input_number.living_room_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Living Room Back Cold
|
- name: Living Room Back Cold
|
||||||
unique_id: 524c2ad1-1f44-42c0-b06b-28a40d439832
|
unique_id: 524c2ad1-1f44-42c0-b06b-28a40d439832
|
||||||
state: "{{ states('sensor.living_room_back_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.living_room_back_temperature') | float) <= (states('input_number.living_room_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Mud Room Hot
|
- name: Mud Room Hot
|
||||||
unique_id: 920fa45e-8c6e-4518-9aea-5141e15a4350
|
unique_id: 920fa45e-8c6e-4518-9aea-5141e15a4350
|
||||||
state: "{{ states('sensor.mud_room_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.mud_room_temperature') | float) >= (states('input_number.mud_room_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Mud Room Cold
|
- name: Mud Room Cold
|
||||||
unique_id: 459998f5-7011-4e96-aa8a-076591a1b1ce
|
unique_id: 459998f5-7011-4e96-aa8a-076591a1b1ce
|
||||||
state: "{{ states('sensor.mud_room_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.mud_room_temperature') | float) <= (states('input_number.mud_room_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Stairwell Top Hot
|
- name: Stairwell Top Hot
|
||||||
unique_id: 22d325db-e213-4d7b-81a8-a7ba3798e751
|
unique_id: 22d325db-e213-4d7b-81a8-a7ba3798e751
|
||||||
state: "{{ states('sensor.stairwell_top_temperature') | float >= 80 }}"
|
state: "{{ (states('sensor.stairwell_top_temperature') | float) >= (states('input_number.stairwell_top_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Stairwell Top Cold
|
- name: Stairwell Top Cold
|
||||||
unique_id: 925bf2d5-cfa6-4508-98c4-b7ad185ddbc1
|
unique_id: 925bf2d5-cfa6-4508-98c4-b7ad185ddbc1
|
||||||
state: "{{ states('sensor.stairwell_top_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.stairwell_top_temperature') | float) <= (states('input_number.stairwell_top_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Kallen Bedroom Hot
|
- name: Kallen Bedroom Hot
|
||||||
unique_id: e47ba60f-e9b2-48d4-899b-f16fdb146e75
|
unique_id: e47ba60f-e9b2-48d4-899b-f16fdb146e75
|
||||||
state: "{{ states('sensor.kallen_bedroom_temperature') | float >= 75 }}"
|
state: "{{ (states('sensor.kallen_bedroom_temperature') | float) >= (states('input_number.kallen_bedroom_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Kallen Bedroom Cold
|
- name: Kallen Bedroom Cold
|
||||||
unique_id: 69115462-c159-4f5b-b047-ff8a2600fa7d
|
unique_id: 69115462-c159-4f5b-b047-ff8a2600fa7d
|
||||||
state: "{{ states('sensor.kallen_bedroom_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.kallen_bedroom_temperature') | float) <= (states('input_number.kallen_bedroom_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- name: Master Bedroom Hot
|
- name: Master Bedroom Hot
|
||||||
unique_id: ca7c96e5-ea83-4698-a43c-16e09af6d6fd
|
unique_id: ca7c96e5-ea83-4698-a43c-16e09af6d6fd
|
||||||
state: "{{ states('sensor.master_bedroom_temperature') | float >= 75 }}"
|
state: "{{ (states('sensor.master_bedroom_temperature') | float) >= (states('input_number.master_bedroom_hot_threshold') | float) }}"
|
||||||
device_class: heat
|
device_class: heat
|
||||||
- name: Master Bedroom Cold
|
- name: Master Bedroom Cold
|
||||||
unique_id: 1577cb2c-234d-41c8-a12e-5111a77df958
|
unique_id: 1577cb2c-234d-41c8-a12e-5111a77df958
|
||||||
state: "{{ states('sensor.master_bedroom_temperature') | float <= 60 }}"
|
state: "{{ (states('sensor.master_bedroom_temperature') | float) <= (states('input_number.master_bedroom_cold_threshold') | float) }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- sensor:
|
- sensor:
|
||||||
- name: "Master Bedroom Target Temp"
|
- name: "Master Bedroom Target Temp"
|
||||||
@@ -457,6 +457,146 @@ input_number:
|
|||||||
step: 1
|
step: 1
|
||||||
unit_of_measurement: °F
|
unit_of_measurement: °F
|
||||||
icon: mdi:thermometer
|
icon: mdi:thermometer
|
||||||
|
living_room_hot_threshold:
|
||||||
|
name: Living Room Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
living_room_cold_threshold:
|
||||||
|
name: Living Room Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
downstairs_bathroom_hot_threshold:
|
||||||
|
name: Downstairs Bathroom Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
downstairs_bathroom_cold_threshold:
|
||||||
|
name: Downstairs Bathroom Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
stairwell_bottom_hot_threshold:
|
||||||
|
name: Stairwell Bottom Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
stairwell_bottom_cold_threshold:
|
||||||
|
name: Stairwell Bottom Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
upstairs_bathroom_hot_threshold:
|
||||||
|
name: Upstairs Bathroom Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
upstairs_bathroom_cold_threshold:
|
||||||
|
name: Upstairs Bathroom Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
emma_bedroom_hot_threshold:
|
||||||
|
name: Emma Bedroom Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
emma_bedroom_cold_threshold:
|
||||||
|
name: Emma Bedroom Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
basement_studio_hot_threshold:
|
||||||
|
name: Basement Studio Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
basement_studio_cold_threshold:
|
||||||
|
name: Basement Studio Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
mud_room_hot_threshold:
|
||||||
|
name: Mud Room Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
mud_room_cold_threshold:
|
||||||
|
name: Mud Room Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
stairwell_top_hot_threshold:
|
||||||
|
name: Stairwell Top Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
stairwell_top_cold_threshold:
|
||||||
|
name: Stairwell Top Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
kallen_bedroom_hot_threshold:
|
||||||
|
name: Kallen Bedroom Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
kallen_bedroom_cold_threshold:
|
||||||
|
name: Kallen Bedroom Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
master_bedroom_hot_threshold:
|
||||||
|
name: Master Bedroom Hot Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-up
|
||||||
|
master_bedroom_cold_threshold:
|
||||||
|
name: Master Bedroom Cold Threshold
|
||||||
|
min: 50
|
||||||
|
max: 80
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: °F
|
||||||
|
icon: mdi:thermometer-chevron-down
|
||||||
|
|
||||||
climate:
|
climate:
|
||||||
- platform: generic_thermostat
|
- platform: generic_thermostat
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ template:
|
|||||||
{{ states(sensor) | float }}
|
{{ states(sensor) | float }}
|
||||||
apparent_temperature_template: >
|
apparent_temperature_template: >
|
||||||
{% set apparent_temps = [
|
{% set apparent_temps = [
|
||||||
states.sensor.home_tempest_feels_like,
|
|
||||||
states.sensor.home_temperature_feels_like,
|
|
||||||
states.sensor.pirateweather_apparent_temperature,
|
states.sensor.pirateweather_apparent_temperature,
|
||||||
|
states.sensor.home_temperature_feels_like,
|
||||||
|
states.sensor.home_tempest_feels_like,
|
||||||
states.sensor.stratton_ave_apparent_temperature
|
states.sensor.stratton_ave_apparent_temperature
|
||||||
] %}
|
] %}
|
||||||
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||||
@@ -148,9 +148,9 @@ template:
|
|||||||
{{ states(sensor) | float }}
|
{{ states(sensor) | float }}
|
||||||
apparent_temperature_template: >
|
apparent_temperature_template: >
|
||||||
{% set apparent_temps = [
|
{% set apparent_temps = [
|
||||||
states.sensor.home_tempest_feels_like,
|
|
||||||
states.sensor.home_temperature_feels_like,
|
|
||||||
states.sensor.pirateweather_apparent_temperature,
|
states.sensor.pirateweather_apparent_temperature,
|
||||||
|
states.sensor.home_temperature_feels_like,
|
||||||
|
states.sensor.home_tempest_feels_like,
|
||||||
states.sensor.stratton_ave_apparent_temperature
|
states.sensor.stratton_ave_apparent_temperature
|
||||||
] %}
|
] %}
|
||||||
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ sensor:
|
|||||||
hours: 24
|
hours: 24
|
||||||
- platform: history_stats
|
- platform: history_stats
|
||||||
name: Emma A/C Compressor Time
|
name: Emma A/C Compressor Time
|
||||||
entity_id: binary_sensor.emma_aircon_compressor
|
entity_id: binary_sensor.emma_bedroom_aircon_compressor
|
||||||
state: 'on'
|
state: 'on'
|
||||||
type: time
|
type: time
|
||||||
end: '{{ now() }}'
|
end: '{{ now() }}'
|
||||||
@@ -73,7 +73,7 @@ sensor:
|
|||||||
hours: 24
|
hours: 24
|
||||||
- platform: history_stats
|
- platform: history_stats
|
||||||
name: Emma A/C Fan Time
|
name: Emma A/C Fan Time
|
||||||
entity_id: binary_sensor.emma_aircon_fan
|
entity_id: binary_sensor.emma_bedroom_aircon_fan
|
||||||
state: 'on'
|
state: 'on'
|
||||||
type: time
|
type: time
|
||||||
end: '{{ now() }}'
|
end: '{{ now() }}'
|
||||||
|
|||||||
@@ -57,6 +57,6 @@ pyscript:
|
|||||||
allow_all_imports: true
|
allow_all_imports: true
|
||||||
hass_is_global: true
|
hass_is_global: true
|
||||||
|
|
||||||
animated_scenes:
|
# animated_scenes:
|
||||||
|
|
||||||
grad_vol:
|
grad_vol:
|
||||||
@@ -822,51 +822,51 @@ template:
|
|||||||
mdi:lightbulb
|
mdi:lightbulb
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
switch:
|
# switch:
|
||||||
- platform: animated_scenes
|
# - platform: animated_scenes
|
||||||
name: Christmas
|
# name: Christmas
|
||||||
restore: False
|
# restore: False
|
||||||
restore_power: False
|
# restore_power: False
|
||||||
ignore_off: False
|
# ignore_off: False
|
||||||
lights:
|
# lights:
|
||||||
- light.front_porch_light
|
# - light.front_porch_light
|
||||||
colors:
|
# colors:
|
||||||
- color_type: rgb_color
|
# - color_type: rgb_color
|
||||||
color: [255,0,0]
|
# color: [255,0,0]
|
||||||
brightness: 255
|
# brightness: 255
|
||||||
- color_type: rgb_color
|
# - color_type: rgb_color
|
||||||
color: [0,255,0]
|
# color: [0,255,0]
|
||||||
brightness: 255
|
# brightness: 255
|
||||||
transition: 10
|
# transition: 10
|
||||||
change_frequency: 60
|
# change_frequency: 60
|
||||||
change_amount: all
|
# change_amount: all
|
||||||
change_sequence: True
|
# change_sequence: True
|
||||||
animate_brightness: True
|
# animate_brightness: True
|
||||||
animate_color: True
|
# animate_color: True
|
||||||
- platform: animated_scenes
|
# - platform: animated_scenes
|
||||||
name: Christmas Day
|
# name: Christmas Day
|
||||||
restore: False
|
# restore: False
|
||||||
restore_power: False
|
# restore_power: False
|
||||||
ignore_off: False
|
# ignore_off: False
|
||||||
lights:
|
# lights:
|
||||||
- light.living_room_color_1
|
# - light.living_room_color_1
|
||||||
- light.living_room_color_2
|
# - light.living_room_color_2
|
||||||
- light.living_room_color_3
|
# - light.living_room_color_3
|
||||||
- light.tina_lamp_top
|
# - light.tina_lamp_top
|
||||||
- light.tina_lamp_side
|
# - light.tina_lamp_side
|
||||||
colors:
|
# colors:
|
||||||
- color_type: rgb_color
|
# - color_type: rgb_color
|
||||||
color: [255,0,0]
|
# color: [255,0,0]
|
||||||
brightness: 255
|
# brightness: 255
|
||||||
- color_type: rgb_color
|
# - color_type: rgb_color
|
||||||
color: [0,255,0]
|
# color: [0,255,0]
|
||||||
brightness: 255
|
# brightness: 255
|
||||||
transition: 1
|
# transition: 1
|
||||||
change_frequency: 5
|
# change_frequency: 5
|
||||||
change_amount: 3
|
# change_amount: 3
|
||||||
change_sequence: False
|
# change_sequence: False
|
||||||
animate_brightness: True
|
# animate_brightness: True
|
||||||
animate_color: True
|
# animate_color: True
|
||||||
|
|
||||||
#! Unless there is a good reason, do not define multi-room scenes below.
|
#! Unless there is a good reason, do not define multi-room scenes below.
|
||||||
#! Use scripts instead, to avoid some straight-up haunted house bullshit...
|
#! Use scripts instead, to avoid some straight-up haunted house bullshit...
|
||||||
|
|||||||
@@ -125,6 +125,18 @@ alarm_control_panel:
|
|||||||
|
|
||||||
template:
|
template:
|
||||||
- binary_sensor:
|
- binary_sensor:
|
||||||
|
- name: Windows
|
||||||
|
unique_id: 9ff34cd4-c450-45d2-934a-b4a9fd8b93b2
|
||||||
|
device_class: window
|
||||||
|
state: >
|
||||||
|
{% set windows_open = states.binary_sensor
|
||||||
|
| selectattr('attributes.device_class','eq','window')
|
||||||
|
| selectattr('attributes.entity_id','eq',null)
|
||||||
|
| rejectattr('entity_id','search','windows')
|
||||||
|
| selectattr('state','eq','on')
|
||||||
|
| list
|
||||||
|
| count %}
|
||||||
|
{{ windows_open > 0 }}
|
||||||
- name: Living Room Windows
|
- name: Living Room Windows
|
||||||
unique_id: fb4ab414-3ceb-44d2-8276-66027a936329
|
unique_id: fb4ab414-3ceb-44d2-8276-66027a936329
|
||||||
device_class: window
|
device_class: window
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ template:
|
|||||||
unique_id: 87653f3a-203c-4dbf-87e8-70bcacf6eb22
|
unique_id: 87653f3a-203c-4dbf-87e8-70bcacf6eb22
|
||||||
state: >
|
state: >
|
||||||
{% from 'sports.jinja' import sports_inhibit %}
|
{% from 'sports.jinja' import sports_inhibit %}
|
||||||
{{ sports_inhibit('sensor.minnesota_golden_gophers_hockey') }}
|
{{ state_attr('sensor.minnesota_golden_gophers_hockey','opponent_abbr') in ['MICH','MNST'] or sports_inhibit('sensor.minnesota_golden_gophers_hockey') }}
|
||||||
- name: Minnesota Golden Gophers Hockey Event Today
|
- name: Minnesota Golden Gophers Hockey Event Today
|
||||||
unique_id: 1f4ff7eb-cbc9-4c81-a5c9-6523b5fb52ff
|
unique_id: 1f4ff7eb-cbc9-4c81-a5c9-6523b5fb52ff
|
||||||
state: >
|
state: >
|
||||||
@@ -166,7 +166,7 @@ template:
|
|||||||
unique_id: bd15870d-bccb-4c52-9690-473c31bb4090
|
unique_id: bd15870d-bccb-4c52-9690-473c31bb4090
|
||||||
state: >
|
state: >
|
||||||
{% from 'sports.jinja' import sports_inhibit %}
|
{% from 'sports.jinja' import sports_inhibit %}
|
||||||
{{ sports_inhibit('sensor.minnesota_state_mavericks_hockey') }}
|
{{ state_attr('sensor.minnesota_state_mavericks_hockey','opponent_abbr') in ['MICH'] or sports_inhibit('sensor.minnesota_state_mavericks_hockey') }}
|
||||||
- name: Minnesota State Mavericks Hockey Event Today
|
- name: Minnesota State Mavericks Hockey Event Today
|
||||||
unique_id: e403be15-3ff2-47b1-8398-70f8ccb65026
|
unique_id: e403be15-3ff2-47b1-8398-70f8ccb65026
|
||||||
state: >
|
state: >
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ input_boolean:
|
|||||||
server_maintenance:
|
server_maintenance:
|
||||||
name: Server Maintenance
|
name: Server Maintenance
|
||||||
icon: mdi:wrench-clock
|
icon: mdi:wrench-clock
|
||||||
|
recorder:
|
||||||
|
name: Recorder
|
||||||
|
icon: mdi:database
|
||||||
|
|
||||||
input_select:
|
input_select:
|
||||||
log_level:
|
log_level:
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ ## HACS Components
|
|||||||
- [Union Pacific Big Boy Tracker](https://github.com/jheizer/up_4014_tracker)
|
- [Union Pacific Big Boy Tracker](https://github.com/jheizer/up_4014_tracker)
|
||||||
- [WeatherFlow Forecast](https://github.com/briis/weatherflow_forecast)
|
- [WeatherFlow Forecast](https://github.com/briis/weatherflow_forecast)
|
||||||
- [NWS SPC Outlook](https://github.com/sedward5/nws_spc_outlook)
|
- [NWS SPC Outlook](https://github.com/sedward5/nws_spc_outlook)
|
||||||
|
- [Music Assistant Queue Actions](https://github.com/droans/mass_queue)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -113,6 +114,7 @@ ## HACS Lovelace Cards
|
|||||||
- [Versatile Thermostat UI Card](https://github.com/jmcollin78/versatile-thermostat-ui-card)
|
- [Versatile Thermostat UI Card](https://github.com/jmcollin78/versatile-thermostat-ui-card)
|
||||||
- [Gauge Card Pro](https://github.com/benjamin-dcs/gauge-card-pro)
|
- [Gauge Card Pro](https://github.com/benjamin-dcs/gauge-card-pro)
|
||||||
- [AdGuard Card](https://github.com/homeassistant-extras/adguard-card)
|
- [AdGuard Card](https://github.com/homeassistant-extras/adguard-card)
|
||||||
|
- [Music Assistant Player Card](https://github.com/droans/mass-player-card)
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|||||||
387
scripts.yaml
387
scripts.yaml
@@ -2673,137 +2673,288 @@ kallen_night_meds:
|
|||||||
reset_annc_switches:
|
reset_annc_switches:
|
||||||
alias: Reset Announcement Switches
|
alias: Reset Announcement Switches
|
||||||
sequence:
|
sequence:
|
||||||
- service: input_boolean.turn_off
|
- target:
|
||||||
target:
|
|
||||||
entity_id:
|
entity_id:
|
||||||
- input_boolean.good_morning
|
- input_boolean.good_morning
|
||||||
- input_boolean.daily_briefing
|
- input_boolean.daily_briefing
|
||||||
- input_boolean.nightly_briefing
|
- input_boolean.nightly_briefing
|
||||||
- input_boolean.kallen_morning_briefing
|
- input_boolean.kallen_morning_briefing
|
||||||
- input_boolean.kallen_nightly_briefing
|
- input_boolean.kallen_nightly_briefing
|
||||||
- input_boolean.basement_briefing
|
|
||||||
data: {}
|
data: {}
|
||||||
|
action: input_boolean.turn_off
|
||||||
|
alias: Turn off housewide briefing switches
|
||||||
|
- if:
|
||||||
|
- condition: state
|
||||||
|
entity_id: binary_sensor.basement_occupied
|
||||||
|
state:
|
||||||
|
- 'off'
|
||||||
|
then:
|
||||||
|
- action: input_boolean.turn_off
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.basement_briefing
|
||||||
|
data: {}
|
||||||
|
alias: Turn off basement briefing switch if basement is not occupied
|
||||||
mode: single
|
mode: single
|
||||||
icon: mdi:bullhorn-outline
|
icon: mdi:bullhorn-outline
|
||||||
emma_rainbow_lights:
|
emma_rainbow_lights:
|
||||||
alias: Emma Rainbow Lights
|
alias: Emma Rainbow Lights
|
||||||
sequence:
|
sequence:
|
||||||
- service: switch.turn_off
|
- choose:
|
||||||
metadata: {}
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.adaptive_lighting_living_room
|
|
||||||
- switch.adaptive_lighting_sleep_mode_living_room
|
|
||||||
alias: Turn off adaptive lighting
|
|
||||||
- service: lifx.effect_stop
|
|
||||||
metadata: {}
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id: light.living_room_led_strip
|
|
||||||
alias: Stop any current light strip effects
|
|
||||||
- alias: Choose Effect
|
|
||||||
choose:
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ effect in [''Rainbow'',null] }}'
|
value_template: '{{ who == ''Living Room'' }}'
|
||||||
alias: Rainbow
|
alias: Living Room
|
||||||
sequence:
|
sequence:
|
||||||
- service: light.turn_on
|
- metadata: {}
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
effect: prism
|
|
||||||
target:
|
|
||||||
entity_id: light.living_room_overhead
|
|
||||||
alias: Turn on living room overhead in prism effect
|
|
||||||
- service: lifx.effect_move
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
speed: 8
|
|
||||||
direction: right
|
|
||||||
theme: exciting
|
|
||||||
power_on: true
|
|
||||||
target:
|
|
||||||
entity_id: light.living_room_led_strip
|
|
||||||
alias: Turn on living room LED strip in exciting theme with move effect
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ effect == ''Blue'' }}'
|
|
||||||
alias: Blue
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
rgb_color:
|
|
||||||
- 0
|
|
||||||
- 0
|
|
||||||
- 255
|
|
||||||
brightness_pct: 100
|
|
||||||
target:
|
|
||||||
entity_id: light.living_room_lights
|
|
||||||
alias: Turn on living room lights, set to blue
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ effect == ''Purple'' }}'
|
|
||||||
alias: Purple
|
|
||||||
sequence:
|
|
||||||
- service: light.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
rgb_color:
|
|
||||||
- 134
|
|
||||||
- 0
|
|
||||||
- 211
|
|
||||||
brightness_pct: 100
|
|
||||||
target:
|
|
||||||
entity_id: light.living_room_lights
|
|
||||||
alias: Turn on living room lights, set to purple
|
|
||||||
- conditions:
|
|
||||||
- alias: Green
|
|
||||||
condition: template
|
|
||||||
value_template: '{{ effect == ''Green'' }}'
|
|
||||||
sequence:
|
|
||||||
- alias: Turn on living room lights, set to green
|
|
||||||
service: light.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
rgb_color:
|
|
||||||
- 0
|
|
||||||
- 255
|
|
||||||
- 0
|
|
||||||
brightness_pct: 100
|
|
||||||
target:
|
|
||||||
entity_id: light.living_room_lights
|
|
||||||
- conditions:
|
|
||||||
- condition: template
|
|
||||||
value_template: '{{ effect == ''Tokyo'' }}'
|
|
||||||
alias: Tokyo
|
|
||||||
sequence:
|
|
||||||
- service: input_boolean.turn_on
|
|
||||||
metadata: {}
|
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.living_room_dynamic_scenes
|
entity_id:
|
||||||
alias: Turn on dynamic scenes
|
- switch.adaptive_lighting_living_room
|
||||||
- service: input_select.select_option
|
- switch.adaptive_lighting_sleep_mode_living_room
|
||||||
metadata: {}
|
alias: Turn off adaptive lighting
|
||||||
data:
|
action: switch.turn_off
|
||||||
option: Tokyo
|
- metadata: {}
|
||||||
target:
|
data: {}
|
||||||
entity_id: input_select.living_room_scenes
|
|
||||||
alias: Activate Tokyo scene in Living Room
|
|
||||||
- alias: Turn on living room LED strip in intense theme with move effect
|
|
||||||
service: lifx.effect_move
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
speed: 8
|
|
||||||
direction: right
|
|
||||||
theme: intense
|
|
||||||
power_on: true
|
|
||||||
target:
|
target:
|
||||||
entity_id: light.living_room_led_strip
|
entity_id: light.living_room_led_strip
|
||||||
mode: restart
|
alias: Stop any current light strip effects
|
||||||
icon: fas:rainbow
|
action: lifx.effect_stop
|
||||||
|
- alias: Choose Effect
|
||||||
|
choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect in [''Rainbow'',null] }}'
|
||||||
|
alias: Rainbow
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
effect: prism
|
||||||
|
target:
|
||||||
|
entity_id: light.living_room_overhead
|
||||||
|
alias: Turn on living room overhead in prism effect
|
||||||
|
action: light.turn_on
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
speed: 8
|
||||||
|
direction: right
|
||||||
|
theme: exciting
|
||||||
|
power_on: true
|
||||||
|
target:
|
||||||
|
entity_id: light.living_room_led_strip
|
||||||
|
alias: Turn on living room LED strip in exciting theme with move effect
|
||||||
|
action: lifx.effect_move
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect == ''Blue'' }}'
|
||||||
|
alias: Blue
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
rgb_color:
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 255
|
||||||
|
brightness_pct: 100
|
||||||
|
target:
|
||||||
|
entity_id: light.living_room_lights
|
||||||
|
alias: Turn on living room lights, set to blue
|
||||||
|
action: light.turn_on
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect == ''Purple'' }}'
|
||||||
|
alias: Purple
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
rgb_color:
|
||||||
|
- 134
|
||||||
|
- 0
|
||||||
|
- 211
|
||||||
|
brightness_pct: 100
|
||||||
|
target:
|
||||||
|
entity_id: light.living_room_lights
|
||||||
|
alias: Turn on living room lights, set to purple
|
||||||
|
action: light.turn_on
|
||||||
|
- conditions:
|
||||||
|
- alias: Green
|
||||||
|
condition: template
|
||||||
|
value_template: '{{ effect == ''Green'' }}'
|
||||||
|
sequence:
|
||||||
|
- alias: Turn on living room lights, set to green
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
rgb_color:
|
||||||
|
- 0
|
||||||
|
- 255
|
||||||
|
- 0
|
||||||
|
brightness_pct: 100
|
||||||
|
target:
|
||||||
|
entity_id: light.living_room_lights
|
||||||
|
action: light.turn_on
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect == ''Tokyo'' }}'
|
||||||
|
alias: Tokyo
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.living_room_dynamic_scenes
|
||||||
|
alias: Turn on dynamic scenes
|
||||||
|
action: input_boolean.turn_on
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
option: Tokyo
|
||||||
|
target:
|
||||||
|
entity_id: input_select.living_room_scenes
|
||||||
|
alias: Activate Tokyo scene in Living Room
|
||||||
|
action: input_select.select_option
|
||||||
|
- alias: Turn on living room LED strip in intense theme with move effect
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
speed: 8
|
||||||
|
direction: right
|
||||||
|
theme: intense
|
||||||
|
power_on: true
|
||||||
|
target:
|
||||||
|
entity_id: light.living_room_led_strip
|
||||||
|
action: lifx.effect_move
|
||||||
|
- conditions:
|
||||||
|
- alias: Basement Studio
|
||||||
|
condition: template
|
||||||
|
value_template: '{{ who == ''Basement Studio'' }}'
|
||||||
|
sequence:
|
||||||
|
- alias: Turn off adaptive lighting
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
action: switch.turn_off
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- switch.adaptive_lighting_basement_studio
|
||||||
|
- switch.adaptive_lighting_sleep_mode_basement_studio
|
||||||
|
- alias: Stop any current light strip effects
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
action: lifx.effect_stop
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_led_strip_1
|
||||||
|
- alias: Choose Effect
|
||||||
|
choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect in [''Rainbow'',null] }}'
|
||||||
|
alias: Rainbow
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
effect: prism
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_tall_lamp
|
||||||
|
alias: Turn on basement tall lamp in prism effect
|
||||||
|
action: light.turn_on
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
effect: prism
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_short_lamp
|
||||||
|
alias: Turn on basement short lamp in prism effect
|
||||||
|
action: light.turn_on
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
effect: prism
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_stairwell
|
||||||
|
alias: Turn on basement stairwell in prism effect
|
||||||
|
action: light.turn_on
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
speed: 8
|
||||||
|
direction: right
|
||||||
|
theme: exciting
|
||||||
|
power_on: true
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_led_strip_1
|
||||||
|
alias: Turn on basement studio LED strip in exciting theme with move effect
|
||||||
|
action: lifx.effect_move
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect == ''Blue'' }}'
|
||||||
|
alias: Blue
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
rgb_color:
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- 255
|
||||||
|
brightness_pct: 100
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_studio_lights
|
||||||
|
alias: Turn on basement studio lights, set to blue
|
||||||
|
action: light.turn_on
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect == ''Purple'' }}'
|
||||||
|
alias: Purple
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
rgb_color:
|
||||||
|
- 134
|
||||||
|
- 0
|
||||||
|
- 211
|
||||||
|
brightness_pct: 100
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_studio_lights
|
||||||
|
alias: Turn on basement studio lights, set to purple
|
||||||
|
action: light.turn_on
|
||||||
|
- conditions:
|
||||||
|
- alias: Green
|
||||||
|
condition: template
|
||||||
|
value_template: '{{ effect == ''Green'' }}'
|
||||||
|
sequence:
|
||||||
|
- alias: Turn on basement studio lights, set to green
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
rgb_color:
|
||||||
|
- 0
|
||||||
|
- 255
|
||||||
|
- 0
|
||||||
|
brightness_pct: 100
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_studio_lights
|
||||||
|
action: light.turn_on
|
||||||
|
- conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: '{{ effect == ''Tokyo'' }}'
|
||||||
|
alias: Tokyo
|
||||||
|
sequence:
|
||||||
|
- metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.basement_studio_dynamic_scenes
|
||||||
|
alias: Turn on dynamic scenes
|
||||||
|
action: input_boolean.turn_on
|
||||||
|
- metadata: {}
|
||||||
|
data:
|
||||||
|
option: Tokyo
|
||||||
|
target:
|
||||||
|
entity_id: input_select.basement_studio_scenes
|
||||||
|
alias: Activate Tokyo scene in basement studio
|
||||||
|
action: input_select.select_option
|
||||||
|
- alias: Turn on basement studio LED strip in intense theme with move effect
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
speed: 8
|
||||||
|
direction: right
|
||||||
|
theme: intense
|
||||||
|
power_on: true
|
||||||
|
target:
|
||||||
|
entity_id: light.basement_led_strip_1
|
||||||
|
action: lifx.effect_move
|
||||||
|
mode: queued
|
||||||
|
icon: fa7-solid:rainbow
|
||||||
fields:
|
fields:
|
||||||
effect:
|
effect:
|
||||||
selector:
|
selector:
|
||||||
@@ -2819,6 +2970,18 @@ emma_rainbow_lights:
|
|||||||
description: What type of effect would you like to run?
|
description: What type of effect would you like to run?
|
||||||
default: Rainbow
|
default: Rainbow
|
||||||
required: true
|
required: true
|
||||||
|
who:
|
||||||
|
selector:
|
||||||
|
select:
|
||||||
|
options:
|
||||||
|
- Living Room
|
||||||
|
- Basement Studio
|
||||||
|
multiple: false
|
||||||
|
default: Living Room
|
||||||
|
name: Who
|
||||||
|
description: In which room should the effect run?
|
||||||
|
required: true
|
||||||
|
max: 10
|
||||||
rabbit_feeding:
|
rabbit_feeding:
|
||||||
alias: Rabbit Feeding
|
alias: Rabbit Feeding
|
||||||
sequence:
|
sequence:
|
||||||
|
|||||||
@@ -71,12 +71,12 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
"Collin's room will be left alone, as he is spending the night elsewhere tonight. "
|
"Collin's room will be left alone, as he is spending the night elsewhere tonight. "
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if states('input_select.scheduled_climate_mode_emma_bedroom_aircon') != 'N/A' %}
|
{% if states('input_select.scheduled_climate_mode_emma_bedroom') != 'N/A' %}
|
||||||
{% if is_state('input_select.scheduled_climate_mode_emma_bedroom_aircon','AC') and is_state('input_boolean.hot_day','on') %}
|
{% if is_state('input_select.scheduled_climate_mode_emma_bedroom','AC') and is_state('input_boolean.hot_day','on') %}
|
||||||
"Today was a hot day, so Emma's bedroom air conditioner will start cooling a bit earlier tonight at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
"Today was a hot day, so Emma's bedroom air conditioner will start cooling a bit earlier tonight at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
||||||
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom_aircon','AC') %}
|
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom','AC') %}
|
||||||
"Emma's bedroom air conditioner will start cooling at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
"Emma's bedroom air conditioner will start cooling at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
||||||
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom_aircon','Fan') %}
|
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom','Fan') %}
|
||||||
"Emma's bedroom air conditioner will activate fan only mode at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
"Emma's bedroom air conditioner will activate fan only mode at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
||||||
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom','White Noise') and is_state('input_boolean.white_noise_emma_bedroom','off') %}
|
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom','White Noise') and is_state('input_boolean.white_noise_emma_bedroom','off') %}
|
||||||
"Emma's white noise generator will activate at {{ input_datetime_read('input_datetime.emma_bedtime') }}. "
|
"Emma's white noise generator will activate at {{ input_datetime_read('input_datetime.emma_bedtime') }}. "
|
||||||
|
|||||||
Reference in New Issue
Block a user