Hallo,
ich habe ein kleines Problem mit der Automatisierung.
Ich überwache einen Tasmota-Stecker an dem ein Kühlschrank angeschlossen ist.
Wenn dieser den Zustand ändert (ON/OFF/disconnected) möchte ich eine Info via Whatsapp bekommen.
Soweit klappt auch alles.
Auch lege ich ein zweites Signal drauf (via Ping).
Allerdings kommt es manchmal zu Fehlalarmen. Scheinbar wenn das NW überlastet o.Ä. - bin mir aber nicht sicher wodurch dies ausgelöst wird und ist auch immer nur wenige Sekunden anstehend.
Mein Ansatz war:
1)Die Dauer in der Automatisation für die Entity von 0 min auf 1 min zu erhöhen. Ich dachte das löst dann nur aus, wenn der Zustand mehr als 1min bestehen bleibt?
Scheinbar ist dem nicht so, sondern wird die Automatisation erst nach 1min gestartet … auch wenn ich den Sensor wieder zurücksetze (hab es mit einem manuellen Schalter am Dashboard probiert).
2) habe eine Bedingung hinzugefügt, da passiert aber gar nix.
{% set TS_now = now() %}
{% set TS_offset = 30 %}
{% set TS_sensor = states.input_boolean.testschalter.last_changed.astimezone() %}
{{ TS_now > states.input_boolean.testschalter.last_changed.astimezone() + timedelta(seconds=30) }}
Jetzt stehe ich etwas an, hat jemand einen Rat was ich falsch mache, oder ob man die False Alarme anders abfangen kann?
(Also z.B. Alarm nur wenn der Zustand Off länger als 30sec ansteht)
Gibt es dazu irgendwo ein Beispiel?
Danke
Nachtrag:
Sicherheitshalber der ganze Code, die Abfrage (Auslöser) sind der Zustand des Schalters (Änderung) sowie die Erreichbarkeit via Ping (falls z.B. Netzausfall des Gerätes vorliegt).
Ein Schalter am Dashboard simuliert zusätzlich den Ping …
Wenn ich nun aber diesen Umschalte, und innerhalb von 5sec ein zweites Mal betätige, kommt der Alarm trotzdem aufs Handy…
alias: _TEST
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.ping_switch32_221
to: null
from: null
for:
hours: 0
minutes: 0
seconds: 10
- trigger: state
entity_id:
- switch.switch_32_tas_221
from: null
to: null
for:
hours: 0
minutes: 0
seconds: 10
- trigger: state
entity_id:
- input_boolean.testschalter
from: null
to: null
for:
hours: 0
minutes: 0
seconds: 10
conditions: []
actions:
- action: notify.mobile_app_rha_iphone11
metadata: {}
data:
message: |-
{% set SW_Ping = states('binary_sensor.ping_switch32_221') %}
{% set SW_Binary = states('switch.switch_32_tas_221') %}
{% if SW_Ping == 'on' %}
{% if SW_Binary == 'on' %}
{% set msg = ' -Connected /ON-'%}
{% else %}
{% set msg = ' -Connected /OFF-'%}
{% endif %}
{% else %}
{% if SW_Binary == 'on' %}
{% set msg = ' -DisConnected /ON-'%}
{% else %}
{% set msg = ' -DisConnected /OFF-'%}
{% endif %}
{% endif %}
State:{{ msg }} _Test
title: 🤷♂️ Switch 32 -State changed
- action: notify.whatsapp_robert1
metadata: {}
data:
message: |-
{% set SW_Ping = states('binary_sensor.ping_switch32_221') %}
{% set SW_Binary = states('switch.switch_32_tas_221') %}
{% if SW_Ping == 'on' %}
{% if SW_Binary == 'on' %}
{% set msg = ' -Connected /ON-'%}
{% else %}
{% set msg = ' -Connected /OFF-'%}
{% endif %}
{% else %}
{% if SW_Binary == 'on' %}
{% set msg = ' -DisConnected /ON-'%}
{% else %}
{% set msg = ' -DisConnected /OFF-'%}
{% endif %}
{% endif %}
State:{{ msg }}
title: 🤷♂️ Switch 32 -State changed
mode: single
Danke Bacardi,
aber ich denke das ist es nicht oder ich hab dich falsch verstanden.
Dann löst er 2x aus … (obgleich mit der 10s Verzögerung).
Im Moment lege ich nur einen Schalter am Dashboard um, damit es einfacher ist …
Oder habe ich dich falsch verstanden?
Thx
HELP_Alarm_Kühlschrank ausgeschaltet ausgelöst durch Automation _Bacardi_V1 ausgelöst durch Uhrzeit change or manual update via template
18:03:10 - Vor 2 Minuten
HELP_Alarm_Kühlschrank eingeschaltet ausgelöst durch Automation _Bacardi_V1 ausgelöst durch Uhrzeit change or manual update via template
18:03:00 - Vor 2 Minuten
_Bacardi_V1 ausgelöst durch Uhrzeit change or manual update via template
18:03:00 - Vor 2 Minuten - Traces
Mein obiger Template Trigger als alleiniger Trigger macht folgendes:
30 Sekunden nachdem der Schalter geklickt wurde, lege los …
Zusammen mit dem Schalter als Trigger löst es 2x aus. Ggf. hast Du das 2. Mal nicht mitbekommen weil der Modus Single ist. Im Logfile müßte etwas mit “Already running stehen”.
Wenn sich der Zustand beim Testschalter (1) ändert soll sich der Helpswitch (2) ändern.
aber nur, wenn sich der Zustand von Testschalter (1) nicht zurück ändert innerhalb einer gewissen Zeit. (So versuche ich kurze Netzausfälle zu simulieren).
Aber wenn ich 2x innerhalb von 5s schalte, startet trotzdem die Automatisation und ich bekomme eine Nachricht (bzw. wird die Automatisation abgearbeitet), obwohl eh schon wieder alles OK ist.
Ich will aber an der Stelle, dass die Automatisation gar nicht erst startet, sondern nur wenn der Zustand länger als eine gewisse Zeit ist (z. B. 30s)
Nein, mit Mittag meinte ich heute Mittag auf die Schnelle. Ich hätte gar nicht antworten sollen und am Abend lieber richtig lesen. Sry für die Verwirrung.
So, ich traue mich noch einmal…
Ich habe alles vorher Gesagte ausgeblendet und mich auf diese Anforderung fokussiert und eine entsprechende Automatisation aufgesetzt.
Die folgende Automatisation tut folgendes
wenn Schalter für 30 s AUSgeschaltet ist, dann schalte auch den Helfer AUS
wenn Schalter für 30 s ANgeschaltet ist, dann schalte auch den Helfer AN
Die 30 s bewirken, daß Du den Schalter so oft klicken kannst wie Du testen möchtest, es zählt der letzte Zustand + 30 s
Das war es dann auch schon. Ein Templatecode ist nicht nötig.
Ganz oben läst Du bei allen Trigger Stati Wechseln auslösen. Bleib lieber spezifisch von An → Aus etc. und fange im Action Teil diese Fälle sauber ab. So werden auch gleich die unbeliebten invaliden Stati None, Unavailable, Unknown umgangen. Auch beim Ping bleib konkret: Verbunden → Getrennt etc.
Ich bin gespannt. Und noch mal Entschuldigung für mein flüchtiges Lesen.
Hi,
kein Problem. Ich bin relativ neu mit HA und kann mich auch nicht so exact ausdrücken …
jedenfalls scheint der Code zu Klappen - Danke.
Ich verstehe zwar noch immer nicht was an meinen Überlegungen falsch war, denke ich muss mir das in einer ruhigen Minute mal ansehen…
Nun werde ich noch einen 2ten Trigger auf den Hilfsschalter legen (den PING, falls der Schalter nicht erreichbar ist und ich somit den Zustand des Schalters nicht kenne).
Sobald der Hilfsschalter dann auslöst jage ich eine Meldung ans Telefon.
So der Plan - wird etwas dauern bis ich das dann getestet habe.
Jedenfalls nochmals Herzlich Danke
Ich war zu voreilig …
Wenn ich den Schalter 2x innerhalb von 5s betätige wird 1 Meldung gesandt (hab mein Handy mit eingepflegt). Das will ich aber nicht …
Wir brauchen , denke ich, event. eine zusätzliche Option in der abgefragt wird, ob der Zustand sich geändert hat im Vergleich zu vorher (vor erstem auslösen).
Aber ich denke dann würde mein erstes Beispiel u.U. auch funktioneren?
by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
Ich bleibe bei meinem früheren Statement zu dem Code: Nur der letzte 10 s andauernde Zustand löst die Automatisation aus.
10 s = Aus → HilfschalterWirdAusgeschaltet
10 s = AN → HilfschalterWirdAngeschaltet
Alles < 10 führt nicht zum Auslösen.
Aber, wenn < 10 Sek des ersten Schaltvorganges neu geschaltet wird, dann zählen die 10 Sek des zweiten Schaltvorganges und da beide Stati auslösen gibt es immer eine Meldung aber nur über den letzten Schaltvorgang.
Lange Rede kurzer Sinn, Lösung ist einfach.
Weitere Bedingungen bei den Optionen, wie Du auch schon gesagt hast