FHEM Forum

FHEM => Sonstiges => Thema gestartet von: herman am 19 Februar 2014, 15:32:04

Titel: Befehl von einer FHEM-Instanz zu einer anderen
Beitrag von: herman am 19 Februar 2014, 15:32:04
Hallo,

aus Stabilitätsgründen habe ich eine zweite FHEM-Instanz am laufen bei der ich gerade mit Sonos experimentiere.
Beide Instanzen laufen auf dem gleichen RPI.

Aktuell sende ich per Kommandozeile Befehle von der ersten an die zweite.

z.B. system("perl /opt/fhem2/fhem.pl 7072 "set Sonos Play")

Leider ist dieser Aufruf nicht asynchron und führt dazu FHEM ein paar Sek hängt.

Ich weiß, dass es das Modul FHEM2FHEM gibt, jedoch habe ich die beiden Modus nicht verstanden. Ich möchte auch vermeiden, dass die zweite Instanz die erste zum Absturz bringt.

Faktisch übermittle ich aktuell den state von 3 Dummys an die zweite Instanz.
Wie würde man das mit FHEM2FHEM intelligent lösen?

Danke & Grüße,
Merhan


Titel: Antw:Befehl von einer FHEM-Instanz zu einer anderen
Beitrag von: herman am 19 Februar 2014, 19:59:06
Habe diesen Ansatz verfolgt.

http://forum.fhem.de/index.php/topic,16784.msg109752.html#msg109752 (http://forum.fhem.de/index.php/topic,16784.msg109752.html#msg109752)

Das funktioniert soweit.

Hält eigentlich ein notify das vom Client-FHEM verarbeitet wird der "erste" FHEM auf?
Titel: Antw:Befehl von einer FHEM-Instanz zu einer anderen
Beitrag von: rudolfkoenig am 19 Februar 2014, 20:19:48
ZitatHält eigentlich ein notify das vom Client-FHEM verarbeitet wird der "erste" FHEM auf?

Normalerweise nicht, es sei denn der Client-FHEM mehr als 500kb+ an events nicht abnimmt.
Wenn es passieren sollte, bitte melden, dann stelle ich dies auch auf ganz-nonblocking um.

Zitatz.B. system("perl /opt/fhem2/fhem.pl 7072 "set Sonos Play")
"perl /opt/fhem2/fhem.pl 7072 "set Sonos Play" als FHEM-Befehl waere asynchron.
Titel: Antw:Befehl von einer FHEM-Instanz zu einer anderen
Beitrag von: herman am 20 Februar 2014, 18:30:56
Hallo Rudi,

Über Telnet oder die Kommandoeingabe funktioniert


"/opt/fhem2/fhem.pl 7073 "set TestDummy on""


Wie wäre die korrekte Syntax wenn ich das asynchrone Kommando in 99_myUtils.pm einbaue?

Vielen Dank!
Titel: Antw:Befehl von einer FHEM-Instanz zu einer anderen
Beitrag von: rudolfkoenig am 20 Februar 2014, 20:31:14
Vermutlich am einfachsten mit
  CommandAnalyze('"/opt/fhem2/fhem.pl 7073 "set TestDummy on""');
Oder
system('/opt/fhem2/fhem.pl 7073 "set TestDummy on" &');
wobei hier die Umleitung von STDOUT/STDERR fehlt.