Hallo,
ich habe eine Frage zur richtigen Anwendung des notify. Ein Homematic Dimmermodul soll beim Überschreiten eines Dimmewertes einen anderen Aktor einschalten und ihn beim Unterschreiten wieder abschalten. Der folgende Code erfüllt diese Funktion:
define Reg_R20 notify Dimmer1.* {if (ReadingsVal("Dimmer1_Sw","pct","unbekannt") > 55) {fhem("set Aktor2_Sw on")} else {fhem("set Aktor2_Sw off")} }
Der nachfolgende Code unter Verwendung des neuen IF-Befehls funktioniert nicht:
define Reg_R20 notify Dimmer1.* IF (Dimmer1_Sw:pct > 55) (set Aktor2_Sw on) ELSE (set Aktor2_Sw off)
Wo liegt der Fehler?
Auch ein anderer Ansatz unter Anwendung einer Dummy-Variablen funktioniert ebenfalls nicht (die Variable zeigt aber immer den richtigen Wert):
define Dimmer dummy
attr Dimmer room Zimmer
define Reg_Dimmer notify Dimmer1_Sw {my $var= ReadingsVal("Dimmer1_Sw","pct","unbekannt");; fhem("set Dimmer $var");;}
define Reg_R20 notify Dimmer.* {if (Dimmer > 55) {fhem("set #Aktor2_Sw on")} else {fhem("set Aktor2_Sw off")} }
Gruß
SGS
Hallo,
Anfängerfrage oder bezogen auf das Modul?
Wenn es auf das Modul bezogen ist sollte eher der Bereich Automatisierung http://forum.fhem.de/index.php/topic,17895.0.html (http://forum.fhem.de/index.php/topic,17895.0.html)
der richtige sein.
Grüße
Zitat von: SGS am 08 Mai 2014, 20:54:05
Hallo,
Der nachfolgende Code unter Verwendung des neuen IF-Befehls funktioniert nicht:
define Reg_R20 notify Dimmer1.* IF (Dimmer1_Sw:pct > 55) (set Aktor2_Sw on) ELSE (set Aktor2_Sw off)
Wo liegt der Fehler?
Wenn du hier: http://fhem.de/commandref_DE.html#IF aufmerksam liest, dann wirst du feststellen, dass in allen 11! Beispielen Readings in eckigen Klammern stehen, also:
define Reg_R20 notify Dimmer1.* IF ([Dimmer1_Sw:pct] > 55) (set Aktor2_Sw on) ELSE (set Aktor2_Sw off)
Gruß
Damian
Hallo,
ich habe es mit define Reg_R20 notify Dimmer1.* IF ([Dimmer1_Sw:pct] > 55) (set Aktor2_Sw on)
versucht, aber es funktioniert immer noch nicht?
Gruß
SGS
Zitat von: SGS am 11 Mai 2014, 22:29:41
ich habe es mit define Reg_R20 notify Dimmer1.* IF ([Dimmer1_Sw:pct] > 55) (set Aktor2_Sw on)
versucht, aber es funktioniert immer noch nicht?
Was steht im Log?
Was passiert, wenn du in der Kommandozeile eingibst: IF ([Dimmer1_Sw:pct] > 55) (set Aktor2_Sw on) ELSE (set Aktor2_Sw off)
Hast du ein aktuelles Update von FHEM mit dem IF-Befehl?
Gruß
Damian
Hallo,
und wieder kommen die Standartnachfragen die sich vermeiden liesen wenn die angepinnten Beiträge gelesen worden wären.
Grüße
Hallo,
bei direkter Eingabe des IF kommt eine Fehlermeldung "Unknown command IF, try help." und bei der Versionsabfrage taucht das IF-Modul nicht auf:
Zitat# $Id: fhem.pl 5238 2014-03-16 16:23:31Z rudolfkoenig $
# $Id: 00_CUL.pm 5213 2014-03-13 14:36:21Z rudolfkoenig $
# $Id: 10_CUL_HM.pm 5246 2014-03-17 19:15:05Z martinp876 $
# $Id: 10_EnOcean.pm 5249 2014-03-17 21:06:41Z klaus-schauer $
# $Id: 01_FHEMWEB.pm 5233 2014-03-16 12:31:19Z rudolfkoenig $
# $Id: 92_FileLog.pm 5068 2014-02-28 07:15:18Z rudolfkoenig $
# $Id: 00_HMLAN.pm 5246 2014-03-17 19:15:05Z martinp876 $
# $Id: 99_SUNRISE_EL.pm 4537 2014-01-03 08:28:59Z rudolfkoenig $
# $Id: 00_TCM.pm 5040 2014-02-24 16:29:01Z klaus-schauer $
# $Id: 99_Utils.pm 3595 2013-08-05 05:38:48Z tobiasfaust $
# $Id: 98_autocreate.pm 5015 2014-02-21 20:38:59Z rudolfkoenig $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_eventTypes.pm 2982 2013-03-24 17:47:28Z rudolfkoenig $
# $Id: 98_fheminfo.pm 4936 2014-02-15 08:45:47Z rudolfkoenig $
# $Id: 91_notify.pm 5179 2014-03-09 17:43:56Z rudolfkoenig $
# $Id: 98_telnet.pm 4844 2014-02-08 07:54:03Z rudolfkoenig $
Dies legt die Vermutung nahe, dass IF gar nicht installiert ist. Die letzte installierte Version von FHEM ist fhem-tgz.cvs vom 07.05.2014. Die Update-Funktion von FHEM funtioniert bei nicht, nur ein direktes Download. Insoweit werde ich mir mit dem kleine if weiterbehelfen ...
Gruß
SGS