ich möchte meine Automationen etwas entschlacken bzw. die Push-Benachrichtigungen etwas reduzieren.
Aktuell lasse ich mich informieren, wenn ein Fenster (in Summe 7 Stück) bestimmte Zeiträume offen ist (HomematicIP-Sensoren).
Ich habs - bestimmt nicht elegant - so gelöst, dass für jedes Fenster und jeden Zeitpunkt eine eigene Automation angelegt ist. Macht soweit was ich will. Nur sind mir die Benachrichtigungen mittlerweile fast zuviel, wenn alle Fenster offen sind, und diese ggf. sogar etwas Zeitversetzt geöffnet wurden.
Ich würde das gerne so umbauen:
Sobald ein Fenster offen ist, soll alle 30 Min. eine Benachrichtigung kommen, welche Fenster aktuell offen sind (ggf. wie lange schon oder seit wann). Wenn das zuletzt geöffnete Fenster 2h offen ist, können die Benachrichtigungen aufhöhren. Hab das über eine Benachrichtigung bei niedriger Raumtemperatur zusätzlich noch abgesichert. So könnte ich meiner Gedankenwelt nach, von max. 7 Nachrichten pro Benachrichtigungsrunde auf 8 Insgesamt reduzieren.
Mein Punkt, wo ich das Schwarmwissen jetzt benötigen würde wäre, ob solche Komplexen Abfragen überhaupt als Automation gehen, und wie man dann die Benachrichtigung mit - ich denke mal - Doppelvariabel gestalten müsste. Dahingehend hab ich leider noch null Plan.
Ich hatte gerade Spaß mit ChatGPT aber am Ende kam das heraus.
Setze die richtigen Sensorennamen
und Deinen Mail Service
lege unter Helper diesen Timer an timer.window_opened_timer
und probiere es mal.
Gutes Gelingen!
PS: Meine Frau ist auch etwas genervt von zu häufigen “Fenster ist lange auf” Ansagen und ich habe das auch mit bestimmten Temperaturgrenzen verbunden.
description: >-
### Was die Automisation tut
- sobald ein Fenster geöffnet wird, startet ein 30 min Timer
- Ist der Timer abgelaufen wird erneut diese Automisation gestartet und sofern
ein oder mehrere Fenster offen, verschickt es eine Mail mit dem Sensornamen
und startet den Timer mit 30 min erneut
- das Ganze endet 30 min nachdem alle Fenster geschlossen sind
### Mögliche Verbesserungen
- man könnte die Fenster in eine Gruppe nehmen (und fängt damit den Ausfall
von Fenstersensoren besser ab)
- anstelle der Sensornamen könnte der friendly name abgefragt werden, macht
die Email lesbarer
- ...
mode: single
trigger:
- platform: state
entity_id:
- binary_sensor.window_sensor_1
- binary_sensor.window_sensor_2
- binary_sensor.window_sensor_3
- binary_sensor.window_sensor_4
- binary_sensor.window_sensor_5
- binary_sensor.window_sensor_6
- binary_sensor.window_sensor_7
to: "on"
id: OneOfMyWindowOpened
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.window_opened_timer
id: MyTimerFinished
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- OneOfMyWindowOpened
sequence:
- service: timer.start
data:
duration: "1800"
target:
entity_id: timer.window_opened_timer
- conditions:
- condition: trigger
id:
- MyTimerFinished
- condition: template
value_template: |
{{ (is_state('binary_sensor.window_sensor_1', 'on') or
is_state('binary_sensor.window_sensor_2', 'on') or
is_state('binary_sensor.window_sensor_3', 'on') or
is_state('binary_sensor.window_sensor_4', 'on') or
is_state('binary_sensor.window_sensor_5', 'on') or
is_state('binary_sensor.window_sensor_6', 'on') or
is_state('binary_sensor.window_sensor_7', 'on')) }}
sequence:
- service: notify.email
data_template:
title: Folgende Fenster sind seit 30 min auf
message: |
{% set sensors = [
'binary_sensor.window_sensor_1',
'binary_sensor.window_sensor_2',
'binary_sensor.window_sensor_3',
'binary_sensor.window_sensor_4',
'binary_sensor.window_sensor_5',
'binary_sensor.window_sensor_6',
'binary_sensor.window_sensor_7'
] %}
{% for sensor in sensors %}
{% if is_state(sensor, 'on') %}
{{ sensor }}
{% endif %}
{% endfor %}
- service: timer.start
data:
duration: "1800"
target:
entity_id: timer.window_opened_timer
alias: forum test
Ein unschöner Markel bleibt aber noch: in den Push-Nachrichten unter iOS habe ich zwischen den offenen Fenstern sehr viele Leerzeilen. Kann man die irgendwie noch rausfiltern?
Kopiere alles die Entwicklerwerkzeuge/Template und dann teste vor welchen %} Du ein Minus setzen solltest. Ich setzte in solchen Formatfällen immer bei jedem. Sicher ist sicher.
vielen Dank für eure Hilfe!
Nach einigen Versuchen stand ich vor dem Dilemma, entweder nach 2h keine Nachricht mehr, dafür sind Leerzeilen zwischen den Fensternamen oder die Namen sind in Listenform, dafür endet es nach 2h nicht. Mit letzterem kann ich leben, werd die Zeit aber wohl auf 60 Min. hochsetzen.