Hallo,
ich habe ein Problem mit folgendem Notify (aus der fhem.cfg kopiert)
define z.klingel notify klingel:klingel.* {if (value("z_activeklingel") eq "on") {fhem ("set Sonos_Esszimmer PlayURITemp \\\\192.168.178.11\\SonosSpeak\\BigBen.mp3 40")};;{fhem("set Sonos_Wohnzimmer PlayURITemp \\\\192.168.178.11\\SonosSpeak\\BigBen.mp3 40")}}
Ich löse das notify mit dem Befehl: "trigger klingel klingel short" aus.
Ohne den zusätzlichen IF Befehl wurden die MP3 Files sauber abgespielt. Ich wollte jedoch das mit einem Dummy Schalter (z_activeklingel) selber beeinflussen.
Ich erhalte dann folgende Fehlermeldung:
- 2017.01.10 20:58:24 1 : ERROR evaluating my $EVTPART1='short';my $EVENT='klingel short';my $EVTPART0='klingel';my $TYPE='CUL_HM';my $SELF='z.klingel';my $NAME='klingel';{if (value("z_activeklingel") eq "on") {fhem ("set Sonos_Esszimmer PlayURITemp \\\\192.168.178.11\\SonosSpeak\\BigBen.mp3 40")};{fhem("set Sonos_Wohnzimmer PlayURITemp \\\\192.168.178.11\\SonosSpeak\\BigBen.mp3 40")}}: Undefined subroutine &main::value called at (eval 44773) line 1.
2017.01.10 20:58:24 3 : z.klingel return value: Undefined subroutine &main::value called at (eval 44773) line 1.
2017-01-10 20:58:24 CUL_HM klingel klingel short
Ich habe mir den Befehl aus div. Beschreibungen zusammen gebaut aber irgendwie scheint die Syntax nicht sauber zu sein.
Sieht jemand den Fehler der sich mir nicht erschließen will ?
Danke und Gruß,
Andreas
Pass mal bitte dein
{if (value("z_activeklingel") eq "on")
An auf
{if (ReadingsVal("z_activeklingel","state") eq "on")
Nur Value gibt es nicht, dass kann nicht funktionieren...
Das dürfte mit dem if allein nichts zu tun haben :)
Zitat von: Devender am 10 Januar 2017, 21:21:00
Nur Value gibt es nicht, dass kann nicht funktionieren...
Doch, die Funktion wird nur mit großen V geschrieben:
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Value
daher sollte auch folgendes funktionieren:
{if (Value("z_activeklingel") eq "on")
Value mit großem V sollte evtl. auch schon helfen.
Zitat von: Devender am 10 Januar 2017, 21:21:00
{if (ReadingsVal("z_activeklingel","state") eq "on")
Defaultwert nicht vergessen...
{if (ReadingsVal("z_activeklingel","state","") eq "on")
und if (perl) ist nicht gleich IF (FHEM-Befehl - siehe Überschrift)
Hallo,
das ging ja fix mit euch.
Also es war der Schreibfehler! Value mit großem V hat das Ding zum Fliegen gebracht. Mal wieder den Wald vor lauter Syntax nicht gesehen :-)
Euch vielen Dank dafür !!
VG,
Andreas.