Seite 2 von 4
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 15. Nov 2020 21:20
von udo1toni
Wie Du die Rules organisierst, ist letztlich wuppe.
Es gibt zwei Punkte, die beachtet werden müssen.
Zum einen sollte man globale Variablen nur innerhalb der Datei verwenden, in der sie definiert sind (vor der ersten Rule in der Datei).
Zum zweiten wird der Debugger tendenziell langsamer, je größer die Datei ist. Es ist also trotz Punkt eins sinnvoll, Rules, die man gerade entwickelt, zunächst in einer eigenen Datei "aufzubewahren".
Ich habe alle Rules grundsätzlich in einer Datei, aber das ist nur meine Art, Rules zu organisieren.
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 23. Nov 2020 19:23
von Boris099
Ich habe da noch eine Verständnisfrage zur angewendeten TimeCron rule. Ich habe diese rule nun als separate Datei gespeichert,
ist übersichtlicher und ich schalte zusätzlich diverse andere Switches.
Diese schaltet zum gegebenen Zeitpunkt, die entsprechenden Switches OFF.
Läuft diese rule nun permanent oder exakt einmalig zur gegebenen Uhrzeit?
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 24. Nov 2020 06:12
von udo1toni
Rules sind IMMER eventgesteuert. Rules werden exakt dann ausgeführt, wenn einer der gelisteten Trigger auslöst. Time cron gibt immer Zeitpunkte an, niemals Zeiträume.
Selbst der Time cron Ausdruck "* * * * * ?" (das ist das maximal mögliche) gibt lediglich Zeitpunkte an, eben jede einzelne Sekunde des gesamten Jahres jedes beliebigen Jahres. Es wird dann also zu Beginn jeder Sekunde jeweils ein Trigger ausgelöst.
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 24. Nov 2020 09:18
von Boris099
Ok vielen Dank, das dachte ich auch so.
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 1. Dez 2020 18:14
von Boris099
Also ich habe da noch eine kleine Fehlfunktion, ich denke begründet in der "unbefriedigenden" Funktion der ZWAVE Luminance Sensoren.
Ich benutze z.B. diese if Abfrage
Code: Alles auswählen
if(newState <= 6 && previousState > 6) {
if (now.getHourOfDay() >= 16 || now.getHourOfDay() <= 0) {
KuecheKamin56.sendCommand(ON)
KuecheVitrine23.sendCommand(ON)
}
Ich habe die Sensoren so eingestellt, dass sie Luminance Änderungen von "1" auch schon melden. Das funktioniert grundsätzlich,
jedoch "pennen" die manchmal ein oder so, und melden dann eine halbe Stunde gar nichts, und wenn dann z.B. "4".
Das ist eigentlich mit <= abgefangen, aber da passiert trotzdem nix.
Wenn ich dann den Luminance Wert nach oben treibe (Taschenlampe) und der wieder unter 6 sinkt, schalten die Switches auch.
Was kann ich da tun, evtl. mit mehreren "Oder" die einzelnen Luminanz Werte von 6 nach 1 abfragen?
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 2. Dez 2020 13:14
von udo1toni
Das kann eigentlich nicht sein. Setze mal vor das if ein logInfo, um die Werte zu sehen:
Code: Alles auswählen
logInfo("luminance","Neuer Wert: {} Alter Wert: {}",newState,previousState)
Damit kannst Du dann im Log nachvollziehen, welche Werte tatsächlich geliefert werden.
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 2. Dez 2020 15:54
von Boris099
Jetzt gerade nochmal das gleiche Problem.
Kann das mit der Uhrzeit zu tun haben, denn ich frage zusätzlich die Uhrzeit ab und erst ab 15h (habe ich geändert auf 15h und <=3) macht er was
Momentan hatte ich den Luminanz Wert von 1 und natürlich kam er von einem höheren Wert, aber das spielt sich alles unter dem Wert von <= 3 ab.
Also um 14:41 hatte er 1 und um 15:31 hatte er 1, und 15:00 ist mit IF abgefragt.
Im log sehe ich die Werte sowieso, mit Filter sieht das folgendermassen aus:
Code: Alles auswählen
2020-12-02 12:46:11.200 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from NULL to 3
2020-12-02 12:49:26.224 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 3 to 5
2020-12-02 13:04:31.842 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 5 to 3
2020-12-02 14:34:54.836 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 3 to 1
2020-12-02 14:36:44.846 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 1 to 3
2020-12-02 14:41:49.874 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 3 to 1
2020-12-02 15:31:28.999 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 1 to 10
2020-12-02 15:31:37.611 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 10 to 0
2020-12-02 15:31:47.065 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node5_sensor_luminance changed from 0 to 2
Und um 15.31h habe ich kurz eine Lampe eingeschaltet und wieder ausgeschaltet, damit er das rule zieht, mit Erfolg!
Deshalb dachte ich ich frage einfach mit Oder einzelne Werte ab, aber wie geht das mit dem Oder?
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 2. Dez 2020 19:54
von udo1toni
Na ja, die Uhrzeiteinschränkung hast Du ja explizit drin. In der Regel oben wird das Licht nur in der Zeit von 16:00:00 Uhr bis 00:59:59.999 Uhr (also eine Millisekunde vor 1 Uhr) eingeschaltet, und zwar ausschließlich dann, wenn ein neuer Messwert kommt und der vorherige Messwert über 6 und der aktuelle Messwert gleich oder unter 6 ist.
Dein Filter ist insofern nicht hilfreich, denn man kann nicht erkennen, ob die Rule ausgelöst hat, und erst recht kann man nicht erkennen, welchen Wert newState und previousState haben, wenn die Rule läuft. Du musst hier schon darauf achten, dass Du die tatsächlichen Variablen ausliest, und nicht auf einen Wert schauen, der eigentlich in den Variablen drin stehen müsste.
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 2. Dez 2020 20:13
von Boris099
OK und weil die Luminance die ganze Zeit bei 1 war (ohne Änderung) passiert nix, dass ist nicht im Sinne des Erfinders:-)
Diese Zwave Battery Geräte senden halt möglichst wenig und halt auch nur Änderung und nicht einfach nur so.
Aber das könnte ich doch abfangen, wenn ich feste Werte abfrage, also bist du 4 oder 3 oder 2 oder 1 dann "ON".
Jedoch müsste ich dann den letzten gemeldeten Wert abfragen, geht das?
Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF
Verfasst: 3. Dez 2020 09:44
von udo1toni
Nein, Du musst lediglich den Vergleich mit previousState weg lassen...
Gesendet von meinem SM-G973F mit Tapatalk