Hallo zusammen,
ich habe folgendes Problem, dass mein FHEM Server hängen bleibt, wenn ein Homematic Bewegungsmelder auslöst, vom FHEM dann via eine Notification ein Skript am Raspberry abgerufen wird, welches ein paar Sachen prüft und dann gegebenfalls einen Befehl aus diesem aufgerufenen Skript an FHEM schickt, um die Homematic Sirene zu aktivieren.
Aufruf verkürzt ca so:
define n_FrontDoorMotionNotify notify HM_3618ED_Motion:motion { system("sudo /home/pi/Projects/HomeControl/sudowebscript.sh frontDoorMotionDetectedWeb") }
perl /opt/fhem/fhem.pl 7072 "set HM_4F59A5_Panic on-for-timer 60"
Kann es sein, dass FHEM hier in eine Endlosschleife stolpert, wenn ich aus einer Notification ein Skript und danach ein FHEM Kommando sende?
Danke schon mal für einen Tipp!
Eine "Notify-Endlosschleife" ueber FHEM-Befehle oder Perl-Aufrufe sollte nur mit einem zwischengeschalteten at oder sleep moeglich sein.
Ueber externe Skripte ist es auch ohne sleep/at moeglich. Ich wuerde "attr global verbose" hochsetzen, und im Log nachschauen.
Sollte es eigentlich auch möglich sein, dass ich von dem Skript einen Status Wert zurück gebe und dieser bei der Definition vom Notify abfrage und dementsprechend die Sirene direkt von FHEM ausgelöse oder nicht?
Nur so ein Gedanke, der mir als Workaround eingefallen ist.
ZitatSollte es eigentlich auch möglich sein, dass ich von dem Skript einen Status Wert zurück gebe und dieser bei der Definition vom Notify abfrage und dementsprechend die Sirene direkt von FHEM ausgelöse oder nicht?
Moeglich waere es, aber nicht empfohlen, da dabei FHEM sich fuer die Zeit der Skript-Ausfuehrung blockiert.
Btw. das passiert auch mit der vorher gezeigten Version. Folgendes ist die nicht blockierende Variante:
define n_FrontDoorMotionNotify notify HM_3618ED_Motion:motion "sudo /home/pi/Projects/HomeControl/sudowebscript.sh frontDoorMotionDetectedWeb"
Vielen Dank für den Tipp. wusste nicht, dass es auch einen nicht blockierenden Aufruf gibt. Der könnte dann auch dieses Problem lösen.