Diskussion:Homebridge Start und Status in FHEM: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Syntaxhervorhebung)
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
Ich hätte ein angepasstes Startscript. Dabei lässt sich dieses durch die Parameter im oberen Abschnitt für Anfänger ggf. besser auf die eigenen Bedürfnisse anpassen.
09.02.2017
Falls die Homebridge nicht auf dem selben System wie FHEM läuft, funktioniert die Rückmeldung des Status an FHEM auch in diesem Szenario.


<source lang=bash>
Artikel Überarbeitet, im Rahmen meiner Umsetzung die ich mit dem Artikel vorgenommen hatte.
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules


PID=`pidof homebridge`
Inhaltlich habe ich den Artikel textuell hoffentlich lesbarer und verständlicher gestaltet.
homeBridgeUser="User hier"
fhemHost=127.0.0.1      #FHEM Server (Masterinstanz)
fhemHostTelnetPort=7072          #TelnetPort der FHEM Instanz
fhemDefine="FHEM.Homebridge.Status"


case "$1" in
Alle Schritte sind getestet und funktionieren (hoffentlich) bei Nachahmern genauso.
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is already running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine on"


else
Erweitert wurde der Artikel um die Betrachtung das FHEM und Homebridge nicht auf dem selben Server laufen muss.
        su - $homeBridgeUser -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge starting"
        sleep 2
$0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
else
        kill $PID
        echo "Homebridge closed"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge closed"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is running PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge running as PID $PID"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine on"
else
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "setreading $fhemDefine info Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort "set $fhemDefine off"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
</source>

Aktuelle Version vom 9. Februar 2017, 06:20 Uhr

09.02.2017

Artikel Überarbeitet, im Rahmen meiner Umsetzung die ich mit dem Artikel vorgenommen hatte.

Inhaltlich habe ich den Artikel textuell hoffentlich lesbarer und verständlicher gestaltet.

Alle Schritte sind getestet und funktionieren (hoffentlich) bei Nachahmern genauso.

Erweitert wurde der Artikel um die Betrachtung das FHEM und Homebridge nicht auf dem selben Server laufen muss.