sub Syntax Frage, System Befehl

Begonnen von franky08, 28 August 2016, 17:40:39

Vorheriges Thema - Nächstes Thema

franky08

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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Ellert

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')}"

franky08

Ich denke das war es, komme iMo nicht zum testen. Manchmal ist man blind und sieht die einfachsten Dinge nicht  :o

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

justme1968

auch hier ist der system aufruf und die perl ebene ziemlich sicher unnötig. "irsend..."sollte reichen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

franky08

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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

justme1968

eben. weil es 1:1 durchgereicht wird sollte es gehen. die " werden ja mit durchgereicht.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

franky08

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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1