FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: edition am 09 Juli 2016, 11:29:39

Titel: Nachhilfe bei Notify, DOIF & Co
Beitrag von: edition am 09 Juli 2016, 11:29:39
Hallo zusammen

Ich merke immer wieder das ich blutiger Anfänger bin, wenn es darum geht ein Notify, oder ein DOIF zu erstellen. Die größten Probleme bereitet es mir, die Bedingungen richtig zu definieren, was Leerzeichen, Klammern und so betrifft.
Wenn ich z.b.
define Testdoif DOIF ([Drehgriff_Terassentuer:state] tilted) (set Vitrine on) DOELSE (set Vitrine off)
erstelle,
Erhalte ich beim betätigen des Drehgriffs folgende Fehlermeldung:
perl error in condition: ReadingValDoIf($hash,'Drehgriff_Terassentuer','state','','',AttrVal($hash->{NAME},'notexist',undef)) tilted: syntax error at (eval 1387) line 1, near ") tilted "
Wo liegt denn da der Fehler? Den Drehgriff_Terassentuer gibt es doch!

gruß
edition
Titel: Antw:Nachhilfe bei Notify, DOIF & Co
Beitrag von: marvin78 am 09 Juli 2016, 11:35:00
Die fehlt ein Vergleichsoperator (bspw. eq). Bitte die Doku zu DOIF lesen. Diese ist sehr umfangreich (wenn sie auch zu 90% aus Beispielen besteht ;))
Titel: Antw:Nachhilfe bei Notify, DOIF & Co
Beitrag von: edition am 09 Juli 2016, 12:05:23
Also, wenn ich es so definiere
define Testdoif DOIF ([Drehgriff_Terassentuer:state] eq "tilted") (set Vitrine on) DOELSE (set Vitrine off)
funktioniert es. Verstanden habe ich es aber nicht.
Titel: Antw:Nachhilfe bei Notify, DOIF & Co
Beitrag von: CoolTux am 09 Juli 2016, 12:14:17
Du hattest doch sicherlich in der Schule Mathe. Und da hat man Zahlen vergleichen. So ähnlich ist das hier auch, nur das du nicht eine Zahl gegen eine andere vergleichst sondern vergleichst ob der Fensterkontakt den Status open closed oder tilted hat.
eq = Equivalent also GLEICHHEIT.
Titel: Antw:Nachhilfe bei Notify, DOIF & Co
Beitrag von: edition am 09 Juli 2016, 12:24:35
Dann steht also das eq für gleich. Meine ursprüngliche Definition fragte also übersetzt: Drehgriff Terassentür Status gekippt. Dabei muss es heißen: Drehgriff Terassentür Status gleich gekippt. Kann man das so sagen?
Titel: Antw:Nachhilfe bei Notify, DOIF & Co
Beitrag von: marvin78 am 09 Juli 2016, 12:31:56
eq steht für equal (oder gleich, ja). Und ja, das heißt es. Es gibt auch noch andere Operatoren wie ne (not equal). Bitte die Doku lesen, dann verstehst du es besser.