Hallo,
wenn ich deinen Code so in die FHEM-Befehlszeile eingebe bekomme ich logischerweise ein
ZitatUnknown module {
von FHEM angezeigt.
Du zeigst uns also nicht den ganzen Code da das Schlüsselwort notify (vermute ich mal) fehlt und das Device das das notify triggert.
Also frei Schnauze evtl. so:
define daemmerung notify Wetterdaten.* { if(ReadingsVal("Wetterdaten","ws_Licht",100) < 10) { fhem("set au_licht on") } else
{ fhem("set au_licht off") } }
oder auch so:
define daemmerung notify Wetterdaten:.* { if(ReadingsVal("Wetterdaten","ws_Licht",100) < 10) { fhem("set au_licht on") } else
{ fhem("set au_licht off") } }
Wenn du nun im EventMonitor schaust siehst du die Events vom Device Wetterdaten - und jedes dieser Events triggert dein notify und führt dazu das der Code ausgeführt wird.
Schlecht da unnötig - wie du schon richtig bemerkt hast.
Tipp:
Mach dich mit regexp vertraut - siehe Wiki, Forum und Perl.
Es gibt ja mehr als genug Seiten dazu und versuch mal sowas:
define daemmerung notify Wetterdaten:ws_Licht.* { if(ReadingsVal("Wetterdaten","ws_Licht",100) < 10) { fhem("set au_licht on") } else
{ fhem("set au_licht off") } }
so es das Device Wetterdaten mit dem Reading ws_Licht gibt (und dieses auch so geschrieben wird).
Daher auch als nächster Tipp:
Lies dir mal meinen angepinnten Beitrag durch - dort habe ich schonmal das nötigste an Infos beschrieben - das define von
Wetterdaten fehlt und dessen Readings.
Weiters - lass die Finger von der fhem.cfg und schau auch mal ins FHEM-Logfile.
FHEM "spricht" mit dir wenn es richtig behandelt wird und meldet entweder sofort wenn was nicht passt (ein define z.B. ohne Schlüsselwort) oder schreibt auch mal was ins FHEM-Logfile.
Diese Infos wären auch noch nett gewesen.
Grüße
P.S.: Wenn du dich erstmal an die Befehlszeile und das DEF gewöhnt hast willst du nichts anderes mehr ;)
Edith: Am Device Wetterdaten noch das
attr event-on-change-reading .* setzen und das notify sollte nur noch getriggert werden wenn sich ws_Licht ändert.
Um dann immer noch ein nicht-nochmaliges schalten zu verhindern sollte im Code der Status des Device geprüft werden - das wird dann aber kein Einzeiler bei mir.
Oder du schaust dir mal DOIF an (in der commandref auch auf deutsch erhältlich 8) ).