@paul53 Danke, Paul!
Das mit den Variablen hatte ich auch schon, ich bin nur nicht darauf gekommen den aktuellen Wert außerhalb der Trigger abzufragen.
@paul53 Danke, Paul!
Das mit den Variablen hatte ich auch schon, ich bin nur nicht darauf gekommen den aktuellen Wert außerhalb der Trigger abzufragen.
Hallo zusammen,
ich überwache den Zustand eines Gerätes mit dem Ping-Adapter. Wenn dieser Falsch liefert, wird eine Steckdose eingeschaltet.
ein 2. Trigger überwacht den Ladezustand (ist ein Batterieladegerät angeschlossen). Wenn ein bestimmter Ladewert erreicht ist, schaltet die Dose aus.
Problem:
der Ping-Adapter aktualisiert in gewissen Abständen seinen Zustand - dadurch wird der 1. Trigger erneut ausgelöst.
Das soll nicht sein - es soll nur genau 1x dieser Trigger ausgelöst werden. Änderung des Auslöseereignisses des Triggers auf "größer als letzter", oder "wurde aktualisiert" liefern nicht das gewünschte Ergebnis. (aktuell prüfe ich auf "wurde geändert")
@paul53 müsste hier nicht auch bei der Zeit auf "nicht zwischen" geprüft um den Tageswechsel zu vermeiden?
Das Beispiel von @DJMarc75 liefert das gewünschte Ergebnis; vielen Dank an alle die sich beteiligt haben!
@djmarc75 & @Codierknecht Danke für eure Erklärung & Unterstützung!
@nordischerjung said in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
@devdracon Und evtl noch ein CRON um 20 Uhr UND nicht Druck UND Steckdose ist noch an
...warum? Der Cron dann als separater Trigger? Würde der dann -gemäß deiner Definition- nicht den Parameter Temp außen vor lassen?
@nordischerjung said in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
Ja aber der Trigger hat dann ausgelöst und geprüft ob die Zeit stimmt und ob die Temperatur <23 ist. Wenn die Temperatur dann zB 23,5°C ist, wird die Steckdose nicht ausgeschaltet.
Wenn die Temperatur <23 wird, schaltet die Steckdose nicht aus, da der Trigger nicht kommt, weil der Druck schon aus ist.In deinem Fall schaltet die Steckdose nur in dem Moment aus, wenn Druck wurde beendet UND Temperatur ist <23 UND Zeit ist zwichen x und y.
Ist eins davon nicht erfüllt, bleibt die Steckdose an.
Danke für den Hinweis!
@djmarc75 said in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
@codierknecht sagte in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
Du bräuchtest also einen zweiten Trigger, der die (sinkende) Temperatur überwacht und die Steckdose ausschaltet wenn die Temp. unter 23°C sinkt und der Druck beendet ist.
So würde ich das auch machen:
Der Ansatz ist gut, Danke dafür!
...ich merke, das ein -bei mir- wiederkehrendes Problem ist, das ich versuche zuviele Aktionen mit einem Trigger zu "erschlagen".
Ich implementiere das o.g. Blockly auf meine Anforderungen hin und berichte dann hier das Ergebnis!
@codierknecht said in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
Sicher?
Datenpunkte werden vom jeweiligen Adapter gerne mal zyklisch "aktualisiert". Unabhängig davon, ob sich nun der Wert geändert hat oder nicht. Dein Trigger würde dann feuern.
Das war mir bisher nicht bekannt. - Das wäre jedoch auch ein wenig zuverlässiger Trigger?
Kurze Ergänzung zum Post von @DJMarc75 : Zeiträume über den Tageswechsel zu prüfen, führt gerne mal zu Problemen. Die gezeigte Variante umgeht das.
Guter Hinweis - werde ich berücksichtigen. Dank an @DJMarc75
@devdracon sagte in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
"kleiner als letztes": da ist mir nicht (genau) klar wann dieser Trigger ausgelöst wird...
Der feuert, wenn sich der Wert ändert und - wie der Name es sagt - der Wert kleiner als der zuletzt übermittelte Wert ist.
Boolean werden intern als 0 (false) oder 1 (true) dargestellt ***. Der Trigger feuert in dem Fall also nur dann, wenn der Wert vontrue
auffalse
wechselt.*** Per Definition ist false = 0 und true ist alles was nicht 0 ist - aber das lassen wir hier mal unter den Tisch fallen.
Danke für die Erläuterung.
@nordischerjung said in Aktion innerhalb eines Zeitraumes nur 1x ausführen:
Oder soll die Steckdose nur dann ausgeschaltet werden wenn Druck ausgeschaltet wurde, es ist zwischen x und y Uhrzeit und die Temperatur ist <23
Ja, so soll das ein. (Hintergrund: ein laufender Druck endet später am Abend, dann kann nach Abkühlen die Steckdose ausgeschaltet werden)
Was ist wenn die Temperatur zB 1 Minute nach dem ausschalten <23 wird?
Dann ist die Bedingung <23 doch immer noch wahr?
@codierknecht & @Homoran nein, der DP wird nicht dauernd aktualisiert.
Auf "geändert" zu prüfen ist schwierig, da dieser Trigger u.U. nicht immer im angegebenen Zeitfenster ausgelöst wird. "kleiner als letztes": da ist mir nicht (genau) klar wann dieser Trigger ausgelöst wird...
Hallo zusammen,
das Ergebnis des folgenden Blockly soll sein:
Wenn innerhalb das Objekt "druckt" auf falsch steht soll innerhalb eines bestimmten Zeitraumes bei gleichzeitiger Überprüfung der Temperatur eine Steckdose geschaltet werden. Darüber soll 1x per Telegram informiert werden.
Gelöst habe ich das so:
Ist: die Aktion wird fortlaufend ausgeführt
Wo ist mein Fehler?