aa6413ea79
- Varme slukker automatisk når vindue åbnes (andreas, daniel, soveværelse, lille bad) - Notifikation ved åbent vindue når ingen er hjemme - Notifikation når alle forlader huset med åbne vinduer - Ventilation: påmindelse om udluftning ved høj CO2/fugt (kl 6-22) - Påmindelse om at lukke vindue efter 15 min udluftning - 6 vinduesensor-batterier tilføjet til vedligehold-view og maintenance template - Vinduesensor tilføjet til andreas, daniel og soveværelse room views
252 lines
9.5 KiB
YAML
252 lines
9.5 KiB
YAML
##################################################
|
|
# Vindue-automationer (Aqara vinduesensorer)
|
|
##################################################
|
|
|
|
### Varme: Sluk varme når vindue åbnes, tænd igen når det lukkes
|
|
### Rum-mapping: andreas, daniel, sovevaerelse, lille_bad
|
|
|
|
- alias: "Varme - sluk ved åbent vindue"
|
|
id: varme_sluk_ved_aabent_vindue
|
|
description: "Slukker varme i rummet når vinduet åbnes og genstarter når det lukkes"
|
|
mode: parallel
|
|
max: 4
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.andreas_vindue
|
|
- binary_sensor.daniel_vindue
|
|
- binary_sensor.sovevaerelse_vindue
|
|
- binary_sensor.lille_bad_vindue
|
|
to: "on"
|
|
action:
|
|
- variables:
|
|
room_map:
|
|
binary_sensor.andreas_vindue: climate.andreas
|
|
binary_sensor.daniel_vindue: climate.daniel
|
|
binary_sensor.sovevaerelse_vindue: climate.sovev_prelse
|
|
binary_sensor.lille_bad_vindue: climate.lille_bad
|
|
climate_entity: "{{ room_map[trigger.entity_id] }}"
|
|
current_temp: "{{ state_attr(climate_entity, 'temperature') | float(20) }}"
|
|
current_mode: "{{ states(climate_entity) }}"
|
|
- service: scene.create
|
|
data:
|
|
scene_id: "vindue_varme_{{ trigger.entity_id.split('.')[1] }}"
|
|
snapshot_entities:
|
|
- "{{ climate_entity }}"
|
|
- service: climate.set_hvac_mode
|
|
target:
|
|
entity_id: "{{ climate_entity }}"
|
|
data:
|
|
hvac_mode: "off"
|
|
- wait_for_trigger:
|
|
- platform: state
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
to: "off"
|
|
timeout: "04:00:00"
|
|
continue_on_timeout: true
|
|
- service: scene.turn_on
|
|
target:
|
|
entity_id: "scene.vindue_varme_{{ trigger.entity_id.split('.')[1] }}"
|
|
|
|
### Notifikation: Vindue åbner og ingen er hjemme
|
|
|
|
- alias: "Vindue åbent - ingen hjemme"
|
|
id: vindue_aabent_ingen_hjemme
|
|
description: "Send notifikation til Claus hvis et vindue åbner og ingen er hjemme"
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.andreas_vindue
|
|
- binary_sensor.daniel_vindue
|
|
- binary_sensor.sovevaerelse_vindue
|
|
- binary_sensor.badevaerelse_vindue
|
|
- binary_sensor.lille_bad_vindue
|
|
- binary_sensor.terrassedor
|
|
to: "on"
|
|
condition:
|
|
- condition: state
|
|
entity_id: binary_sensor.family_presence
|
|
state: "off"
|
|
action:
|
|
- variables:
|
|
vindue_navne:
|
|
binary_sensor.andreas_vindue: "Andreas' værelse"
|
|
binary_sensor.daniel_vindue: "Daniels værelse"
|
|
binary_sensor.sovevaerelse_vindue: "Soveværelset"
|
|
binary_sensor.badevaerelse_vindue: "Badeværelset"
|
|
binary_sensor.lille_bad_vindue: "Lille badeværelse"
|
|
binary_sensor.terrassedor: "Terrassedøren"
|
|
vindue_navn: "{{ vindue_navne[trigger.entity_id] }}"
|
|
- service: notify.mobile_app_claus_iphone_15pro
|
|
data:
|
|
title: "⚠️ Vindue åbnet - ingen hjemme"
|
|
message: "{{ vindue_navn }} er blevet åbnet, men der er ingen hjemme!"
|
|
data:
|
|
push:
|
|
sound:
|
|
name: default
|
|
critical: 0
|
|
|
|
### Notifikation: Sidste person forlader huset med åbent vindue
|
|
|
|
- alias: "Forlader huset - vindue åbent"
|
|
id: forlader_huset_vindue_aabent
|
|
description: "Send notifikation hvis family_presence slår fra og vinduer er åbne"
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.family_presence
|
|
from: "on"
|
|
to: "off"
|
|
condition:
|
|
- condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: binary_sensor.andreas_vindue
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: binary_sensor.daniel_vindue
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: binary_sensor.sovevaerelse_vindue
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: binary_sensor.badevaerelse_vindue
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: binary_sensor.lille_bad_vindue
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: binary_sensor.terrassedor
|
|
state: "on"
|
|
action:
|
|
- variables:
|
|
aabne_vinduer: >-
|
|
{% set vinduer = [] %}
|
|
{% if is_state('binary_sensor.andreas_vindue', 'on') %}
|
|
{% set vinduer = vinduer + ["Andreas' værelse"] %}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.daniel_vindue', 'on') %}
|
|
{% set vinduer = vinduer + ["Daniels værelse"] %}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.sovevaerelse_vindue', 'on') %}
|
|
{% set vinduer = vinduer + ["Soveværelset"] %}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.badevaerelse_vindue', 'on') %}
|
|
{% set vinduer = vinduer + ["Badeværelset"] %}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.lille_bad_vindue', 'on') %}
|
|
{% set vinduer = vinduer + ["Lille badeværelse"] %}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.terrassedor', 'on') %}
|
|
{% set vinduer = vinduer + ["Terrassedøren"] %}
|
|
{% endif %}
|
|
{{ vinduer | join(', ') }}
|
|
- service: notify.mobile_app_claus_iphone_15pro
|
|
data:
|
|
title: "🏠 Åbne vinduer - alle er væk"
|
|
message: "Alle har forladt huset, men disse vinduer er åbne: {{ aabne_vinduer }}"
|
|
data:
|
|
push:
|
|
sound:
|
|
name: default
|
|
critical: 1
|
|
volume: 1.0
|
|
|
|
### Ventilation: Luft ud ved høj CO2 eller luftfugtighed (kl 6-22)
|
|
|
|
- alias: "Ventilation - luft ud påmindelse"
|
|
id: ventilation_luft_ud_paamindelse
|
|
description: "Send notifikation om at lufte ud ved høj CO2 eller luftfugtighed"
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.sovevaerelse_stue_carbon_dioxide
|
|
above: 1000
|
|
id: andreas_co2
|
|
- platform: numeric_state
|
|
entity_id: sensor.sovevaerelse_daniel_carbon_dioxide
|
|
above: 1000
|
|
id: daniel_co2
|
|
- platform: numeric_state
|
|
entity_id: sensor.sovevaerelse_carbon_dioxide
|
|
above: 1000
|
|
id: sovevaerelse_co2
|
|
- platform: numeric_state
|
|
entity_id: sensor.sovevaerelse_stue_luftfugtighed
|
|
above: 70
|
|
id: andreas_fugt
|
|
- platform: numeric_state
|
|
entity_id: sensor.sovevaerelse_daniel_luftfugtighed
|
|
above: 70
|
|
id: daniel_fugt
|
|
- platform: numeric_state
|
|
entity_id: sensor.sovevaerelse_luftfugtighed
|
|
above: 70
|
|
id: sovevaerelse_fugt
|
|
condition:
|
|
- condition: time
|
|
after: "06:00:00"
|
|
before: "22:00:00"
|
|
action:
|
|
- variables:
|
|
rum_navne:
|
|
andreas_co2: "Andreas' værelse (CO₂)"
|
|
andreas_fugt: "Andreas' værelse (luftfugtighed)"
|
|
daniel_co2: "Daniels værelse (CO₂)"
|
|
daniel_fugt: "Daniels værelse (luftfugtighed)"
|
|
sovevaerelse_co2: "Soveværelset (CO₂)"
|
|
sovevaerelse_fugt: "Soveværelset (luftfugtighed)"
|
|
rum_navn: "{{ rum_navne[trigger.id] }}"
|
|
- service: notify.mobile_app_claus_iphone_15pro
|
|
data:
|
|
title: "🌬️ Luft ud"
|
|
message: "{{ rum_navn }} har for høj værdi. Åbn vinduet for at lufte ud."
|
|
|
|
- alias: "Ventilation - luk vindue efter 15 min"
|
|
id: ventilation_luk_vindue_efter_15_min
|
|
description: "Påmind om at lukke vinduet 15 minutter efter det blev åbnet for udluftning"
|
|
mode: parallel
|
|
max: 3
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.andreas_vindue
|
|
- binary_sensor.daniel_vindue
|
|
- binary_sensor.sovevaerelse_vindue
|
|
to: "on"
|
|
condition:
|
|
- condition: time
|
|
after: "06:00:00"
|
|
before: "22:00:00"
|
|
- condition: or
|
|
conditions:
|
|
- condition: template
|
|
value_template: >-
|
|
{{ trigger.entity_id == 'binary_sensor.andreas_vindue' and
|
|
(states('sensor.sovevaerelse_stue_carbon_dioxide') | float(0) > 1000 or
|
|
states('sensor.sovevaerelse_stue_luftfugtighed') | float(0) > 70) }}
|
|
- condition: template
|
|
value_template: >-
|
|
{{ trigger.entity_id == 'binary_sensor.daniel_vindue' and
|
|
(states('sensor.sovevaerelse_daniel_carbon_dioxide') | float(0) > 1000 or
|
|
states('sensor.sovevaerelse_daniel_luftfugtighed') | float(0) > 70) }}
|
|
- condition: template
|
|
value_template: >-
|
|
{{ trigger.entity_id == 'binary_sensor.sovevaerelse_vindue' and
|
|
(states('sensor.sovevaerelse_carbon_dioxide') | float(0) > 1000 or
|
|
states('sensor.sovevaerelse_luftfugtighed') | float(0) > 70) }}
|
|
action:
|
|
- variables:
|
|
vindue_navne:
|
|
binary_sensor.andreas_vindue: "Andreas' værelse"
|
|
binary_sensor.daniel_vindue: "Daniels værelse"
|
|
binary_sensor.sovevaerelse_vindue: "Soveværelset"
|
|
vindue_navn: "{{ vindue_navne[trigger.entity_id] }}"
|
|
- delay: "00:15:00"
|
|
- condition: state
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
state: "on"
|
|
- service: notify.mobile_app_claus_iphone_15pro
|
|
data:
|
|
title: "🪟 Luk vinduet"
|
|
message: "Vinduet i {{ vindue_navn }} har været åbent i 15 minutter. Husk at lukke det igen."
|