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
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?
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.
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!
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.