Hallo,
ich kämpfe mich seit einigen Tagen durch FEHM (auf einem RasPi) und verzweifle gerade an einem einfachen DOIF. U.a. habe ich einen AEOTEC ZWave-Stick eingebunden mit einem Everspring AN157 Zwischenstecker. Nachdem ich es nicht geschafft hatte, etwas komplexere DOIF hin zu bekommen, hab ich es ganz einfach versucht:
([15:24]-[15:25]) (set WZ_Fenstersteckdose on) DOELSE (set WZ_Fenstersteckdose off)
Das Ergebnis war... um 15:24 wurde eingeschaltet und dann passierte nichts mehr. In den Readings stand zwar der 2. Timer drin, aber es passierte nichts. Nachdem beide Timer abgelaufen waren, wurde das Datum für die nächsten in den Readings korrekt einen Tag vor gesetzt. Ich hab es dann versucht mit einfachen at-Befehlen:
15:28 set WZ_Fenstersteckdose on
15:29 set WZ_Fenstersteckdose off
beide Events haben korrekt geschaltet. Ich habe auch schon WZ_Fenstersteckdose manuell eingeschaltet und beim DOIF on/off vertauscht. Auch hier wurde der erste Timer korrekt geschaltet und dann passierte nichts mehr.
Komischerweise schaltet die obige Abfrage eine HomeMatic Zwischendose wie eine 1.
Kann mir da wer auf die Sprünge helfen?
Danke
Michael
P.S.: Und vielleicht würde mir wer erklären, warum
DOIF ([15:57]) (set FL_Funzel on) DOELSE (set FL_Funzel off)
die Funzel zwar einschaltet, aber nicht aus nach 15:57? Irgendwie hängt das mit dem DOIF noch zwischen den Ohren, sorry.
Hi Michael,
bin zwar hier auch noch ein totaler Anfänger aber versuch mal die def so zu schreiben:
([15:24-15:25]) (set WZ_Fenstersteckdose on) DOELSE (set WZ_Fenstersteckdose off)
oder
([15:24]) (set WZ_Fenstersteckdose on) DOELSEIF ([15:25]) (set WZ_Fenstersteckdose off)
Wenn ich es richtig verstanden habe, willst du ja um 15:24Uhr den Zwischenstecker einschalten und um 15:25Uhr bereits wieder ausschalten.
Gibt bestimmt noch elegantere Lösungen.
Gruß
Zitat von: MichaelO am 02 Oktober 2015, 15:48:18
Hallo,
ich kämpfe mich seit einigen Tagen durch FEHM (auf einem RasPi) und verzweifle gerade an einem einfachen DOIF. U.a. habe ich einen AEOTEC ZWave-Stick eingebunden mit einem Everspring AN157 Zwischenstecker. Nachdem ich es nicht geschafft hatte, etwas komplexere DOIF hin zu bekommen, hab ich es ganz einfach versucht:
([15:24]-[15:25]) (set WZ_Fenstersteckdose on) DOELSE (set WZ_Fenstersteckdose off)
Das Ergebnis war... um 15:24 wurde eingeschaltet und dann passierte nichts mehr. In den Readings stand zwar der 2. Timer drin, aber es passierte nichts. Nachdem beide Timer abgelaufen waren, wurde das Datum für die nächsten in den Readings korrekt einen Tag vor gesetzt. Ich hab es dann versucht mit einfachen at-Befehlen:
15:28 set WZ_Fenstersteckdose on
15:29 set WZ_Fenstersteckdose off
beide Events haben korrekt geschaltet. Ich habe auch schon WZ_Fenstersteckdose manuell eingeschaltet und beim DOIF on/off vertauscht. Auch hier wurde der erste Timer korrekt geschaltet und dann passierte nichts mehr.
Komischerweise schaltet die obige Abfrage eine HomeMatic Zwischendose wie eine 1.
Kann mir da wer auf die Sprünge helfen?
Danke
Michael
P.S.: Und vielleicht würde mir wer erklären, warum
DOIF ([15:57]) (set FL_Funzel on) DOELSE (set FL_Funzel off)
die Funzel zwar einschaltet, aber nicht aus nach 15:57? Irgendwie hängt das mit dem DOIF noch zwischen den Ohren, sorry.
Du musst die korrekte Syntax beachten:
([15:24-15:25]) (set ...
Gruß
Damian
Zitat von: codo55 am 02 Oktober 2015, 16:40:15
...
([15:24-15:25]) (set WZ_Fenstersteckdose on) DOELSE (set WZ_Fenstersteckdose off)
Tja, das schaltet zumindest in diesem Zeitraum jetzt den Z-Wave Stecker. Ich hatte das Beispiel der Referenz genommen, da wurden Dummies für beginn und end definiert und diese dann verwendet. Dabei wurde jedes mal mit eckiger Klammer umfasst. Das hatte ich dann einfach mit direkten Angaben versucht, was in die Hose ging.
Trotzdem hab ich noch nicht verstanden, warum das einfache
DOIF ([15:57]) (set FL_Funzel on) DOELSE (set FL_Funzel off)
nicht schaltet. Es sagt doch, dass um 15:57 ein und ansonsten ausgeschaltet wird. Das wäre ja immer bei ungleich 15:57, also auch erstmals bei 15:58. Oder hab ich da einen Knoten irgendwo?
Kann man eigentlich irgendwo seine Ausdrücke "simulieren"? Es ist recht mühsam, bei komplexeren Abfragen zu warten, bis alle theoretischen Zustände eintreten, um dann festzustellen, dass irgendwas nicht geht.
Gruß
Michael
Nur indirekte Zeitangaben werden bei Intervallen zusätzlich in eckige Klammern gesetzt.
DOIF ([15:57]) (set FL_Funzel on) DOELSE (set FL_Funzel off)
ZitatDas wäre ja immer bei ungleich 15:57, also auch erstmals bei 15:58. Oder hab ich da einen Knoten irgendwo?
Der Ausdruck ist schon ein paar Millisekunden später nicht mehr wahr ;)
Schaue dir noch mal genau die Beispiele in der Commandref an. So ein Beispiel wirst du nicht finden. Denn hier fehlt der Trigger für unwahr.
Gruß
Damian
Zitat von: Damian am 02 Oktober 2015, 17:08:48
Der Ausdruck ist schon ein paar Millisekunden später nicht mehr wahr ;)
Ja, da hast Du recht. Ich hatte gedacht, dass die Auswertung nur auf die im Ausdruck angegebenen Teile der Zeit statt findet, also hier auf Basis Stunde, Minute. Dass die Zeit im Hintergrund natürlich weiter rennt, daran ändern wir alle leider nix.
Danke für die Erklärung, dass macht es zumindest fürs Erste einfacher.
Gruß
Michael