Hallo!
Was hat's eigentlich mit der Fehlermeldung auf sich?
Bareword "opened" not allowed while "strict subs" in use at (eval 263) line 1.
Mein Code sieht so aus. Die letzte Zeile mit dem d2NUC wird kritisiert:
([dMultiMedia] eq "on")
(
set lsWohnzimmer scene sFernsehen;
set dTV on;
set dRXV777 on;
define atTvOn at +00:00:10 set drcTV KEY_HDMI1;
)
DOELSEIF ([dMultiMedia] eq "off")
(
set lsWohnzimmer scene sStandard;
set dTV off;
set dRXV777 off;
IF ([d2NUC] eq "opened")(set d2NUC shutdown;;set wolNUC off);
)
Danke
Stefan
Ich denke das Problem beginnt damit, dass "IF" kein FHEM-Befehl (und IF wäre jetzt auch kein Perl-statement) ist. Eigentlich möchtest Du aber perl code hier ausführen möchtest.
aus der DOIF-Doku:
Perlbefehle müssen zusätzlich in geschweifte Klammern gesetzt werden: ... ({system ("wmail Peter is at home")})
Zitat von: viegener am 28 Oktober 2015, 18:50:44
Ich denke das Problem beginnt damit, dass "IF" kein FHEM-Befehl ... ist
seit wann nicht mehr?
http://fhem.de/commandref.html#IF
::) das muss sich der IF Entwickler ansehen
Zitat von: betateilchen am 28 Oktober 2015, 18:52:51
seit wann nicht mehr?
http://fhem.de/commandref.html#IF
Oops, das habe ich offensichtlich immer überlesen. Meine Augen und mein Gedächtnis werden wohl auch nicht besser.
Sorry ???
Zitat von: http://fhem.de/commandref_DE.html#DOIF
Sollen mehrere FHEM-Befehle ausgeführt werden, so werden sie mit Komma statt mit Semikolon angegeben ... (set lamp1 on, set lamp2 off)
Falls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden: ...((set lamp1,lamp2 on),set switch on)
([dMultiMedia] eq "on")
(
set lsWohnzimmer scene sFernsehen,
set dTV on,
set dRXV777 on,
define atTvOn at +00:00:10 set drcTV KEY_HDMI1
)
DOELSEIF ([dMultiMedia] eq "off")
(
set lsWohnzimmer scene sStandard,
set dTV off,
set dRXV777 off,
(IF ([d2NUC] eq "opened")(set d2NUC shutdown,set wolNUC off))
)
Zumindest verstehe ich es so.
Die Sache mit dem Beistrich ist doch tatsächlich die Lösung! Da wurde ich wohl Opfer des Unterschieds zwischen der englischen und der deutschen Commandref. Und der Tatsache, dass bis auf das IF - trotz Strichpunkt - alles funktioniert hat ;)
Danke igami!