Homebridge Start und Status in FHEM - Ergänzung

Begonnen von Grinsekatze, 20 Juli 2017, 13:33:53

Vorheriges Thema - Nächstes Thema

Grinsekatze

Hi ho,

da ich gerade mal wieder mein System optimiere, habe ich festgestellt, dass der Artikel "Homebridge Start und Status in FHEM" aus dem Wiki (https://wiki.fhem.de/wiki/Homebridge_Start_und_Status_in_FHEM) überarbeitet wurde und nun vereinfacht wurde.

Jedoch habe ich hier noch einen Verbesserungsvorschlag:
Im aktuellen Code werden keine Telnetverbindungen mit Passwortabfrage berücksichtigt. Da ich jedoch meine Zugänge (auch Telnet) mit Passwörtern abgesichert habe, ist das nicht optimal.

Daher hier nun eine erweiterter Code, der auch Passwörter beinhaltet:

Start Script anlegen
sudo nano /etc/init.d/homebridge
#!/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`
homeBridgeUser="fhem"                 #Homebridge-User
fhemHost=127.0.0.1                    #FHEM-Server (Masterinstanz)
fhemHostTelnetPort=7072               #Telnet-Port der FHEM Instanz
fhemHostTelnetPassword="Passw0rt"     #Telnet-Passwort der FHEM Instanz
fhemDefine="SYS_Homebridge"           #Homebridge Device in FHEM

case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort $fhemHostTelnetPassword "setreading $fhemDefine info Homebridge is already running"
else
        su - $homeBridgeUser -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort $fhemHostTelnetPassword "setreading $fhemDefine info Homebridge starting"
perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort $fhemHostTelnetPassword "set $fhemDefine on"
        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 $fhemHostTelnetPassword "setreading $fhemDefine info Homebridge is not running"
else
        kill $PID
        echo "Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort $fhemHostTelnetPassword "setreading $fhemDefine info Homebridge stopping"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort $fhemHostTelnetPassword "set $fhemDefine off"
        sleep 2
$0 status
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 $fhemHostTelnetPassword "setreading $fhemDefine info Homebridge running as PID $PID"
else
        echo "Homebridge is not running"
        perl /opt/fhem/fhem.pl $fhemHost:$fhemHostTelnetPort $fhemHostTelnetPassword "setreading $fhemDefine info Homebridge is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0


Den Rest, wie im Wiki beschrieben durchführen.

Vielleicht noch eine Anmerkung: Wenn nach dem homebridge-Artikel im Wiki, "Homebridge einrichten" (https://wiki.fhem.de/wiki/Homebridge_einrichten), vorgegangen wurde, dann ist der homeBridge-User nicht "fhem", sondern auf einem Raspberry Pi "pi". Das muss dann oben noch geändert werden.

typturbo

Hallo, gibt es eine Möglichkeit eine 2. Instanz von Homebridge über Fhem zu steuern?

mittlerweile haben sich bei mir über 50 Geräte angesammelt und jedesmal wenn ein Mapping nicht ganz sauber ist, mag HomeKit meine Homebridge nicht mehr.
Daher würde ich gerne mehrere Instanzen laufen lassen um Geräte zu verteilen und im Fehlerfall nicht alles zu verlieren.


Ich weiß leider nicht wie ich das Script anpassen kann um das zu erreichen.
Hilfe ist Wilkommen :)

odie13690

Hallo zusammen,

leider bringe ich es nicht zusammen. Der Dummy übernimmt zwar den Status, wenn ich Homebridge im Terminal starte oder stoppe. Vom Dummy aus kann ich jedoch nicht starten oder stoppen.

Hat jemand eine Idee?

odie13690