Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
0e199ea995
|
|||
|
c4bdcb9474
|
|||
|
00955a91bb
|
|||
|
1d1979002b
|
|||
|
bbf9668484
|
|||
|
f0497188cb
|
+1
-1
@@ -1 +1 @@
|
|||||||
2026.3.1
|
2025.12.3
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
/.google.token
|
/.google.token
|
||||||
/.ssh
|
/.ssh
|
||||||
/.codegpt
|
/.codegpt
|
||||||
/.cache
|
|
||||||
|
|
||||||
# ignore some directories.
|
# ignore some directories.
|
||||||
/www/*
|
/www/*
|
||||||
|
|||||||
+47
-119
@@ -5354,96 +5354,72 @@
|
|||||||
- id: '1722378602352'
|
- id: '1722378602352'
|
||||||
alias: Tony Meds Cleanup
|
alias: Tony Meds Cleanup
|
||||||
description: Handles the setting/clearing of medication configs for Tony
|
description: Handles the setting/clearing of medication configs for Tony
|
||||||
triggers:
|
trigger:
|
||||||
- entity_id:
|
- platform: state
|
||||||
|
entity_id:
|
||||||
- input_boolean.tony_morning_meds_reminder
|
- input_boolean.tony_morning_meds_reminder
|
||||||
from: 'on'
|
from: 'on'
|
||||||
to: 'off'
|
to: 'off'
|
||||||
id: morning-reminders-off
|
id: morning-reminders-off
|
||||||
alias: Morning reminders off
|
alias: Morning reminders off
|
||||||
trigger: state
|
|
||||||
- alias: Afternoon reminders off
|
- alias: Afternoon reminders off
|
||||||
|
platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- input_boolean.tony_afternoon_meds_reminder
|
- input_boolean.tony_afternoon_meds_reminder
|
||||||
from: 'on'
|
from: 'on'
|
||||||
to: 'off'
|
to: 'off'
|
||||||
id: afternoon-reminders-off
|
id: afternoon-reminders-off
|
||||||
trigger: state
|
|
||||||
- alias: Night reminders off
|
- alias: Night reminders off
|
||||||
|
platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- input_boolean.tony_night_meds_reminder
|
- input_boolean.tony_night_meds_reminder
|
||||||
from: 'on'
|
from: 'on'
|
||||||
to: 'off'
|
to: 'off'
|
||||||
id: night-reminders-off
|
id: night-reminders-off
|
||||||
trigger: state
|
- platform: event
|
||||||
- event_type: ios.notification_action_fired
|
event_type: ios.notification_action_fired
|
||||||
event_data:
|
event_data:
|
||||||
actionName: TONY_MORNING_MEDS_TAKEN
|
actionName: TONY_MORNING_MEDS_TAKEN
|
||||||
id: morning-taken
|
id: morning-taken
|
||||||
alias: Morning taken iOS
|
alias: Morning taken
|
||||||
trigger: event
|
- alias: Afternoon taken
|
||||||
- alias: Morning taken PC
|
platform: event
|
||||||
event_type: hass_agent_notifications
|
|
||||||
event_data:
|
|
||||||
action: TONY_MORNING_MEDS_TAKEN
|
|
||||||
id: morning-taken
|
|
||||||
trigger: event
|
|
||||||
- alias: Afternoon taken iOS
|
|
||||||
event_type: ios.notification_action_fired
|
event_type: ios.notification_action_fired
|
||||||
event_data:
|
event_data:
|
||||||
actionName: TONY_AFTERNOON_MEDS_TAKEN
|
actionName: TONY_AFTERNOON_MEDS_TAKEN
|
||||||
id: afternoon-taken
|
id: afternoon-taken
|
||||||
trigger: event
|
- alias: Night taken
|
||||||
- alias: Afternoon taken PC
|
platform: event
|
||||||
event_type: hass_agent_notifications
|
|
||||||
event_data:
|
|
||||||
action: TONY_AFTERNOON_MEDS_TAKEN
|
|
||||||
id: afternoon-taken
|
|
||||||
trigger: event
|
|
||||||
- alias: Night taken iOS
|
|
||||||
event_type: ios.notification_action_fired
|
event_type: ios.notification_action_fired
|
||||||
event_data:
|
event_data:
|
||||||
actionName: TONY_NIGHT_MEDS_TAKEN
|
actionName: TONY_NIGHT_MEDS_TAKEN
|
||||||
id: night-taken
|
id: night-taken
|
||||||
trigger: event
|
- alias: Morning skipped
|
||||||
- alias: Morning skipped iOS
|
platform: event
|
||||||
event_type: ios.notification_action_fired
|
event_type: ios.notification_action_fired
|
||||||
event_data:
|
event_data:
|
||||||
actionName: TONY_MORNING_MEDS_SKIPPED
|
actionName: TONY_MORNING_MEDS_SKIPPED
|
||||||
id: morning-skipped
|
id: morning-skipped
|
||||||
trigger: event
|
- alias: Afternoon skipped
|
||||||
- alias: Morning skipped PC
|
platform: event
|
||||||
event_type: hass_agent_notifications
|
|
||||||
event_data:
|
|
||||||
action: TONY_MORNING_MEDS_SKIPPED
|
|
||||||
id: morning-skipped
|
|
||||||
trigger: event
|
|
||||||
- alias: Afternoon skipped iOS
|
|
||||||
event_type: ios.notification_action_fired
|
event_type: ios.notification_action_fired
|
||||||
event_data:
|
event_data:
|
||||||
actionName: TONY_AFTERNOON_MEDS_SKIPPED
|
actionName: TONY_AFTERNOON_MEDS_SKIPPED
|
||||||
id: afternoon-skipped
|
id: afternoon-skipped
|
||||||
trigger: event
|
- alias: Night skipped
|
||||||
- alias: Afternoon skipped PC
|
platform: event
|
||||||
event_type: hass_agent_notifications
|
|
||||||
event_data:
|
|
||||||
action: TONY_AFTERNOON_MEDS_SKIPPED
|
|
||||||
id: afternoon-skipped
|
|
||||||
trigger: event
|
|
||||||
- alias: Night skipped iOS
|
|
||||||
event_type: ios.notification_action_fired
|
event_type: ios.notification_action_fired
|
||||||
event_data:
|
event_data:
|
||||||
actionName: TONY_NIGHT_MEDS_SKIPPED
|
actionName: TONY_NIGHT_MEDS_SKIPPED
|
||||||
id: night-skipped
|
id: night-skipped
|
||||||
trigger: event
|
- platform: state
|
||||||
- entity_id:
|
entity_id:
|
||||||
- person.tony_stork
|
- person.tony_stork
|
||||||
from: home
|
from: home
|
||||||
id: left
|
id: left
|
||||||
alias: Left
|
alias: Left
|
||||||
trigger: state
|
condition: []
|
||||||
conditions: []
|
action:
|
||||||
actions:
|
|
||||||
- alias: Routing
|
- alias: Routing
|
||||||
choose:
|
choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
@@ -5452,19 +5428,19 @@
|
|||||||
- morning-reminders-off
|
- morning-reminders-off
|
||||||
alias: Morning Reminders Off
|
alias: Morning Reminders Off
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: counter.reset
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: counter.tony_morning_meds_reminder_count
|
entity_id: counter.tony_morning_meds_reminder_count
|
||||||
alias: Reset morning reminder count
|
alias: Reset morning reminder count
|
||||||
action: counter.reset
|
- service: script.text_notify
|
||||||
- data:
|
data:
|
||||||
type: alert
|
type: alert
|
||||||
who: tony
|
who: tony
|
||||||
message: clear_notification
|
message: clear_notification
|
||||||
tag: tony-morning-meds
|
tag: tony-morning-meds
|
||||||
alias: Clear morning notification
|
alias: Clear morning notification
|
||||||
action: script.text_notify
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
@@ -5472,18 +5448,18 @@
|
|||||||
alias: Afternoon reminders off
|
alias: Afternoon reminders off
|
||||||
sequence:
|
sequence:
|
||||||
- alias: Reset afternoon reminder count
|
- alias: Reset afternoon reminder count
|
||||||
|
service: counter.reset
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: counter.tony_afternoon_meds_reminder_count
|
entity_id: counter.tony_afternoon_meds_reminder_count
|
||||||
action: counter.reset
|
- service: script.text_notify
|
||||||
- data:
|
data:
|
||||||
type: alert
|
type: alert
|
||||||
who: tony
|
who: tony
|
||||||
message: clear_notification
|
message: clear_notification
|
||||||
tag: tony-afternoon-meds
|
tag: tony-afternoon-meds
|
||||||
alias: Clear afternoon notification
|
alias: Clear afternoon notification
|
||||||
action: script.text_notify
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
@@ -5491,90 +5467,90 @@
|
|||||||
alias: Night reminders off
|
alias: Night reminders off
|
||||||
sequence:
|
sequence:
|
||||||
- alias: Reset night reminder count
|
- alias: Reset night reminder count
|
||||||
|
service: counter.reset
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: counter.tony_night_meds_reminder_count
|
entity_id: counter.tony_night_meds_reminder_count
|
||||||
action: counter.reset
|
- service: script.text_notify
|
||||||
- data:
|
data:
|
||||||
type: alert
|
type: alert
|
||||||
who: tony
|
who: tony
|
||||||
message: clear_notification
|
message: clear_notification
|
||||||
tag: tony-night-meds
|
tag: tony-night-meds
|
||||||
alias: Clear night notification
|
alias: Clear night notification
|
||||||
action: script.text_notify
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- alias: Morning taken
|
- condition: trigger
|
||||||
condition: trigger
|
|
||||||
id:
|
id:
|
||||||
- morning-taken
|
- morning-taken
|
||||||
|
alias: Morning taken
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: input_boolean.turn_on
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.tony_morning_meds_taken
|
entity_id: input_boolean.tony_morning_meds_taken
|
||||||
alias: Turn on morning meds taken
|
alias: Turn on morning meds taken
|
||||||
action: input_boolean.turn_on
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
- afternoon-taken
|
- afternoon-taken
|
||||||
alias: Afternoon taken
|
alias: Afternoon taken
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: input_boolean.turn_on
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.tony_afternoon_meds_taken
|
entity_id: input_boolean.tony_afternoon_meds_taken
|
||||||
alias: Turn on afternoon meds taken
|
alias: Turn on afternoon meds taken
|
||||||
action: input_boolean.turn_on
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
- night-taken
|
- night-taken
|
||||||
alias: Night taken
|
alias: Night taken
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: input_boolean.turn_on
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.tony_night_meds_taken
|
entity_id: input_boolean.tony_night_meds_taken
|
||||||
alias: Turn on night meds taken
|
alias: Turn on night meds taken
|
||||||
action: input_boolean.turn_on
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
- morning-skipped
|
- morning-skipped
|
||||||
alias: Morning skipped
|
alias: Morning skipped
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: input_boolean.turn_off
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.tony_morning_meds_reminder
|
entity_id: input_boolean.tony_morning_meds_reminder
|
||||||
alias: Deactivate morning reminders
|
alias: Deactivate morning reminders
|
||||||
action: input_boolean.turn_off
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
- afternoon-skipped
|
- afternoon-skipped
|
||||||
alias: Afternoon skipped
|
alias: Afternoon skipped
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: input_boolean.turn_off
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.tony_afternoon_meds_reminder
|
entity_id: input_boolean.tony_afternoon_meds_reminder
|
||||||
alias: Deactivate afternoon reminders
|
alias: Deactivate afternoon reminders
|
||||||
action: input_boolean.turn_off
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
- night-skipped
|
- night-skipped
|
||||||
alias: Night skipped
|
alias: Night skipped
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: input_boolean.turn_off
|
||||||
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: input_boolean.tony_night_meds_reminder
|
entity_id: input_boolean.tony_night_meds_reminder
|
||||||
alias: Deactivate night reminders
|
alias: Deactivate night reminders
|
||||||
action: input_boolean.turn_off
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id:
|
id:
|
||||||
@@ -5600,6 +5576,7 @@
|
|||||||
alias: Night meds reminder active
|
alias: Night meds reminder active
|
||||||
then:
|
then:
|
||||||
- alias: Send critical TTS notification
|
- alias: Send critical TTS notification
|
||||||
|
service: script.text_notify
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data:
|
data:
|
||||||
type: critical
|
type: critical
|
||||||
@@ -5607,7 +5584,6 @@
|
|||||||
title: HEY DUMBASS
|
title: HEY DUMBASS
|
||||||
message: YOU FORGOT TO TAKE YOUR MEDS!!!!!
|
message: YOU FORGOT TO TAKE YOUR MEDS!!!!!
|
||||||
tag: tony-left-meds
|
tag: tony-left-meds
|
||||||
action: script.text_notify
|
|
||||||
mode: queued
|
mode: queued
|
||||||
max: 10
|
max: 10
|
||||||
- id: '1722386174249'
|
- id: '1722386174249'
|
||||||
@@ -6219,7 +6195,6 @@
|
|||||||
- 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
|
||||||
@@ -6358,50 +6333,3 @@
|
|||||||
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
|
|
||||||
|
|||||||
+9
-27
@@ -65,11 +65,11 @@ calendar:
|
|||||||
rest_command:
|
rest_command:
|
||||||
todoist:
|
todoist:
|
||||||
method: post
|
method: post
|
||||||
url: 'https://api.todoist.com/api/v1/{{ url }}'
|
url: 'https://api.todoist.com/sync/v9/{{ url }}'
|
||||||
payload: '{{ payload }}'
|
payload: '{{ payload }}'
|
||||||
headers:
|
headers:
|
||||||
Authorization: !secret todoist_api_token
|
Authorization: !secret todoist_api_token
|
||||||
content_type: 'application/x-www-form-urlencoded'
|
content_type: 'application/x-www-form-urlencoded'
|
||||||
|
|
||||||
recorder:
|
recorder:
|
||||||
db_url: !secret mariadb_url
|
db_url: !secret mariadb_url
|
||||||
@@ -108,7 +108,6 @@ 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
|
||||||
@@ -120,16 +119,6 @@ recorder:
|
|||||||
- sensor.*_rssi
|
- sensor.*_rssi
|
||||||
- sensor.weatherflow_hub*
|
- sensor.weatherflow_hub*
|
||||||
- sensor.internet_round_trip*
|
- sensor.internet_round_trip*
|
||||||
- sensor.*_monitor_type
|
|
||||||
- sensor.*_certificate_expiry
|
|
||||||
- sensor.*_monitored_url
|
|
||||||
- sensor.*_response_time
|
|
||||||
- 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
|
||||||
@@ -170,7 +159,14 @@ 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
|
||||||
@@ -284,13 +280,6 @@ influxdb:
|
|||||||
- binary_sensor.asus_laptop*
|
- binary_sensor.asus_laptop*
|
||||||
- sensor.*ashland*
|
- sensor.*ashland*
|
||||||
- sensor.*kasx*
|
- sensor.*kasx*
|
||||||
- sensor.*_monitor_type
|
|
||||||
- sensor.*_certificate_expiry
|
|
||||||
- sensor.*_monitored_url
|
|
||||||
- sensor.*_response_time
|
|
||||||
- sensor.*_status
|
|
||||||
- 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
|
||||||
@@ -463,13 +452,6 @@ prometheus:
|
|||||||
- binary_sensor.asus_laptop*
|
- binary_sensor.asus_laptop*
|
||||||
- sensor.*ashland*
|
- sensor.*ashland*
|
||||||
- sensor.*kasx*
|
- sensor.*kasx*
|
||||||
- sensor.*_monitor_type
|
|
||||||
- sensor.*_certificate_expiry
|
|
||||||
- sensor.*_monitored_url
|
|
||||||
- sensor.*_response_time
|
|
||||||
- sensor.*_status
|
|
||||||
- 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
|
||||||
|
|||||||
@@ -109,9 +109,4 @@
|
|||||||
|
|
||||||
{% macro next_twitch_stream() %}
|
{% macro next_twitch_stream() %}
|
||||||
{{ custom_time('calendar.tony_s_twitch_schedule','week,day,hour') }}
|
{{ custom_time('calendar.tony_s_twitch_schedule','week,day,hour') }}
|
||||||
{% endmacro %}
|
|
||||||
|
|
||||||
{% macro time_diff(sensor) %}
|
|
||||||
{% set diff = (as_timestamp(now()) - as_timestamp(states(sensor))) | int %}
|
|
||||||
{{ diff }}
|
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
@@ -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 {{ state_attr('weather.iron_nerd_weather_station','apparent_temperature') | 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 {{ states('sensor.home_temperature_feels_like') | round }} degrees.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if type in ['forecast','full'] %}
|
{% if type in ['forecast','full'] %}
|
||||||
{% if 14400 <= ct <= 61200 %}
|
{% if 14400 <= ct <= 61200 %}
|
||||||
|
|||||||
+22
-162
@@ -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) >= (states('input_number.living_room_hot_threshold') | float) }}"
|
state: "{{ states('sensor.living_room_front_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.living_room_cold_threshold') | float) }}"
|
state: "{{ states('sensor.living_room_front_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.downstairs_bathroom_hot_threshold') | float) }}"
|
state: "{{ states('sensor.downstairs_bathroom_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.downstairs_bathroom_cold_threshold') | float) }}"
|
state: "{{ states('sensor.downstairs_bathroom_temperature') | float <= 55 }}"
|
||||||
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) >= (states('input_number.stairwell_bottom_hot_threshold') | float) }}"
|
state: "{{ states('sensor.stairwell_bottom_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.stairwell_bottom_cold_threshold') | float) }}"
|
state: "{{ states('sensor.stairwell_bottom_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.upstairs_bathroom_hot_threshold') | float) }}"
|
state: "{{ states('sensor.upstairs_bathroom_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.upstairs_bathroom_cold_threshold') | float) }}"
|
state: "{{ states('sensor.upstairs_bathroom_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.emma_bedroom_hot_threshold') | float) }}"
|
state: "{{ states('sensor.emma_bedroom_temperature') | float >= 75 }}"
|
||||||
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) <= (states('input_number.emma_bedroom_cold_threshold') | float) }}"
|
state: "{{ states('sensor.emma_bedroom_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.basement_studio_hot_threshold') | float) }}"
|
state: "{{ states('sensor.basement_studio_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.basement_studio_cold_threshold') | float) }}"
|
state: "{{ states('sensor.basement_studio_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.living_room_hot_threshold') | float) }}"
|
state: "{{ states('sensor.living_room_back_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.living_room_cold_threshold') | float) }}"
|
state: "{{ states('sensor.living_room_back_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.mud_room_hot_threshold') | float) }}"
|
state: "{{ states('sensor.mud_room_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.mud_room_cold_threshold') | float) }}"
|
state: "{{ states('sensor.mud_room_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.stairwell_top_hot_threshold') | float) }}"
|
state: "{{ states('sensor.stairwell_top_temperature') | float >= 80 }}"
|
||||||
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) <= (states('input_number.stairwell_top_cold_threshold') | float) }}"
|
state: "{{ states('sensor.stairwell_top_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.kallen_bedroom_hot_threshold') | float) }}"
|
state: "{{ states('sensor.kallen_bedroom_temperature') | float >= 75 }}"
|
||||||
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) <= (states('input_number.kallen_bedroom_cold_threshold') | float) }}"
|
state: "{{ states('sensor.kallen_bedroom_temperature') | float <= 60 }}"
|
||||||
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) >= (states('input_number.master_bedroom_hot_threshold') | float) }}"
|
state: "{{ states('sensor.master_bedroom_temperature') | float >= 75 }}"
|
||||||
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) <= (states('input_number.master_bedroom_cold_threshold') | float) }}"
|
state: "{{ states('sensor.master_bedroom_temperature') | float <= 60 }}"
|
||||||
device_class: cold
|
device_class: cold
|
||||||
- sensor:
|
- sensor:
|
||||||
- name: "Master Bedroom Target Temp"
|
- name: "Master Bedroom Target Temp"
|
||||||
@@ -457,146 +457,6 @@ 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.pirateweather_apparent_temperature,
|
|
||||||
states.sensor.home_temperature_feels_like,
|
|
||||||
states.sensor.home_tempest_feels_like,
|
states.sensor.home_tempest_feels_like,
|
||||||
|
states.sensor.home_temperature_feels_like,
|
||||||
|
states.sensor.pirateweather_apparent_temperature,
|
||||||
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.pirateweather_apparent_temperature,
|
|
||||||
states.sensor.home_temperature_feels_like,
|
|
||||||
states.sensor.home_tempest_feels_like,
|
states.sensor.home_tempest_feels_like,
|
||||||
|
states.sensor.home_temperature_feels_like,
|
||||||
|
states.sensor.pirateweather_apparent_temperature,
|
||||||
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_bedroom_aircon_compressor
|
entity_id: binary_sensor.emma_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_bedroom_aircon_fan
|
entity_id: binary_sensor.emma_aircon_fan
|
||||||
state: 'on'
|
state: 'on'
|
||||||
type: time
|
type: time
|
||||||
end: '{{ now() }}'
|
end: '{{ now() }}'
|
||||||
|
|||||||
@@ -0,0 +1,306 @@
|
|||||||
|
mqtt:
|
||||||
|
sensor:
|
||||||
|
- name: "Tina Desktop - GPU Temperature"
|
||||||
|
unique_id: a6a45c56-3a73-46e4-b91c-4f97ba6f53b2
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/temperatures/gpu_core"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - CPU Temperature"
|
||||||
|
unique_id: ef715bde-0407-4873-b1e6-a9ef6505d054
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/cpu/temperatures/core_(tctl/tdie)"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Storage C Temperature"
|
||||||
|
unique_id: b8b4497b-659a-48d1-a13c-6eed0af69b51
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/storages/ct1000p1ssd8/temperatue"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Storage D Temperature"
|
||||||
|
unique_id: 6e9900a3-15fa-4d1b-93c1-567d10e1fe68
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/storages/san-disk_ssd_plus_240gb/temperatue"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Memory Usage"
|
||||||
|
unique_id: 8523c69f-9e11-44e6-91b1-9c87401f6fd4
|
||||||
|
state_topic: "iotlink/workgroup/xia_desktop/monitor/stats/memory/load/memory"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia_desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Virtual Memory Usage"
|
||||||
|
unique_id: 7e1c0e3f-1306-4290-a0c1-c4ddd362b601
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/memory/load/virtual_memory"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU Core Load"
|
||||||
|
unique_id: 307a1daf-0a36-4c92-a3a2-2d95762cad8c
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/load/gpu_core"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:speedometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU VRAM Usage"
|
||||||
|
unique_id: 2b05dac9-99e5-47ee-86b0-fa9d4536fbe3
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/load/gpu_memory"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU Video Engine Load"
|
||||||
|
unique_id: 029fa90b-26ba-45ea-93fd-d7d899f71e78
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/load/gpu_video_engine"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:speedometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU Memory Controller Load"
|
||||||
|
unique_id: 26069885-0f51-453b-807d-c9cb0130dc05
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/load/gpu_memory_controller"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:speedometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU Memory Total"
|
||||||
|
unique_id: 65393be1-797c-48d3-9287-e2f168acc2b5
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/data/gpu_memory_total"
|
||||||
|
unit_of_measurement: 'MB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU Memory Free"
|
||||||
|
unique_id: 88276fd1-02d2-4d4a-986e-f4f981761376
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/data/gpu_memory_free"
|
||||||
|
unit_of_measurement: 'MB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - GPU Memory Used"
|
||||||
|
unique_id: 68436f32-782e-4e8a-85eb-2aa26bb2f877
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/gpu_nvidia/data/gpu_memory_used"
|
||||||
|
unit_of_measurement: 'MB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Memory Used (GB)"
|
||||||
|
unique_id: f90defec-616f-4a09-9308-daf85e02b338
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/memory/data/memory_used"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Memory Available (GB)"
|
||||||
|
unique_id: 25d240a0-efe4-4269-bf79-2775354cdbb9
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/memory/data/memory_available"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Virtual Memory Used (GB)"
|
||||||
|
unique_id: be7d4104-b3f1-4244-89fe-29b720753481
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/memory/data/virtual_memory_used"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tina Desktop - Virtual Memory Available (GB)"
|
||||||
|
unique_id: 2f91de98-338c-4d21-b164-1d1970a4d220
|
||||||
|
state_topic: "iotlink/workgroup/xia-desktop/monitor/stats/memory/data/virtual_memory_available"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/xia-desktop/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
script:
|
||||||
|
tina_desktop_wake:
|
||||||
|
# To enable see https://www.home-assistant.io/components/wake_on_lan/
|
||||||
|
alias: "Tina Desktop - Wake"
|
||||||
|
sequence:
|
||||||
|
- service: wake_on_lan.send_magic_packet
|
||||||
|
data:
|
||||||
|
mac: "B4:2E:99:A8:CF:88"
|
||||||
|
|
||||||
|
tina_desktop_shutdown:
|
||||||
|
alias: "Tina Desktop - Shutdown"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/shutdown"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_suspend:
|
||||||
|
alias: "Tina Desktop - Suspend"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/suspend"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_hibernate:
|
||||||
|
alias: "Tina Desktop - Hibernate"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/hibernate"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_reboot:
|
||||||
|
alias: "Tina Desktop - Reboot"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/reboot"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_lock:
|
||||||
|
alias: "Tina Desktop - Lock"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/lock"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_logoff:
|
||||||
|
alias: "Tina Desktop - Logoff"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/logoff"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_vol_mute:
|
||||||
|
alias: "Tina Desktop - Toggle Mute"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/volume/mute"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_vol_max:
|
||||||
|
alias: "Tina Desktop - Vol Max"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/volume/set"
|
||||||
|
payload: "100"
|
||||||
|
|
||||||
|
tina_desktop_displays_on:
|
||||||
|
alias: "Tina Desktop - Displays ON"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/displays/on"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_displays_off:
|
||||||
|
alias: "Tina Desktop - Displays OFF"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/displays/off"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tina_desktop_refresh:
|
||||||
|
alias: "Tina Desktop - Refresh"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/refresh"
|
||||||
|
payload: ""
|
||||||
|
- service: button.press
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- button.xia_desktop_hassagent_user_refresh
|
||||||
|
- button.xia_desktop_hassagent_satellite_refresh
|
||||||
|
|
||||||
|
tina_desktop_notify:
|
||||||
|
alias: "Tina Desktop - Notify"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/notify"
|
||||||
|
payload: '{ "title": "My Notification Title", "message": "This is an example of notification using IOT Link", "launchParams": "toast://open/https://iotlink.gitlab.io" }'
|
||||||
|
|
||||||
|
tina_desktop_run_chrome:
|
||||||
|
alias: "Tina Desktop - Run Chrome"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/xia-desktop/commands/run"
|
||||||
|
payload: '{ "command": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", "args": "https://iotlink.gitlab.io", "path": "C:\\Program Files (x86)\\Google\\Chrome\\Application", "user": "", "visible": true, "fallback": true }'
|
||||||
@@ -0,0 +1,328 @@
|
|||||||
|
mqtt:
|
||||||
|
sensor:
|
||||||
|
- name: "Tony Desktop - GPU Temperature"
|
||||||
|
unique_id: 8c91e08e-2b30-4700-b012-54722b931c8c
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/temperatures/gpu_core"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - CPU Temperature"
|
||||||
|
unique_id: 8d27e4d8-1986-4ed5-af48-6f88a8740c3c
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/cpu/temperatures/core_(tctl/tdie)"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Storage C Temperature"
|
||||||
|
unique_id: 26822d74-0fa9-46b7-865c-74a29baf8735
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/storages/wd_black_sn770_2tb/temperatue"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Storage S Temperature"
|
||||||
|
unique_id: cbaca0c0-6dcd-4e4c-b5ae-90b0a8d7a25b
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/storages/san-disk_sd8sb8u512g1002/temperatue"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Storage V Temperature"
|
||||||
|
unique_id: 6b425eb2-25f3-486c-818a-eb92c3e8fadf
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/storages/wdc__wdbnce0010pnc/temperatue"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Storage E Temperature"
|
||||||
|
unique_id: 723c308f-535f-4624-8e46-d7e4f344079c
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/storages/ct1000p1ssd8/temperatue"
|
||||||
|
unit_of_measurement: 'C'
|
||||||
|
icon: mdi:thermometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Memory Usage"
|
||||||
|
unique_id: f380ab55-7cde-4b8c-922f-ff113cdbff77
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/memory/load/memory"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Virtual Memory Usage"
|
||||||
|
unique_id: b2ddd600-7963-4f47-9d1d-7f74a7cdc6fa
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/memory/load/virtual_memory"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU Core Load"
|
||||||
|
unique_id: 6ead9e42-2ef0-440f-8e36-cc5f5f5c3776
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/load/gpu_core"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:speedometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU VRAM Usage"
|
||||||
|
unique_id: 7fa952df-8a8d-44de-9393-d01ae648625e
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/load/gpu_memory"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU Video Engine Load"
|
||||||
|
unique_id: 01de9b74-f28d-4443-893c-6d0179fa831f
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/load/gpu_video_engine"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:speedometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU Memory Controller Load"
|
||||||
|
unique_id: 96b6511b-95bf-4baf-a305-9b6f14dadde7
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/load/gpu_memory_controller"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
icon: mdi:speedometer
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU Memory Total"
|
||||||
|
unique_id: 8ec11ad0-e184-4f0d-886f-62e9eaf57bd4
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/data/gpu_memory_total"
|
||||||
|
unit_of_measurement: 'MB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU Memory Free"
|
||||||
|
unique_id: 3854f3e3-ec12-4226-b768-4fe25b41dda9
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/data/gpu_memory_free"
|
||||||
|
unit_of_measurement: 'MB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - GPU Memory Used"
|
||||||
|
unique_id: 4c75e640-76ee-41f3-91ee-1406f275b7ac
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/gpu_nvidia/data/gpu_memory_used"
|
||||||
|
unit_of_measurement: 'MB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Memory Used (GB)"
|
||||||
|
unique_id: 90123c89-2edc-4adc-840b-3704e7bd8b56
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/memory/data/memory_used"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Memory Available (GB)"
|
||||||
|
unique_id: ef727165-0da8-47f5-a51e-dcdd2cabda60
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/memory/data/memory_available"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Virtual Memory Used (GB)"
|
||||||
|
unique_id: 0e7dfe10-fe77-430b-8bc1-022e663b83d3
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/memory/data/virtual_memory_used"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
- name: "Tony Desktop - Virtual Memory Available (GB)"
|
||||||
|
unique_id: 3b812f43-7c03-4898-b407-b9edd558aec1
|
||||||
|
state_topic: "iotlink/workgroup/tony-asus/monitor/stats/memory/data/virtual_memory_available"
|
||||||
|
unit_of_measurement: 'GB'
|
||||||
|
icon: mdi:memory
|
||||||
|
value_template: "{{ value }}"
|
||||||
|
availability_topic: "iotlink/workgroup/tony-asus/lwt"
|
||||||
|
payload_available: "ON"
|
||||||
|
payload_not_available: "OFF"
|
||||||
|
qos: 1
|
||||||
|
|
||||||
|
script:
|
||||||
|
tony_desktop_wake:
|
||||||
|
# To enable see https://www.home-assistant.io/components/wake_on_lan/
|
||||||
|
alias: "Tony Desktop - Wake"
|
||||||
|
sequence:
|
||||||
|
- service: wake_on_lan.send_magic_packet
|
||||||
|
data:
|
||||||
|
mac: "18:C0:4D:82:00:95"
|
||||||
|
|
||||||
|
tony_desktop_shutdown:
|
||||||
|
alias: "Tony Desktop - Shutdown"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/shutdown"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_suspend:
|
||||||
|
alias: "Tony Desktop - Suspend"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/suspend"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_hibernate:
|
||||||
|
alias: "Tony Desktop - Hibernate"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/hibernate"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_reboot:
|
||||||
|
alias: "Tony Desktop - Reboot"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/reboot"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_lock:
|
||||||
|
alias: "Tony Desktop - Lock"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/lock"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_logoff:
|
||||||
|
alias: "Tony Desktop - Logoff"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/logoff"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_vol_mute:
|
||||||
|
alias: "Tony Desktop - Toggle Mute"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/volume/mute"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_vol_max:
|
||||||
|
alias: "Tony Desktop - Vol Max"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/volume/set"
|
||||||
|
payload: "100"
|
||||||
|
|
||||||
|
tony_desktop_displays_on:
|
||||||
|
alias: "Tony Desktop - Displays ON"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/displays/on"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_displays_off:
|
||||||
|
alias: "Tony Desktop - Displays OFF"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/displays/off"
|
||||||
|
payload: ""
|
||||||
|
|
||||||
|
tony_desktop_refresh:
|
||||||
|
alias: "Tony Desktop - Refresh"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/refresh"
|
||||||
|
payload: ""
|
||||||
|
- service: button.press
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- button.tony_asus_hassagent_user_refresh
|
||||||
|
- button.tony_asus_hassagent_satellite_refresh
|
||||||
|
|
||||||
|
tony_desktop_notify:
|
||||||
|
alias: "Tony Desktop - Notify"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/notify"
|
||||||
|
payload: '{ "title": "My Notification Title", "message": "This is an example of notification using IOT Link", "launchParams": "toast://open/https://iotlink.gitlab.io" }'
|
||||||
|
|
||||||
|
tony_desktop_run_chrome:
|
||||||
|
alias: "Tony Desktop - Run Chrome"
|
||||||
|
sequence:
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
topic: "iotlink/workgroup/tony-asus/commands/run"
|
||||||
|
payload: '{ "command": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", "args": "https://iotlink.gitlab.io", "path": "C:\\Program Files\\Google\\Chrome\\Application", "user": "", "visible": true, "fallback": true }'
|
||||||
+5
-21
@@ -90,33 +90,17 @@ input_datetime:
|
|||||||
sensor:
|
sensor:
|
||||||
- platform: rest
|
- platform: rest
|
||||||
name: Kallen Tasks
|
name: Kallen Tasks
|
||||||
unique_id: 77045665-9222-4a6b-851f-6d9b50110107
|
|
||||||
method: GET
|
method: GET
|
||||||
resource: 'https://api.todoist.com/api/v1/projects/2285969005/full'
|
resource: 'https://api.todoist.com/sync/v9/projects/get_data'
|
||||||
headers:
|
|
||||||
Authorization: !secret todoist_api_token
|
|
||||||
Accept: application/json
|
|
||||||
value_template: '{{ value_json.project.id }}'
|
|
||||||
json_attributes:
|
|
||||||
- project
|
|
||||||
- tasks
|
|
||||||
- sections
|
|
||||||
scan_interval: 60
|
|
||||||
|
|
||||||
- platform: rest
|
|
||||||
name: Kallen Tasks Comments
|
|
||||||
unique_id: ae3178ad-439a-49f7-8c56-2fa866afaba5
|
|
||||||
method: GET
|
|
||||||
resource: 'https://api.todoist.com/api/v1/comments'
|
|
||||||
params:
|
params:
|
||||||
project_id: 2285969005
|
project_id: 2285969005
|
||||||
headers:
|
headers:
|
||||||
Authorization: !secret todoist_api_token
|
Authorization: !secret todoist_api_token
|
||||||
Accept: application/json
|
value_template: '{{value_json[''project''][''id'']}}'
|
||||||
value_template: '{{ value_json.results | length }}'
|
|
||||||
json_attributes:
|
json_attributes:
|
||||||
- results
|
- project
|
||||||
scan_interval: 60
|
- items
|
||||||
|
scan_interval: 30
|
||||||
|
|
||||||
automation:
|
automation:
|
||||||
- id: 94b57d79-efe0-4f34-b5e3-baeaa5eea9f4
|
- id: 94b57d79-efe0-4f34-b5e3-baeaa5eea9f4
|
||||||
|
|||||||
+30
-197
@@ -79,9 +79,6 @@ input_boolean:
|
|||||||
tv_notifications:
|
tv_notifications:
|
||||||
name: TV Notifications
|
name: TV Notifications
|
||||||
icon: mdi:message
|
icon: mdi:message
|
||||||
pc_notifications:
|
|
||||||
name: PC Notifications
|
|
||||||
icon: mdi:desktop-classic
|
|
||||||
|
|
||||||
input_select:
|
input_select:
|
||||||
select_phones:
|
select_phones:
|
||||||
@@ -106,19 +103,6 @@ input_select:
|
|||||||
- All
|
- All
|
||||||
initial: None
|
initial: None
|
||||||
icon: mdi:television-play
|
icon: mdi:television-play
|
||||||
select_pcs:
|
|
||||||
name: Select PCs
|
|
||||||
options:
|
|
||||||
- None
|
|
||||||
- Tony
|
|
||||||
- Tina
|
|
||||||
- Kallen
|
|
||||||
- Parents
|
|
||||||
- Nerds
|
|
||||||
- Not Tony
|
|
||||||
- All
|
|
||||||
initial: None
|
|
||||||
icon: mdi:desktop-classic
|
|
||||||
text_notification_priority_level:
|
text_notification_priority_level:
|
||||||
name: Notification Priority Level
|
name: Notification Priority Level
|
||||||
options:
|
options:
|
||||||
@@ -368,27 +352,6 @@ notify:
|
|||||||
services:
|
services:
|
||||||
- service: alexa_media_living_room_echo_dot
|
- service: alexa_media_living_room_echo_dot
|
||||||
- service: alexa_media_basement_echo_dot
|
- service: alexa_media_basement_echo_dot
|
||||||
- name: pc_parents
|
|
||||||
platform: group
|
|
||||||
services:
|
|
||||||
- service: tony_asus
|
|
||||||
- service: xia_desktop
|
|
||||||
- name: pc_nerds
|
|
||||||
platform: group
|
|
||||||
services:
|
|
||||||
- service: tony_asus
|
|
||||||
- service: kallen_desktop
|
|
||||||
- name: pc_all
|
|
||||||
platform: group
|
|
||||||
services:
|
|
||||||
- service: tony_asus
|
|
||||||
- service: xia_desktop
|
|
||||||
- service: kallen_desktop
|
|
||||||
- name: pc_not_tony
|
|
||||||
platform: group
|
|
||||||
services:
|
|
||||||
- service: xia_desktop
|
|
||||||
- service: kallen_desktop
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
volume_reset:
|
volume_reset:
|
||||||
@@ -842,131 +805,6 @@ script:
|
|||||||
message: '{{ message }}'
|
message: '{{ message }}'
|
||||||
data: '{{ data|default("{}") }}'
|
data: '{{ data|default("{}") }}'
|
||||||
|
|
||||||
pc_notify:
|
|
||||||
alias: 'PC Notify'
|
|
||||||
description: 'Use this to send popup text notifications to PCs in the house via HASS.Agent'
|
|
||||||
mode: queued
|
|
||||||
max: 20
|
|
||||||
fields:
|
|
||||||
who:
|
|
||||||
name: 'Who'
|
|
||||||
description: 'Which PC to send the notification to'
|
|
||||||
example: 'tony_pc, tina_pc, kallen_pc, all_pcs'
|
|
||||||
required: true
|
|
||||||
selector:
|
|
||||||
select:
|
|
||||||
options:
|
|
||||||
- tony
|
|
||||||
- tina
|
|
||||||
- kallen
|
|
||||||
- parents
|
|
||||||
- nerds
|
|
||||||
- not_tony
|
|
||||||
- all
|
|
||||||
title:
|
|
||||||
name: 'Title'
|
|
||||||
description: 'The title of the notification'
|
|
||||||
example: 'Greetings'
|
|
||||||
required: true
|
|
||||||
selector:
|
|
||||||
text:
|
|
||||||
message:
|
|
||||||
name: 'Message'
|
|
||||||
description: 'The body of the notification'
|
|
||||||
example: 'I am notifying you that this is a notification'
|
|
||||||
required: true
|
|
||||||
selector:
|
|
||||||
text:
|
|
||||||
multiline: true
|
|
||||||
actions:
|
|
||||||
name: 'Actions'
|
|
||||||
description: 'A list of actions for the notification'
|
|
||||||
required: false
|
|
||||||
selector:
|
|
||||||
object:
|
|
||||||
sequence:
|
|
||||||
- variables:
|
|
||||||
mod_who: >
|
|
||||||
{% set tony_notify = is_state('sensor.tony_asus_usernotification','AcceptsNotifications') %}
|
|
||||||
{% set tina_notify = is_state('sensor.xia_desktop_usernotification','AcceptsNotifications') %}
|
|
||||||
{% set kallen_notify = is_state('sensor.kallen_desktop_usernotification','AcceptsNotifications') %}
|
|
||||||
{% if who == 'tony' and not tony_notify %}
|
|
||||||
none
|
|
||||||
{% elif who == 'tina' and not tina_notify %}
|
|
||||||
none
|
|
||||||
{% elif who == 'kallen' and not kallen_notify %}
|
|
||||||
none
|
|
||||||
{% elif who == 'parents' %}
|
|
||||||
{% if tony_notify and not tina_notify %}
|
|
||||||
tony
|
|
||||||
{% elif not tony_notify and tina_notify %}
|
|
||||||
tina
|
|
||||||
{% elif not tony_notify and not tina_notify %}
|
|
||||||
none
|
|
||||||
{% else %}
|
|
||||||
parents
|
|
||||||
{% endif %}
|
|
||||||
{% elif who == 'nerds' %}
|
|
||||||
{% if tony_notify and not kallen_notify %}
|
|
||||||
tony
|
|
||||||
{% elif not tony_notify and kallen_notify %}
|
|
||||||
kallen
|
|
||||||
{% elif not tony_notify and not kallen_notify %}
|
|
||||||
none
|
|
||||||
{% else %}
|
|
||||||
nerds
|
|
||||||
{% endif %}
|
|
||||||
{% elif who == 'all' %}
|
|
||||||
{% if tony_notify %}
|
|
||||||
{% if tina_notify and not kallen_notify %}
|
|
||||||
parents
|
|
||||||
{% elif kallen_notify and not tina_notify %}
|
|
||||||
nerds
|
|
||||||
{% elif not tina_notify and not kallen_notify %}
|
|
||||||
tony
|
|
||||||
{% else %}
|
|
||||||
all
|
|
||||||
{% endif %}
|
|
||||||
{% elif tina_notify %}
|
|
||||||
{% if kallen_notify %}
|
|
||||||
not_tony
|
|
||||||
{% else %}
|
|
||||||
tina
|
|
||||||
{% endif %}
|
|
||||||
{% elif kallen_notify %}
|
|
||||||
kallen
|
|
||||||
{% else %}
|
|
||||||
none
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
{{ who }}
|
|
||||||
{% endif %}
|
|
||||||
- if:
|
|
||||||
- condition: template
|
|
||||||
value_template: "{{ mod_who != 'none' and is_state('input_boolean.pc_notifications','on') }}"
|
|
||||||
then:
|
|
||||||
- service: >
|
|
||||||
{% if mod_who == 'tony' %}
|
|
||||||
notify.tony_asus
|
|
||||||
{% elif mod_who == 'tina' %}
|
|
||||||
notify.xia_desktop
|
|
||||||
{% elif mod_who == 'kallen' %}
|
|
||||||
notify.kallen_desktop
|
|
||||||
{% elif mod_who == 'parents' %}
|
|
||||||
notify.pc_parents
|
|
||||||
{% elif mod_who == 'nerds' %}
|
|
||||||
notify.pc_nerds
|
|
||||||
{% elif mod_who == 'not_tony' %}
|
|
||||||
notify.pc_not_tony
|
|
||||||
{% elif mod_who == 'all' %}
|
|
||||||
notify.pc_all
|
|
||||||
{% endif %}
|
|
||||||
data:
|
|
||||||
title: '{{ title }}'
|
|
||||||
message: '{{ message }}'
|
|
||||||
data:
|
|
||||||
actions: '{{ actions|default("{}") }}'
|
|
||||||
|
|
||||||
text_alert_image:
|
text_alert_image:
|
||||||
alias: 'Text Alert Image'
|
alias: 'Text Alert Image'
|
||||||
sequence:
|
sequence:
|
||||||
@@ -1133,7 +971,33 @@ script:
|
|||||||
- critical
|
- critical
|
||||||
variables:
|
variables:
|
||||||
voice: "{{ states('input_select.jarvis_voice') }}"
|
voice: "{{ states('input_select.jarvis_voice') }}"
|
||||||
|
groupname: >-
|
||||||
|
{% if who == 'kids_bedrooms' %}
|
||||||
|
kids_bedroom_speakers
|
||||||
|
{% elif who == 'all_bedrooms' %}
|
||||||
|
all_bedroom_speakers
|
||||||
|
{% elif who == 'basement' and is_state('input_boolean.studio_quiet','on') %}
|
||||||
|
alexa_no_basement
|
||||||
|
{% else %}
|
||||||
|
{{ who }}
|
||||||
|
{% endif %}
|
||||||
sequence:
|
sequence:
|
||||||
|
- service: script.get_room_speakers
|
||||||
|
data:
|
||||||
|
room: "{{ who }}"
|
||||||
|
response_variable: "get_room_speakers"
|
||||||
|
- choose:
|
||||||
|
- conditions: "{{ who in ['everywhere','Everywhere'] }}"
|
||||||
|
sequence:
|
||||||
|
- service: script.get_all_speakers
|
||||||
|
response_variable: "get_all_speakers"
|
||||||
|
- conditions: "{{ get_room_speakers.jarvis_tts == 'group' }}"
|
||||||
|
sequence:
|
||||||
|
- service: script.get_group_speakers
|
||||||
|
data:
|
||||||
|
group: "{{ who }}"
|
||||||
|
response_variable: "get_group_speakers"
|
||||||
|
# Need to figure out whether to do this part here, or in alexa/jarvis voice scripts, or both
|
||||||
- service: mqtt.publish
|
- service: mqtt.publish
|
||||||
data:
|
data:
|
||||||
topic: 'house/polly/lastmsg'
|
topic: 'house/polly/lastmsg'
|
||||||
@@ -1177,44 +1041,13 @@ script:
|
|||||||
- service: >-
|
- service: >-
|
||||||
{% if voice == 'nabu' %}
|
{% if voice == 'nabu' %}
|
||||||
script.nabu_voice
|
script.nabu_voice
|
||||||
{% elif who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room','Living Room Echo Dot','Living Room'] %}
|
{% elif get_room_services.jarvis_tts in ['group','alexa'] %}
|
||||||
script.alexa_voice
|
|
||||||
{% elif who in ['kallen_bedroom','Kallen Bedroom'] %}
|
|
||||||
{% if is_state('input_boolean.kallen_sleeping','on') and type not in ['critical','Critical'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% else %}
|
|
||||||
script.jarvis_voice
|
|
||||||
{% endif %}
|
|
||||||
{% elif who in ['emma_bedroom','Emma Bedroom'] %}
|
|
||||||
{% if is_state('input_boolean.emma_sleeping','on') and type not in ['critical','Critical'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% else %}
|
|
||||||
script.jarvis_voice
|
|
||||||
{% endif %}
|
|
||||||
{% elif who in ['master_bedroom','master_bedroom_echo_dot','media_player.master_bedroom_echo_dot','Master Bedroom Echo Dot','Master Bedroom'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% elif who in ['kids_bedrooms','Kids Bedrooms'] %}
|
|
||||||
script.jarvis_voice
|
|
||||||
{% elif who in ['all_bedrooms','All Bedrooms'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% elif who in ['Basement','basement','basement_echo_dot','media_player.basement_echo_dot','Basement Echo Dot'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% elif who in ['Basement Google','basement_google'] %}
|
|
||||||
{% if is_state('input_boolean.studio_quiet','on') %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% else %}
|
|
||||||
script.jarvis_voice
|
|
||||||
{% endif %}
|
|
||||||
{% elif who in ['Common Areas','common','common_areas'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% elif who in ['alexa_everywhere','Alexa Everywhere'] %}
|
|
||||||
script.alexa_voice
|
|
||||||
{% elif who in ['Everywhere','everywhere'] %}
|
|
||||||
script.alexa_voice
|
script.alexa_voice
|
||||||
{% else %}
|
{% else %}
|
||||||
script.alexa_voice
|
script.jarvis_voice
|
||||||
{% endif %}
|
{% endif %}
|
||||||
data:
|
data:
|
||||||
|
# Work on where this redirect logic should go
|
||||||
who: >
|
who: >
|
||||||
{% if who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room','Living Room Echo Dot','Living Room'] %}
|
{% if who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room','Living Room Echo Dot','Living Room'] %}
|
||||||
living_room
|
living_room
|
||||||
@@ -1291,7 +1124,7 @@ script:
|
|||||||
type: '{{ type }}'
|
type: '{{ type }}'
|
||||||
- if:
|
- if:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ who in ['Everywhere','everywhere','all_bedrooms','All Bedrooms','kids_bedrooms','Kids Bedrooms'] }}"
|
value_template: "{{ get_room_speakers.jarvis_tts == 'group' and get_group_speakers.google is defined }}"
|
||||||
then:
|
then:
|
||||||
- service: script.jarvis_voice
|
- service: script.jarvis_voice
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -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 %}
|
||||||
{{ state_attr('sensor.minnesota_golden_gophers_hockey','opponent_abbr') in ['MICH','MNST'] or sports_inhibit('sensor.minnesota_golden_gophers_hockey') }}
|
{{ 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 %}
|
||||||
{{ state_attr('sensor.minnesota_state_mavericks_hockey','opponent_abbr') in ['MICH'] or sports_inhibit('sensor.minnesota_state_mavericks_hockey') }}
|
{{ 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,9 +2,6 @@ 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:
|
||||||
@@ -95,14 +92,10 @@ template:
|
|||||||
power_usage: "{{ states('sensor.basement_server_power') | int }}W"
|
power_usage: "{{ states('sensor.basement_server_power') | int }}W"
|
||||||
- name: Tony Desktop Idle
|
- name: Tony Desktop Idle
|
||||||
unique_id: f0ace986-a874-4fb0-ad29-8f3ebf95d8cc
|
unique_id: f0ace986-a874-4fb0-ad29-8f3ebf95d8cc
|
||||||
state: >
|
state: "{{ (states('sensor.tony_asus_system_idle_time') | int) > (states('input_number.basement_computers_idle_time') | int * 60) }}"
|
||||||
{% from 'time.jinja' import time_diff %}
|
|
||||||
{{ (time_diff('sensor.tony_asus_last_active') | int) > (states('input_number.basement_computers_idle_time') | int * 60) }}
|
|
||||||
- name: Tina Desktop Idle
|
- name: Tina Desktop Idle
|
||||||
unique_id: 1933c638-c94b-468e-bb7a-c1c5b36c3651
|
unique_id: 1933c638-c94b-468e-bb7a-c1c5b36c3651
|
||||||
state: >
|
state: "{{ (states('sensor.xia_desktop_system_idle_time') | int) > (states('input_number.first_floor_computers_idle_time') | int * 60) }}"
|
||||||
{% from 'time.jinja' import time_diff %}
|
|
||||||
{{ (time_diff('sensor.xia_desktop_last_active') | int) > (states('input_number.first_floor_computers_idle_time') | int * 60) }}
|
|
||||||
- name: Kallen Desktop Idle
|
- name: Kallen Desktop Idle
|
||||||
unique_id: 680c6ae3-2ed2-451e-858b-2aee688af461
|
unique_id: 680c6ae3-2ed2-451e-858b-2aee688af461
|
||||||
state: "{{ (states('sensor.kallen_desktop_system_idle_time') | int) > (states('input_number.basement_computers_idle_time') | int * 60) }}"
|
state: "{{ (states('sensor.kallen_desktop_system_idle_time') | int) > (states('input_number.basement_computers_idle_time') | int * 60) }}"
|
||||||
|
|||||||
@@ -1,176 +0,0 @@
|
|||||||
template:
|
|
||||||
sensor:
|
|
||||||
- name: Xia Desktop - Memory Used
|
|
||||||
unique_id: 9890f64e-d530-4824-97f7-0d459acaa97f
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.xia_desktop_memory_used_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_memory_used_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Memory Available
|
|
||||||
unique_id: bca791c1-deac-4054-bf06-a25cdb72871a
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.xia_desktop_memory_available_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_memory_available_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Virtual Memory Used
|
|
||||||
unique_id: dea6cc3d-f4d8-436c-8638-6070bb6c178a
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.xia_desktop_virtual_memory_used_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_virtual_memory_used_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Virtual Memory Available
|
|
||||||
unique_id: 5d6ed1a7-9af9-440f-bd75-feac8998c536
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.xia_desktop_virtual_memory_available_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_virtual_memory_available_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Storage C Available Free Space
|
|
||||||
unique_id: 8b23c84e-f3ba-4ddd-ac77-6c7a84851f0f
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.xia_desktop_storage_c','AvailableSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_storage_c') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Storage C Used Space
|
|
||||||
unique_id: 3de6e5e8-4fbd-49d9-8761-925415ad46ed
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.xia_desktop_storage_c','UsedSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_storage_c') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Storage D Available Free Space
|
|
||||||
unique_id: d38bb654-8981-44d6-b07b-e270c2a3903c
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.xia_desktop_storage_d','AvailableSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_storage_d') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Xia Desktop - Storage D Used Space
|
|
||||||
unique_id: bfbd5783-78ac-410b-8b41-e000c1b06283
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.xia_desktop_storage_d','UsedSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.xia_desktop_storage_d') not in ['unknown', 'unavailable'] }}
|
|
||||||
|
|
||||||
script:
|
|
||||||
tina_desktop_wake:
|
|
||||||
# To enable see https://www.home-assistant.io/components/wake_on_lan/
|
|
||||||
alias: "Tina Desktop - Wake"
|
|
||||||
sequence:
|
|
||||||
- service: wake_on_lan.send_magic_packet
|
|
||||||
data:
|
|
||||||
mac: "B4:2E:99:A8:CF:88"
|
|
||||||
|
|
||||||
tina_desktop_suspend:
|
|
||||||
alias: "Tina Desktop - Suspend"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/suspend"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_hibernate:
|
|
||||||
alias: "Tina Desktop - Hibernate"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/hibernate"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_lock:
|
|
||||||
alias: "Tina Desktop - Lock"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/lock"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_logoff:
|
|
||||||
alias: "Tina Desktop - Logoff"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/logoff"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_vol_mute:
|
|
||||||
alias: "Tina Desktop - Toggle Mute"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/volume/mute"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_vol_max:
|
|
||||||
alias: "Tina Desktop - Vol Max"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/volume/set"
|
|
||||||
payload: "100"
|
|
||||||
|
|
||||||
tina_desktop_displays_on:
|
|
||||||
alias: "Tina Desktop - Displays ON"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/displays/on"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_displays_off:
|
|
||||||
alias: "Tina Desktop - Displays OFF"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/displays/off"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tina_desktop_refresh:
|
|
||||||
alias: "Tina Desktop - Refresh"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/refresh"
|
|
||||||
payload: ""
|
|
||||||
- service: button.press
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- button.xia_desktop_hassagent_user_refresh
|
|
||||||
- button.xia_desktop_hassagent_satellite_refresh
|
|
||||||
|
|
||||||
tina_desktop_notify:
|
|
||||||
alias: "Tina Desktop - Notify"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/notify"
|
|
||||||
payload: '{ "title": "My Notification Title", "message": "This is an example of notification using IOT Link", "launchParams": "toast://open/https://iotlink.gitlab.io" }'
|
|
||||||
|
|
||||||
tina_desktop_run_chrome:
|
|
||||||
alias: "Tina Desktop - Run Chrome"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/xia-desktop/commands/run"
|
|
||||||
payload: '{ "command": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", "args": "https://iotlink.gitlab.io", "path": "C:\\Program Files (x86)\\Google\\Chrome\\Application", "user": "", "visible": true, "fallback": true }'
|
|
||||||
+5
-20
@@ -189,32 +189,17 @@ input_select:
|
|||||||
sensor:
|
sensor:
|
||||||
- platform: rest
|
- platform: rest
|
||||||
name: Home Tech
|
name: Home Tech
|
||||||
unique_id: 83f76f0c-d49c-407f-ad99-57d5896dac93
|
|
||||||
method: GET
|
method: GET
|
||||||
resource: 'https://api.todoist.com/api/v1/projects/2285967948/full'
|
resource: 'https://api.todoist.com/sync/v9/projects/get_data'
|
||||||
headers:
|
|
||||||
Authorization: !secret todoist_api_token
|
|
||||||
value_template: '{{ value_json.project.id }}'
|
|
||||||
json_attributes:
|
|
||||||
- project
|
|
||||||
- tasks
|
|
||||||
- sections
|
|
||||||
scan_interval: 60
|
|
||||||
|
|
||||||
- platform: rest
|
|
||||||
name: Home Tech Comments
|
|
||||||
unique_id: 93e6b1c1-8e92-423f-ad56-369e9bb86820
|
|
||||||
method: GET
|
|
||||||
resource: 'https://api.todoist.com/api/v1/comments'
|
|
||||||
params:
|
params:
|
||||||
project_id: 2285967948
|
project_id: 2285967948
|
||||||
headers:
|
headers:
|
||||||
Authorization: !secret todoist_api_token
|
Authorization: !secret todoist_api_token
|
||||||
Accept: application/json
|
value_template: '{{value_json[''project''][''id'']}}'
|
||||||
value_template: '{{ value_json.results | length }}'
|
|
||||||
json_attributes:
|
json_attributes:
|
||||||
- results
|
- project
|
||||||
scan_interval: 60
|
- items
|
||||||
|
scan_interval: 30
|
||||||
|
|
||||||
# template:
|
# template:
|
||||||
# - binary_sensor:
|
# - binary_sensor:
|
||||||
|
|||||||
@@ -1,212 +0,0 @@
|
|||||||
template:
|
|
||||||
sensor:
|
|
||||||
- name: Tony Asus - Memory Used
|
|
||||||
unique_id: 5264e038-c3c2-4638-9b4e-6c4e8ba0501d
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.tony_asus_memory_used_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_memory_used_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Memory Available
|
|
||||||
unique_id: 46577cdb-5f23-413d-8b2c-8f0bc0be71d1
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.tony_asus_memory_available_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_memory_available_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Virtual Memory Used
|
|
||||||
unique_id: 1499ad78-5f13-43e5-a1e0-c321cf35c059
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.tony_asus_virtual_memory_used_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_virtual_memory_used_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Virtual Memory Available
|
|
||||||
unique_id: e7646bce-56fb-426f-afce-3671c1624169
|
|
||||||
unit_of_measurement: 'MB'
|
|
||||||
icon: mdi:memory
|
|
||||||
state: >
|
|
||||||
{% set sensor_gb = states('sensor.tony_asus_virtual_memory_available_gb') | float %}
|
|
||||||
{{ (sensor_gb * 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_virtual_memory_available_gb') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage C Available Free Space
|
|
||||||
unique_id: 873f0624-705d-455e-ac5c-63320b42d90d
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_c','AvailableSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_c') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage C Used Space
|
|
||||||
unique_id: 772cf000-1be5-403c-aa69-c6c4250094e2
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_c','UsedSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_c') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage E Available Free Space
|
|
||||||
unique_id: 106839c5-9913-4f47-860d-fdef7e4cdd9c
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_e','AvailableSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_e') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage E Used Space
|
|
||||||
unique_id: e3e2fe47-809c-4763-afa8-7664515da051
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_e','UsedSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_e') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage S Available Free Space
|
|
||||||
unique_id: 5e16e11e-c4c8-4267-8ae8-58e67e95ac77
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_s','AvailableSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_s') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage S Used Space
|
|
||||||
unique_id: 01a4d7f2-ef09-4a20-a4d5-594546651e7d
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_s','UsedSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_s') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage V Available Free Space
|
|
||||||
unique_id: e5868a4e-628b-44fe-a35e-3ff4a7eceef8
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_v','AvailableSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_v') not in ['unknown', 'unavailable'] }}
|
|
||||||
- name: Tony Asus - Storage V Used Space
|
|
||||||
unique_id: 1ee34dac-0ff3-4920-b1db-79830595096b
|
|
||||||
unit_of_measurement: 'GB'
|
|
||||||
icon: mdi:harddisk
|
|
||||||
state: >
|
|
||||||
{% set sensor_mb = state_attr('sensor.tony_asus_storage_v','UsedSpaceMB') | int %}
|
|
||||||
{{ (sensor_mb / 1024) | round(0) | int }}
|
|
||||||
availability: >
|
|
||||||
{{ states('sensor.tony_asus_storage_v') not in ['unknown', 'unavailable'] }}
|
|
||||||
|
|
||||||
script:
|
|
||||||
tony_desktop_wake:
|
|
||||||
# To enable see https://www.home-assistant.io/components/wake_on_lan/
|
|
||||||
alias: "Tony Desktop - Wake"
|
|
||||||
sequence:
|
|
||||||
- service: wake_on_lan.send_magic_packet
|
|
||||||
data:
|
|
||||||
mac: "18:C0:4D:82:00:95"
|
|
||||||
|
|
||||||
tony_desktop_suspend:
|
|
||||||
alias: "Tony Desktop - Suspend"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/suspend"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_hibernate:
|
|
||||||
alias: "Tony Desktop - Hibernate"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/hibernate"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_lock:
|
|
||||||
alias: "Tony Desktop - Lock"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/lock"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_logoff:
|
|
||||||
alias: "Tony Desktop - Logoff"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/logoff"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_vol_mute:
|
|
||||||
alias: "Tony Desktop - Toggle Mute"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/volume/mute"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_vol_max:
|
|
||||||
alias: "Tony Desktop - Vol Max"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/volume/set"
|
|
||||||
payload: "100"
|
|
||||||
|
|
||||||
tony_desktop_displays_on:
|
|
||||||
alias: "Tony Desktop - Displays ON"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/displays/on"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_displays_off:
|
|
||||||
alias: "Tony Desktop - Displays OFF"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/displays/off"
|
|
||||||
payload: ""
|
|
||||||
|
|
||||||
tony_desktop_refresh:
|
|
||||||
alias: "Tony Desktop - Refresh"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/refresh"
|
|
||||||
payload: ""
|
|
||||||
- service: button.press
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- button.tony_asus_hassagent_user_refresh
|
|
||||||
- button.tony_asus_hassagent_satellite_refresh
|
|
||||||
|
|
||||||
tony_desktop_notify:
|
|
||||||
alias: "Tony Desktop - Notify"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/notify"
|
|
||||||
payload: '{ "title": "My Notification Title", "message": "This is an example of notification using IOT Link", "launchParams": "toast://open/https://iotlink.gitlab.io" }'
|
|
||||||
|
|
||||||
tony_desktop_run_chrome:
|
|
||||||
alias: "Tony Desktop - Run Chrome"
|
|
||||||
sequence:
|
|
||||||
- service: mqtt.publish
|
|
||||||
data:
|
|
||||||
topic: "iotlink/workgroup/tony-asus/commands/run"
|
|
||||||
payload: '{ "command": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", "args": "https://iotlink.gitlab.io", "path": "C:\\Program Files\\Google\\Chrome\\Application", "user": "", "visible": true, "fallback": true }'
|
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
script:
|
||||||
|
get_room_speakers:
|
||||||
|
alias: Get Room Speakers
|
||||||
|
sequence:
|
||||||
|
- variables:
|
||||||
|
room_services: >-
|
||||||
|
{% if room in areas() %}
|
||||||
|
{% set alexa_speaker = states.media_player |
|
||||||
|
selectattr('entity_id', 'in', area_entities(room)) |
|
||||||
|
rejectattr('attributes.last_called', 'undefined') |
|
||||||
|
selectattr('entity_id', 'search', 'echo_dot') |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | first %}
|
||||||
|
|
||||||
|
{% set google_speaker = states.media_player |
|
||||||
|
selectattr('entity_id', 'in', area_entities(room)) |
|
||||||
|
rejectattr('attributes.device_class', 'undefined') |
|
||||||
|
selectattr('attributes.device_class', 'search', '(speaker)') |
|
||||||
|
selectattr('entity_id', 'search', 'google') |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | first %}
|
||||||
|
|
||||||
|
{% set tts = "alexa" if alexa_speaker is defined else "google" %}
|
||||||
|
{% else %}
|
||||||
|
{% set tts = "group" %}
|
||||||
|
{% endif %}
|
||||||
|
{"area":"{{room}}","alexa_speaker":"{{alexa_speaker|default({}) }}","jarvis_tts":"{{tts|default("google") }}","google_speaker":"{{google_speaker|default({}) }}"}
|
||||||
|
- stop: "Services acquired"
|
||||||
|
response_variable: "get_room_speakers"
|
||||||
|
|
||||||
|
get_group_speakers:
|
||||||
|
alias: Get Group Speakers
|
||||||
|
sequence:
|
||||||
|
- variables:
|
||||||
|
get_group_speakers: >-
|
||||||
|
{% set speakers = expand('group.' + group) | map(attribute='entity_id') | list | join(',') %}
|
||||||
|
{% set alexa_speakers = expand('group.' + group) |
|
||||||
|
rejectattr('attributes.last_called', 'undefined') |
|
||||||
|
selectattr('entity_id', 'search', 'echo_dot') |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | join(',') %}
|
||||||
|
{% set google_speakers = expand('group.' + group) |
|
||||||
|
rejectattr('attributes.device_class', 'undefined') |
|
||||||
|
selectattr('attributes.device_class', 'search', '(speaker)') |
|
||||||
|
selectattr('entity_id', 'search', 'google') |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | join(',') %}
|
||||||
|
{"alexa":"{{alexa_speakers|default({})}}","google":"{{google_speakers|default({})}}"}
|
||||||
|
- stop: "Speakers acquired"
|
||||||
|
response_variable: "get_group_speakers"
|
||||||
|
|
||||||
|
get_echo_dots:
|
||||||
|
alias: Get Echo Dots
|
||||||
|
sequence:
|
||||||
|
- variables:
|
||||||
|
get_echo_dots: >-
|
||||||
|
{% if group is defined %}
|
||||||
|
{% set speakers = expand('group.' + group) %}
|
||||||
|
{% else %}
|
||||||
|
{% set speakers = states.media_player %}
|
||||||
|
{% endif %}
|
||||||
|
{% set echo_dots = speakers |
|
||||||
|
rejectattr('attributes.last_called', 'undefined') |
|
||||||
|
selectattr('entity_id', 'search', 'echo_dot') |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | join(',') %}
|
||||||
|
{"speakers":"{{echo_dots}}"}
|
||||||
|
- stop: "Echo Dots acquired"
|
||||||
|
response_variable: "get_echo_dots"
|
||||||
|
|
||||||
|
get_google_speakers:
|
||||||
|
alias: Get Google Speakers
|
||||||
|
sequnce:
|
||||||
|
- variables:
|
||||||
|
get_google_speakers: >-
|
||||||
|
{% if group is defined %}
|
||||||
|
{% set speakers = expand('group.' + group) %}
|
||||||
|
{% else %}
|
||||||
|
{% set speakers = states.media_player %}
|
||||||
|
{% endif %}
|
||||||
|
{% set google_speaker = speakers |
|
||||||
|
rejectattr('attributes.device_class', 'undefined') |
|
||||||
|
selectattr('attributes.device_class', 'search', '(speaker)') |
|
||||||
|
selectattr('entity_id', 'search', 'google') |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | join(',') %}
|
||||||
|
{"speakers":"{{google_speaker}}"}
|
||||||
|
- stop: "Google speakers acquired"
|
||||||
|
response_variable: "get_google_speakers"
|
||||||
|
|
||||||
|
get_all_speakers:
|
||||||
|
alias: Get All Speakers
|
||||||
|
sequence:
|
||||||
|
- variables: >-
|
||||||
|
get_speakers:
|
||||||
|
{% set alexa_speaker = states.media_player |
|
||||||
|
rejectattr('attributes.last_called', 'undefined') |
|
||||||
|
selectattr('entity_id', 'search', 'echo_dot') |
|
||||||
|
map(attribute='entity_id')
|
||||||
|
%}
|
||||||
|
|
||||||
|
{% set google_speaker = states.media_player |
|
||||||
|
rejectattr('attributes.device_class', 'undefined') |
|
||||||
|
selectattr('attributes.device_class', 'search', '(speaker)') |
|
||||||
|
selectattr('entity_id', 'search', 'google') |
|
||||||
|
map(attribute='entity_id')
|
||||||
|
%}
|
||||||
|
{% set alexa_list = alexa_speaker | list | join(',') %}
|
||||||
|
{% set google_list = google_speaker | list | join(',') %}
|
||||||
|
{% set all_speakers = alexa_list + ',' + google_list %}
|
||||||
|
{"all_speakers":"{{all_speakers}}"}
|
||||||
|
|
||||||
|
get_room_lights:
|
||||||
|
alias: Get Room Lights
|
||||||
|
sequence:
|
||||||
|
- variables:
|
||||||
|
area: >
|
||||||
|
{{ room }}
|
||||||
|
entities: >
|
||||||
|
{% set lights = states.light |
|
||||||
|
selectattr('entity_id', 'in', area_entities(area)) |
|
||||||
|
map(attribute='entity_id') |
|
||||||
|
list | join(',') %}
|
||||||
|
{"lights":"{{lights}}"}
|
||||||
|
- stop: "Lights acquired"
|
||||||
|
response_variable: "entities"
|
||||||
@@ -47,6 +47,7 @@ ## HACS Components
|
|||||||
- [PyScript](https://github.com/custom-components/pyscript)
|
- [PyScript](https://github.com/custom-components/pyscript)
|
||||||
- [Hass Animated Scenes](https://github.com/chazzu/hass-animated-scenes)
|
- [Hass Animated Scenes](https://github.com/chazzu/hass-animated-scenes)
|
||||||
- [Jokes](https://github.com/LaggAt/ha-jokes)
|
- [Jokes](https://github.com/LaggAt/ha-jokes)
|
||||||
|
- [Uptime Kuma](https://github.com/meichthys/uptime_kuma)
|
||||||
- [Jellyfin](https://github.com/koying/jellyfin_ha)
|
- [Jellyfin](https://github.com/koying/jellyfin_ha)
|
||||||
- [Sonoff LAN](https://github.com/AlexxIT/SonoffLAN)
|
- [Sonoff LAN](https://github.com/AlexxIT/SonoffLAN)
|
||||||
- [Powercalc](https://github.com/bramstroker/homeassistant-powercalc)
|
- [Powercalc](https://github.com/bramstroker/homeassistant-powercalc)
|
||||||
@@ -57,7 +58,6 @@ ## 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>
|
||||||
|
|
||||||
@@ -114,7 +114,6 @@ ## 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>
|
||||||
|
|
||||||
|
|||||||
+106
-317
@@ -1785,18 +1785,6 @@ tony_morning_meds:
|
|||||||
- action: TONY_MORNING_MEDS_SKIPPED
|
- action: TONY_MORNING_MEDS_SKIPPED
|
||||||
title: Skip
|
title: Skip
|
||||||
action: script.text_notify
|
action: script.text_notify
|
||||||
- alias: Send PC notification
|
|
||||||
action: script.pc_notify
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
who: tony
|
|
||||||
title: Morning Meds
|
|
||||||
message: '{{ response.data.notification_text }}'
|
|
||||||
actions:
|
|
||||||
- action: TONY_MORNING_MEDS_TAKEN
|
|
||||||
title: Taken
|
|
||||||
- action: TONY_MORNING_MEDS_SKIPPED
|
|
||||||
title: Skip
|
|
||||||
- alias: Send TTS if reminders > 2 and Tony is home
|
- alias: Send TTS if reminders > 2 and Tony is home
|
||||||
if:
|
if:
|
||||||
- alias: When reminders > 2 and Tony is home
|
- alias: When reminders > 2 and Tony is home
|
||||||
@@ -1838,18 +1826,6 @@ tony_morning_meds:
|
|||||||
title: Skip
|
title: Skip
|
||||||
message: You need to take your morning meds
|
message: You need to take your morning meds
|
||||||
action: script.text_notify
|
action: script.text_notify
|
||||||
- alias: Send PC notification
|
|
||||||
action: script.pc_notify
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
who: tony
|
|
||||||
title: Morning Meds
|
|
||||||
message: You need to take your morning meds
|
|
||||||
actions:
|
|
||||||
- action: TONY_MORNING_MEDS_TAKEN
|
|
||||||
title: Taken
|
|
||||||
- action: TONY_MORNING_MEDS_SKIPPED
|
|
||||||
title: Skip
|
|
||||||
- alias: Send TTS if reminders > 2 and Tony is home
|
- alias: Send TTS if reminders > 2 and Tony is home
|
||||||
if:
|
if:
|
||||||
- alias: When reminders > 2 and Tony is home
|
- alias: When reminders > 2 and Tony is home
|
||||||
@@ -2137,18 +2113,6 @@ tony_afternoon_meds:
|
|||||||
- action: TONY_AFTERNOON_MEDS_SKIPPED
|
- action: TONY_AFTERNOON_MEDS_SKIPPED
|
||||||
title: Skip
|
title: Skip
|
||||||
action: script.text_notify
|
action: script.text_notify
|
||||||
- action: script.pc_notify
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
who: tony
|
|
||||||
title: Afternoon Meds
|
|
||||||
message: '{{ response.data.notification_text }}'
|
|
||||||
actions:
|
|
||||||
- action: TONY_AFTERNOON_MEDS_TAKEN
|
|
||||||
title: Taken
|
|
||||||
- action: TONY_AFTERNOON_MEDS_SKIPPED
|
|
||||||
title: Skip
|
|
||||||
alias: Send PC notification
|
|
||||||
- alias: Send TTS if reminders > 2 and Tony is home
|
- alias: Send TTS if reminders > 2 and Tony is home
|
||||||
if:
|
if:
|
||||||
- alias: When reminders > 2 and Tony is home
|
- alias: When reminders > 2 and Tony is home
|
||||||
@@ -2190,18 +2154,6 @@ tony_afternoon_meds:
|
|||||||
title: Skip
|
title: Skip
|
||||||
message: You need to take your afternoon meds
|
message: You need to take your afternoon meds
|
||||||
action: script.text_notify
|
action: script.text_notify
|
||||||
- alias: Send PC notification
|
|
||||||
action: script.pc_notify
|
|
||||||
metadata: {}
|
|
||||||
data:
|
|
||||||
who: tony
|
|
||||||
title: Afternoon Meds
|
|
||||||
message: You need to take your afternoon meds
|
|
||||||
actions:
|
|
||||||
- action: TONY_AFTERNOON_MEDS_TAKEN
|
|
||||||
title: Taken
|
|
||||||
- action: TONY_AFTERNOON_MEDS_SKIPPED
|
|
||||||
title: Skip
|
|
||||||
- alias: Send TTS if reminders > 2 and Tony is home
|
- alias: Send TTS if reminders > 2 and Tony is home
|
||||||
if:
|
if:
|
||||||
- alias: When reminders > 2 and Tony is home
|
- alias: When reminders > 2 and Tony is home
|
||||||
@@ -2673,288 +2625,137 @@ kallen_night_meds:
|
|||||||
reset_annc_switches:
|
reset_annc_switches:
|
||||||
alias: Reset Announcement Switches
|
alias: Reset Announcement Switches
|
||||||
sequence:
|
sequence:
|
||||||
- target:
|
- service: input_boolean.turn_off
|
||||||
|
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:
|
||||||
- choose:
|
- service: switch.turn_off
|
||||||
|
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: '{{ who == ''Living Room'' }}'
|
value_template: '{{ effect in [''Rainbow'',null] }}'
|
||||||
alias: Living Room
|
alias: Rainbow
|
||||||
sequence:
|
sequence:
|
||||||
- metadata: {}
|
- service: light.turn_on
|
||||||
data: {}
|
metadata: {}
|
||||||
|
data:
|
||||||
|
effect: prism
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id: light.living_room_overhead
|
||||||
- switch.adaptive_lighting_living_room
|
alias: Turn on living room overhead in prism effect
|
||||||
- switch.adaptive_lighting_sleep_mode_living_room
|
- service: lifx.effect_move
|
||||||
alias: Turn off adaptive lighting
|
metadata: {}
|
||||||
action: switch.turn_off
|
data:
|
||||||
- metadata: {}
|
speed: 8
|
||||||
data: {}
|
direction: right
|
||||||
|
theme: exciting
|
||||||
|
power_on: true
|
||||||
target:
|
target:
|
||||||
entity_id: light.living_room_led_strip
|
entity_id: light.living_room_led_strip
|
||||||
alias: Stop any current light strip effects
|
alias: Turn on living room LED strip in exciting theme with move effect
|
||||||
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:
|
- conditions:
|
||||||
- alias: Basement Studio
|
- condition: template
|
||||||
condition: template
|
value_template: '{{ effect == ''Blue'' }}'
|
||||||
value_template: '{{ who == ''Basement Studio'' }}'
|
alias: Blue
|
||||||
sequence:
|
sequence:
|
||||||
- alias: Turn off adaptive lighting
|
- 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: {}
|
metadata: {}
|
||||||
data: {}
|
data: {}
|
||||||
action: switch.turn_off
|
|
||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id: input_boolean.living_room_dynamic_scenes
|
||||||
- switch.adaptive_lighting_basement_studio
|
alias: Turn on dynamic scenes
|
||||||
- switch.adaptive_lighting_sleep_mode_basement_studio
|
- service: input_select.select_option
|
||||||
- alias: Stop any current light strip effects
|
|
||||||
metadata: {}
|
metadata: {}
|
||||||
data: {}
|
data:
|
||||||
action: lifx.effect_stop
|
option: Tokyo
|
||||||
target:
|
target:
|
||||||
entity_id: light.basement_led_strip_1
|
entity_id: input_select.living_room_scenes
|
||||||
- alias: Choose Effect
|
alias: Activate Tokyo scene in Living Room
|
||||||
choose:
|
- alias: Turn on living room LED strip in intense theme with move effect
|
||||||
- conditions:
|
service: lifx.effect_move
|
||||||
- condition: template
|
metadata: {}
|
||||||
value_template: '{{ effect in [''Rainbow'',null] }}'
|
data:
|
||||||
alias: Rainbow
|
speed: 8
|
||||||
sequence:
|
direction: right
|
||||||
- metadata: {}
|
theme: intense
|
||||||
data:
|
power_on: true
|
||||||
effect: prism
|
target:
|
||||||
target:
|
entity_id: light.living_room_led_strip
|
||||||
entity_id: light.basement_tall_lamp
|
mode: restart
|
||||||
alias: Turn on basement tall lamp in prism effect
|
icon: fas:rainbow
|
||||||
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:
|
||||||
@@ -2970,18 +2771,6 @@ 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:
|
||||||
|
|||||||
@@ -450,19 +450,18 @@
|
|||||||
unit_of_measurement: ''
|
unit_of_measurement: ''
|
||||||
icon: mdi:close-network-outline
|
icon: mdi:close-network-outline
|
||||||
state: >
|
state: >
|
||||||
{% set uptimekuma = states.sensor |
|
{% set uptimekuma = states.binary_sensor |
|
||||||
selectattr('entity_id','in',integration_entities('192.168.1.111')) |
|
selectattr('entity_id','in',integration_entities('uptime_kuma')) |
|
||||||
selectattr('state','eq','down') |
|
selectattr('state','eq','off') |
|
||||||
map(attribute='attributes.friendly_name') |
|
map(attribute='attributes.friendly_name') |
|
||||||
list %}
|
list %}
|
||||||
{{ uptimekuma | count | int }}
|
{{ uptimekuma | count | int }}
|
||||||
attributes:
|
attributes:
|
||||||
services: >
|
services: >
|
||||||
{% set uptimekuma = states.sensor |
|
{% set uptimekuma = states.binary_sensor |
|
||||||
selectattr('entity_id','in',integration_entities('192.168.1.111')) |
|
selectattr('entity_id','in',integration_entities('uptime_kuma')) |
|
||||||
selectattr('state','eq','down') |
|
selectattr('state','eq','off') |
|
||||||
map(attribute='attributes.friendly_name') |
|
map(attribute='attributes.friendly_name') |
|
||||||
map('regex_replace', ' Status$', '') |
|
|
||||||
list %}
|
list %}
|
||||||
{{ uptimekuma | join(', ') }}
|
{{ uptimekuma | join(', ') }}
|
||||||
- name: Media Server Viewer Health
|
- name: Media Server Viewer Health
|
||||||
|
|||||||
@@ -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') != 'N/A' %}
|
{% if states('input_select.scheduled_climate_mode_emma_bedroom_aircon') != 'N/A' %}
|
||||||
{% if is_state('input_select.scheduled_climate_mode_emma_bedroom','AC') and is_state('input_boolean.hot_day','on') %}
|
{% if is_state('input_select.scheduled_climate_mode_emma_bedroom_aircon','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','AC') %}
|
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom_aircon','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','Fan') %}
|
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom_aircon','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