Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f00696aedb | |||
| 8cdb71df74 | |||
|
d687a34f37
|
|||
|
ac3d69823f
|
|||
|
6e93e773a6
|
|||
|
76834f24d2
|
|||
|
418db1cfdb
|
|||
|
6ed9196207
|
|||
|
ed299cfb29
|
|||
|
8d3fcc3f8d
|
|||
|
4213954670
|
|||
|
9ba93ccfe1
|
|||
|
7a490f2b4d
|
|||
|
a3fe6e269f
|
|||
|
edb1728c02
|
|||
|
81f74cc30d
|
|||
|
391faf170a
|
|||
|
c278db1864
|
|||
|
9ce0012265
|
|||
|
dda8a88fff
|
|||
|
2649af5a7f
|
|||
|
dbfdc9e6ff
|
+1
-1
@@ -1 +1 @@
|
||||
2026.4.0
|
||||
2026.5.4
|
||||
+97
-2
@@ -374,8 +374,6 @@
|
||||
action: script.tony_desktop_refresh
|
||||
- data: {}
|
||||
action: script.tina_desktop_refresh
|
||||
- data: {}
|
||||
action: script.asus_laptop_refresh
|
||||
- data: {}
|
||||
action: script.kallen_desktop_refresh
|
||||
- data: {}
|
||||
@@ -6602,3 +6600,100 @@
|
||||
path: github.com/weatheralerts_persistent_notification_original.yaml
|
||||
input:
|
||||
sensor: sensor.weatheralerts_defiance_ohz004_ohc039
|
||||
- id: '1775709997448'
|
||||
alias: Basement Heat Disallow
|
||||
description: Turn off the heater when the Heat Allowed toggle is switched off
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- input_boolean.basement_studio_heat_allowed
|
||||
from:
|
||||
- 'on'
|
||||
to:
|
||||
- 'off'
|
||||
conditions: []
|
||||
actions:
|
||||
- action: climate.turn_off
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: climate.basement_studio_vtherm
|
||||
data: {}
|
||||
mode: restart
|
||||
- id: '1775731411839'
|
||||
alias: Emma Bedroom Mode Switch
|
||||
description: For switching modes when the temperature goes from one extreme at night
|
||||
to the other during the day
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: input_datetime.emma_bedroom_mode_switch
|
||||
id: switch-time
|
||||
alias: Switch Time
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.emma_bedroom_mode_switch
|
||||
state:
|
||||
- 'on'
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: input_select.emma_bedroom_mode_switch
|
||||
state:
|
||||
- To Aircon
|
||||
alias: To Aircon
|
||||
sequence:
|
||||
- action: input_boolean.turn_on
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: input_boolean.emma_bedroom_aircon_installed
|
||||
data: {}
|
||||
alias: Enable aircon, disable heater
|
||||
- action: input_number.set_value
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: input_number.emma_bedroom_bedtime_temp
|
||||
data:
|
||||
value: 68
|
||||
alias: Set bedtime temp
|
||||
- action: input_select.select_option
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: input_select.scheduled_climate_mode_emma_bedroom
|
||||
data:
|
||||
option: AC
|
||||
alias: Set scheduled mode to AC
|
||||
- action: switch.turn_on
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: switch.emma_bedroom_climate_watchdog
|
||||
data: {}
|
||||
alias: Turn on climate watchdog
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 5
|
||||
milliseconds: 0
|
||||
- action: button.press
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: button.emma_bedroom_bedtime_mode
|
||||
data: {}
|
||||
alias: Activate bedtime mode to apply new settings
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 1
|
||||
seconds: 0
|
||||
milliseconds: 0
|
||||
- action: input_boolean.turn_off
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: input_boolean.white_noise_emma_bedroom
|
||||
data: {}
|
||||
alias: Turn off white noise
|
||||
- action: input_boolean.turn_off
|
||||
metadata: {}
|
||||
target:
|
||||
entity_id: input_boolean.emma_bedroom_mode_switch
|
||||
data: {}
|
||||
alias: Turn off mode switch
|
||||
mode: restart
|
||||
|
||||
@@ -130,6 +130,7 @@ recorder:
|
||||
- sensor.*airpods_info
|
||||
- sensor.*airpods_pro_info
|
||||
- sensor.*response_time*
|
||||
- sensor.system_monitor*
|
||||
entities:
|
||||
- sensor.avg_ping
|
||||
- sensor.max_ping
|
||||
@@ -292,6 +293,7 @@ influxdb:
|
||||
- sensor.adguard*
|
||||
- sensor.*response_time*
|
||||
- sensor.weatheralerts*
|
||||
- sensor.system_monitor*
|
||||
entities:
|
||||
- media_player.living_room_tv
|
||||
- media_player.basement_tv
|
||||
@@ -473,6 +475,7 @@ prometheus:
|
||||
- sensor.adguard*
|
||||
- sensor.*response_time*
|
||||
- sensor.weatheralerts*
|
||||
- sensor.system_monitor*
|
||||
include_entities:
|
||||
- media_player.living_room_tv
|
||||
- media_player.basement_tv
|
||||
|
||||
@@ -162,6 +162,22 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
'language': 'da',
|
||||
'plural_form': 'english',
|
||||
'phrases': {
|
||||
'year': ['år', 'år', 'år'],
|
||||
'month': ['mnd', 'måned', 'måneder'],
|
||||
'week': ['uge', 'uge', 'uger'],
|
||||
'day': ['dag', 'dag', 'dage'],
|
||||
'hour': ['t.', 'time', 'timer'],
|
||||
'minute': ['min.', 'minut', 'minutter'],
|
||||
'second': ['sek.', 'sekund', 'sekunder'],
|
||||
'millisecond': ['ms.', 'millisekund', 'millisekunder'],
|
||||
'combine': 'og',
|
||||
'error': 'Ugyldig dato',
|
||||
}
|
||||
},
|
||||
{
|
||||
'language': 'dk',
|
||||
'plural_form': 'english',
|
||||
'phrases': {
|
||||
@@ -170,7 +186,7 @@
|
||||
'week': ['uge', 'uge', 'uger'],
|
||||
'day': ['dag', 'dag', 'dage'],
|
||||
'hour': ['t.', 'time', 'timer'],
|
||||
'minute': ['min.', 'minut', 'minuter'],
|
||||
'minute': ['min.', 'minut', 'minutter'],
|
||||
'second': ['sek.', 'sekund', 'sekunder'],
|
||||
'millisecond': ['ms.', 'millisekund', 'millisekunder'],
|
||||
'combine': 'og',
|
||||
@@ -236,7 +252,7 @@
|
||||
'hour': ['ч', 'час', 'часа', 'часов'],
|
||||
'minute': ['м', 'минута', 'минуты', 'минут'],
|
||||
'second': ['с', 'секунда', 'секунды', 'секунд'],
|
||||
'millisecond': ['мс', 'миллисекунда', 'миллисекунды', 'миллисекунд'],
|
||||
'millisecond': ['мс', 'милисекунда', 'милисекунды', 'милисекунд'],
|
||||
'combine': 'и',
|
||||
'error': 'Неверная дата',
|
||||
}
|
||||
@@ -337,22 +353,6 @@
|
||||
'error': 'Érvénytelen dátum',
|
||||
}
|
||||
},
|
||||
{
|
||||
'language': 'tr',
|
||||
'plural_form': 'english',
|
||||
'phrases': {
|
||||
'year': ['yıl', 'yıl', 'yıl'],
|
||||
'month': ['ay', 'ay', 'ay'],
|
||||
'week': ['hf', 'hafta', 'hafta'],
|
||||
'day': ['gün', 'gün', 'gün'],
|
||||
'hour': ['sa', 'saat', 'saat'],
|
||||
'minute': ['dk', 'dakika', 'dakika'],
|
||||
'second': ['sn', 'saniye', 'saniye'],
|
||||
'millisecond': ['ms', 'milisaniye', 'milisaniye'],
|
||||
'combine': 've',
|
||||
'error': 'Geçersiz tarih',
|
||||
}
|
||||
},
|
||||
] -%}
|
||||
|
||||
{# macro to convert the abbreviated input for the not_use and always_show lists to the full time part names #}
|
||||
@@ -374,8 +374,33 @@
|
||||
macro to split a timedelta in years, months, weeks, days, hours, minutes, seconds and milliseconds
|
||||
used by the relative time plus macro, set up as a seperate macro so it can be reused
|
||||
#}
|
||||
{%- macro time_split(date, parts=8, compare_date=now(), not_use=[], always_show=['all'], time=true, round_mode='floor') -%}
|
||||
{%- macro time_split(date, parts=8, compare_date=now(), not_use=[], always_show=['all'], time=true, round_mode='floor', duration=false, duration_unit='s') -%}
|
||||
{#- set defaults for input if not entered #}
|
||||
{%- if date in states | map(attribute='entity_id') -%}
|
||||
{%- if date | has_value and is_state_attr(date, 'device_class', 'duration') -%}
|
||||
{%- set duration = true -%}
|
||||
{%- set duration_unit = state_attr(date, 'unit_of_measurement') -%}
|
||||
{%- set date = states(date) -%}
|
||||
{%- elif date is match('input_datetime') and not state_attr(date, 'has_date') -%}
|
||||
{%- set date = today_at(states(date)) -%}
|
||||
{%- else -%}
|
||||
{%- set date = states(date) -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- if duration and date | is_number -%}
|
||||
{%- set conversion_mapper =
|
||||
{
|
||||
'd': 3600 * 24,
|
||||
'h': 3600,
|
||||
'min': 60,
|
||||
's': 1,
|
||||
'ms': 1/1000,
|
||||
'μs': 1/1000000
|
||||
}
|
||||
-%}
|
||||
{%- set sec = date | float * conversion_mapper[duration_unit] | default(1) -%}
|
||||
{%- set date = now() + timedelta(seconds=sec) -%}
|
||||
{%- endif -%}
|
||||
{%- set date = date if date is datetime else date | as_datetime('invalid') -%}
|
||||
{%- set compare_date = compare_date if compare_date is datetime else compare_date | as_datetime('invalid') -%}
|
||||
{%- set time = time | bool(true) -%}
|
||||
@@ -521,7 +546,7 @@
|
||||
{%- else -%} {{- dict(error='No time parts left to output') -}}
|
||||
{%- endif -%} {# 3 #}
|
||||
{%- endif -%} {# 2 #}
|
||||
{%- else -%} {{- dict(error='Invalid date input')-}}
|
||||
{%- else -%} {{- dict(error='Invalid date input') -}}
|
||||
{%- endif -%} {# 1 #}
|
||||
{%- endmacro -%}
|
||||
|
||||
@@ -557,7 +582,7 @@
|
||||
{%- endmacro -%}
|
||||
|
||||
{# macro to output a timedelta in a readable format #}
|
||||
{%- macro relative_time_plus(date, parts=1, abbr=false, language='en', compare_date=now(), not_use=['millisecond'], always_show=[], time=true, round_mode='floor') -%}
|
||||
{%- macro relative_time_plus(date, parts=1, abbr=false, language='en', compare_date=now(), not_use=['millisecond'], always_show=[], time=true, round_mode='floor', duration=false, duration_unit='s') -%}
|
||||
{#- select correct phrases bases on language input #}
|
||||
{%- set phrases = _time_period_phrases -%}
|
||||
{%- set languages = phrases | map(attribute='language') | list -%}
|
||||
@@ -566,7 +591,7 @@
|
||||
{%- set plural_form = phrases | selectattr('language', 'eq', language) | map(attribute='plural_form') | list | first -%}
|
||||
{%- set abbr = abbr | bool(false) -%}
|
||||
{# split timedelta #}
|
||||
{%- set time_parts = time_split(date, parts, compare_date, not_use, always_show, time, round_mode) | from_json -%}
|
||||
{%- set time_parts = time_split(date, parts, compare_date, not_use, always_show, time, round_mode, duration, duration_unit) | from_json -%}
|
||||
{# check for error #}
|
||||
{%- if 'error' in time_parts -%}
|
||||
{{- time_parts['error'] -}}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
{% if is_state(team,'PRE') %}
|
||||
{% set date = state_attr(team,'date') | as_timestamp | timestamp_custom('%m-%d') %}
|
||||
{% if date == now().strftime('%m-%d') %}
|
||||
The {{ state_attr(team,'friendly_name') }} will be playing today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} at {{ state_attr(team,'venue') }}.
|
||||
The {{ entity_name(team) }} will be playing today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} at {{ state_attr(team,'venue') }}.
|
||||
{{ sports_str(team,'start') }} is at {{ state_attr(team,'date') | as_timestamp | timestamp_custom('%I:%M %p') }}.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@@ -82,26 +82,26 @@
|
||||
{% set yday = (as_timestamp(now()) - (24*3600)) | timestamp_custom('%m-%d') %}
|
||||
{% if date == now().strftime('%m-%d') %}
|
||||
{% if state_attr(team,'clock') in ['postponed','Postponed'] %}
|
||||
The {{ state_attr(team,'friendly_name') }} had their game postponed today, and it will be played at a later date.
|
||||
The {{ entity_name(team) }} had their game postponed today, and it will be played at a later date.
|
||||
{% elif (state_attr(team,'team_score') | int) == state_attr(team,'opponent_score') | int %}
|
||||
The {{ state_attr(team,'friendly_name') }} tied in their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ entity_name(team) }} tied in their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'team_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} won their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ entity_name(team) }} won their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% 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') }}.
|
||||
The {{ entity_name(team) }} 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'] 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'] %}
|
||||
The {{ state_attr(team,'friendly_name') }} had their game postponed yesterday, and it will be played at a later date.
|
||||
The {{ entity_name(team) }} had their game postponed yesterday, and it will be played at a later date.
|
||||
{% elif (state_attr(team,'team_score') | int) == state_attr(team,'opponent_score') | int %}
|
||||
The {{ state_attr(team,'friendly_name') }} tied in their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ entity_name(team) }} tied in their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'team_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} won their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ entity_name(team) }} won their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'opponent_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} lost their game yesterday 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') }}.
|
||||
The {{ entity_name(team) }} lost their game yesterday 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.
|
||||
@@ -109,11 +109,11 @@
|
||||
{% endif %}
|
||||
{% elif is_state(team,'IN') %}
|
||||
{% if (state_attr(team,'team_score') | int) == (state_attr(team,'opponent_score') | int) %}
|
||||
The {{ state_attr(team,'friendly_name') }} are currently tied in their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }} {{ sports_clock(team) }}.
|
||||
The {{ entity_name(team) }} are currently tied in their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }} {{ sports_clock(team) }}.
|
||||
{% elif (state_attr(team,'team_score') | int) > (state_attr(team,'opponent_score') | int) %}
|
||||
The {{ state_attr(team,'friendly_name') }} are currently winning their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }} {{ sports_clock(team) }}.
|
||||
The {{ entity_name(team) }} are currently winning their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }} {{ sports_clock(team) }}.
|
||||
{% else %}
|
||||
The {{ state_attr(team,'friendly_name') }} are currently losing their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }} {{ sports_clock(team) }}.
|
||||
The {{ entity_name(team) }} are currently losing their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }} {{ sports_clock(team) }}.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
+77
-1
@@ -111,6 +111,43 @@ template:
|
||||
unique_id: 1577cb2c-234d-41c8-a12e-5111a77df958
|
||||
state: "{{ (states('sensor.master_bedroom_temperature') | float) <= (states('input_number.master_bedroom_cold_threshold') | float) }}"
|
||||
device_class: cold
|
||||
- name: "Second Floor Windows Open"
|
||||
unique_id: 5656bf10-ac5b-467e-8cf7-e8331598352d
|
||||
state: >
|
||||
{% set open = states.binary_sensor
|
||||
| selectattr('attributes.device_class','eq','window')
|
||||
| selectattr('entity_id','in',label_entities('window'))
|
||||
| selectattr('entity_id','in',floor_entities('second_floor'))
|
||||
| selectattr('state','eq','on')
|
||||
| list
|
||||
| count %}
|
||||
{{ open > 0 }}
|
||||
attributes:
|
||||
open_windows: >
|
||||
{% set open = states.binary_sensor
|
||||
| selectattr('attributes.device_class','eq','window')
|
||||
| selectattr('entity_id','in',label_entities('window'))
|
||||
| selectattr('entity_id','in',floor_entities('second_floor'))
|
||||
| selectattr('state','eq','on')
|
||||
| list
|
||||
| count %}
|
||||
{{ open }}
|
||||
- name: "Emma Bedroom Climate Inhibit"
|
||||
unique_id: 76f8ff76-2994-46bf-913c-736e97d72c3b
|
||||
state: >
|
||||
{{ is_state('binary_sensor.second_floor_windows_open','on') and is_state('binary_sensor.emma_bedroom_door','on') }}
|
||||
- name: "Master Bedroom Climate Inhibit"
|
||||
unique_id: e529bf0c-7975-477e-a0f8-4a05480674a9
|
||||
state: >
|
||||
{% set open = states.binary_sensor
|
||||
| selectattr('attributes.device_class','eq','window')
|
||||
| selectattr('entity_id','in',label_entities('window'))
|
||||
| selectattr('entity_id','in',area_entities('master_bedroom'))
|
||||
| selectattr('state','eq','on')
|
||||
| list
|
||||
| count %}
|
||||
{% set shower_mode = states('input_boolean.shower_mode') %}
|
||||
{{ (open > 0) and (shower_mode == 'off') }}
|
||||
- sensor:
|
||||
- name: "Master Bedroom Target Temp"
|
||||
unique_id: 2ce31844-b115-42b8-8213-feccf24e236c
|
||||
@@ -243,6 +280,10 @@ input_boolean:
|
||||
name: Emma Bedroom Heater Installed
|
||||
icon: mdi:heating-coil
|
||||
|
||||
emma_bedroom_mode_switch:
|
||||
name: Emma Bedroom Mode Switch
|
||||
icon: mdi:swap-horizontal
|
||||
|
||||
input_select:
|
||||
scheduled_climate_mode_master_bedroom_aircon:
|
||||
name: Scheduled Climate Mode - Master Bedroom Aircon
|
||||
@@ -273,6 +314,13 @@ input_select:
|
||||
- White Noise
|
||||
- N/A
|
||||
icon: mdi:home-thermometer
|
||||
emma_bedroom_mode_switch:
|
||||
name: Emma Bedroom Mode Switch
|
||||
options:
|
||||
- To Aircon
|
||||
- To Heater
|
||||
initial: To Aircon
|
||||
icon: mdi:swap-horizontal
|
||||
|
||||
input_number:
|
||||
master_bedroom_daytime_temp:
|
||||
@@ -401,6 +449,13 @@ input_number:
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
emma_bedroom_auto_mode_threshold:
|
||||
name: Emma Bedroom Auto Mode Threshold
|
||||
min: 40
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer
|
||||
kallen_fan_threshold:
|
||||
name: Kallen Fan Threshold
|
||||
min: 40
|
||||
@@ -597,6 +652,27 @@ input_number:
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:thermometer-chevron-down
|
||||
window_weather_minimum:
|
||||
name: Window Weather Minimum
|
||||
min: 40
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:window-closed
|
||||
window_weather_maximum:
|
||||
name: Window Weather Maximum
|
||||
min: 40
|
||||
max: 80
|
||||
step: 1
|
||||
unit_of_measurement: °F
|
||||
icon: mdi:window-closed
|
||||
|
||||
input_datetime:
|
||||
emma_bedroom_mode_switch:
|
||||
name: Emma Bedroom Mode Switch
|
||||
has_date: false
|
||||
has_time: true
|
||||
icon: mdi:swap-horizontal
|
||||
|
||||
climate:
|
||||
- platform: generic_thermostat
|
||||
@@ -637,4 +713,4 @@ intent_script:
|
||||
data:
|
||||
entity_id: "{{ mode }}"
|
||||
speech:
|
||||
text: "Master bedroom set to {{ mode }}"
|
||||
text: "Master bedroom set to {{ mode }}"
|
||||
|
||||
@@ -36,8 +36,7 @@ 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
|
||||
states.sensor.home_tempest_feels_like
|
||||
] %}
|
||||
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
@@ -150,8 +149,7 @@ 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
|
||||
states.sensor.home_tempest_feels_like
|
||||
] %}
|
||||
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
|
||||
{{ states(sensor) | float }}
|
||||
@@ -625,12 +623,12 @@ template:
|
||||
- name: Heat Index Threshold
|
||||
unique_id: aae2cd89-dde2-4557-923c-b476d1b49b88
|
||||
state: >
|
||||
{% set feelslike = states('sensor.stratton_ave_apparent_temperature') | int %}
|
||||
{% set feelslike = states('sensor.home_tempest_feels_like') | int %}
|
||||
{% set threshold = states('input_number.heat_index_threshold') | int %}
|
||||
{{ feelslike >= threshold }}
|
||||
device_class: heat
|
||||
attributes:
|
||||
current_temp: "{{ states('sensor.stratton_ave_apparent_temperature') | int }}"
|
||||
current_temp: "{{ states('sensor.home_tempest_feels_like') | int }}"
|
||||
threshold: "{{ states('input_number.heat_index_threshold') | int }}"
|
||||
- name: Cold Threshold
|
||||
unique_id: a7c97b91-6d42-433a-a96b-94e39c58d63f
|
||||
@@ -655,7 +653,7 @@ template:
|
||||
- name: Wind Chill Threshold
|
||||
unique_id: c734b642-b85d-465c-b3c3-aadbe4a00dc1
|
||||
state: >
|
||||
{% set feelslike = states('sensor.stratton_ave_apparent_temperature') | int %}
|
||||
{% set feelslike = states('sensor.home_tempest_feels_like') | int %}
|
||||
{% set threshold = states('input_number.wind_chill_threshold') | int %}
|
||||
{{ feelslike <= threshold }}
|
||||
device_class: cold
|
||||
@@ -742,6 +740,25 @@ template:
|
||||
state: "{{ state_attr('binary_sensor.severe_thunderstorm_warning','tornado_possible') }}"
|
||||
device_class: safety
|
||||
icon: "{{ 'mdi:weather-tornado' if this.state == 'on' else 'mdi:close' }}"
|
||||
- name: Window Weather
|
||||
unique_id: 9b119394-cb05-44bb-9c6e-e8d5c882a470
|
||||
state: >
|
||||
{% set minimum_temp = states('input_number.window_weather_minimum') | int %}
|
||||
{% set maximum_temp = states('input_number.window_weather_maximum') | int %}
|
||||
{% set ns = namespace(raining=false) %}
|
||||
{% for entity, dry_state in [
|
||||
('binary_sensor.home_tempest_cloud_binary_sensors_is_raining', 'off'),
|
||||
('sensor.home_tempest_cloud_sensors_precipitation_intensity', 'no_rain'),
|
||||
('sensor.home_tempest_precipitation_type', 'none')
|
||||
] %}
|
||||
{% if states(entity) not in ['unavailable', 'unknown'] %}
|
||||
{% if not is_state(entity, dry_state) %}
|
||||
{% set ns.raining = true %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% set temp = state_attr('weather.iron_nerd_weather_station','temperature') %}
|
||||
{{ (not ns.raining) and (minimum_temp <= temp <= maximum_temp) }}
|
||||
- sensor:
|
||||
# - name: Total Rain Sensors
|
||||
# unique_id: b7c2e709-8f5c-4263-aa1d-fa8280afcddb
|
||||
@@ -1558,7 +1575,7 @@ sensor:
|
||||
# - platform: statistics
|
||||
# unique_id: 6192c95a-8fd1-4ba0-87de-d06fdc071d6b
|
||||
# name: Apparent Temp Average
|
||||
# entity_id: sensor.stratton_ave_apparent_temperature
|
||||
# entity_id: sensor.home_tempest_feels_like
|
||||
# state_characteristic: average_linear
|
||||
# max_age:
|
||||
# days: 7
|
||||
|
||||
@@ -1,306 +0,0 @@
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "ASUS Laptop - GPU Temperature"
|
||||
unique_id: c3015c8d-ebd7-42fb-9b52-49a6ecb55b69
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/temperatures/gpu_core"
|
||||
unit_of_measurement: 'C'
|
||||
icon: mdi:thermometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - CPU Temperature"
|
||||
unique_id: 74b9bc51-0910-4c74-9870-8aa7a2556b70
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/cpu/temperatures/cpu_package"
|
||||
unit_of_measurement: 'C'
|
||||
icon: mdi:thermometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Storage C Temperature"
|
||||
unique_id: fb629ac3-5360-41db-b01f-357aec81bfe7
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/storages/samsung_mznty128hdhp-00000/temperatue"
|
||||
unit_of_measurement: 'C'
|
||||
icon: mdi:thermometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Storage D Temperature"
|
||||
unique_id: 0d24052d-9ba9-4c3d-af11-2d4467437357
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/storages/hgst_hts721010a9e630/temperatue"
|
||||
unit_of_measurement: 'C'
|
||||
icon: mdi:thermometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Memory Usage"
|
||||
unique_id: e30e6644-3a42-4b56-94a5-e9c0096a8858
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/load/memory"
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Virtual Memory Usage"
|
||||
unique_id: dfff214e-5bcc-414e-b00a-8d6861679eb5
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/load/virtual_memory"
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU Core Load"
|
||||
unique_id: 4484205b-1e04-4365-b25e-e4a01076f360
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_core"
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:speedometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU VRAM Usage"
|
||||
unique_id: 53cf8537-617b-45ea-a127-6f6b9155da73
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_memory"
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU Video Engine Load"
|
||||
unique_id: 2884c6c9-a337-4aa1-a06e-e641abff31de
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_video_engine"
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:speedometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU Memory Controller Load"
|
||||
unique_id: 52ac486e-7788-46a5-ace5-18e6e5bf14f3
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_memory_controller"
|
||||
unit_of_measurement: '%'
|
||||
icon: mdi:speedometer
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU Memory Total"
|
||||
unique_id: e9bf0b89-ba65-40e1-9960-66f13f9a783f
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/data/gpu_memory_total"
|
||||
unit_of_measurement: 'MB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU Memory Free"
|
||||
unique_id: 93df12e0-0ddc-496d-b84f-38ae5e98ded4
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/data/gpu_memory_free"
|
||||
unit_of_measurement: 'MB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - GPU Memory Used"
|
||||
unique_id: 27451394-529c-414d-b5e5-c0ab00531eb8
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/data/gpu_memory_used"
|
||||
unit_of_measurement: 'MB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Memory Used (GB)"
|
||||
unique_id: 322daf24-a2d4-4404-abde-1d2cfa6d8b44
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/memory_used"
|
||||
unit_of_measurement: 'GB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Memory Available (GB)"
|
||||
unique_id: 9112abfe-335f-4f97-9dc5-c1f82d767ff4
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/memory_available"
|
||||
unit_of_measurement: 'GB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Virtual Memory Used (GB)"
|
||||
unique_id: 863af510-a677-4e92-82ab-e5f4c9e6ae22
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/virtual_memory_used"
|
||||
unit_of_measurement: 'GB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
- name: "ASUS Laptop - Virtual Memory Available (GB)"
|
||||
unique_id: 55c14b4a-f483-4f64-95c9-94507aacd313
|
||||
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/virtual_memory_available"
|
||||
unit_of_measurement: 'GB'
|
||||
icon: mdi:memory
|
||||
value_template: "{{ value }}"
|
||||
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
|
||||
payload_available: "ON"
|
||||
payload_not_available: "OFF"
|
||||
qos: 1
|
||||
|
||||
script:
|
||||
# asus_laptop_wake:
|
||||
# # To enable see https://www.home-assistant.io/components/wake_on_lan/
|
||||
# alias: "Asus Laptop - Wake"
|
||||
# sequence:
|
||||
# - service: wake_on_lan.send_magic_packet
|
||||
# data:
|
||||
# mac: "18:C0:4D:82:00:95"
|
||||
|
||||
asus_laptop_shutdown:
|
||||
alias: "Asus Laptop - Shutdown"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/shutdown"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_suspend:
|
||||
alias: "Asus Laptop - Suspend"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/suspend"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_hibernate:
|
||||
alias: "Asus Laptop - Hibernate"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/hibernate"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_reboot:
|
||||
alias: "Asus Laptop - Reboot"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/reboot"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_lock:
|
||||
alias: "Asus Laptop - Lock"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/lock"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_logoff:
|
||||
alias: "Asus Laptop - Logoff"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/logoff"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_vol_mute:
|
||||
alias: "Asus Laptop - Toggle Mute"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/volume/mute"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_vol_max:
|
||||
alias: "Asus Laptop - Vol Max"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/volume/set"
|
||||
payload: "100"
|
||||
|
||||
asus_laptop_displays_on:
|
||||
alias: "Asus Laptop - Displays ON"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/displays/on"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_displays_off:
|
||||
alias: "Asus Laptop - Displays OFF"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/displays/off"
|
||||
payload: ""
|
||||
|
||||
asus_laptop_refresh:
|
||||
alias: "Asus Laptop - Refresh"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/refresh"
|
||||
payload: ""
|
||||
- service: button.press
|
||||
target:
|
||||
entity_id:
|
||||
- button.asus_laptop_hassagent_user_refresh
|
||||
- button.asus_laptop_hassagent_satellite_refresh
|
||||
|
||||
asus_laptop_notify:
|
||||
alias: "Asus Laptop - Notify"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/commands/notify"
|
||||
payload: '{ "title": "My Notification Title", "message": "This is an example of notification using IOT Link", "launchParams": "toast://open/https://iotlink.gitlab.io" }'
|
||||
|
||||
asus_laptop_run_chrome:
|
||||
alias: "Asus Laptop - Run Chrome"
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "iotlink/workgroup/asus-laptop/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 }'
|
||||
+3
-3
@@ -31,15 +31,15 @@ input_datetime:
|
||||
input_number:
|
||||
rabbit_feeding_interval:
|
||||
name: Rabbit Feeding Interval
|
||||
min: 0
|
||||
min: 1
|
||||
max: 24
|
||||
step: 1
|
||||
unit_of_measurement: hours
|
||||
icon: mdi:rabbit
|
||||
rabbit_hutch_cleaning_interval:
|
||||
name: Rabbit Hutch Cleaning Interval
|
||||
min: 0
|
||||
max: 3
|
||||
min: 1
|
||||
max: 14
|
||||
step: 1
|
||||
unit_of_measurement: days
|
||||
icon: mdi:rabbit
|
||||
|
||||
@@ -376,7 +376,7 @@ intent_script:
|
||||
speech:
|
||||
text: >
|
||||
{% set location = states(person) %}
|
||||
{% set name = state_attr(person,'friendly_name') %}
|
||||
{% set name = entity_name(person) %}
|
||||
{% if location in ['away','not_home'] %}
|
||||
{{ name }} is currently away from home
|
||||
{% elif location in ['unavailable','unknown'] %}
|
||||
|
||||
+84
-76
@@ -51,79 +51,87 @@ input_datetime:
|
||||
has_date: false
|
||||
has_time: true
|
||||
|
||||
alarm_control_panel:
|
||||
- platform: template
|
||||
panels:
|
||||
nerdhome_alarm_panel:
|
||||
name: Nerd Home Alarm Panel
|
||||
unique_id: d7eb8335-4998-49bf-957e-231aeed35179
|
||||
value_template: "{{ states('alarm_control_panel.stratton_ave_alarm') }}"
|
||||
code_arm_required: false
|
||||
arm_away:
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: binary_sensor.security_faults
|
||||
state: 'off'
|
||||
then:
|
||||
- service: alarm_control_panel.alarm_arm_away
|
||||
target:
|
||||
entity_id: alarm_control_panel.stratton_ave_alarm
|
||||
data:
|
||||
code: !secret ring_alarm_code
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
else:
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.lockdown_issue
|
||||
arm_home:
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: binary_sensor.security_faults
|
||||
state: 'off'
|
||||
then:
|
||||
- service: alarm_control_panel.alarm_arm_home
|
||||
target:
|
||||
entity_id: alarm_control_panel.stratton_ave_alarm
|
||||
data:
|
||||
code: !secret ring_alarm_code
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ silent != 1 and is_state('input_boolean.vacation_mode','off') }}"
|
||||
then:
|
||||
- service: script.status_annc
|
||||
data:
|
||||
who: living_room
|
||||
call_security_armed: 1
|
||||
else:
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.lockdown_issue
|
||||
disarm:
|
||||
- service: alarm_control_panel.alarm_disarm
|
||||
target:
|
||||
entity_id: alarm_control_panel.stratton_ave_alarm
|
||||
template:
|
||||
- alarm_control_panel:
|
||||
- name: Nerd Home Alarm Panel
|
||||
unique_id: d7eb8335-4998-49bf-957e-231aeed35179
|
||||
code_arm_required: false
|
||||
arm_away:
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id:
|
||||
- binary_sensor.security_faults
|
||||
state: 'off'
|
||||
match: all
|
||||
then:
|
||||
- target:
|
||||
entity_id:
|
||||
- alarm_control_panel.stratton_ave_alarm
|
||||
data:
|
||||
code: !secret ring_alarm_code
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.lockdown_issue
|
||||
action: alarm_control_panel.alarm_arm_away
|
||||
- target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
action: input_boolean.turn_off
|
||||
else:
|
||||
- target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
action: input_boolean.turn_on
|
||||
arm_home:
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id:
|
||||
- binary_sensor.security_faults
|
||||
state: 'off'
|
||||
match: all
|
||||
then:
|
||||
- target:
|
||||
entity_id:
|
||||
- alarm_control_panel.stratton_ave_alarm
|
||||
data:
|
||||
code: !secret ring_alarm_code
|
||||
action: alarm_control_panel.alarm_arm_home
|
||||
- target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
action: input_boolean.turn_off
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ silent != 1 and is_state('input_boolean.vacation_mode','off') }}"
|
||||
then:
|
||||
- service: script.status_annc
|
||||
data:
|
||||
- data:
|
||||
who: living_room
|
||||
call_security_not_armed: 1
|
||||
|
||||
template:
|
||||
call_security_armed: 1
|
||||
action: script.status_annc
|
||||
else:
|
||||
- target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
action: input_boolean.turn_on
|
||||
disarm:
|
||||
- target:
|
||||
entity_id:
|
||||
- alarm_control_panel.stratton_ave_alarm
|
||||
data:
|
||||
code: !secret ring_alarm_code
|
||||
action: alarm_control_panel.alarm_disarm
|
||||
- target:
|
||||
entity_id:
|
||||
- input_boolean.lockdown_issue
|
||||
action: input_boolean.turn_off
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ silent != 1 and is_state('input_boolean.vacation_mode','off') }}"
|
||||
then:
|
||||
- data:
|
||||
who: living_room
|
||||
call_security_not_armed: 1
|
||||
action: script.status_annc
|
||||
code_format: number
|
||||
default_entity_id: alarm_control_panel.nerdhome_alarm_panel
|
||||
state: "{{ states('alarm_control_panel.stratton_ave_alarm') }}"
|
||||
- binary_sensor:
|
||||
- name: Windows
|
||||
unique_id: 9ff34cd4-c450-45d2-934a-b4a9fd8b93b2
|
||||
@@ -271,7 +279,7 @@ template:
|
||||
{% endfor %}
|
||||
{{ fn.friendly }}
|
||||
icon: >-
|
||||
{% if states('sensor.window_faults') | int > 0 %}
|
||||
{% if this.state | int > 0 %}
|
||||
mdi:window-open
|
||||
{% else %}
|
||||
mdi:window-closed
|
||||
@@ -335,7 +343,7 @@ template:
|
||||
{% endfor %}
|
||||
{{ fn.friendly }}
|
||||
icon: >-
|
||||
{% if states('sensor.door_faults') | int > 0 %}
|
||||
{% if this.state | int > 0 %}
|
||||
mdi:door-open
|
||||
{% else %}
|
||||
mdi:door-closed
|
||||
@@ -365,7 +373,7 @@ template:
|
||||
| list %}
|
||||
{{ window_names }}
|
||||
icon: >-
|
||||
{% if states('sensor.windows_open') | int == 0 %}
|
||||
{% if this.state | int == 0 %}
|
||||
mdi:window-closed
|
||||
{% else %}
|
||||
mdi:window-open
|
||||
@@ -392,7 +400,7 @@ template:
|
||||
| list %}
|
||||
{{ window_names }}
|
||||
icon: >-
|
||||
{% if states('sensor.front_windows_open') | int == 0 %}
|
||||
{% if this.state | int == 0 %}
|
||||
mdi:window-closed
|
||||
{% else %}
|
||||
mdi:window-open
|
||||
@@ -418,7 +426,7 @@ template:
|
||||
| list | count %}
|
||||
{{ windows_open }}
|
||||
icon: >
|
||||
{% if states('sensor.living_room_windows_open') | int == 0 %}
|
||||
{% if this.state | int == 0 %}
|
||||
mdi:window-closed
|
||||
{% else %}
|
||||
mdi:window-open
|
||||
@@ -442,7 +450,7 @@ template:
|
||||
| list %}
|
||||
{{ door_names }}
|
||||
icon: >-
|
||||
{% if states('sensor.doors_open') | int == 0 %}
|
||||
{% if this.state | int == 0 %}
|
||||
mdi:door-closed
|
||||
{% else %}
|
||||
mdi:door-open
|
||||
@@ -476,7 +484,7 @@ template:
|
||||
| list %}
|
||||
{{ interior }}
|
||||
icon: >-
|
||||
{% if states('sensor.interior_doors') | int == 0 %}
|
||||
{% if this.state | int == 0 %}
|
||||
mdi:door-closed
|
||||
{% else %}
|
||||
mdi:door-open
|
||||
@@ -486,12 +494,12 @@ template:
|
||||
unit_of_measurement: 'faults'
|
||||
state: >-
|
||||
{% set window_faults = states('sensor.window_faults') | int %}
|
||||
{% set door_faults = states('sensor.door_faults') | int %}
|
||||
{% set door_faults = states('sensor.doors_open') | int %}
|
||||
{{ door_faults + window_faults }}
|
||||
attributes:
|
||||
faulted: >
|
||||
{% set windows = state_attr('sensor.window_faults','faulted') %}
|
||||
{% set doors = state_attr('sensor.door_faults','faulted') %}
|
||||
{% set doors = state_attr('sensor.doors_open','faulted') %}
|
||||
{{ doors + windows }}
|
||||
icon: >-
|
||||
{% if states('sensor.total_faults') | int == 0 %}
|
||||
@@ -507,7 +515,7 @@ template:
|
||||
{% set doors_open = states('sensor.doors_open') | int %}
|
||||
{{ doors_open + windows_open }}
|
||||
icon: >-
|
||||
{% if states('sensor.air_leaks') | int == 0 %}
|
||||
{% if this.state | int == 0 %}
|
||||
mdi:leak-off
|
||||
{% else %}
|
||||
mdi:leak
|
||||
|
||||
@@ -181,7 +181,7 @@ intent_script:
|
||||
{% set inhibit = "binary_sensor." + team + "_inhibit" %}
|
||||
{% set sensor = "sensor." + team %}
|
||||
{% if is_state(inhibit,'on') %}
|
||||
I do not have any information about the {{ state_attr(team,'friendly_name') }} at this time.
|
||||
I do not have any information about the {{ entity_name(sensor) }} at this time.
|
||||
{% elif states(sensor) in ["NOT_FOUND"] %}
|
||||
They do not appear to have a game scheduled for today.
|
||||
{% else %}
|
||||
|
||||
@@ -106,9 +106,6 @@ template:
|
||||
- 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) }}"
|
||||
- name: Asus Laptop Idle
|
||||
unique_id: 7d8eb80a-0a2e-48a9-84b3-33175304dd95
|
||||
state: "{{ states('sensor.asus_laptop_system_idle_time') | int > 1800 }}"
|
||||
|
||||
# - platform: influxdb
|
||||
# host: 192.168.1.26
|
||||
|
||||
@@ -58,6 +58,8 @@ ## HACS Components
|
||||
- [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)
|
||||
- [Bubble Card Tools](https://github.com/Clooos/Bubble-Card-Tools)
|
||||
- [Home Assistant Global Health Score](https://github.com/D-N91/home-assistant-global-health-score)
|
||||
|
||||
</details>
|
||||
|
||||
@@ -74,7 +76,8 @@ ## HACS Lovelace Cards
|
||||
- [Layout Card](https://github.com/thomasloven/lovelace-layout-card)
|
||||
- [Scheduler Card](https://github.com/nielsfaber/scheduler-card) (required for Scheduler component)
|
||||
- [Horizon Card](https://github.com/rejuvenate/lovelace-horizon-card)
|
||||
- [Lovelace Home Feed Card](https://github.com/gadgetchnnel/lovelace-home-feed-card)
|
||||
- [Lovelace Home Feed Card](https://github.com/ben-jam1n/lovelace-home-feed-card)
|
||||
- [Chronicle Card](https://github.com/KadenThomp36/chronicle-card)
|
||||
- [Mini Graph Card](https://github.com/kalkih/mini-graph-card)
|
||||
- [Battery State Card](https://github.com/maxwroc/battery-state-card)
|
||||
- [Flipdown Timer Card](https://github.com/pmongloid/flipdown-timer-card)
|
||||
@@ -91,7 +94,7 @@ ## HACS Lovelace Cards
|
||||
- [Weather Card](https://github.com/bramkragten/weather-card)
|
||||
- [Template Entity Row](https://github.com/thomasloven/lovelace-template-entity-row)
|
||||
- [Waze Travel Time](https://github.com/r-renato/ha-card-waze-travel-time)
|
||||
- [Fold Entity Row](https://github.com/thomasloven/lovelace-fold-entity-row)
|
||||
- [Lovelace Expander Card](https://github.com/MelleD/lovelace-expander-card)
|
||||
- [Room Card](https://github.com/marcokreeft87/room-card)
|
||||
- [Simple Thermostat Card](https://github.com/nervetattoo/simple-thermostat)
|
||||
- [Clock Weather Card](https://github.com/pkissling/clock-weather-card)
|
||||
|
||||
Reference in New Issue
Block a user