Aqara vinduesensorer: automationer, vedligehold og rum-views
- 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
This commit is contained in:
@@ -0,0 +1,251 @@
|
||||
##################################################
|
||||
# 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."
|
||||
@@ -75,8 +75,12 @@
|
||||
states('sensor.terrasse_dor_battery') | float(100),
|
||||
states('sensor.venstre_battery') | float(100),
|
||||
states('sensor.syd_batteri') | float(100),
|
||||
states('sensor.hojre_battery') | float(100)
|
||||
] | min < 20
|
||||
states('sensor.hojre_battery') | float(100) states('sensor.sovevaerelse_vindue_batteri') | float(100),
|
||||
states('sensor.daniel_vindue_batteri') | float(100),
|
||||
states('sensor.andreas_vindue_batteri') | float(100),
|
||||
states('sensor.badevaerelse_vindue_batteri') | float(100),
|
||||
states('sensor.lille_bad_vindue_batteri') | float(100),
|
||||
states('sensor.terrassedor_batteri') | float(100), ] | min < 20
|
||||
}}
|
||||
|
||||
- name: Vedligehold Home Assistant
|
||||
@@ -217,6 +221,12 @@
|
||||
1 if states('sensor.syd_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.hojre_battery') | float(100) < 20 else 0,
|
||||
1 if states('sensor.garageport_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.sovevaerelse_vindue_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.daniel_vindue_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.andreas_vindue_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.badevaerelse_vindue_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.lille_bad_vindue_batteri') | float(100) < 20 else 0,
|
||||
1 if states('sensor.terrassedor_batteri') | float(100) < 20 else 0,
|
||||
1 if is_state('lawn_mower.husqvarna_automower', 'error') else 0
|
||||
] | sum
|
||||
}}
|
||||
Reference in New Issue
Block a user