NEWS
[gelöst] Füllstandabfrage funktioniert nicht wie geplant
-
Hallo,
ich betreibe in meinem Bad einen Entfeuchter, der über ein simples Blockly von einem Luftfeuchtemesser ein- und ausgeschaltet wird. Der Entfeuchter selbst ist aber nicht smart, weshalb ich gerne ein Script hätte, dass mir mitteilt, wenn der Wassertank voll ist.Mein dafür verwendetes Blockly sieht so aus:
Dummerweise funktioniert das wenig bis überhaupt nicht. Die meiste Zeit bekomme ich gleich mehrere Meldungen, wenn sich der Entfeuchter einschaltet - aber dummerweise nicht, wenn der Wassertank voll ist.
Was mache ich wo falsch?
-
@wintermute Naja, mit deiner 720 Minuten Pause ... in der Zeit macht der dann nichts.
- Lass die Pause weg
- erstelle dir eine IchHabeSchonGesendet Variable und setze diese auf
Falsch
- und zwar vor dem "Falls Objekte" Block - Wenn du sendest, setzt du IchHabeSchonGesendet auf
Wahr
- Vor dem Senden baust du eine Prüfung ein - nur senden wenn IchHabeSchonGesendet auf
Falsch
steht - Dein "falls" Block bekommt einen "sonst" Zweig, in diesem setzt zu IchHabeSchonGesendet auf
Falsch
So löst es aus wenn der Luftentfeuchter an ist, der Verbrauch = 0 ist.
Sendet aber nur einmal weil wir uns gemerkt haben das wir schon gesendet haben.
Schaltet sich wieder scharf für ein erneutes senden wenn der Luftentfeuchter an ist und der Verbrauch über 0 liegt (oder drunter)Edit: sonst statt oder!
-
@bananajoe sagte in Füllstandabfrage funktioniert nicht wie geplant:
@wintermute Naja, mit deiner 720 Minuten Pause ... in der Zeit macht der dann nichts.
Das war auch Sinn der Sache. Trigger ist ja die Veränderung der Luftfeuchtigkeit. Ohne die Zwangspause würde mein Blockly ja bei jeder Änderung der Luftfeuchtigkeit eine Nachricht schicken, wenn der Verbrauch des Entfeuchters auf Null geht. 12 Stunden Sendepause war mal ein erster Testwert - wenn ich nicht zuhause bin, macht den Tank ja eh keiner leer
So löst es aus wenn der Luftentfeuchter an ist, der Verbrauch = 0 ist.
Sendet aber nur einmal weil wir uns gemerkt haben das wir schon gesendet haben.
Schaltet sich wieder scharf für ein erneutes senden wenn der Luftentfeuchter an ist und der Verbrauch über 0 liegt (oder drunter)Also so?
-
@wintermute ja. Der Trigger löst jetzt in der Tat bei jeder Änderung aus. Aber er sendet nur einmal.
Und wir brauchen den ja damit er wieder neu scharf geschaltet wird wenn du den Tank geleert hast. -
Aus irgendeinem Grund funktioniert es nicht so, wie es soll.
Heute morgen hat sich der Entfeuchter eingeschaltet und das script hat zweimal im Abstand von ca. 2 Minuten ausgelöst.
Vermutlich sind die Trigger untauglich und der Verbrauch des Entfeuchters geht zu Beginn öfter mal kurz auf 0.
Vielleicht muss ich den Zustand "Verbrauch = 0" länger beobachten und sicher zu gehen, dass das Ding auch auf 0 bleibt...Könnte das so funktionieren?
Damit überprüfe ich jetzt 10mal hintereinander (kann ich ggfs. noch mit einer Pause etwas strecken) ob die Zustände "eingeschaltet" und "Verbrauch = 0" länger als einen Moment anhalten und komme dann erst zum Versenden einer Benachrichtigung.
Ich fürchte aber, dass mir da jetzt in der Schleife eine Abbruchbedingung fehlt, damit das Script nicht in der Schleife gefangen bleibt. -
Probier. Bau dir sonst Debug-Meldungen ein, dann kannst du im Log sehen wie es läuft, wo er gerade im Skript steht.
Falls du einen History/SQL/InfluxDB Adapter installiert hast, aktiviere die Aufzeichnung der Leistung, das kannst du sehen wie sich das Gerät verhält -
@wintermute sagte: Was mache ich wo falsch?
Der Trigger-Datenpunkt ist nicht der richtige. Wenn die Stromaufnahme geprüft wird, dann muss diese auch als Trigger dienen.
Geht die Stromaufnahme tatsächlich auf 0, wenn der Tank voll ist?
Versuche es mal so: -
@wintermute sagte: Verbrauch des Entfeuchters geht zu Beginn öfter mal kurz auf 0.
Wirklich? Wenn das der Fall ist, verzögere die Prüfung nach dem Einschalten.
-
@paul53 sagte in Füllstandabfrage funktioniert nicht wie geplant:
Der Trigger-Datenpunkt ist nicht der richtige. Wenn die Stromaufnahme geprüft wird, dann muss diese auch als Trigger dienen.
Dann triggert das Script aber doch auch, wenn der Entfeuchter nicht von der Steckdose (die wiederum von der Luftfeuchtigkeit getriggert wird) eingeschaltet wird. Dann ist die Stromaufnahme ja auch 0.
-
@paul53 sagte in Füllstandabfrage funktioniert nicht wie geplant:
@wintermute sagte: Verbrauch des Entfeuchters geht zu Beginn öfter mal kurz auf 0.
Wirklich? Wenn das der Fall ist, verzögere die Prüfung nach dem Einschalten.
Das ist momentan nur eine Idee. Ich habe zwar einen History-Adapter auf die Stromaufnahme des Entfeuchters angesetzt, der ist aber möglicherweise nicht schnell genug, um kurze Schwankungen beim Einschalten zu bemerken.
-
@wintermute sagte: Dann triggert das Script aber doch auch, wenn der Entfeuchter nicht von der Steckdose (die wiederum von der Luftfeuchtigkeit getriggert wird) eingeschaltet wird.
Bei dem gezeigten Skript wird nur gesendet, wenn die Steckdose eingeschaltet ist und die Stromaufnahme erstmalig unter 0.1 (A?) sinkt.
-
@paul53 sagte in Füllstandabfrage funktioniert nicht wie geplant:
Bei dem gezeigten Skript wird nur gesendet, wenn die Steckdose eingeschaltet ist und die Stromaufnahme erstmalig unter 0.1 (A?) sinkt.
Wie es aussieht, funktioniert es so, wie Du gesagt hast (auch wenn ich es nicht genau verstehe).
Vielen Dank dafürDanke auch an @BananaJoe für Deinen Input. Mit Variablen zu arbeiten habe ich bisher gar nicht so auf dem Schirm gehabt