NEWS
"Badfenster offen" funktioniert nur teilweise
-
@thomas4170 sagte in Hinweis "Badfenster offen" funktioniert nur teilweise:
Irgendwo habe ich mal gesehen das es besser ist
weil sonst bei gleichem Trigger der Timeot ein zweites mal gestartet wird, was dazu führt, dass er nicht mehr gestoppt werden kann.
Deswegen muss der laufende Timeout vor einem erneuten Start erst gestoppt werden. -
Cool danke, jetzt kenne ich den Grund
-
@paul53 sagte in Hinweis "Badfenster offen" funktioniert nur teilweise:
@hertob81 sagte: Warum packst Du das "STOP" oben rein
Damit wird bei jeder Änderung eines Fensters gestoppt und bei Öffnen eines Fensters das Intervall neu gestartet. Unterschied: In meinem Vorschlag läuft das bereits gestartete Intervall weiter.
Danke für die Info, habe es ein paar Mal lesen müssen bevor ich es verstanden habe.
-
Könntet Ihr bitte kurz da drauf schauen, ich verstehe nicht, warum ich keine Meldung erhalte. Ich habe das Skript oben kopiert aber so modifiziert, dass im Kinderzimmer die Innentemperatur mit abgefragt werden soll:
Wenn das Fenster offen ist UND die Innentemperatur unter 21 °C fällt soll die Meldung abgesetzt werden, jedoch nur zwischen 7.00 Uhr und 19.00 Uhr.
Wie gesagt, es passiert nix:Danke euch!
-
@hertob81 sagte in "Badfenster offen" funktioniert nur teilweise [GELÖST]:
Wie gesagt, es passiert nix:
dann setz mal debug Bausteine an die kritischen Stellen um zu sehen wo es hängt
-
Wie oft sendet denn der Thermostat die Temperatur? Wenn der nur alle 10 Minuten oder so sendet, dann kann das natürlich ewig dauern bis alle Bedingungen erfüllt sind...
-
Ich habe den Fehler entdeckt, siehe screenshot:
Jetzt kommt die Meldung, allerdings auch noch, wenn ich das Fenster geschlossen habe.
Ich vermute, das Skript wird noch über die Raumtemperatur getriggert.Für mein Verständnis benötige ich noch eine Bedingung, dass das Skript nicht mehr getriggert wird, sobald das Fenster zu ist, auch wenn die Temperatur im Ruam immernoch unter dem Schwellwert liegt, richtig?
@JoergH: Es ist ein Xiaomi Aquara Sensor, der meldet sich sobald sich die Temperatur ändert.
-
@hertob81 sagte in "Badfenster offen" funktioniert nur teilweise [GELÖST]:
Für mein Verständnis benötige ich noch eine Bedingung, dass das Skript nicht mehr getriggert wird, sobald das Fenster zu ist, auch wenn die Temperatur im Ruam immernoch unter dem Schwellwert liegt, richtig?
richtig. Dein sonst bezieht sich nur auf die Uhrzeit
-
@hertob81 Ja, stimmt. Logisch. Er hat ja nur das Skript beim Öffnen ausgeführt und nicht wenn sich danach die Temperatur ändert...
-
Sollte das schon die Lösung sein?
Für den Trigger "Zeit" benötige ich kein weiteres "sonst", oder?
-
Mittlerweile habe ich einen weiteren Türsensor an das zweite Fenster angebracht.
Durch den Debug Output erkenne ich, dass das Programm bzw. der Intervall beendet wird, wenn ich das zweite Fenster öffne.
Im Klartext: EIN Fenster auf-> Meldung kommt ordnungsgemäß
BEIDE Fenster auf -> keine MeldungIch verstehe es nicht...
-
@hertob81 sagte: Intervall beendet wird, wenn ich das zweite Fenster öffne.
Dann stimmt etwas in der Datenpunkt-Zuordnung der ODER-Verknüpfung nicht. Verwende eindeutige Namen, dann passiert so etwas nicht!
-
@paul53
Okay, ich schau mir das später an wenn ich daheim bin, aber ich kann fast nicht glauben, dass mir der Fehler zweimal (in beiden Kinderzimmer) passiert ist.
Ich habe auch noch nicht verstanden wie ich die Punkte umbenennen kann. Also dass das nicht nur "isopen" steht sondern z.b "ManuelTuerIsOpen" oder so ähnlich. -
Ich bin jetzt etwas schlauer, habe aber noch keinen Lösungsansatz.
Es sind auf jeden Fall die richtigen Datenpunkte verwendet.
Wenn ich ein Fenster öffne, wird dies erkannt, die Uhrzeit geprüft, dann die Temperatur geprüft (Wert kleiner 21) -> Meldung erfolgt.
Wenn ich jetzt das zweiter Fenster öffne, wird auch dies erkannt, die Uhrzeit geprüft, ABER DANN springt das Programm direkt zu "Intervall Ende". Er prüft also bei zweiten öffnen des Fensters die Raumtemperatur nicht mehr.Ideen?
javascript.0 2021-11-27 17:09:17.855 info (21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Manuel Intervall Ende javascript.0 2021-11-27 17:09:17.855 info (21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Zeit zwischen 7 und 19 javascript.0 2021-11-27 17:09:17.854 info (21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Objekt erkannt javascript.0 2021-11-27 17:09:13.346 info (21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Manuel Fenster auf und Temp. kleiner 21 javascript.0 2021-11-27 17:09:13.345 info (21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Zeit zwischen 7 und 19 javascript.0 2021-11-27 17:09:13.345 info (21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Objekt erkannt
-
@hertob81
Die Abfrage von "nicht Intervall" darf nicht in die UND-Verknüpfung rein, sondern muss nachträglich erfolgen. -
@paul53
Ich habe mir mit Hilfe der Beispiele auch ein Blockly gebastelt, welches wie folgt aussieht. Es funktioniert auch meistens nur manchmal schickt er mir weiterhin Nachrichten, obwohl das Fenster den Status "closed" hat. Hab ich irgendwas falsch gemacht?
-
@conosen
Liefert der Datenpunkt tatsächlich einen String? -
@paul53
Danke schon einmal für die schnelle Antwort. Tut mir Leid, das kann ich nicht sagen. Der Datenpunkt kann den Wert "closed", "open", oder "tilted" annehmen. Es handelt sich um einen Rademacher Fensterkontakt.
So sieht der aus:
Also meistens funktioniert es auch, nur manchmal scheint es sich irgendwie in der Schleife aufzuhängen und sendet weiter Nachrichten, obwohl das Fenster wieder geschlossen ist. Ich habe leider noch nicht herausgefunden wieso.
-
@conosen sagte: So sieht der aus:
Das sieht nach einem String aus.
@conosen sagte in "Badfenster offen" funktioniert nur teilweise:
sendet weiter Nachrichten, obwohl das Fenster wieder geschlossen ist.
Wenn zwischen "open" und "tilted" gewechselt wird, werden mehrere Intervalle gestartet, die nicht mehr gestoppt werden können. Das muss man durch eine Sperre verhindern.
Anmerkung: Man muss erst eine dummy-Variable erstellen, um auf die Variable Intervall zugreifen zu können.
-
@paul53 verstehe. Ich dachte wenn man von Kipp das Fenster öffnet, geht man ja zwangsläufig über den Zustand geschlossen. Jedoch passiert das wahrscheinlich so schnell, dass geschlossen nie übermittelt wird. So funktioniert es nun und danke für die schnelle Hilfe.