[gelöst] DOIF: Bei AND nur eine Zustandsänderung beachten

Begonnen von kjmEjfu, 14 Oktober 2015, 21:52:56

Vorheriges Thema - Nächstes Thema

kjmEjfu

Hallo zusammen,

ich versuche mir ein DOIF zur Anwesenheit zu basteln, komme aber irgendwie nicht auf den richtigen Gedanken.

Mein aktuelles DOIF sieht so aus

define n_Kind_home DOIF ([rr_Kind] eq "home") (set WhatsApp send xxxx Kind ist zuhause) DOELSEIF ([Eltern] ne "home" and [rr_Kind] ne "home") (set WhatsApp send xxxx Kind ist unterwegs)

Der normale IF-Teil funktioniert, aber im ELSEIF-Zweig wird nicht ganz so ausgelöst wie ich mir das vorstelle.
Denn dieser Bedingung löst so natürlich auch dann aus, wenn das Kind bereits abwesend ist und nun die Eltern gehen. Das ist aber nicht notwendig :-) Vielmehr möchte ich ja, dass die Eltern eine Nachricht bekommen, wenn sie nicht zuhause sind aber das Kind geht. Der ELSEIF-Zweig soll also quasi nur dann auslösen, wenn sich rr_Kind verändert und Eltern != home ist.
Jemand eine Idee wie ich meinen Ansatz korrigieren muss?

Danke schon mal
Ejfu
Migriere derzeit zu Home Assistant

Damian

Na dann,

define n_Kind_home DOIF ([rr_Kind] eq "home") (set WhatsApp send xxxx Kind ist zuhause) DOELSEIF ([?Eltern] ne "home" and [rr_Kind] ne "home") (set WhatsApp send xxxx Kind ist unterwegs)


Man beachte den kleinen Unterschied bei "Eltern", genaueres zum Fragezeichen an dieser Stelle siehe Commandref zu DOIF.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

kjmEjfu

Danke für den Hinweis!

Aber die Lösung irritiert mich etwas.
Denn das Fragezeichen gilt doch im Zusammenhang von Ereignissen und regulären Ausdrücken. An der Stelle will ich aber doch gar kein Ereignis für Eltern auswerten. Und in der Commandref steht ja auch zur Syntax  [<devicename>:?<regexp>]. Deine Lösung folgt aber, zumindest für mich als Laien, einer anderen Syntax.
Hmm, reguläre Ausdrücke waren noch nie meine Welt ...

Werde es mir merken. Hatte noch so ein, zwei Fälle, bei denen ich auch diesen Ansatz brauche.

Vielen Dank nochmal,
Ejfu
Migriere derzeit zu Home Assistant

Damian

Zitat von: kjmEjfu am 14 Oktober 2015, 22:38:40
Danke für den Hinweis!

Aber die Lösung irritiert mich etwas.
Denn das Fragezeichen gilt doch im Zusammenhang von Ereignissen und regulären Ausdrücken. An der Stelle will ich aber doch gar kein Ereignis für Eltern auswerten. Und in der Commandref steht ja auch zur Syntax  [<devicename>:?<regexp>]. Deine Lösung folgt aber, zumindest für mich als Laien, einer anderen Syntax.
Hmm, reguläre Ausdrücke waren noch nie meine Welt ...

Werde es mir merken. Hatte noch so ein, zwei Fälle, bei denen ich auch diesen Ansatz brauche.

Vielen Dank nochmal,
Ejfu

Da hast du wohl die falsche Stelle in der Commandref erwischt.

Vielmehr war diese Stelle hier interessant:

ZitatZeitintervalle, Readings und Stati ohne Trigger

Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.

Es gibt dazu allerdings nur ein Beispiel für Zeitintervalle.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

kjmEjfu

Oh man, da bin ich sogar vor ein paar Wochen drüber gestolpert und wollte es mir noch mit "wow, cooles Feature" merken ...

Danke nochmal,
Ejfu
Migriere derzeit zu Home Assistant