FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: franky08 am 28 August 2016, 17:40:39

Titel: sub Syntax Frage, System Befehl
Beitrag von: franky08 am 28 August 2016, 17:40:39
Hallo, irgendwie scheitere ich iMo an einem simplen Problem. Ich habe in einer sub u.a. folgenden Codeteil:
my $switch = Value("Klima_Schalter");
my $send = Value("Klima_send_dummy");

if ($send eq "on" && $switch eq "on" && ($hour >= 12 && $hour <= 19)) {
fhem "set pifhem {system("irsend SEND_ONCE Klima KEY_POWER")}"
}
if ($send eq "on" && $switch eq "off" && ($hour >= 12 && $hour <= 19)) {
fhem "set Klima_Schalter on; sleep 2; set pifhem {system("irsend SEND_ONCE Klima KEY_POWER")}"
}


der system Befehl: fhem "set pifhem {system("irsend SEND_ONCE Klima KEY_POWER")}" bringt mir laufend einen Syntax Fehler und ich komme nicht darauf warum. pifhem ist ein dummy und sendet den Befehl über F2F an einen RASPI, dort hängt das IR Teil dran.
Rufe ich den Code auf Kommandoebene von FHEM auf, funktioniert es wie gewollt:

define Klima_Power_schalten notify Klima_Power_send_dummy:on set pifhem {system("irsend SEND_ONCE Klima KEY_POWER")}

das funktioniert.

hat jemand einen Tipp?

VG
Frank
Titel: Antw:sub Syntax Frage, System Befehl
Beitrag von: Ellert am 28 August 2016, 17:49:38
Könnte es an der verschachtelten Verwendung der doppelten Anführungszeichen liegen?
Vielleicht geht es so:
fhem "set pifhem {system('irsend SEND_ONCE Klima KEY_POWER')}"
Titel: Antw:sub Syntax Frage, System Befehl
Beitrag von: franky08 am 28 August 2016, 17:58:15
Ich denke das war es, komme iMo nicht zum testen. Manchmal ist man blind und sieht die einfachsten Dinge nicht  :o

VG
Frank
Titel: Antw:sub Syntax Frage, System Befehl
Beitrag von: justme1968 am 28 August 2016, 18:06:20
auch hier ist der system aufruf und die perl ebene ziemlich sicher unnötig. "irsend..."sollte reichen.

gruss
  andre
Titel: Antw:sub Syntax Frage, System Befehl
Beitrag von: franky08 am 28 August 2016, 18:12:22
Hallo Andre, der Aufruf wird über F2F an einen pi 1:1 "durchgereicht" und auf der Instanz braucht es den Aufruf über system..., wäre es local ginge es ohne, da ich auf Perl Ebene bin, hoffe ich liege nicht vollkommen falsch.  ;)

VG
Frank
Titel: Antw:sub Syntax Frage, System Befehl
Beitrag von: justme1968 am 28 August 2016, 18:26:57
eben. weil es 1:1 durchgereicht wird sollte es gehen. die " werden ja mit durchgereicht.
Titel: Antw:sub Syntax Frage, System Befehl
Beitrag von: franky08 am 28 August 2016, 18:47:12
OK, kann ich morgen testen, dachte das auf der remote Instanz der Aufruf wider mit {system("irsend SEND_ONCE Klima KEY_POWER")} erfolgen muss.

Auf der remote Instanz ist folgendes definiert:
define F2F FHEM2FHEM 192.168.2.66:7072 LOG:pifhem.*
attr F2F room System
define n_pifhem notify pifhem.* {Log 3, "$NAME: $EVENT";;fhem("$EVENT")}
attr n_pifhem disable 0
attr n_pifhem room Infrarot


VG
Frank