Compare commits
73 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
cc2f328dec
|
|||
|
8e8430cba0
|
|||
|
7f91e3ed04
|
|||
|
802fb39608
|
|||
|
9bc654bc70
|
|||
|
6e9e35a6a4
|
|||
|
bf094bf56a
|
|||
|
f614b3965f
|
|||
|
2c8e062666
|
|||
|
5dd003e994
|
|||
|
6cf0b6daee
|
|||
|
6b2747c518
|
|||
|
b3f8df03d4
|
|||
|
e51143f2ba
|
|||
|
d245b90092
|
|||
|
aad02f646b
|
|||
|
5e9d0efdca
|
|||
|
4fa09ba107
|
|||
|
8e3a98a30a
|
|||
|
9bdaabcb7d
|
|||
|
9cb977feba
|
|||
|
c850ac65d2
|
|||
|
5562d1dbc3
|
|||
|
c83cb58534
|
|||
|
e4a4fff6ec
|
|||
|
877d339a90
|
|||
|
e222337fa1
|
|||
|
2721bd6659
|
|||
|
f264412639
|
|||
|
6cddca76f7
|
|||
|
f57c41868e
|
|||
|
d091cadacf
|
|||
|
92adc64d72
|
|||
|
259757a537
|
|||
|
d0d8d0477f
|
|||
|
ac6f7978be
|
|||
|
28e3b93441
|
|||
|
bdca4c702a
|
|||
|
4b57efcd74
|
|||
|
7255422ca1
|
|||
|
5ae5e5021e
|
|||
|
bd9c7190ed
|
|||
|
f176e3b867
|
|||
|
1b52cc31a8
|
|||
|
8993196366
|
|||
|
210434e4ad
|
|||
|
e37ac9d504
|
|||
|
bf19984b47
|
|||
|
4634b66866
|
|||
|
001dcbe625
|
|||
|
f70be6ceee
|
|||
|
265e129c06
|
|||
|
00bea40b6b
|
|||
|
f94bce3381
|
|||
|
2de7d82e20
|
|||
|
83c3c10a5a
|
|||
|
f7ac1b915b
|
|||
|
1d3398752e
|
|||
|
837ed779c9
|
|||
|
bc3a58875d
|
|||
|
3c018a922b
|
|||
|
10188d553a
|
|||
|
341200deb0
|
|||
|
b930cb28b5
|
|||
|
c31158448c
|
|||
|
9e9c1fcf11
|
|||
|
02e3252e62
|
|||
|
32907081c6
|
|||
|
67931ccfcd
|
|||
|
c5d1b14ac9
|
|||
|
3ed56ff745
|
|||
|
eb9cc4c42d
|
|||
|
df020c92c1
|
@@ -1 +1 @@
|
||||
2025.8.2
|
||||
2026.3.1
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -4,6 +4,7 @@
|
||||
/.google.token
|
||||
/.ssh
|
||||
/.codegpt
|
||||
/.cache
|
||||
|
||||
# ignore some directories.
|
||||
/www/*
|
||||
@@ -21,6 +22,7 @@
|
||||
/downloads/
|
||||
/lightwand/
|
||||
/bubble/Scratchpad/
|
||||
/custom_icons
|
||||
|
||||
# ignore any of these files no matter where they are using double *
|
||||
**.DS_Store
|
||||
@@ -67,6 +69,7 @@
|
||||
**jsconfig*
|
||||
.markdownlint.json
|
||||
**test.jinja
|
||||
**.ha_run.lock
|
||||
|
||||
# exceptions
|
||||
!/www/bubble/
|
||||
262
automations.yaml
262
automations.yaml
@@ -4646,39 +4646,41 @@
|
||||
- id: '1710611198911'
|
||||
alias: Kallen Meds Handler
|
||||
description: Handles the scheduling of medication reminders for Kallen
|
||||
trigger:
|
||||
- platform: time_pattern
|
||||
minutes: /30
|
||||
triggers:
|
||||
- minutes: /30
|
||||
id: trigger30
|
||||
alias: Every 30 minutes
|
||||
- platform: time
|
||||
at: input_datetime.kallen_morning_meds_notify
|
||||
trigger: time_pattern
|
||||
- at: input_datetime.kallen_morning_meds_notify
|
||||
id: morning-notify
|
||||
alias: Morning Notify
|
||||
- platform: time
|
||||
at: input_datetime.kallen_night_meds_notify
|
||||
trigger: time
|
||||
- at: input_datetime.kallen_night_meds_notify
|
||||
id: night-notify
|
||||
alias: Night Notify
|
||||
- platform: state
|
||||
entity_id:
|
||||
trigger: time
|
||||
enabled: true
|
||||
- entity_id:
|
||||
- input_boolean.kallen_morning_meds_taken
|
||||
to: 'on'
|
||||
id: boolean-morning
|
||||
alias: Morning Taken
|
||||
from: 'off'
|
||||
- platform: state
|
||||
entity_id:
|
||||
trigger: state
|
||||
- entity_id:
|
||||
- input_boolean.kallen_night_meds_taken
|
||||
id: boolean-night
|
||||
alias: Night Taken
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
condition:
|
||||
trigger: state
|
||||
enabled: true
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.kallen_overnight
|
||||
state: 'off'
|
||||
alias: Kallen is not staying the night elsewhere
|
||||
action:
|
||||
actions:
|
||||
- alias: Routing
|
||||
choose:
|
||||
- conditions:
|
||||
@@ -4693,10 +4695,10 @@
|
||||
state: 'on'
|
||||
alias: Morning meds reminder needed
|
||||
then:
|
||||
- service: script.kallen_morning_meds
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
alias: Run morning meds notification script
|
||||
action: script.kallen_morning_meds
|
||||
- alias: Check night reminder switch
|
||||
if:
|
||||
- condition: state
|
||||
@@ -4704,10 +4706,10 @@
|
||||
state: 'on'
|
||||
alias: Night meds reminder needed
|
||||
then:
|
||||
- service: script.kallen_night_meds
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
alias: Run night meds notification script
|
||||
action: script.kallen_night_meds
|
||||
alias: Every 30 minutes
|
||||
- conditions:
|
||||
- condition: and
|
||||
@@ -4719,16 +4721,16 @@
|
||||
state: 'off'
|
||||
alias: Morning Notify
|
||||
sequence:
|
||||
- service: input_boolean.turn_on
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.kallen_morning_meds_reminder
|
||||
alias: Activate morning reminders
|
||||
- service: script.kallen_morning_meds
|
||||
metadata: {}
|
||||
action: input_boolean.turn_on
|
||||
- metadata: {}
|
||||
data: {}
|
||||
alias: Run morning meds notification script
|
||||
action: script.kallen_morning_meds
|
||||
- conditions:
|
||||
- condition: and
|
||||
conditions:
|
||||
@@ -4741,22 +4743,21 @@
|
||||
alias: Night Notify
|
||||
sequence:
|
||||
- alias: Activate night reminders
|
||||
service: input_boolean.turn_on
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.kallen_night_meds_reminder
|
||||
- service: script.kallen_night_meds
|
||||
metadata: {}
|
||||
action: input_boolean.turn_on
|
||||
- metadata: {}
|
||||
data: {}
|
||||
alias: Run night meds notification script
|
||||
action: script.kallen_night_meds
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id: boolean-morning
|
||||
alias: Morning Taken
|
||||
sequence:
|
||||
- service: input_datetime.set_datetime
|
||||
target:
|
||||
- target:
|
||||
entity_id: input_datetime.kallen_morning_meds_taken
|
||||
data:
|
||||
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0)
|
||||
@@ -4764,27 +4765,27 @@
|
||||
|
||||
'
|
||||
alias: Set time morning meds were taken
|
||||
- service: input_boolean.turn_off
|
||||
metadata: {}
|
||||
action: input_datetime.set_datetime
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.kallen_morning_meds_reminder
|
||||
alias: Deactivate morning reminders
|
||||
- service: script.text_notify
|
||||
metadata: {}
|
||||
action: input_boolean.turn_off
|
||||
- metadata: {}
|
||||
data:
|
||||
type: alert
|
||||
who: kallen
|
||||
message: clear_notification
|
||||
tag: kallen-left-meds
|
||||
alias: Clear kallen-left-meds notification tag
|
||||
action: script.text_notify
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id: boolean-night
|
||||
alias: Night Taken
|
||||
sequence:
|
||||
- service: input_datetime.set_datetime
|
||||
target:
|
||||
- target:
|
||||
entity_id: input_datetime.kallen_night_meds_taken
|
||||
data:
|
||||
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0)
|
||||
@@ -4792,20 +4793,21 @@
|
||||
|
||||
'
|
||||
alias: Set time night meds were taken
|
||||
action: input_datetime.set_datetime
|
||||
- alias: Deactivate night reminders
|
||||
service: input_boolean.turn_off
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.kallen_night_meds_reminder
|
||||
- service: script.text_notify
|
||||
metadata: {}
|
||||
action: input_boolean.turn_off
|
||||
- metadata: {}
|
||||
data:
|
||||
type: alert
|
||||
who: kallen
|
||||
message: clear_notification
|
||||
tag: kallen-left-meds
|
||||
alias: Clear kallen-left-meds notification tag
|
||||
action: script.text_notify
|
||||
mode: parallel
|
||||
max: 12
|
||||
- id: '1711657679853'
|
||||
@@ -5352,72 +5354,96 @@
|
||||
- id: '1722378602352'
|
||||
alias: Tony Meds Cleanup
|
||||
description: Handles the setting/clearing of medication configs for Tony
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
triggers:
|
||||
- entity_id:
|
||||
- input_boolean.tony_morning_meds_reminder
|
||||
from: 'on'
|
||||
to: 'off'
|
||||
id: morning-reminders-off
|
||||
alias: Morning reminders off
|
||||
trigger: state
|
||||
- alias: Afternoon reminders off
|
||||
platform: state
|
||||
entity_id:
|
||||
- input_boolean.tony_afternoon_meds_reminder
|
||||
from: 'on'
|
||||
to: 'off'
|
||||
id: afternoon-reminders-off
|
||||
trigger: state
|
||||
- alias: Night reminders off
|
||||
platform: state
|
||||
entity_id:
|
||||
- input_boolean.tony_night_meds_reminder
|
||||
from: 'on'
|
||||
to: 'off'
|
||||
id: night-reminders-off
|
||||
- platform: event
|
||||
event_type: ios.notification_action_fired
|
||||
trigger: state
|
||||
- event_type: ios.notification_action_fired
|
||||
event_data:
|
||||
actionName: TONY_MORNING_MEDS_TAKEN
|
||||
id: morning-taken
|
||||
alias: Morning taken
|
||||
- alias: Afternoon taken
|
||||
platform: event
|
||||
alias: Morning taken iOS
|
||||
trigger: event
|
||||
- alias: Morning taken PC
|
||||
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_data:
|
||||
actionName: TONY_AFTERNOON_MEDS_TAKEN
|
||||
id: afternoon-taken
|
||||
- alias: Night taken
|
||||
platform: event
|
||||
trigger: event
|
||||
- alias: Afternoon taken PC
|
||||
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_data:
|
||||
actionName: TONY_NIGHT_MEDS_TAKEN
|
||||
id: night-taken
|
||||
- alias: Morning skipped
|
||||
platform: event
|
||||
trigger: event
|
||||
- alias: Morning skipped iOS
|
||||
event_type: ios.notification_action_fired
|
||||
event_data:
|
||||
actionName: TONY_MORNING_MEDS_SKIPPED
|
||||
id: morning-skipped
|
||||
- alias: Afternoon skipped
|
||||
platform: event
|
||||
trigger: event
|
||||
- alias: Morning skipped PC
|
||||
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_data:
|
||||
actionName: TONY_AFTERNOON_MEDS_SKIPPED
|
||||
id: afternoon-skipped
|
||||
- alias: Night skipped
|
||||
platform: event
|
||||
trigger: event
|
||||
- alias: Afternoon skipped PC
|
||||
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_data:
|
||||
actionName: TONY_NIGHT_MEDS_SKIPPED
|
||||
id: night-skipped
|
||||
- platform: state
|
||||
entity_id:
|
||||
trigger: event
|
||||
- entity_id:
|
||||
- person.tony_stork
|
||||
from: home
|
||||
id: left
|
||||
alias: Left
|
||||
condition: []
|
||||
action:
|
||||
trigger: state
|
||||
conditions: []
|
||||
actions:
|
||||
- alias: Routing
|
||||
choose:
|
||||
- conditions:
|
||||
@@ -5426,19 +5452,19 @@
|
||||
- morning-reminders-off
|
||||
alias: Morning Reminders Off
|
||||
sequence:
|
||||
- service: counter.reset
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: counter.tony_morning_meds_reminder_count
|
||||
alias: Reset morning reminder count
|
||||
- service: script.text_notify
|
||||
data:
|
||||
action: counter.reset
|
||||
- data:
|
||||
type: alert
|
||||
who: tony
|
||||
message: clear_notification
|
||||
tag: tony-morning-meds
|
||||
alias: Clear morning notification
|
||||
action: script.text_notify
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
@@ -5446,18 +5472,18 @@
|
||||
alias: Afternoon reminders off
|
||||
sequence:
|
||||
- alias: Reset afternoon reminder count
|
||||
service: counter.reset
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: counter.tony_afternoon_meds_reminder_count
|
||||
- service: script.text_notify
|
||||
data:
|
||||
action: counter.reset
|
||||
- data:
|
||||
type: alert
|
||||
who: tony
|
||||
message: clear_notification
|
||||
tag: tony-afternoon-meds
|
||||
alias: Clear afternoon notification
|
||||
action: script.text_notify
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
@@ -5465,90 +5491,90 @@
|
||||
alias: Night reminders off
|
||||
sequence:
|
||||
- alias: Reset night reminder count
|
||||
service: counter.reset
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: counter.tony_night_meds_reminder_count
|
||||
- service: script.text_notify
|
||||
data:
|
||||
action: counter.reset
|
||||
- data:
|
||||
type: alert
|
||||
who: tony
|
||||
message: clear_notification
|
||||
tag: tony-night-meds
|
||||
alias: Clear night notification
|
||||
action: script.text_notify
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
- alias: Morning taken
|
||||
condition: trigger
|
||||
id:
|
||||
- morning-taken
|
||||
alias: Morning taken
|
||||
sequence:
|
||||
- service: input_boolean.turn_on
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.tony_morning_meds_taken
|
||||
alias: Turn on morning meds taken
|
||||
action: input_boolean.turn_on
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- afternoon-taken
|
||||
alias: Afternoon taken
|
||||
sequence:
|
||||
- service: input_boolean.turn_on
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.tony_afternoon_meds_taken
|
||||
alias: Turn on afternoon meds taken
|
||||
action: input_boolean.turn_on
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- night-taken
|
||||
alias: Night taken
|
||||
sequence:
|
||||
- service: input_boolean.turn_on
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.tony_night_meds_taken
|
||||
alias: Turn on night meds taken
|
||||
action: input_boolean.turn_on
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- morning-skipped
|
||||
alias: Morning skipped
|
||||
sequence:
|
||||
- service: input_boolean.turn_off
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.tony_morning_meds_reminder
|
||||
alias: Deactivate morning reminders
|
||||
action: input_boolean.turn_off
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- afternoon-skipped
|
||||
alias: Afternoon skipped
|
||||
sequence:
|
||||
- service: input_boolean.turn_off
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.tony_afternoon_meds_reminder
|
||||
alias: Deactivate afternoon reminders
|
||||
action: input_boolean.turn_off
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- night-skipped
|
||||
alias: Night skipped
|
||||
sequence:
|
||||
- service: input_boolean.turn_off
|
||||
metadata: {}
|
||||
- metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: input_boolean.tony_night_meds_reminder
|
||||
alias: Deactivate night reminders
|
||||
action: input_boolean.turn_off
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
@@ -5574,7 +5600,6 @@
|
||||
alias: Night meds reminder active
|
||||
then:
|
||||
- alias: Send critical TTS notification
|
||||
service: script.text_notify
|
||||
metadata: {}
|
||||
data:
|
||||
type: critical
|
||||
@@ -5582,6 +5607,7 @@
|
||||
title: HEY DUMBASS
|
||||
message: YOU FORGOT TO TAKE YOUR MEDS!!!!!
|
||||
tag: tony-left-meds
|
||||
action: script.text_notify
|
||||
mode: queued
|
||||
max: 10
|
||||
- id: '1722386174249'
|
||||
@@ -6193,6 +6219,7 @@
|
||||
- input_boolean.tina_morning_meds_taken
|
||||
- input_boolean.tina_night_meds_taken
|
||||
alias: Reset Tina meds taken switches
|
||||
enabled: false
|
||||
mode: restart
|
||||
- id: '1747130058536'
|
||||
alias: Shower Mode Auto Off
|
||||
@@ -6307,3 +6334,74 @@
|
||||
who: all
|
||||
alias: Routing
|
||||
mode: restart
|
||||
- id: '1765674032722'
|
||||
alias: Emma Bedroom Heater
|
||||
description: Turns Emma's bedroom heater on at the scheduled time
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: input_datetime.emma_bedroom_climate
|
||||
alias: Emma Bedroom Climate
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_select.scheduled_climate_mode_emma_bedroom
|
||||
state:
|
||||
- Heat
|
||||
- condition: state
|
||||
entity_id: input_boolean.emma_bedroom_heater_installed
|
||||
state:
|
||||
- 'on'
|
||||
actions:
|
||||
- action: climate.set_hvac_mode
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: climate.emma_bedroom_vtherm
|
||||
data:
|
||||
hvac_mode: heat
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
blueprint:
|
||||
name: Sensor Light
|
||||
description: "# \U0001F4A1 Sensor Light\n**Version: 8.1**\n\nYour lighting experience,
|
||||
description: "# \U0001F4A1 Sensor Light\n**Version: 8.3**\n\nYour lighting experience,
|
||||
your way - take control and customize it to perfection! \U0001F4A1✨\n\n**If you
|
||||
like my blueprints, and would like to show your support or just say thank you?**
|
||||
[Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8) \U0001F642\n\n<details>
|
||||
@@ -27,17 +27,19 @@ blueprint:
|
||||
Light Sensing Options:**\n - Set up an Ambient Light Sensor for activation
|
||||
in low-light conditions, customizable with specified LUX values.\n\n - **Time-Based
|
||||
Options:**\n - Specify precise start and end times along with weekday selections
|
||||
to define when the automation should run.\n\n - **Device Tracker Options:**\n
|
||||
\ - Utilize \"Device Tracker\" to activate automation when home or within specified
|
||||
zones, preventing unnecessary activations. This feature is particularly useful
|
||||
to prevent unnecessary lighting activations when pets trigger sensors while no
|
||||
one is home.\n\n - **Night Lights Mode:**\n - Enable \"Night Lights\" for
|
||||
softer illumination during night time activities, automatically enabled based
|
||||
on conditions.\n - Opt to use \"Night Glow\". This feature activates a low-level
|
||||
light when no trigger is detected, creating a subtle ambient glow perfect for
|
||||
nighttime use.\n\n - **HA Restart Safeguards:**\n - Benefit from built-in
|
||||
safeguards for Home Assistant restarts.\n\n - **Blueprint Add-On Integration:**\n
|
||||
\ - Sensor Light Add-On - Enhances media control automation. [Click Here](https://community.home-assistant.io/t/591824)
|
||||
to define when the automation can run.\n\n - **State Control Option:**\n -
|
||||
Allows the automation to run when the entity is in its selected activation state
|
||||
(ON or OFF).\n\n - **Device Tracker Options:**\n - Utilize \"Device Tracker\"
|
||||
to activate automation when home or within specified zones, preventing unnecessary
|
||||
activations. This feature is particularly useful to prevent unnecessary lighting
|
||||
activations when pets trigger sensors while no one is home.\n\n - **Night Lights
|
||||
Mode:**\n - Enable \"Night Lights\" for softer illumination during night time
|
||||
activities, automatically enabled based on conditions.\n - Opt to use \"Night
|
||||
Glow\". This feature activates a low-level light when no trigger is detected,
|
||||
creating a subtle ambient glow perfect for nighttime use.\n\n - **HA Restart
|
||||
Safeguards:**\n - Benefit from built-in safeguards for Home Assistant restarts.\n\n
|
||||
\ - **Blueprint Add-On Integration:**\n - Sensor Light Add-On - Enhances media
|
||||
control automation. [Click Here](https://community.home-assistant.io/t/591824)
|
||||
to learn more.\n - Bathroom Humidity Exhaust Fan - Keeps the lights ON when
|
||||
showering. [Click Here](https://community.home-assistant.io/t/509992) to learn
|
||||
more.\n</details>\n\nNeed help?\n- The Settings & Best Practice Guidelines: [Click
|
||||
@@ -75,6 +77,7 @@ blueprint:
|
||||
- binary_sensor
|
||||
- schedule
|
||||
multiple: true
|
||||
reorder: false
|
||||
lights_settings:
|
||||
name: Lights *
|
||||
icon: mdi:lightbulb-outline
|
||||
@@ -118,6 +121,7 @@ blueprint:
|
||||
- domain:
|
||||
- input_boolean
|
||||
multiple: false
|
||||
reorder: false
|
||||
end_scenes:
|
||||
name: Scenes - Scripts To Turn OFF
|
||||
description: 'If you have selected a scene or a script to be turned ON above
|
||||
@@ -134,6 +138,7 @@ blueprint:
|
||||
- domain:
|
||||
- scene
|
||||
- script
|
||||
reorder: false
|
||||
time_delay:
|
||||
name: Time Delay
|
||||
description: 'The time delay determines how long the lights, switches, scenes,
|
||||
@@ -171,8 +176,8 @@ blueprint:
|
||||
value: use_brightness
|
||||
- label: Use Transition
|
||||
value: use_transition
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
light_brightness:
|
||||
name: Brightness
|
||||
description: 'The brightness setting for the lights when they are turned
|
||||
@@ -237,9 +242,9 @@ blueprint:
|
||||
value: use_rgbww_colour
|
||||
- label: Disable Colour Control
|
||||
value: disable_colour_control
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
light_colour_temperature:
|
||||
name: Colour Temperature
|
||||
description: 'The colour temperature setting for the lights when they are
|
||||
@@ -357,9 +362,9 @@ blueprint:
|
||||
value: enable_time_controled_brightness_inv
|
||||
- label: 13 - Time Controlled - Colour Temp + Brightness
|
||||
value: enable_time_controled_colour_brightness
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
dynamic_lighting_lux_sensor:
|
||||
name: Dynamic Lighting - Ambient Light Sensor
|
||||
description: '**Used in options 1, 2, 8 or 9** - Enter the specific ambient
|
||||
@@ -375,6 +380,7 @@ blueprint:
|
||||
device_class:
|
||||
- illuminance
|
||||
multiple: false
|
||||
reorder: false
|
||||
dynamic_lighting_max_lux:
|
||||
name: Dynamic Lighting - Max Lux Value
|
||||
description: '**Used in options 1, 2, 8 or 9** - Specify the maximum lux
|
||||
@@ -459,6 +465,7 @@ blueprint:
|
||||
- domain:
|
||||
- input_boolean
|
||||
multiple: false
|
||||
reorder: false
|
||||
dynamic_lighting_max_colour_temp:
|
||||
name: Dynamic Lighting - Max Colour Temperature
|
||||
description: '**Used in options 3, 6, 7, 8, 9, 10 or 13** - Specify the
|
||||
@@ -679,9 +686,9 @@ blueprint:
|
||||
value: enable_state_control
|
||||
- label: Disable State Control Option
|
||||
value: disable_state_control
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
dynamic_lighting_state_control_activation_state:
|
||||
name: Dynamic Lighting - State Control Activation State
|
||||
description: 'Select the state the entity must be in to activate dynamic
|
||||
@@ -698,9 +705,9 @@ blueprint:
|
||||
value: 'on'
|
||||
- label: OFF State
|
||||
value: 'off'
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
dynamic_lighting_state_control_entity:
|
||||
name: Dynamic Lighting - State Control Entity
|
||||
description: 'If the state control option above is enabled, select the entity
|
||||
@@ -734,8 +741,8 @@ blueprint:
|
||||
- label: 3 - Enable the Bypass - Keep the Lights Current State
|
||||
value: bypass_enabled_stop
|
||||
multiple: true
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
motion_bypass_lights_on:
|
||||
name: Bypass Switch - Turn the Lights ON
|
||||
description: 'Select the switches that will turn your lights ON, bypass
|
||||
@@ -748,6 +755,7 @@ blueprint:
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
reorder: false
|
||||
motion_bypass_lights_off:
|
||||
name: Bypass Switch - Turn the Lights OFF
|
||||
description: 'Select the switches that will turn your lights OFF, bypass
|
||||
@@ -760,6 +768,7 @@ blueprint:
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
reorder: false
|
||||
motion_bypass_lights_stop:
|
||||
name: Bypass Switch - Keep the Lights Current State
|
||||
description: 'Select the switches that will keep your lights current state,
|
||||
@@ -772,6 +781,7 @@ blueprint:
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
reorder: false
|
||||
bypass_time_delay:
|
||||
name: Bypass - Time Delay
|
||||
description: "This is only used in two specific bypass scenarios when your
|
||||
@@ -807,8 +817,8 @@ blueprint:
|
||||
State
|
||||
value: bypass_auto_off_enabled_stop
|
||||
multiple: true
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
bypass_auto_off_delay:
|
||||
name: Bypass Auto OFF - Time Delay
|
||||
description: 'Set the bypass auto OFF time delay. The time delay starts
|
||||
@@ -848,9 +858,9 @@ blueprint:
|
||||
value: sun_enabled
|
||||
- label: Disable the sun option
|
||||
value: sun_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
sun_elevation:
|
||||
name: Sun Elevation Falling
|
||||
description: 'The sun elevation falling refers to the angle between the
|
||||
@@ -906,9 +916,9 @@ blueprint:
|
||||
value: ambient_enabled
|
||||
- label: Disable the ambient options
|
||||
value: ambient_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
ambient_light_sensor:
|
||||
name: Ambient Light Sensor
|
||||
description: 'Select the ambient sensor to be used.
|
||||
@@ -923,6 +933,7 @@ blueprint:
|
||||
device_class:
|
||||
- illuminance
|
||||
multiple: false
|
||||
reorder: false
|
||||
ambient_light_options:
|
||||
name: Ambient Light Sensor - Site Conditions
|
||||
description: 'In some cases when your lights turn ON, your ambient light
|
||||
@@ -942,9 +953,9 @@ blueprint:
|
||||
value: ambient_light_option_enabled
|
||||
- label: NO - My Ambient Light Sensor is not affected by the Lights
|
||||
value: ambient_light_option_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
ambient_light_value:
|
||||
name: Ambient Light - Low Lux Value
|
||||
description: 'Set the Ambient Light Low Lux Value. The light will turn ON
|
||||
@@ -1001,9 +1012,9 @@ blueprint:
|
||||
value: time_enabled
|
||||
- label: Disable the time options
|
||||
value: time_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
after_time:
|
||||
name: Start Time
|
||||
description: 'Set the start time.
|
||||
@@ -1054,8 +1065,57 @@ blueprint:
|
||||
value: sat
|
||||
- label: Sunday
|
||||
value: sun
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
state_control_settings:
|
||||
name: State Control
|
||||
icon: mdi:toggle-switch-outline
|
||||
collapsed: true
|
||||
input:
|
||||
include_state_control:
|
||||
name: Use The State Control Option (Optional)
|
||||
description: 'This option is used to add a condition that only allows the
|
||||
automation to run when the entity is in its selected activation state
|
||||
below.
|
||||
|
||||
'
|
||||
default: state_control_disabled
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: Enable State Control Option
|
||||
value: state_control_enabled
|
||||
- label: Disable State Control Option
|
||||
value: state_control_disabled
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
state_control_activation_state:
|
||||
name: Activation State
|
||||
description: 'Select the state (ON or OFF) the entity must be in so the
|
||||
automation can run.
|
||||
|
||||
'
|
||||
default: 'off'
|
||||
selector:
|
||||
select:
|
||||
options:
|
||||
- label: ON State
|
||||
value: 'on'
|
||||
- label: OFF State
|
||||
value: 'off'
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
state_control_entity:
|
||||
name: Control Entity
|
||||
description: 'If State Control is enabled, select the entity that will allow
|
||||
the automation to run based on the activation state selected above.
|
||||
|
||||
'
|
||||
default: []
|
||||
selector:
|
||||
entity: {}
|
||||
device_tracker_settings:
|
||||
name: Device Tracker
|
||||
icon: mdi:account-multiple-check-outline
|
||||
@@ -1083,9 +1143,9 @@ blueprint:
|
||||
value: zone_people_enabled
|
||||
- label: Disable the device tracker options
|
||||
value: device_tracker_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
zone:
|
||||
name: Device Tracker - Zone
|
||||
description: 'Choose the zone that will track your devices and/or people
|
||||
@@ -1099,6 +1159,7 @@ blueprint:
|
||||
- domain:
|
||||
- zone
|
||||
multiple: false
|
||||
reorder: false
|
||||
people:
|
||||
name: Device Tracker - People
|
||||
description: 'Select the people you would like to track in the zone selected
|
||||
@@ -1112,6 +1173,7 @@ blueprint:
|
||||
filter:
|
||||
- domain:
|
||||
- person
|
||||
reorder: false
|
||||
night_lights_trigger_settings:
|
||||
name: Night Lights Settings
|
||||
icon: mdi:weather-night
|
||||
@@ -1137,9 +1199,9 @@ blueprint:
|
||||
value: night_lights_enabled
|
||||
- label: Disable the night lights options
|
||||
value: night_lights_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_lights_conditions:
|
||||
name: Night Lights Conditions (Required For Night Lights)
|
||||
description: 'Select any night light condition from the options provided
|
||||
@@ -1161,8 +1223,8 @@ blueprint:
|
||||
value: time_enabled
|
||||
- label: Enable sun elevation option
|
||||
value: sun_enabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_lights_entity_state:
|
||||
name: Night Lights - Entity State
|
||||
description: 'Select an entity that will trigger the activation of night
|
||||
@@ -1179,6 +1241,7 @@ blueprint:
|
||||
selector:
|
||||
entity:
|
||||
multiple: true
|
||||
reorder: false
|
||||
night_lights_after_time:
|
||||
name: Night Lights - Start Time
|
||||
description: 'Set the start time.
|
||||
@@ -1270,6 +1333,7 @@ blueprint:
|
||||
- domain:
|
||||
- input_boolean
|
||||
multiple: false
|
||||
reorder: false
|
||||
night_time_delay:
|
||||
name: Night Lights - Time Delay
|
||||
description: 'The time delay determines how long the night lights will remain
|
||||
@@ -1315,8 +1379,8 @@ blueprint:
|
||||
value: if_lights_are_on_adjust_when_crossing_over
|
||||
- label: Yes - Manage OFF script when crossing over
|
||||
value: manage_scripts_crossing_over
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_light_brightness:
|
||||
name: Night Lights - Brightness
|
||||
description: 'The brightness setting of the lights when they are turned
|
||||
@@ -1379,9 +1443,9 @@ blueprint:
|
||||
value: use_rgbww_colour
|
||||
- label: Disable Colour Control
|
||||
value: disable_colour_control
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_light_colour_temperature:
|
||||
name: Night Lights - Colour Temperature
|
||||
description: 'The colour temperature setting for the lights when they are
|
||||
@@ -1460,9 +1524,9 @@ blueprint:
|
||||
value: night_glow_enabled
|
||||
- label: Disable night glow
|
||||
value: night_glow_disabled
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_glow_lights:
|
||||
name: Night Glow - Lights
|
||||
description: 'The lights, switches, scenes, and scripts to be used for a
|
||||
@@ -1501,8 +1565,8 @@ blueprint:
|
||||
value: use_brightness
|
||||
- label: Use transition
|
||||
value: use_transition
|
||||
custom_value: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_glow_light_brightness:
|
||||
name: Night Glow - Brightness
|
||||
description: 'The brightness setting of the lights when they are turned
|
||||
@@ -1565,9 +1629,9 @@ blueprint:
|
||||
value: use_rgbww_colour
|
||||
- label: Disable Colour Control
|
||||
value: disable_colour_control
|
||||
custom_value: false
|
||||
sort: false
|
||||
multiple: false
|
||||
sort: false
|
||||
custom_value: false
|
||||
night_glow_light_colour_temperature:
|
||||
name: Night Glow - Colour Temperature
|
||||
description: 'The colour temperature setting for the lights when they are
|
||||
@@ -1683,6 +1747,9 @@ variables:
|
||||
after_time: !input after_time
|
||||
before_time: !input before_time
|
||||
weekday_options: !input weekday_options
|
||||
include_state_control: !input include_state_control
|
||||
state_control_activation_state: !input state_control_activation_state
|
||||
state_control_entity: !input state_control_entity
|
||||
include_device_tracker: !input include_device_tracker
|
||||
zone: !input zone
|
||||
people: !input people
|
||||
@@ -1963,8 +2030,16 @@ triggers:
|
||||
id: t16
|
||||
entity_id: !input dynamic_lighting_state_control_entity
|
||||
from: !input dynamic_lighting_state_control_activation_state
|
||||
- trigger: homeassistant
|
||||
- trigger: state
|
||||
id: t17
|
||||
entity_id: !input state_control_entity
|
||||
to: !input state_control_activation_state
|
||||
- trigger: state
|
||||
id: t18
|
||||
entity_id: !input state_control_entity
|
||||
from: !input state_control_activation_state
|
||||
- trigger: homeassistant
|
||||
id: t19
|
||||
event: start
|
||||
condition:
|
||||
- condition: or
|
||||
@@ -2288,6 +2363,40 @@ condition:
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t17
|
||||
- condition: state
|
||||
entity_id: !input motion_trigger
|
||||
state: 'on'
|
||||
match: any
|
||||
- condition: template
|
||||
value_template: '{{ include_state_control == ''state_control_enabled'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t18
|
||||
- condition: template
|
||||
value_template: '{{ include_state_control == ''state_control_enabled'' }}'
|
||||
- condition: or
|
||||
conditions:
|
||||
- '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'')
|
||||
| list | count > 0) }}'
|
||||
- '{{ (include_night_lights == ''night_lights_enabled'') and (expand(night_lights.entity_id)
|
||||
| selectattr(''state'', ''=='', ''on'') | list | count > 0) }}'
|
||||
- '{{ (include_night_lights == ''night_lights_enabled'') and (include_night_glow
|
||||
== ''night_glow_enabled'') and (expand(night_glow_lights.entity_id) | selectattr(''state'',
|
||||
''=='', ''on'') | list | count > 0) }}'
|
||||
- condition: template
|
||||
value_template: "{% if boolean_scenes_scripts != [] %}\n {{ is_state(boolean_scenes_scripts,
|
||||
'on') }}\n{% endif %}"
|
||||
- condition: template
|
||||
value_template: "{% if night_boolean_scenes_scripts != [] %}\n {{ is_state(night_boolean_scenes_scripts,
|
||||
'on') }}\n{% endif %}"
|
||||
- condition: template
|
||||
value_template: "{% if dynamic_lighting_boolean != [] %}\n {{ is_state(dynamic_lighting_boolean,
|
||||
'on') }}\n{% endif %}"
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t19
|
||||
- condition: or
|
||||
conditions:
|
||||
- '{{ (expand(light_switch.entity_id) | selectattr(''state'', ''=='', ''on'')
|
||||
@@ -2306,7 +2415,7 @@ condition:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t17
|
||||
id: t19
|
||||
- condition: state
|
||||
entity_id: !input motion_trigger
|
||||
match: any
|
||||
@@ -2314,7 +2423,7 @@ condition:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t17
|
||||
id: t19
|
||||
- '{{ (''bypass_auto_off_enabled_on'' in include_bypass_auto_off) or (''bypass_auto_off_enabled_off''
|
||||
in include_bypass_auto_off) or (''bypass_auto_off_enabled_stop'' in include_bypass_auto_off)
|
||||
}}'
|
||||
@@ -2407,7 +2516,7 @@ condition:
|
||||
- t8_on
|
||||
- t8_off
|
||||
- t8_stop
|
||||
- t17
|
||||
- t19
|
||||
- condition: or
|
||||
conditions:
|
||||
- '{{ include_sun == ''sun_disabled'' }}'
|
||||
@@ -2502,6 +2611,26 @@ condition:
|
||||
- t8_off
|
||||
- t8_stop
|
||||
- t11
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ include_state_control == ''state_control_disabled'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ include_state_control == ''state_control_enabled'' }}'
|
||||
- condition: state
|
||||
entity_id: !input state_control_entity
|
||||
state: !input state_control_activation_state
|
||||
- condition: trigger
|
||||
id:
|
||||
- t7_on
|
||||
- t7_off
|
||||
- t7_stop
|
||||
- t8_on
|
||||
- t8_off
|
||||
- t8_stop
|
||||
- t18
|
||||
- condition: or
|
||||
conditions:
|
||||
- '{{ include_device_tracker == ''device_tracker_disabled'' }}'
|
||||
@@ -3318,6 +3447,15 @@ action:
|
||||
- condition: time
|
||||
after: !input before_time
|
||||
before: !input after_time
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ include_state_control == ''state_control_enabled''
|
||||
}}'
|
||||
- condition: template
|
||||
value_template: '{% set opposite = ''off'' if state_control_activation_state
|
||||
== ''on'' else ''on'' %} {{ is_state(state_control_entity, opposite)
|
||||
}}'
|
||||
sequence:
|
||||
- alias: Wait the number of minutes set in the by-pass time delay
|
||||
delay:
|
||||
@@ -3591,13 +3729,14 @@ action:
|
||||
entity_id: '{{ crossover_night_lights_light_on }}'
|
||||
data: '{{ night_light_data }}'
|
||||
- choose:
|
||||
- alias: Sun, ambient & time above setting to turn off
|
||||
- alias: Sun, ambient, time & state control above setting to turn off
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t9
|
||||
- t10
|
||||
- t11
|
||||
- t18
|
||||
sequence:
|
||||
- choose:
|
||||
- alias: If transition is selected
|
||||
@@ -3834,7 +3973,7 @@ action:
|
||||
- alias: Safe Guard when HA restarts
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t17
|
||||
id: t19
|
||||
sequence:
|
||||
- choose:
|
||||
- alias: Check all by-pass are off and check conditions if enabled
|
||||
@@ -5310,6 +5449,15 @@ action:
|
||||
after: !input before_time
|
||||
before: !input after_time
|
||||
- '{{ include_time == ''time_enabled'' }}'
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ include_state_control == ''state_control_enabled''
|
||||
}}'
|
||||
- condition: template
|
||||
value_template: '{% set opposite = ''off'' if state_control_activation_state
|
||||
== ''on'' else ''on'' %} {{ is_state(state_control_entity, opposite)
|
||||
}}'
|
||||
sequence:
|
||||
- alias: Wait the number of minutes set in the by-pass time delay
|
||||
delay:
|
||||
@@ -5663,13 +5811,14 @@ action:
|
||||
data:
|
||||
entity_id: !input dynamic_lighting_boolean
|
||||
- choose:
|
||||
- alias: Sun, ambient & time above setting to turn off
|
||||
- alias: Sun, ambient, time & state control above setting to turn off
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id:
|
||||
- t9
|
||||
- t10
|
||||
- t11
|
||||
- t18
|
||||
sequence:
|
||||
- choose:
|
||||
- alias: If transition is selected
|
||||
@@ -5905,7 +6054,7 @@ action:
|
||||
- alias: Safe Guard when HA restarts
|
||||
conditions:
|
||||
- condition: trigger
|
||||
id: t17
|
||||
id: t19
|
||||
sequence:
|
||||
- choose:
|
||||
- alias: Check all by-pass are off and check conditions if enabled
|
||||
@@ -6286,7 +6435,11 @@ action:
|
||||
delay:
|
||||
minutes: !input dynamic_lighting_heartbeat
|
||||
- alias: If dynamic lighting brightness is in the dead zone
|
||||
conditions: '{{ in_dead_zone }}'
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ in_dead_zone }}'
|
||||
- condition: template
|
||||
value_template: '{{ repeat.index != 1 }}'
|
||||
sequence:
|
||||
- alias: Dynamic lighting heartbeat
|
||||
delay:
|
||||
@@ -6426,7 +6579,11 @@ action:
|
||||
delay:
|
||||
minutes: !input dynamic_lighting_heartbeat
|
||||
- alias: If dynamic lighting brightness is in the dead zone
|
||||
conditions: '{{ in_dead_zone }}'
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ in_dead_zone }}'
|
||||
- condition: template
|
||||
value_template: '{{ repeat.index != 1 }}'
|
||||
sequence:
|
||||
- alias: Dynamic lighting heartbeat
|
||||
delay:
|
||||
@@ -7492,7 +7649,11 @@ action:
|
||||
delay:
|
||||
minutes: !input dynamic_lighting_heartbeat
|
||||
- alias: If dynamic lighting brightness is in the dead zone
|
||||
conditions: '{{ in_dead_zone }}'
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ in_dead_zone }}'
|
||||
- condition: template
|
||||
value_template: '{{ repeat.index != 1 }}'
|
||||
sequence:
|
||||
- alias: Dynamic lighting heartbeat
|
||||
delay:
|
||||
@@ -7853,7 +8014,11 @@ action:
|
||||
delay:
|
||||
minutes: !input dynamic_lighting_heartbeat
|
||||
- alias: If dynamic lighting brightness is in the dead zone
|
||||
conditions: '{{ in_dead_zone }}'
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: '{{ in_dead_zone }}'
|
||||
- condition: template
|
||||
value_template: '{{ repeat.index != 1 }}'
|
||||
sequence:
|
||||
- alias: Dynamic lighting heartbeat
|
||||
delay:
|
||||
|
||||
@@ -33,6 +33,7 @@ frontend:
|
||||
- /hacsfiles/hass-hue-icons/hass-hue-icons.js
|
||||
- /hacsfiles/hass-bha-icons/hass-bha-icons.js
|
||||
- /hacsfiles/material-you-utilities/material-you-utilities.min.js
|
||||
- /hacsfiles/lovelace-card-mod/card-mod.js?v4.1.0
|
||||
javascript_version: latest
|
||||
|
||||
panel_custom:
|
||||
@@ -64,11 +65,11 @@ calendar:
|
||||
rest_command:
|
||||
todoist:
|
||||
method: post
|
||||
url: 'https://api.todoist.com/sync/v9/{{ url }}'
|
||||
url: 'https://api.todoist.com/api/v1/{{ url }}'
|
||||
payload: '{{ payload }}'
|
||||
headers:
|
||||
Authorization: !secret todoist_api_token
|
||||
content_type: 'application/x-www-form-urlencoded'
|
||||
content_type: 'application/x-www-form-urlencoded'
|
||||
|
||||
recorder:
|
||||
db_url: !secret mariadb_url
|
||||
@@ -107,6 +108,7 @@ recorder:
|
||||
- sensor.*_count
|
||||
- sensor.*memory_available*
|
||||
- sensor.*memory_used*
|
||||
- sensor.*memory_usage*
|
||||
- sensor.*cpu_usage
|
||||
- sensor.*cpu_temperature
|
||||
- sensor.*gpu_temperature
|
||||
@@ -118,6 +120,16 @@ recorder:
|
||||
- sensor.*_rssi
|
||||
- sensor.weatherflow_hub*
|
||||
- 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:
|
||||
- sensor.avg_ping
|
||||
- sensor.max_ping
|
||||
@@ -158,14 +170,7 @@ logger:
|
||||
homeassistant.core: fatal
|
||||
|
||||
influxdb:
|
||||
api_version: 2
|
||||
host: 192.168.1.254
|
||||
port: 8086
|
||||
max_retries: 3
|
||||
ssl: false
|
||||
organization: !secret influxdb_org
|
||||
token: !secret influxdb_token
|
||||
bucket: home_assistant
|
||||
default_measurement: state
|
||||
tags:
|
||||
source: HA
|
||||
@@ -279,6 +284,13 @@ influxdb:
|
||||
- binary_sensor.asus_laptop*
|
||||
- sensor.*ashland*
|
||||
- sensor.*kasx*
|
||||
- sensor.*_monitor_type
|
||||
- sensor.*_certificate_expiry
|
||||
- sensor.*_monitored_url
|
||||
- sensor.*_response_time
|
||||
- sensor.*_status
|
||||
- sensor.adguard*
|
||||
- sensor.*response_time*
|
||||
entities:
|
||||
- media_player.living_room_tv
|
||||
- media_player.basement_tv
|
||||
@@ -300,18 +312,6 @@ influxdb:
|
||||
- binary_sensor.people_present
|
||||
- weather.iron_nerd_weather_station
|
||||
- weather.ashland_weather_station
|
||||
- sensor.circle_k
|
||||
- sensor.kroger
|
||||
- sensor.kecks
|
||||
- sensor.the_barn
|
||||
- sensor.the_big_fish
|
||||
- sensor.speedway
|
||||
- sensor.meijer
|
||||
- sensor.ridis
|
||||
- sensor.marathon_cleveland_avenue
|
||||
- sensor.south_side_shell
|
||||
- sensor.east_side_shell
|
||||
- sensor.shell_ottawa_avenue
|
||||
- sensor.current_lights_on
|
||||
- binary_sensor.early_night_mode
|
||||
- input_boolean.give_me_darkness
|
||||
@@ -463,6 +463,13 @@ prometheus:
|
||||
- binary_sensor.asus_laptop*
|
||||
- sensor.*ashland*
|
||||
- sensor.*kasx*
|
||||
- sensor.*_monitor_type
|
||||
- sensor.*_certificate_expiry
|
||||
- sensor.*_monitored_url
|
||||
- sensor.*_response_time
|
||||
- sensor.*_status
|
||||
- sensor.adguard*
|
||||
- sensor.*response_time*
|
||||
include_entities:
|
||||
- media_player.living_room_tv
|
||||
- media_player.basement_tv
|
||||
@@ -484,18 +491,6 @@ prometheus:
|
||||
- binary_sensor.people_present
|
||||
- weather.iron_nerd_weather_station
|
||||
- weather.ashland_weather_station
|
||||
- sensor.circle_k
|
||||
- sensor.kroger
|
||||
- sensor.kecks
|
||||
- sensor.the_barn
|
||||
- sensor.the_big_fish
|
||||
- sensor.speedway
|
||||
- sensor.meijer
|
||||
- sensor.ridis
|
||||
- sensor.marathon_cleveland_avenue
|
||||
- sensor.south_side_shell
|
||||
- sensor.east_side_shell
|
||||
- sensor.shell_ottawa_avenue
|
||||
- sensor.current_lights_on
|
||||
- binary_sensor.early_night_mode
|
||||
- input_boolean.give_me_darkness
|
||||
|
||||
@@ -90,8 +90,8 @@
|
||||
{% elif state_attr(team,'opponent_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} lost their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}.
|
||||
{% endif %}
|
||||
{% if state_attr(team,'clock') not in ['postponed','Postponed'] %}
|
||||
This brings their record to {{ state_attr(team,'team_record') | replace("-"," and ") }} on the season.
|
||||
{% if state_attr(team,'clock') not in ['postponed','Postponed'] and state_attr(team,'team_record') != None %}
|
||||
This brings their record to {{ state_attr(team,'team_record') | replace("-"," and ") }} on the season.
|
||||
{% endif %}
|
||||
{% elif yday == date %}
|
||||
{% if state_attr(team,'clock') in ['postponed','Postponed'] %}
|
||||
@@ -171,6 +171,15 @@
|
||||
{% if is_state('binary_sensor.minnesota_wild_inhibit','off') %}
|
||||
{{ sports_pregame('sensor.minnesota_wild') }}
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.michigan_wolverines_hockey','off') %}
|
||||
{{ sports_pregame('sensor.michigan_wolverines_hockey') }}
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.minnesota_golden_gophers_hockey','off') %}
|
||||
{{ sports_pregame('sensor.minnesota_golden_gophers_hockey') }}
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.minnesota_state_mavericks_hockey','off') %}
|
||||
{{ sports_pregame('sensor.minnesota_state_mavericks_hockey') }}
|
||||
{% endif %}
|
||||
{% elif time == 'main' %}
|
||||
{% if is_state('binary_sensor.michigan_wolverines_inhibit','off') %}
|
||||
{{ sports_main('sensor.michigan_wolverines') }}
|
||||
@@ -199,6 +208,15 @@
|
||||
{% if is_state('binary_sensor.minnesota_wild_inhibit','off') %}
|
||||
{{ sports_main('sensor.minnesota_wild') }}
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.michigan_wolverines_hockey','off') %}
|
||||
{{ sports_main('sensor.michigan_wolverines_hockey') }}
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.minnesota_golden_gophers_hockey','off') %}
|
||||
{{ sports_main('sensor.minnesota_golden_gophers_hockey') }}
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.minnesota_state_mavericks_hockey','off') %}
|
||||
{{ sports_main('sensor.minnesota_state_mavericks_hockey') }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
{{ cleanup(data()) }}
|
||||
|
||||
@@ -109,4 +109,9 @@
|
||||
|
||||
{% macro next_twitch_stream() %}
|
||||
{{ 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 %}
|
||||
@@ -6,7 +6,7 @@
|
||||
{% set time = time|default('day') %}
|
||||
{% if method in ['text','dashboard'] %}
|
||||
{% if type in ['current','full'] %}
|
||||
The current weather is {{ states('weather.iron_nerd_weather_station') | lower }}. It is {{ state_attr('weather.iron_nerd_weather_station','temperature') | round }} degrees outside and feels like {{ states('sensor.home_temperature_feels_like') | round }} degrees.
|
||||
The current weather is {{ states('weather.iron_nerd_weather_station') | lower }}. It is {{ state_attr('weather.iron_nerd_weather_station','temperature') | round }} degrees outside and feels like {{ state_attr('weather.iron_nerd_weather_station','apparent_temperature') | round }} degrees.
|
||||
{% endif %}
|
||||
{% if type in ['forecast','full'] %}
|
||||
{% if 14400 <= ct <= 61200 %}
|
||||
|
||||
@@ -1,39 +1,3 @@
|
||||
sensor.ridis:
|
||||
device_class: monetary
|
||||
|
||||
sensor.kecks:
|
||||
device_class: monetary
|
||||
|
||||
sensor.circle_k:
|
||||
device_class: monetary
|
||||
|
||||
sensor.the_big_fish:
|
||||
device_class: monetary
|
||||
|
||||
sensor.meijer:
|
||||
device_class: monetary
|
||||
|
||||
sensor.south_side_shell:
|
||||
device_class: monetary
|
||||
|
||||
sensor.kroger:
|
||||
device_class: monetary
|
||||
|
||||
sensor.marathon_cleveland_avenue:
|
||||
device_class: monetary
|
||||
|
||||
sensor.speedway:
|
||||
device_class: monetary
|
||||
|
||||
sensor.shell_ottawa_avenue:
|
||||
device_class: monetary
|
||||
|
||||
sensor.the_barn:
|
||||
device_class: monetary
|
||||
|
||||
sensor.east_side_shell:
|
||||
device_class: monetary
|
||||
|
||||
sensor.local_minimum_gas_price:
|
||||
device_class: monetary
|
||||
|
||||
|
||||
@@ -25,91 +25,91 @@ template:
|
||||
state: "{{ states('input_datetime.kallen_fan') != states('input_datetime.kallen_bedtime') }}"
|
||||
- name: Living Room Front Hot
|
||||
unique_id: 8fd9db5e-7883-42f3-8918-e78d52c680c6
|
||||
state: "{{ states('sensor.living_room_front_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.living_room_front_temperature') | float) >= (states('input_number.living_room_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Living Room Front Cold
|
||||
unique_id: 48494ec8-a63f-4244-b619-ff78c44f28e8
|
||||
state: "{{ states('sensor.living_room_front_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.living_room_front_temperature') | float) <= (states('input_number.living_room_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Downstairs Bathroom Hot
|
||||
unique_id: b68adefa-e30e-4454-be21-2743af0f1674
|
||||
state: "{{ states('sensor.downstairs_bathroom_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.downstairs_bathroom_temperature') | float) >= (states('input_number.downstairs_bathroom_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Downstairs Bathroom Cold
|
||||
unique_id: c477a45e-f11c-4af5-87aa-90f006b74ac5
|
||||
state: "{{ states('sensor.downstairs_bathroom_temperature') | float <= 55 }}"
|
||||
state: "{{ (states('sensor.downstairs_bathroom_temperature') | float) <= (states('input_number.downstairs_bathroom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Stairwell Bottom Hot
|
||||
unique_id: ebd09e52-c31e-442e-8767-a8083b99c66c
|
||||
state: "{{ states('sensor.stairwell_bottom_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.stairwell_bottom_temperature') | float) >= (states('input_number.stairwell_bottom_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Stairwell Bottom Cold
|
||||
unique_id: 3f8b5340-0fb4-489f-8df7-c2843316009f
|
||||
state: "{{ states('sensor.stairwell_bottom_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.stairwell_bottom_temperature') | float) <= (states('input_number.stairwell_bottom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Upstairs Bathroom Hot
|
||||
unique_id: 86394cea-9499-4595-85d1-2a026e8e2b27
|
||||
state: "{{ states('sensor.upstairs_bathroom_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.upstairs_bathroom_temperature') | float) >= (states('input_number.upstairs_bathroom_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Upstairs Bathroom Cold
|
||||
unique_id: 5d720614-90f0-4e69-8086-8bc0f47a78eb
|
||||
state: "{{ states('sensor.upstairs_bathroom_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.upstairs_bathroom_temperature') | float) <= (states('input_number.upstairs_bathroom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Emma Bedroom Hot
|
||||
unique_id: b453e23a-f3c9-4fab-bf82-d08af05e8a94
|
||||
state: "{{ states('sensor.emma_bedroom_temperature') | float >= 75 }}"
|
||||
state: "{{ (states('sensor.emma_bedroom_temperature') | float) >= (states('input_number.emma_bedroom_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Emma Bedroom Cold
|
||||
unique_id: 41174b21-a46f-4deb-8dbc-61a356b33db1
|
||||
state: "{{ states('sensor.emma_bedroom_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.emma_bedroom_temperature') | float) <= (states('input_number.emma_bedroom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Basement Studio Hot
|
||||
unique_id: 2c5626e9-9a3f-43b0-9595-3a15c9434b0f
|
||||
state: "{{ states('sensor.basement_studio_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.basement_studio_temperature') | float) >= (states('input_number.basement_studio_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Basement Studio Cold
|
||||
unique_id: 985f4f8c-2297-4d32-ace7-818534c5e4b5
|
||||
state: "{{ states('sensor.basement_studio_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.basement_studio_temperature') | float) <= (states('input_number.basement_studio_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Living Room Back Hot
|
||||
unique_id: 9a2be430-9322-492b-a0c1-bb0f034979f5
|
||||
state: "{{ states('sensor.living_room_back_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.living_room_back_temperature') | float) >= (states('input_number.living_room_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Living Room Back Cold
|
||||
unique_id: 524c2ad1-1f44-42c0-b06b-28a40d439832
|
||||
state: "{{ states('sensor.living_room_back_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.living_room_back_temperature') | float) <= (states('input_number.living_room_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Mud Room Hot
|
||||
unique_id: 920fa45e-8c6e-4518-9aea-5141e15a4350
|
||||
state: "{{ states('sensor.mud_room_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.mud_room_temperature') | float) >= (states('input_number.mud_room_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Mud Room Cold
|
||||
unique_id: 459998f5-7011-4e96-aa8a-076591a1b1ce
|
||||
state: "{{ states('sensor.mud_room_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.mud_room_temperature') | float) <= (states('input_number.mud_room_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Stairwell Top Hot
|
||||
unique_id: 22d325db-e213-4d7b-81a8-a7ba3798e751
|
||||
state: "{{ states('sensor.stairwell_top_temperature') | float >= 80 }}"
|
||||
state: "{{ (states('sensor.stairwell_top_temperature') | float) >= (states('input_number.stairwell_top_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Stairwell Top Cold
|
||||
unique_id: 925bf2d5-cfa6-4508-98c4-b7ad185ddbc1
|
||||
state: "{{ states('sensor.stairwell_top_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.stairwell_top_temperature') | float) <= (states('input_number.stairwell_top_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Kallen Bedroom Hot
|
||||
unique_id: e47ba60f-e9b2-48d4-899b-f16fdb146e75
|
||||
state: "{{ states('sensor.kallen_bedroom_temperature') | float >= 75 }}"
|
||||
state: "{{ (states('sensor.kallen_bedroom_temperature') | float) >= (states('input_number.kallen_bedroom_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Kallen Bedroom Cold
|
||||
unique_id: 69115462-c159-4f5b-b047-ff8a2600fa7d
|
||||
state: "{{ states('sensor.kallen_bedroom_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.kallen_bedroom_temperature') | float) <= (states('input_number.kallen_bedroom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: Master Bedroom Hot
|
||||
unique_id: ca7c96e5-ea83-4698-a43c-16e09af6d6fd
|
||||
state: "{{ states('sensor.master_bedroom_temperature') | float >= 75 }}"
|
||||
state: "{{ (states('sensor.master_bedroom_temperature') | float) >= (states('input_number.master_bedroom_hot_threshold') | float) }}"
|
||||
device_class: heat
|
||||
- name: Master Bedroom Cold
|
||||
unique_id: 1577cb2c-234d-41c8-a12e-5111a77df958
|
||||
state: "{{ states('sensor.master_bedroom_temperature') | float <= 60 }}"
|
||||
state: "{{ (states('sensor.master_bedroom_temperature') | float) <= (states('input_number.master_bedroom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- sensor:
|
||||
- name: "Master Bedroom Target Temp"
|
||||
@@ -324,6 +324,13 @@ input_number:
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
master_bedroom_mode_switch_threshold:
|
||||
name: Master Bedroom Mode Switch Threshold
|
||||
min: 60
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
emma_bedroom_daytime_temp:
|
||||
name: Emma Bedroom Daytime Temp
|
||||
min: 65
|
||||
@@ -345,6 +352,20 @@ input_number:
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
emma_bedroom_heater_run_threshold:
|
||||
name: Emma Bedroom Heater Run Threshold
|
||||
min: 40
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
emma_bedroom_heater_shutoff_threshold:
|
||||
name: Emma Bedroom Heater Shutoff Threshold
|
||||
min: 40
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
emma_bedroom_aircon_run_threshold:
|
||||
name: Emma Bedroom Aircon Run Threshold
|
||||
min: 40
|
||||
@@ -373,6 +394,13 @@ input_number:
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
emma_bedroom_mode_switch_threshold:
|
||||
name: Emma Bedroom Mode Switch Threshold
|
||||
min: 60
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
kallen_fan_threshold:
|
||||
name: Kallen Fan Threshold
|
||||
min: 40
|
||||
@@ -429,6 +457,146 @@ input_number:
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
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:
|
||||
- platform: generic_thermostat
|
||||
|
||||
@@ -1,375 +1,304 @@
|
||||
weather:
|
||||
- platform: template
|
||||
name: "Iron Nerd Weather Station"
|
||||
condition_template: >
|
||||
{% set stations = [
|
||||
states.weather.home_tempest_forecast_home,
|
||||
states.weather.home,
|
||||
states.weather.kdfi_daynight,
|
||||
states.weather.iron_nerd_studios,
|
||||
states.weather.openweathermap
|
||||
] %}
|
||||
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) }}
|
||||
temperature_template: >
|
||||
{% set temps = [
|
||||
states.sensor.home_tempest_temperature,
|
||||
states.sensor.home_temperature,
|
||||
states.sensor.kdfi_temperature,
|
||||
states.sensor.pirateweather_temperature,
|
||||
states.sensor.openweathermap_temperature
|
||||
] %}
|
||||
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
temperature_unit: °F
|
||||
dew_point_template: >
|
||||
{% set dewpoints = [
|
||||
states.sensor.home_tempest_dew_point,
|
||||
states.sensor.home_dew_point,
|
||||
states.sensor.kdfi_dew_point,
|
||||
states.sensor.pirateweather_dew_point,
|
||||
states.sensor.openweathermap_dew_point
|
||||
] %}
|
||||
{% set sensor = dewpoints | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
apparent_temperature_template: >
|
||||
{% set apparent_temps = [
|
||||
states.sensor.home_tempest_feels_like,
|
||||
states.sensor.home_temperature_feels_like,
|
||||
states.sensor.pirateweather_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 %}
|
||||
{{ states(sensor) | float }}
|
||||
humidity_template: >
|
||||
{% set humidity = [
|
||||
states.sensor.home_tempest_humidity,
|
||||
states.sensor.home_relative_humidity,
|
||||
states.sensor.kdfi_relative_humidity,
|
||||
states.sensor.pirateweather_humidity,
|
||||
states.sensor.openweathermap_humidity
|
||||
] %}
|
||||
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
forecast_daily_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_daily_weather_forecast.attributes,
|
||||
states.weather.kdfi_daynight.attributes,
|
||||
states.sensor.pirateweather_daily_weather_forecast.attributes,
|
||||
states.sensor.openweathermap_daily_weather_forecast.attributes,
|
||||
states.weather.weatherapi_stratton_ave.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
forecast_hourly_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_hourly_weather_forecast.attributes,
|
||||
states.sensor.pirateweather_hourly_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
pressure_template: >
|
||||
{% set pressures = [
|
||||
states.sensor.home_tempest_local_slp,
|
||||
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
||||
states.sensor.home_pressure,
|
||||
states.sensor.kdfi_barometric_pressure
|
||||
] %}
|
||||
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
pressure_unit: inHg
|
||||
wind_speed_template: >
|
||||
{% set windspeeds = [
|
||||
states.sensor.home_wind_speed,
|
||||
states.sensor.pirateweather_wind_speed,
|
||||
states.sensor.kdfi_wind_speed,
|
||||
states.sensor.openweathermap_wind_speed
|
||||
] %}
|
||||
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
wind_speed_unit: mph
|
||||
wind_bearing_template: >
|
||||
{% set windbearings = [
|
||||
states.sensor.home_wind_direction_degrees,
|
||||
states.sensor.pirateweather_wind_bearing,
|
||||
states.sensor.openweathermap_wind_bearing
|
||||
] %}
|
||||
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_template: >
|
||||
{% set vis = [
|
||||
states.sensor.kdfi_visibility,
|
||||
states.sensor.pirateweather_visibility,
|
||||
states.sensor.openweathermap_visibility
|
||||
] %}
|
||||
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_unit: mi
|
||||
attribution_template: "Daily weather data from Iron Nerd's custom weather station template"
|
||||
ozone_template: >
|
||||
{% set ozones = [
|
||||
states.sensor.pirateweather_ozone
|
||||
] %}
|
||||
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
precipitation_unit: in
|
||||
|
||||
- platform: template
|
||||
name: "Iron Nerd Weather Station - Hourly"
|
||||
condition_template: >
|
||||
{% set stations = [
|
||||
states.weather.home_tempest_forecast_home,
|
||||
states.weather.home,
|
||||
states.weather.tomorrow_io_stratton_ave_hourly,
|
||||
states.weather.iron_nerd_studios,
|
||||
states.weather.kdfi_daynight,
|
||||
states.weather.openweathermap
|
||||
] %}
|
||||
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) }}
|
||||
temperature_template: >
|
||||
{% set temps = [
|
||||
states.sensor.home_tempest_temperature,
|
||||
states.sensor.home_temperature,
|
||||
states.sensor.kdfi_temperature,
|
||||
states.sensor.pirateweather_temperature,
|
||||
states.sensor.openweathermap_temperature
|
||||
] %}
|
||||
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
temperature_unit: °F
|
||||
dew_point_template: >
|
||||
{% set dewpoints = [
|
||||
states.sensor.home_tempest_dew_point,
|
||||
states.sensor.home_dew_point,
|
||||
states.sensor.kdfi_dew_point,
|
||||
states.sensor.pirateweather_dew_point,
|
||||
states.sensor.openweathermap_dew_point
|
||||
] %}
|
||||
{% set sensor = dewpoints | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
apparent_temperature_template: >
|
||||
{% set apparent_temps = [
|
||||
states.sensor.home_tempest_feels_like,
|
||||
states.sensor.home_temperature_feels_like,
|
||||
states.sensor.pirateweather_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 %}
|
||||
{{ states(sensor) | float }}
|
||||
humidity_template: >
|
||||
{% set humidity = [
|
||||
states.sensor.home_tempest_humidity,
|
||||
states.sensor.home_relative_humidity,
|
||||
states.sensor.kdfi_relative_humidity,
|
||||
states.sensor.pirateweather_humidity,
|
||||
states.sensor.openweathermap_humidity
|
||||
] %}
|
||||
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
forecast_hourly_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_hourly_weather_forecast.attributes,
|
||||
states.weather.tomorrow_io_stratton_ave_hourly.attributes,
|
||||
states.sensor.pirateweather_hourly_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
pressure_template: >
|
||||
{% set pressures = [
|
||||
states.sensor.home_tempest_local_slp,
|
||||
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
||||
states.sensor.home_pressure,
|
||||
states.sensor.kdfi_barometric_pressure
|
||||
] %}
|
||||
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
pressure_unit: inHg
|
||||
wind_speed_template: >
|
||||
{% set windspeeds = [
|
||||
states.sensor.home_wind_speed,
|
||||
states.sensor.pirateweather_wind_speed,
|
||||
states.sensor.kdfi_wind_speed,
|
||||
states.sensor.openweathermap_wind_speed
|
||||
] %}
|
||||
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
wind_speed_unit: mph
|
||||
wind_bearing_template: >
|
||||
{% set windbearings = [
|
||||
states.sensor.home_wind_direction_degrees,
|
||||
states.sensor.pirateweather_wind_bearing,
|
||||
states.sensor.openweathermap_wind_bearing
|
||||
] %}
|
||||
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_template: >
|
||||
{% set vis = [
|
||||
states.sensor.kdfi_visibility,
|
||||
states.sensor.pirateweather_visibility,
|
||||
states.sensor.openweathermap_visibility
|
||||
] %}
|
||||
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_unit: mi
|
||||
attribution_template: "Hourly weather data from Iron Nerd's custom weather station template"
|
||||
ozone_template: >
|
||||
{% set ozones = [
|
||||
states.sensor.pirateweather_ozone
|
||||
] %}
|
||||
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
precipitation_unit: in
|
||||
|
||||
- platform: template
|
||||
name: "Ashland Weather Station"
|
||||
condition_template: >
|
||||
{% set stations = [
|
||||
states.weather.ashland,
|
||||
states.weather.kasx,
|
||||
states.weather.pirateweather_ashland
|
||||
] %}
|
||||
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) }}
|
||||
temperature_template: >
|
||||
{% set temps = [
|
||||
states.sensor.ashland_temperature,
|
||||
states.sensor.kasx_temperature,
|
||||
states.sensor.pirateweather_ashland_temperature
|
||||
] %}
|
||||
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
temperature_unit: °F
|
||||
humidity_template: >
|
||||
{% set humidity = [
|
||||
states.sensor.ashland_relative_humidity,
|
||||
states.sensor.kasx_relative_humidity,
|
||||
states.sensor.pirateweather_ashland_humidity
|
||||
] %}
|
||||
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
forecast_daily_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_ashland_daily_weather_forecast.attributes,
|
||||
states.weather.kasx.attributes,
|
||||
states.sensor.pirateweather_ashland_daily_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
forecast_hourly_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_ashland_hourly_weather_forecast,
|
||||
states.sensor.pirateweather_ashland_hourly_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
pressure_template: >
|
||||
{% set pressures = [
|
||||
states.sensor.ashland_pressure,
|
||||
states.sensor.kasx_barometric_pressure
|
||||
] %}
|
||||
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
pressure_unit: inHg
|
||||
wind_speed_template: >
|
||||
{% set windspeeds = [
|
||||
states.sensor.ashland_wind_speed,
|
||||
states.sensor.pirateweather_ashland_wind_speed,
|
||||
states.sensor.kasx_wind_speed
|
||||
] %}
|
||||
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
wind_speed_unit: mph
|
||||
wind_bearing_template: >
|
||||
{% set windbearings = [
|
||||
states.sensor.ashland_wind_direction_degrees,
|
||||
states.sensor.pirateweather_ashland_wind_bearing
|
||||
] %}
|
||||
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_template: >
|
||||
{% set vis = [
|
||||
states.sensor.kasx_visibility,
|
||||
states.sensor.pirateweather_ashland_visibility
|
||||
] %}
|
||||
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_unit: mi
|
||||
attribution_template: "Daily weather data from Iron Nerd's custom weather station template"
|
||||
ozone_template: >
|
||||
{% set ozones = [
|
||||
states.sensor.pirateweather_ashland_ozone
|
||||
] %}
|
||||
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
precipitation_unit: in
|
||||
|
||||
# binary_sensor:
|
||||
# - platform: bayesian
|
||||
# unique_id: 3e9640d9-57a0-4495-8731-e64b34774065
|
||||
# name: Raining Bayesian
|
||||
# prior: 0.17
|
||||
# probability_threshold: 0.6
|
||||
# observations:
|
||||
# - entity_id: "sensor.pirateweather_precip"
|
||||
# prob_given_true: 0.13
|
||||
# prob_given_false: 0.005
|
||||
# platform: "state"
|
||||
# to_state: "rain"
|
||||
# - entity_id: "sensor.openweathermap_precipitation_kind"
|
||||
# prob_given_true: 0.75
|
||||
# prob_given_false: 0.005
|
||||
# platform: "state"
|
||||
# to_state: "rain"
|
||||
# - entity_id: "sensor.tomorrow_io_stratton_ave_precipitation_type"
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: 0.2
|
||||
# platform: "state"
|
||||
# to_state: "rain"
|
||||
# - entity_id: "sensor.stratton_ave_precipitation"
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: 0.2
|
||||
# platform: "numeric_state"
|
||||
# above: 0
|
||||
|
||||
sensor:
|
||||
- platform: weatheralerts
|
||||
state: OH
|
||||
zone: 4
|
||||
county: 39
|
||||
|
||||
# - platform: statistics
|
||||
# unique_id: b5996cb4-b715-4fc9-b3d8-98fc12c2b7dd
|
||||
# name: Outside Temp Average
|
||||
# entity_id: sensor.pirateweather_temperature
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: 6192c95a-8fd1-4ba0-87de-d06fdc071d6b
|
||||
# name: Apparent Temp Average
|
||||
# entity_id: sensor.stratton_ave_apparent_temperature
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: 7b9c269c-40b7-4255-a051-2d1b7a6af017
|
||||
# name: Wind Speed Average
|
||||
# entity_id: sensor.pirateweather_wind_speed
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: b43d053f-aafb-4237-a742-a2ca841498fa
|
||||
# name: Visibility Stats Average
|
||||
# entity_id: sensor.kdfi_visibility
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: b1206da2-fa00-4f7d-9af4-f2cf6794bd24
|
||||
# name: Humidity Stats Average
|
||||
# entity_id: sensor.pirateweather_humidity
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
|
||||
template:
|
||||
- weather:
|
||||
- name: "Iron Nerd Weather Station"
|
||||
condition_template: >
|
||||
{% set stations = [
|
||||
states.weather.home_tempest_forecast_home,
|
||||
states.weather.home,
|
||||
states.weather.kdfi_daynight,
|
||||
states.weather.iron_nerd_studios,
|
||||
states.weather.openweathermap
|
||||
] %}
|
||||
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) }}
|
||||
temperature_template: >
|
||||
{% set temps = [
|
||||
states.sensor.home_tempest_temperature,
|
||||
states.sensor.home_temperature,
|
||||
states.sensor.kdfi_temperature,
|
||||
states.sensor.pirateweather_temperature,
|
||||
states.sensor.openweathermap_temperature
|
||||
] %}
|
||||
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
temperature_unit: °F
|
||||
dew_point_template: >
|
||||
{% set dewpoints = [
|
||||
states.sensor.home_tempest_dew_point,
|
||||
states.sensor.home_dew_point,
|
||||
states.sensor.kdfi_dew_point,
|
||||
states.sensor.pirateweather_dew_point,
|
||||
states.sensor.openweathermap_dew_point
|
||||
] %}
|
||||
{% set sensor = dewpoints | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
apparent_temperature_template: >
|
||||
{% set apparent_temps = [
|
||||
states.sensor.pirateweather_apparent_temperature,
|
||||
states.sensor.home_temperature_feels_like,
|
||||
states.sensor.home_tempest_feels_like,
|
||||
states.sensor.stratton_ave_apparent_temperature
|
||||
] %}
|
||||
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
humidity_template: >
|
||||
{% set humidity = [
|
||||
states.sensor.home_tempest_humidity,
|
||||
states.sensor.home_relative_humidity,
|
||||
states.sensor.kdfi_relative_humidity,
|
||||
states.sensor.pirateweather_humidity,
|
||||
states.sensor.openweathermap_humidity
|
||||
] %}
|
||||
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
forecast_daily_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_daily_weather_forecast.attributes,
|
||||
states.weather.kdfi_daynight.attributes,
|
||||
states.sensor.pirateweather_daily_weather_forecast.attributes,
|
||||
states.sensor.openweathermap_daily_weather_forecast.attributes,
|
||||
states.weather.weatherapi_stratton_ave.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
forecast_hourly_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_hourly_weather_forecast.attributes,
|
||||
states.sensor.pirateweather_hourly_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
pressure_template: >
|
||||
{% set pressures = [
|
||||
states.sensor.home_tempest_local_slp,
|
||||
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
||||
states.sensor.home_pressure,
|
||||
states.sensor.kdfi_barometric_pressure
|
||||
] %}
|
||||
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
pressure_unit: inHg
|
||||
wind_speed_template: >
|
||||
{% set windspeeds = [
|
||||
states.sensor.home_wind_speed,
|
||||
states.sensor.pirateweather_wind_speed,
|
||||
states.sensor.kdfi_wind_speed,
|
||||
states.sensor.openweathermap_wind_speed
|
||||
] %}
|
||||
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
wind_speed_unit: mph
|
||||
wind_bearing_template: >
|
||||
{% set windbearings = [
|
||||
states.sensor.home_wind_direction_degrees,
|
||||
states.sensor.pirateweather_wind_bearing,
|
||||
states.sensor.openweathermap_wind_bearing
|
||||
] %}
|
||||
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_template: >
|
||||
{% set vis = [
|
||||
states.sensor.kdfi_visibility,
|
||||
states.sensor.pirateweather_visibility,
|
||||
states.sensor.openweathermap_visibility
|
||||
] %}
|
||||
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_unit: mi
|
||||
attribution_template: "Daily weather data from Iron Nerd's custom weather station template"
|
||||
ozone_template: >
|
||||
{% set ozones = [
|
||||
states.sensor.pirateweather_ozone
|
||||
] %}
|
||||
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
precipitation_unit: in
|
||||
|
||||
- weather:
|
||||
- name: "Iron Nerd Weather Station - Hourly"
|
||||
condition_template: >
|
||||
{% set stations = [
|
||||
states.weather.home_tempest_forecast_home,
|
||||
states.weather.home,
|
||||
states.weather.tomorrow_io_stratton_ave_hourly,
|
||||
states.weather.iron_nerd_studios,
|
||||
states.weather.kdfi_daynight,
|
||||
states.weather.openweathermap
|
||||
] %}
|
||||
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) }}
|
||||
temperature_template: >
|
||||
{% set temps = [
|
||||
states.sensor.home_tempest_temperature,
|
||||
states.sensor.home_temperature,
|
||||
states.sensor.kdfi_temperature,
|
||||
states.sensor.pirateweather_temperature,
|
||||
states.sensor.openweathermap_temperature
|
||||
] %}
|
||||
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
temperature_unit: °F
|
||||
dew_point_template: >
|
||||
{% set dewpoints = [
|
||||
states.sensor.home_tempest_dew_point,
|
||||
states.sensor.home_dew_point,
|
||||
states.sensor.kdfi_dew_point,
|
||||
states.sensor.pirateweather_dew_point,
|
||||
states.sensor.openweathermap_dew_point
|
||||
] %}
|
||||
{% set sensor = dewpoints | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
apparent_temperature_template: >
|
||||
{% set apparent_temps = [
|
||||
states.sensor.pirateweather_apparent_temperature,
|
||||
states.sensor.home_temperature_feels_like,
|
||||
states.sensor.home_tempest_feels_like,
|
||||
states.sensor.stratton_ave_apparent_temperature
|
||||
] %}
|
||||
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
humidity_template: >
|
||||
{% set humidity = [
|
||||
states.sensor.home_tempest_humidity,
|
||||
states.sensor.home_relative_humidity,
|
||||
states.sensor.kdfi_relative_humidity,
|
||||
states.sensor.pirateweather_humidity,
|
||||
states.sensor.openweathermap_humidity
|
||||
] %}
|
||||
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
forecast_hourly_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_hourly_weather_forecast.attributes,
|
||||
states.weather.tomorrow_io_stratton_ave_hourly.attributes,
|
||||
states.sensor.pirateweather_hourly_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
pressure_template: >
|
||||
{% set pressures = [
|
||||
states.sensor.home_tempest_local_slp,
|
||||
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
||||
states.sensor.home_pressure,
|
||||
states.sensor.kdfi_barometric_pressure
|
||||
] %}
|
||||
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
pressure_unit: inHg
|
||||
wind_speed_template: >
|
||||
{% set windspeeds = [
|
||||
states.sensor.home_wind_speed,
|
||||
states.sensor.pirateweather_wind_speed,
|
||||
states.sensor.kdfi_wind_speed,
|
||||
states.sensor.openweathermap_wind_speed
|
||||
] %}
|
||||
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
wind_speed_unit: mph
|
||||
wind_bearing_template: >
|
||||
{% set windbearings = [
|
||||
states.sensor.home_wind_direction_degrees,
|
||||
states.sensor.pirateweather_wind_bearing,
|
||||
states.sensor.openweathermap_wind_bearing
|
||||
] %}
|
||||
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_template: >
|
||||
{% set vis = [
|
||||
states.sensor.kdfi_visibility,
|
||||
states.sensor.pirateweather_visibility,
|
||||
states.sensor.openweathermap_visibility
|
||||
] %}
|
||||
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_unit: mi
|
||||
attribution_template: "Hourly weather data from Iron Nerd's custom weather station template"
|
||||
ozone_template: >
|
||||
{% set ozones = [
|
||||
states.sensor.pirateweather_ozone
|
||||
] %}
|
||||
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
precipitation_unit: in
|
||||
|
||||
- weather:
|
||||
- name: "Ashland Weather Station"
|
||||
condition_template: >
|
||||
{% set stations = [
|
||||
states.weather.ashland,
|
||||
states.weather.kasx,
|
||||
states.weather.pirateweather_ashland
|
||||
] %}
|
||||
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) }}
|
||||
temperature_template: >
|
||||
{% set temps = [
|
||||
states.sensor.ashland_temperature,
|
||||
states.sensor.kasx_temperature,
|
||||
states.sensor.pirateweather_ashland_temperature
|
||||
] %}
|
||||
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
temperature_unit: °F
|
||||
humidity_template: >
|
||||
{% set humidity = [
|
||||
states.sensor.ashland_relative_humidity,
|
||||
states.sensor.kasx_relative_humidity,
|
||||
states.sensor.pirateweather_ashland_humidity
|
||||
] %}
|
||||
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
forecast_daily_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_ashland_daily_weather_forecast.attributes,
|
||||
states.weather.kasx.attributes,
|
||||
states.sensor.pirateweather_ashland_daily_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
forecast_hourly_template: >
|
||||
{% set forecasts = [
|
||||
states.sensor.weather_com_ashland_hourly_weather_forecast,
|
||||
states.sensor.pirateweather_ashland_hourly_weather_forecast.attributes
|
||||
] %}
|
||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||
pressure_template: >
|
||||
{% set pressures = [
|
||||
states.sensor.ashland_pressure,
|
||||
states.sensor.kasx_barometric_pressure
|
||||
] %}
|
||||
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
pressure_unit: inHg
|
||||
wind_speed_template: >
|
||||
{% set windspeeds = [
|
||||
states.sensor.ashland_wind_speed,
|
||||
states.sensor.pirateweather_ashland_wind_speed,
|
||||
states.sensor.kasx_wind_speed
|
||||
] %}
|
||||
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
wind_speed_unit: mph
|
||||
wind_bearing_template: >
|
||||
{% set windbearings = [
|
||||
states.sensor.ashland_wind_direction_degrees,
|
||||
states.sensor.pirateweather_ashland_wind_bearing
|
||||
] %}
|
||||
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_template: >
|
||||
{% set vis = [
|
||||
states.sensor.kasx_visibility,
|
||||
states.sensor.pirateweather_ashland_visibility
|
||||
] %}
|
||||
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
visibility_unit: mi
|
||||
attribution_template: "Daily weather data from Iron Nerd's custom weather station template"
|
||||
ozone_template: >
|
||||
{% set ozones = [
|
||||
states.sensor.pirateweather_ashland_ozone
|
||||
] %}
|
||||
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(result) | float }}
|
||||
precipitation_unit: in
|
||||
|
||||
- trigger:
|
||||
- platform: time_pattern
|
||||
minutes: /15
|
||||
@@ -1613,6 +1542,76 @@ template:
|
||||
hail_stroke: "{{ state_attr('sensor.spc_outlook_day_1','hail_stroke') }}"
|
||||
icon: mdi:weather-hail
|
||||
|
||||
sensor:
|
||||
- platform: weatheralerts
|
||||
state: OH
|
||||
zone: 4
|
||||
county: 39
|
||||
|
||||
# - platform: statistics
|
||||
# unique_id: b5996cb4-b715-4fc9-b3d8-98fc12c2b7dd
|
||||
# name: Outside Temp Average
|
||||
# entity_id: sensor.pirateweather_temperature
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: 6192c95a-8fd1-4ba0-87de-d06fdc071d6b
|
||||
# name: Apparent Temp Average
|
||||
# entity_id: sensor.stratton_ave_apparent_temperature
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: 7b9c269c-40b7-4255-a051-2d1b7a6af017
|
||||
# name: Wind Speed Average
|
||||
# entity_id: sensor.pirateweather_wind_speed
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: b43d053f-aafb-4237-a742-a2ca841498fa
|
||||
# name: Visibility Stats Average
|
||||
# entity_id: sensor.kdfi_visibility
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
# - platform: statistics
|
||||
# unique_id: b1206da2-fa00-4f7d-9af4-f2cf6794bd24
|
||||
# name: Humidity Stats Average
|
||||
# entity_id: sensor.pirateweather_humidity
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
|
||||
# binary_sensor:
|
||||
# - platform: bayesian
|
||||
# unique_id: 3e9640d9-57a0-4495-8731-e64b34774065
|
||||
# name: Raining Bayesian
|
||||
# prior: 0.17
|
||||
# probability_threshold: 0.6
|
||||
# observations:
|
||||
# - entity_id: "sensor.pirateweather_precip"
|
||||
# prob_given_true: 0.13
|
||||
# prob_given_false: 0.005
|
||||
# platform: "state"
|
||||
# to_state: "rain"
|
||||
# - entity_id: "sensor.openweathermap_precipitation_kind"
|
||||
# prob_given_true: 0.75
|
||||
# prob_given_false: 0.005
|
||||
# platform: "state"
|
||||
# to_state: "rain"
|
||||
# - entity_id: "sensor.tomorrow_io_stratton_ave_precipitation_type"
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: 0.2
|
||||
# platform: "state"
|
||||
# to_state: "rain"
|
||||
# - entity_id: "sensor.stratton_ave_precipitation"
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: 0.2
|
||||
# platform: "numeric_state"
|
||||
# above: 0
|
||||
|
||||
input_boolean:
|
||||
freeze_warning:
|
||||
name: Freeze Warning
|
||||
|
||||
@@ -48,8 +48,8 @@ input_datetime:
|
||||
has_date: false
|
||||
has_time: true
|
||||
icon: mdi:fan-auto
|
||||
emma_bedroom_cooling:
|
||||
name: Emma Bedroom Cooling
|
||||
emma_bedroom_climate:
|
||||
name: Emma Bedroom Climate
|
||||
has_date: false
|
||||
has_time: true
|
||||
icon: mdi:fan-auto
|
||||
@@ -899,3 +899,6 @@ script:
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.white_noise_emma_bedroom
|
||||
- service: climate.turn_off
|
||||
target:
|
||||
entity_id: climate.emma_bedroom_vtherm
|
||||
|
||||
@@ -65,7 +65,7 @@ sensor:
|
||||
hours: 24
|
||||
- platform: history_stats
|
||||
name: Emma A/C Compressor Time
|
||||
entity_id: binary_sensor.emma_aircon_compressor
|
||||
entity_id: binary_sensor.emma_bedroom_aircon_compressor
|
||||
state: 'on'
|
||||
type: time
|
||||
end: '{{ now() }}'
|
||||
@@ -73,7 +73,7 @@ sensor:
|
||||
hours: 24
|
||||
- platform: history_stats
|
||||
name: Emma A/C Fan Time
|
||||
entity_id: binary_sensor.emma_aircon_fan
|
||||
entity_id: binary_sensor.emma_bedroom_aircon_fan
|
||||
state: 'on'
|
||||
type: time
|
||||
end: '{{ now() }}'
|
||||
|
||||
@@ -38,12 +38,13 @@ conversation:
|
||||
alexa:
|
||||
|
||||
powercalc:
|
||||
force_update_frequency: 00:01:00
|
||||
discovery:
|
||||
enabled: true
|
||||
energy_update_interval: 60
|
||||
power_sensor_naming: "{} Power Sensor"
|
||||
power_sensor_friendly_naming: "{} Power Sensor"
|
||||
energy_sensor_naming: "{} Energy Sensor"
|
||||
energy_sensor_friendly_naming: "{} Energy Sensor"
|
||||
enable_autodiscovery: true
|
||||
create_energy_sensors: true
|
||||
create_utility_meters: true
|
||||
create_domain_groups:
|
||||
@@ -58,6 +59,4 @@ pyscript:
|
||||
|
||||
animated_scenes:
|
||||
|
||||
grad_vol:
|
||||
|
||||
battery_notes:
|
||||
grad_vol:
|
||||
@@ -1,306 +0,0 @@
|
||||
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 }'
|
||||
@@ -1,328 +0,0 @@
|
||||
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 }'
|
||||
@@ -90,17 +90,33 @@ input_datetime:
|
||||
sensor:
|
||||
- platform: rest
|
||||
name: Kallen Tasks
|
||||
unique_id: 77045665-9222-4a6b-851f-6d9b50110107
|
||||
method: GET
|
||||
resource: 'https://api.todoist.com/sync/v9/projects/get_data'
|
||||
resource: 'https://api.todoist.com/api/v1/projects/2285969005/full'
|
||||
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:
|
||||
project_id: 2285969005
|
||||
headers:
|
||||
Authorization: !secret todoist_api_token
|
||||
value_template: '{{value_json[''project''][''id'']}}'
|
||||
Accept: application/json
|
||||
value_template: '{{ value_json.results | length }}'
|
||||
json_attributes:
|
||||
- project
|
||||
- items
|
||||
scan_interval: 30
|
||||
- results
|
||||
scan_interval: 60
|
||||
|
||||
automation:
|
||||
- id: 94b57d79-efe0-4f34-b5e3-baeaa5eea9f4
|
||||
|
||||
@@ -268,7 +268,7 @@ script:
|
||||
- light.living_room_overhead
|
||||
- service: input_text.set_value
|
||||
target:
|
||||
entity_id: input_text.living_room_studio_selected_scene
|
||||
entity_id: input_text.living_room_selected_scene
|
||||
data:
|
||||
value: Alert
|
||||
# Define variable for restoration of the current scene if the backup is not needed
|
||||
|
||||
@@ -79,6 +79,9 @@ input_boolean:
|
||||
tv_notifications:
|
||||
name: TV Notifications
|
||||
icon: mdi:message
|
||||
pc_notifications:
|
||||
name: PC Notifications
|
||||
icon: mdi:desktop-classic
|
||||
|
||||
input_select:
|
||||
select_phones:
|
||||
@@ -103,6 +106,19 @@ input_select:
|
||||
- All
|
||||
initial: None
|
||||
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:
|
||||
name: Notification Priority Level
|
||||
options:
|
||||
@@ -352,6 +368,27 @@ notify:
|
||||
services:
|
||||
- service: alexa_media_living_room_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:
|
||||
volume_reset:
|
||||
@@ -805,6 +842,131 @@ script:
|
||||
message: '{{ message }}'
|
||||
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:
|
||||
alias: 'Text Alert Image'
|
||||
sequence:
|
||||
|
||||
@@ -124,6 +124,8 @@ template:
|
||||
state: >
|
||||
{% if is_state('binary_sensor.basement_studio_motion','on') %}
|
||||
true
|
||||
{% elif is_state('input_boolean.recliner_mode','on') %}
|
||||
true
|
||||
{% elif is_state('sensor.xia_desktop_current_username','tm24f') %}
|
||||
false
|
||||
{% elif is_state('binary_sensor.tony_desktop_on','off') and
|
||||
|
||||
@@ -710,33 +710,51 @@ script:
|
||||
data:
|
||||
option: >
|
||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||
{% set run_threshold = states('input_number.emma_bedroom_aircon_run_threshold') | int %}
|
||||
{% set mode_threshold = states('input_number.emma_bedroom_aircon_mode_threshold') | int %}
|
||||
{% if is_state('input_boolean.emma_bedroom_aircon_installed','off') %}
|
||||
{% set aircon_run_threshold = states('input_number.emma_bedroom_aircon_run_threshold') | int %}
|
||||
{% set aircon_mode_threshold = states('input_number.emma_bedroom_aircon_mode_threshold') | int %}
|
||||
{% set heater_run_threshold = states('input_number.emma_bedroom_heater_run_threshold') | int %}
|
||||
{% if is_state('input_boolean.emma_bedroom_aircon_installed','off') and is_state('input_boolean.emma_bedroom_heater_installed','off') %}
|
||||
White Noise
|
||||
{% elif low >= run_threshold %}
|
||||
{% if low >= mode_threshold %}
|
||||
{% elif low >= aircon_run_threshold and is_state('input_boolean.emma_bedroom_aircon_installed','on') %}
|
||||
{% if low >= aircon_mode_threshold %}
|
||||
AC
|
||||
{% else %}
|
||||
Fan
|
||||
{% endif %}
|
||||
{% elif low < heater_run_threshold and is_state('input_boolean.emma_bedroom_heater_installed','on') %}
|
||||
Heat
|
||||
{% else %}
|
||||
White Noise
|
||||
{% endif %}
|
||||
- delay:
|
||||
milliseconds: 500
|
||||
- service: input_datetime.set_datetime
|
||||
target:
|
||||
entity_id: input_datetime.emma_bedroom_cooling
|
||||
entity_id: input_datetime.emma_bedroom_climate
|
||||
data:
|
||||
time: >
|
||||
{% set high = states('sensor.todays_high_temp') | int %}
|
||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||
{% set bedtime = state_attr('input_datetime.emma_bedtime','timestamp') | int %}
|
||||
{% if is_state('input_boolean.hot_day','on') %}
|
||||
{{ (bedtime - 5400) | timestamp_custom('%H:%M',false) }}
|
||||
{% elif high >= 80 or low >= 60 %}
|
||||
{{ (bedtime - 3600) | timestamp_custom('%H:%M',false) }}
|
||||
{% set schedmode = states('input_select.scheduled_climate_mode_emma_bedroom') %}
|
||||
{% if schedmode in ['AC','Fan'] and is_state('input_boolean.emma_bedroom_aircon_installed','on') %}
|
||||
{% if is_state('input_boolean.hot_day','on') %}
|
||||
{{ (bedtime - 5400) | timestamp_custom('%H:%M',false) }}
|
||||
{% elif high >= 80 or low >= 60 %}
|
||||
{{ (bedtime - 3600) | timestamp_custom('%H:%M',false) }}
|
||||
{% else %}
|
||||
{{ (bedtime - 1800) | timestamp_custom('%H:%M',false) }}
|
||||
{% endif %}
|
||||
{% elif schedmode == 'Heat' and is_state('input_boolean.emma_bedroom_heater_installed','on') %}
|
||||
{% if low <= 20 %}
|
||||
{{ (bedtime - 5400) | timestamp_custom('%H:%M',false) }}
|
||||
{% elif low <= 32 %}
|
||||
{{ (bedtime - 3600) | timestamp_custom('%H:%M',false) }}
|
||||
{% else %}
|
||||
{{ (bedtime - 1800) | timestamp_custom('%H:%M',false) }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ (bedtime - 1800) | timestamp_custom('%H:%M',false) }}
|
||||
{{ bedtime | timestamp_custom('%H:%M',false) }}
|
||||
{% endif %}
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
|
||||
@@ -190,51 +190,51 @@ template:
|
||||
{% set dow = now().strftime('%A') %}
|
||||
{% if week == 'First Menu' %}
|
||||
{% if dow == 'Monday' %}
|
||||
Popcorn chicken, mashed potatoes, corn, apples, corn bread, and milk.
|
||||
Chicken tenders, au gratin potatoes, corn, mixed fruit, cornbread, and milk.
|
||||
{% elif dow == 'Tuesday' %}
|
||||
Beef taco or taco salad, refried beans, spanish rice, peaches, and milk.
|
||||
Beef or chicken, taco or salad, refried beans, rice, apple, and milk.
|
||||
{% elif dow == 'Wednesday' %}
|
||||
Pulled pork, steamed broccoli, tomatoes, mixed fruit, and milk.
|
||||
Hot dog, french fries, celery, peaches, and milk.
|
||||
{% elif dow == 'Thursday' %}
|
||||
Beef Stroganoff, green beans, carrots, fresh fruit, bread, and milk.
|
||||
Mac and cheese, Cheez-Its, side salad, tomatoes, pears, and milk.
|
||||
{% elif dow == 'Friday' %}
|
||||
Optionally, Papa Johns Pizza. Otherwise, hamburger, spinach salad, oven potatoes, applesauce, and milk.
|
||||
Corndog, steamed broccoli, carrots, applesauce, and milk.
|
||||
{% endif %}
|
||||
{% elif week == 'Second Menu' %}
|
||||
{% if dow == 'Monday' %}
|
||||
Pizza, spinach salad, tomatoes, fruit, and milk.
|
||||
Popcorn chicken, mashed potatoes, corn, grapes, cornbread, and milk.
|
||||
{% elif dow == 'Tuesday' %}
|
||||
Lasagna, garlic bread, steamed cauliflower, celery, apple crisp, and milk.
|
||||
BBQ pork, baked beans, cucumbers, mixed fruit, and milk.
|
||||
{% elif dow == 'Wednesday' %}
|
||||
Chicken patty, oven potatoes, broccoli, pears, and milk.
|
||||
Bosco sticks, french fries, tomatoes, banana, and milk.
|
||||
{% elif dow == 'Thursday' %}
|
||||
Turkey and noodles, mashed potatoes, green beans, peaches, breadstick, and milk.
|
||||
{% elif down == 'Friday' %}
|
||||
Optionally, Papa Johns Pizza. Otherwise, hot dog with chili sauce, carrots, baked beans, mixed fruit, and milk.
|
||||
Teriyaki beef and broccoli ramen, stir fry, egg roll, strawberry cup, and milk.
|
||||
{% elif dow == 'Friday' %}
|
||||
Hamburger, fries, carrots, applesauce, and milk.
|
||||
{% endif %}
|
||||
{% elif week == 'Third Menu' %}
|
||||
{% if dow == 'Monday' %}
|
||||
Popcorn chicken, au gratin potatoes, corn, mixed fruit, corn bread, milk.
|
||||
Nachoes, carrots, apple, and milk.
|
||||
{% elif dow == 'Tuesday' %}
|
||||
Beef taco or taco salad, refried beans, spanish rice, peaches, and milk.
|
||||
Chicken patty, au gratin potatoes, cauliflower, peaches, and milk.
|
||||
{% elif dow == 'Wednesday' %}
|
||||
Hamburger, oven potatoes, celery, applesauce, and milk.
|
||||
Pizza Crunchers, side salad, steamed broccoli, mixed fruit, and milk.
|
||||
{% elif dow == 'Thursday' %}
|
||||
Mac and cheese, steamed broccoli, tomatoes, pears, bread, and milk.
|
||||
Chicken teriyaki bowl, black beans, corn, apple crisp, egg roll, and milk.
|
||||
{% elif dow == 'Friday' %}
|
||||
Optionally, Papa Johns Pizza. Otherwise, sloppy joe, carrots, spinach salad, fruit, and milk.
|
||||
Hot dog, french fries, cherry tomatoes, strawberry cups, and milk.
|
||||
{% endif %}
|
||||
{% elif week == 'Fourth Menu' %}
|
||||
{% if dow == 'Monday' %}
|
||||
Toasted cheese, tomato soup, mixed vegetables, fresh fruit, treat, and milk.
|
||||
French toast or egg omelet, sausage, tomatoes, hash browns, oranges, and milk.
|
||||
{% elif dow == 'Tuesday' %}
|
||||
Omelet or french toast, sausage, hash browns, tomatoes, orange, and milk.
|
||||
Orange chicken with vegetable rice, egg roll, fortune cookie, apple crisp, and milk.
|
||||
{% elif dow == 'Wednesday' %}
|
||||
Bosco sticks with pizza sauce, carrots, oven potatoes, peach crisp, and milk.
|
||||
Hamburger, fries, steamed carrots, banana, and milk.
|
||||
{% elif dow == 'Thursday' %}
|
||||
Spaghetti, broccoli, green beans, fresh fruit, breadstick, and milk.
|
||||
Chicken and noodles, mashed potatoes, green beans, peach cups, breadstick, and milk.
|
||||
{% elif dow == 'Friday' %}
|
||||
Optionally, Papa Johns Pizza. Otherwise, hot dog, baked beans, cauliflower, applesauce, and milk.
|
||||
Mozzarella sticks, marinara, side salad, broccoli, mixed fruit, and milk.
|
||||
{% endif %}
|
||||
{% else %}
|
||||
No menu for the current day.
|
||||
|
||||
@@ -142,6 +142,36 @@ template:
|
||||
state: >
|
||||
{% from 'sports.jinja' import sports_today %}
|
||||
{{ sports_today('sensor.minnesota_wild') }}
|
||||
- name: Michigan Wolverines Hockey Inhibit
|
||||
unique_id: 8ecd46d5-64c2-49f5-bc8d-d88593273d92
|
||||
state: >
|
||||
{% from 'sports.jinja' import sports_inhibit %}
|
||||
{{ sports_inhibit('sensor.michigan_wolverines_hockey') }}
|
||||
- name: Michigan Wolverines Hockey Event Today
|
||||
unique_id: 551fdae5-e18c-4117-b3ba-df864068b13d
|
||||
state: >
|
||||
{% from 'sports.jinja' import sports_today %}
|
||||
{{ sports_today('sensor.michigan_wolverines_hockey') }}
|
||||
- name: Minnesota Golden Gophers Hockey Inhibit
|
||||
unique_id: 87653f3a-203c-4dbf-87e8-70bcacf6eb22
|
||||
state: >
|
||||
{% 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') }}
|
||||
- name: Minnesota Golden Gophers Hockey Event Today
|
||||
unique_id: 1f4ff7eb-cbc9-4c81-a5c9-6523b5fb52ff
|
||||
state: >
|
||||
{% from 'sports.jinja' import sports_today %}
|
||||
{{ sports_today('sensor.minnesota_golden_gophers_hockey') }}
|
||||
- name: Minnesota State Mavericks Hockey Inhibit
|
||||
unique_id: bd15870d-bccb-4c52-9690-473c31bb4090
|
||||
state: >
|
||||
{% 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') }}
|
||||
- name: Minnesota State Mavericks Hockey Event Today
|
||||
unique_id: e403be15-3ff2-47b1-8398-70f8ccb65026
|
||||
state: >
|
||||
{% from 'sports.jinja' import sports_today %}
|
||||
{{ sports_today('sensor.minnesota_state_mavericks_hockey') }}
|
||||
|
||||
intent_script:
|
||||
SportsScore:
|
||||
|
||||
@@ -2,6 +2,9 @@ input_boolean:
|
||||
server_maintenance:
|
||||
name: Server Maintenance
|
||||
icon: mdi:wrench-clock
|
||||
recorder:
|
||||
name: Recorder
|
||||
icon: mdi:database
|
||||
|
||||
input_select:
|
||||
log_level:
|
||||
@@ -92,10 +95,14 @@ template:
|
||||
power_usage: "{{ states('sensor.basement_server_power') | int }}W"
|
||||
- name: Tony Desktop Idle
|
||||
unique_id: f0ace986-a874-4fb0-ad29-8f3ebf95d8cc
|
||||
state: "{{ (states('sensor.tony_asus_system_idle_time') | int) > (states('input_number.basement_computers_idle_time') | int * 60) }}"
|
||||
state: >
|
||||
{% 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
|
||||
unique_id: 1933c638-c94b-468e-bb7a-c1c5b36c3651
|
||||
state: "{{ (states('sensor.xia_desktop_system_idle_time') | int) > (states('input_number.first_floor_computers_idle_time') | int * 60) }}"
|
||||
state: >
|
||||
{% 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
|
||||
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) }}"
|
||||
|
||||
176
packages/tina_desktop.yaml
Normal file
176
packages/tina_desktop.yaml
Normal file
@@ -0,0 +1,176 @@
|
||||
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 }'
|
||||
@@ -25,24 +25,36 @@ input_boolean:
|
||||
tony_ibuprofen_active:
|
||||
name: Tony Ibuprofen Active
|
||||
icon: mdi:medication
|
||||
tony_ibuprofen_reminder:
|
||||
name: Tony Ibuprofen Reminder
|
||||
icon: mdi:medication
|
||||
tony_ibuprofen_taken:
|
||||
name: Tony Ibuprofen Taken
|
||||
icon: mdi:medication
|
||||
tony_tylenol_active:
|
||||
name: Tony Tylenol Active
|
||||
icon: mdi:medication
|
||||
tony_tylenol_reminder:
|
||||
name: Tony Tylenol Reminder
|
||||
icon: mdi:medication
|
||||
tony_tylenol_taken:
|
||||
name: Tony Tylenol Taken
|
||||
icon: mdi:medication
|
||||
tony_custom_meds_tracker_p1:
|
||||
name: Tony Custom Meds Tracker P1
|
||||
icon: mdi:medication
|
||||
tony_custom_meds_reminder_p1:
|
||||
name: Tony Custom Meds Reminder P1
|
||||
icon: mdi:medication
|
||||
tony_custom_meds_taken_p1:
|
||||
name: Tony Custom Meds Taken P1
|
||||
icon: mdi:medication
|
||||
tony_custom_meds_tracker_p2:
|
||||
name: Tony Custom Meds Tracker P2
|
||||
icon: mdi:medication
|
||||
tony_custom_meds_reminder_p2:
|
||||
name: Tony Custom Meds Reminder P2
|
||||
icon: mdi:medication
|
||||
tony_custom_meds_taken_p2:
|
||||
name: Tony Custom Meds Taken P2
|
||||
icon: mdi:medication
|
||||
@@ -177,17 +189,32 @@ input_select:
|
||||
sensor:
|
||||
- platform: rest
|
||||
name: Home Tech
|
||||
unique_id: 83f76f0c-d49c-407f-ad99-57d5896dac93
|
||||
method: GET
|
||||
resource: 'https://api.todoist.com/sync/v9/projects/get_data'
|
||||
resource: 'https://api.todoist.com/api/v1/projects/2285967948/full'
|
||||
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:
|
||||
project_id: 2285967948
|
||||
headers:
|
||||
Authorization: !secret todoist_api_token
|
||||
value_template: '{{value_json[''project''][''id'']}}'
|
||||
Accept: application/json
|
||||
value_template: '{{ value_json.results | length }}'
|
||||
json_attributes:
|
||||
- project
|
||||
- items
|
||||
scan_interval: 30
|
||||
- results
|
||||
scan_interval: 60
|
||||
|
||||
# template:
|
||||
# - binary_sensor:
|
||||
|
||||
212
packages/tony_desktop.yaml
Normal file
212
packages/tony_desktop.yaml
Normal file
@@ -0,0 +1,212 @@
|
||||
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 }'
|
||||
@@ -47,7 +47,6 @@ ## HACS Components
|
||||
- [PyScript](https://github.com/custom-components/pyscript)
|
||||
- [Hass Animated Scenes](https://github.com/chazzu/hass-animated-scenes)
|
||||
- [Jokes](https://github.com/LaggAt/ha-jokes)
|
||||
- [Uptime Kuma](https://github.com/meichthys/uptime_kuma)
|
||||
- [Jellyfin](https://github.com/koying/jellyfin_ha)
|
||||
- [Sonoff LAN](https://github.com/AlexxIT/SonoffLAN)
|
||||
- [Powercalc](https://github.com/bramstroker/homeassistant-powercalc)
|
||||
@@ -58,6 +57,7 @@ ## HACS Components
|
||||
- [Union Pacific Big Boy Tracker](https://github.com/jheizer/up_4014_tracker)
|
||||
- [WeatherFlow Forecast](https://github.com/briis/weatherflow_forecast)
|
||||
- [NWS SPC Outlook](https://github.com/sedward5/nws_spc_outlook)
|
||||
- [Music Assistant Queue Actions](https://github.com/droans/mass_queue)
|
||||
|
||||
</details>
|
||||
|
||||
@@ -113,6 +113,8 @@ ## HACS Lovelace Cards
|
||||
- [Comfortable Environment Card](https://github.com/argaar/comfortable-environment-card)
|
||||
- [Versatile Thermostat UI Card](https://github.com/jmcollin78/versatile-thermostat-ui-card)
|
||||
- [Gauge Card Pro](https://github.com/benjamin-dcs/gauge-card-pro)
|
||||
- [AdGuard Card](https://github.com/homeassistant-extras/adguard-card)
|
||||
- [Music Assistant Player Card](https://github.com/droans/mass-player-card)
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
773
scripts.yaml
773
scripts.yaml
File diff suppressed because it is too large
Load Diff
@@ -450,17 +450,66 @@
|
||||
unit_of_measurement: ''
|
||||
icon: mdi:close-network-outline
|
||||
state: >
|
||||
{% set uptimekuma = states.binary_sensor |
|
||||
selectattr('entity_id','in',integration_entities('uptime_kuma')) |
|
||||
selectattr('state','eq','off') |
|
||||
{% set uptimekuma = states.sensor |
|
||||
selectattr('entity_id','in',integration_entities('192.168.1.111')) |
|
||||
selectattr('state','eq','down') |
|
||||
map(attribute='attributes.friendly_name') |
|
||||
list %}
|
||||
{{ uptimekuma | count | int }}
|
||||
attributes:
|
||||
services: >
|
||||
{% set uptimekuma = states.binary_sensor |
|
||||
selectattr('entity_id','in',integration_entities('uptime_kuma')) |
|
||||
{% set uptimekuma = states.sensor |
|
||||
selectattr('entity_id','in',integration_entities('192.168.1.111')) |
|
||||
selectattr('state','eq','down') |
|
||||
map(attribute='attributes.friendly_name') |
|
||||
map('regex_replace', ' Status$', '') |
|
||||
list %}
|
||||
{{ uptimekuma | join(', ') }}
|
||||
- name: Media Server Viewer Health
|
||||
unique_id: 51154ade-255e-4dcd-9b89-66910fcc1331
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:movie
|
||||
state: >
|
||||
{% set total = states.binary_sensor |
|
||||
selectattr('entity_id','in',label_entities('media_server')) |
|
||||
selectattr('entity_id','in',label_entities('viewer')) |
|
||||
list | count | int %}
|
||||
{% set up = states.binary_sensor |
|
||||
selectattr('entity_id','in',label_entities('media_server')) |
|
||||
selectattr('entity_id','in',label_entities('viewer')) |
|
||||
selectattr('state','eq','on') |
|
||||
list | count | int %}
|
||||
{{ ((up / total) * 100) | round(0) }}
|
||||
attributes:
|
||||
services_down: >
|
||||
{% set down = states.binary_sensor |
|
||||
selectattr('entity_id','in',label_entities('media_server')) |
|
||||
selectattr('entity_id','in',label_entities('viewer')) |
|
||||
selectattr('state','eq','off') |
|
||||
map(attribute='attributes.friendly_name') |
|
||||
list %}
|
||||
{{ uptimekuma | join(', ') }}
|
||||
{{ down | join(', ') }}
|
||||
- name: Media Server Downloaders Health
|
||||
unique_id: f27867fe-700f-45bc-9e6b-8b1ee74cb724
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:tray-arrow-down
|
||||
state: >
|
||||
{% set total = states.binary_sensor |
|
||||
selectattr('entity_id','in',label_entities('media_server')) |
|
||||
selectattr('entity_id','in',label_entities('downloader')) |
|
||||
list | count | int %}
|
||||
{% set up = states.binary_sensor |
|
||||
selectattr('entity_id','in',label_entities('media_server')) |
|
||||
selectattr('entity_id','in',label_entities('downloader')) |
|
||||
selectattr('state','eq','on') |
|
||||
list | count | int %}
|
||||
{{ ((up / total) * 100) | round(0) }}
|
||||
attributes:
|
||||
services_down: >
|
||||
{% set down = states.binary_sensor |
|
||||
selectattr('entity_id','in',label_entities('media_server')) |
|
||||
selectattr('entity_id','in',label_entities('downloader')) |
|
||||
selectattr('state','eq','off') |
|
||||
map(attribute='attributes.friendly_name') |
|
||||
list %}
|
||||
{{ down | join(', ') }}
|
||||
@@ -71,13 +71,13 @@
|
||||
{% else %}
|
||||
"Collin's room will be left alone, as he is spending the night elsewhere tonight. "
|
||||
{% endif %}
|
||||
{% if states('input_select.scheduled_climate_mode_emma_bedroom_aircon') != 'N/A' %}
|
||||
{% 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_cooling') }}. "
|
||||
{% 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_cooling') }}. "
|
||||
{% 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_cooling') }}. "
|
||||
{% if states('input_select.scheduled_climate_mode_emma_bedroom') != 'N/A' %}
|
||||
{% if is_state('input_select.scheduled_climate_mode_emma_bedroom','AC') and is_state('input_boolean.hot_day','on') %}
|
||||
"Today was a hot day, so Emma's bedroom air conditioner will start cooling a bit earlier tonight at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
||||
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom','AC') %}
|
||||
"Emma's bedroom air conditioner will start cooling at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
||||
{% elif is_state('input_select.scheduled_climate_mode_emma_bedroom','Fan') %}
|
||||
"Emma's bedroom air conditioner will activate fan only mode at {{ input_datetime_read('input_datetime.emma_bedroom_climate') }}. "
|
||||
{% 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') }}. "
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user