[gelöst] Problem mit Notify und IF

Begonnen von essera, 10 Januar 2017, 21:11:24

Vorheriges Thema - Nächstes Thema

essera

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

Devender

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  :)
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

Markus Bloch

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")
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Hollo

Value mit großem V sollte evtl. auch schon helfen.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

kumue

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)

essera

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.