Homematic Sprachsteuerung – Homebridge jetzt mit grafischer Oberfläche verwalten
Über das Homekit und die Integration von Homematic habe wir schon sehr viel berichtet. Die Homebridge ist eine Programm, das z.B. auf dem Raspberry Pi läuft. Dieses bildet die Schnittstelle zu anderen Systemen wie z.B. Homematic, welche nicht von sich aus kompatibel mit Apple sind. So können auch Fremdsysteme per Sprache mit Siri und bequem über die Smarthome App von Apple gesteuert werden. Wie Ihr die Bridge aufsetzt, installiert und konfiguriert haben wir Euch in etlichen Tutorials bereits ausführlich beschrieben, heute will ich Euch aber eine sehr interessante Erweiterung vorstellen, die die Homebridge um eine grafische Oberfläche erweitert, die dann per Webbrowser aufgerufen werden kann.
So könnt Ihr die config-Datei, du zuvor immer über den Putty per SSH angepasst werden musste über den Webbrowser ändern. Auch können jetzt Geräte direkt über dieses Fenster bedient und eingesehen werden. Ein weiterer großer Vorteil ist, das der Status der Bridge jederzeit mit einem Blick eingesehen werden kann. Auch kann die Bridge direkt über dieses Fenster neu gestartet, upgedatet und beendet werden.
Auch wenn ein neues Gerät zur Homebridge hinzugefügt worden ist, muss diese nicht mehr über die Console neu gestartet werden. Die komplette Bedienung findet ganz bequem über die grafische Oberfläche statt.
Installation von Homebridge Config UI X
Um die Oberfläche zu installieren, muss zuerst eine Homebridge aufgesetzt werden. Dazu folgt Ihr der ausführlichen Anleitung zur Installation der Homebridge, die ich Euch bereits geschrieben habe. Nach dem Ihr alles fertig installiert habt, kann nun die Config UI X installiert werden.
Dazu führt Ihr folgenden Befehl über SSH auf Eurem Raspberry Pi aus:
sudo npm install -g --unsafe-perm homebridge-config-ui-x
Nachdem die Installation durchgelaufen ist, müssen wir noch ein letzemal die config anpassen:
sudo nano ~/.homebridge/config.json
Hier müssen wir jetzt folgenden Eintrag bei „plattform“ergänzen:
{
"platform": "config",
"name": "Config",
"port": 8083,
"sudo": true,
"restart": "sudo -n systemctl restart homebridge",
"log": {
"method": "systemd",
"service": "homebridge"
}
Als Beispiel habe ich Euch einen Auszug aus meiner Config bereitgestellt, damit Ihr ein Beispiel habt, an dem Ihr Euch richten könnt:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:31",
"port": 51826,
"pin": "031-45-154"
},
"platforms": [
{
"platform": "HomeMatic",
"name": "HomeMatic CCU3",
"ccu_ip": "ccu3-webui",
"enable_hmip": "true",
"filter_device": [],
"filter_channel": [],
"outlets": [],
"doors": [],
"windows": [],
"programs": [],
"accessories": [],
"subsection": "Homekit"
},
{
"platform": "config",
"name": "Config",
"port": 8083,
"sudo": true,
"restart": "sudo -n systemctl restart homebridge",
"log": {
"method": "systemd",
"service": "homebridge"
}
}
],
"accessories": []
}
Zur Erklärung der config
Die Platform „config“ wird hier eingestellt. Ich will meine Config UI X über http://IP-vom-PI:8083 erreichen, da die anderen Ports bereits durch ioBroker und die VIS belegt sind. Daher habe ich den Port auf 8083 gelegt.
Auch können wir bei ccu_ip den Namen der CCU eintragen. So müssen wir nicht manuell die IP-Adresse heraussuchen. Bei Verwendung einer CCU2 lautet dieser homematic-ccu2. Bei einer CCU3 lautet der Name ccu3-webui.
Wir müssen nun auch noch dafür sorgen, dass die Homebridge automatisch neu gestartet werden kann über den Browser. Dazu benötigen wir den Eintrag „restart“. Da wir in der vorherigen Anleitung den Autostart über systemd eingerichtet haben, muss auch dies hier vermerkt werden. Die nötigen Codezeilen sehr Ihr bereits im oberen Beispiel.
Einen weiteren kleinen Punkt, den wir beachten müssen, ist das die Homebridge im „unsafe-Mode“ ausgeführt werden muss. Der Befhel dazu lautet:
homebridge -I
Doch dieser Befehl alleine bringt uns nichts, da wir die Homebridge mit diesem befhel nur in einer Session starten. Wenn wir später einen Neustart über Config UI X machen, wird die Homebridge erneut in „normale-Mode“ ausgeführt.
Autostart der Homebridge anpassen
Daher müssen wir auch noch eine kleine Modifikation an systemd vornehmen. Dazu öffnen wir diese mit folgendem Befehl:
sudo nano /etc/init.d/homebridge
Hier sollte bereits der Inhalt aus der vorheringen Anleitung zu finden sein. Wir müssen nun die Zeile „su – pi -c“ „homebridge > /dev/null 2<&1 &“ um ein homebridge -I ergänzen. Den gesamten Inhalt habe ich Euch hier erneut kopiert:
#!/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`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
echo "Homebridge is already running"
else
su - pi -c "homebridge -I > /dev/null 2>&1 &"
echo "Homebridge starting"
$0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
echo "Homebridge is not running"
else
kill $PID
echo "Homebridge closed"
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"
else
echo "Homebridge is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
Nchdem Ihr auch diese Änderung vorgenommen habt, startet die Homebridge nun automatisch im „unsafe-Mode“ dadurh werden alle Geräte zur Config UI X gemappt. Würden wir die Homebridge nicht in diesem Modus laufen lassen, würden die Homebridge Geräte nicht auf der Oberfläche erscheinen. Mit Strg + X und dann mit „Y“ bestatätigen verlassen wir das Fenster.
Nun müssen wir noch abschließend Rechte vergeben, damit alles ordnungsgemäß starten kann. Dazu führend wir folgende Befehle aus:
sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d homebridge defaults
sudo reboot
Damit haben wir nun alles konfiguriert und können nun die grafische Oberfläche der Config UI X aufrufen.
Dazu öffnen wir die IP-Adresse des PI’s auf dem entsprechenden Port, den wir oben vergeben haben: http://IP-vom-PI:8083
Nun sehen wir eine Oberfläche. Der Nutzer lautet „admin“ und das Passwort ebenfalls „admin“. Dieses können wir später ändern.
Zuerst sollten wir testen, ob wir die Bridge über die Oberfläche neu starten können. Dazu klicken wir recht oben auf den IO-Schalter. Nach einer Weile sollte die Bridge wieder laufen. Ist dies der Fall, haben wir alle Rechte richtig vergeben und auch die systemd richtig angepasst.
In dem Registereiter „Plugins“ sehen wir nun auch alle von uns installierten Erweiterungen. Hier können wir zusätzliche Erweiterungen direkt über die Oberfläche suchen und auch installieren!
Unter dem Punkt „Config“ sehen wir die Konfigurationsdatei und können diese hier ganz bequem über den Browser anpassen. Wir müssen dazu nicht mehr über SSH gehen.
Bei „Geräte“ könnt Ihr nun auch alle bereits gemappten Geräte einsehen und auch bedienen.
ich finde die Erweiterung einfach nur klasse und Erleichtert das Einbinden und Konfigurieren der Homebridge auch für unerfahrene Benutzer enorm!
Hallo,
Super Anleitung.
Hat soweit alles gut funktioniert, nur leider stehen auf dem Iphone im Homekit alle Geräte auf Aktualisieren und es passiert nichts.
Kann kein Gerät nun mehr steuert. Shr ärgerlich.
Ähat jemand eine Idee, woran dies liegen kann.
Danke
Erik
Fehler gefunden.
Nachdem ich die ui installiert habe, habe ich alle plugins aktualisiert, u.a. Das homematic plugin.
Hier hatte ich nach anleitung aus diesem blog einen manuellen fix getätigt, der mit dem plugin update überschrieben wurde.
Fix erneut eingestellt und alles war gut
Gut, wenn man Experimente im system. It snapshot vorher tätigt…
Und was war dein fix? Habe das gleich Problem :(
Hallo die homebridge läuft aber die geräte der ccu3 kommen nicht unter geräte. wo hab ich das problem?
Hi, super Anleitung, aber bitte in dem Muster der Homebridge Datei in Zeile 19 bitte die beiden & entfernen, dann funktioniert auch der Autostart. André
Hallo,
danke für die tolle Anleitung. Der manuelle Start funktioniert, der automatisierte nicht. Ich habe den Dienst dann mal gestartet und bekomme die folgende Fehlermeldung:
-su: amp: Mehrdeutige Umlenkung.
-su: 1: Kommando nicht gefunden.
-su: amp: Kommando nicht gefunden.
Homebridge starting
Homebridge is not running
Das Skript habe ich 1:1 von hier kopiert und eingefügt.
Gruß
Carsten
Hallo
das gleiche Problem habe ich auch aktuell und verstehe nicht wo das Problem liegt.
Hat jemand eine Lösung dafür?
Die Anleitung https://technikkram.net/2018/11/problemloesung-homebridge-stoppt-nach-beenden-der-ssh-session funktioniert leider auch nicht.
Besten Dank
Grüße
Roman
Hallo,
leider bekomme ich das Protokoll nicht angezeigt:
Using systemd to tail logs
CMD: sudo -n journalctl -o cat -n 500 -f -u homebridge
sudo: a password is required
The log tail command „sudo -n journalctl -o cat -n 500 -f -u homebridge“ exited with code 1.
Please check the command in your config.json is correct.
See https://github.com/oznu/homebridge-config-ui-x#log-viewer-configuration for instructions.
Da ich kein Linux-Experte bin brauche ich mal einen kleinen Tipp ;-)))
Vielen Dank im voraus.
Hi super Anleitungen I’m allgemeinen.
Handisch funktionert auch alles nur findet kein Autostart statt.
Wo ran kann es noch lieben? Die /etc/init.d/homebridge ist nach ihrem Mister erstellt und auch der autorum
Was mache ich falsch?
Besten Dank
Mit freundlichen Grüßen
Roman Joerg
Hallo zusammen
Hat sich erledigt
Läuft wieder alles wie es soll. Vielen Dank für die schönen Ideen!
Mit freundlichen Grüßen
Roman
Hallo,
ich habe eine andere Autostart, wo muss ich denn den Befehl „su – pi -c „homebridge -I > /dev/null 2>&1 &““
eintragen?
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $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
# Description: Enable service provided by daemon.
### END INIT INFO
dir=“/root“
cmd=“DEBUG=* /usr/local/bin/homebridge“
user=“root“
name=`basename $0`
pid_file=“/var/run/$name.pid“
stdout_log=“/var/log/$name.log“
stderr_log=“/var/log/$name.err“
get_pid() {
cat „$pid_file“
}
is_running() {
[ -f „$pid_file“ ] && ps `get_pid` > /dev/null 2>&1
}
case „$1“ in
start)
if is_running; then
echo „Already started“
else
echo „Starting $name“
cd „$dir“
if [ -z „$user“ ]; then
sudo $cmd >> „$stdout_log“ 2>> „$stderr_log“ &
else
sudo -u „$user“ $cmd >> „$stdout_log“ 2>> „$stderr_log“ &
fi
echo $! > „$pid_file“
if ! is_running; then
echo „Unable to start, see $stdout_log and $stderr_log“
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n „Stopping $name..“
kill `get_pid`
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n „.“
sleep 1
done
echo
if is_running; then
echo „Not stopped; may still be shutting down or shutdown may have failed“
exit 1
else
echo „Stopped“
if [ -f „$pid_file“ ]; then
rm „$pid_file“
fi
fi
else
echo „Not running“
fi
;;
restart)
$0 stop
if is_running; then
echo „Unable to stop, will not attempt to start“
exit 1
fi
$0 start
;;
status)
if is_running; then
echo „Running“
else
echo „Stopped“
exit 1
fi
;;
*)
echo „Usage: $0 {start|stop|restart|status}“
exit 1
;;
esac
exit 0
Bei mir das gleiche, bin etwas ratlos…
Super Tool, Install. lief wie beschrieben. Ich sehr nur den Reiter Geräte nicht, alles andere ist wie beschrieben vorhanden. Was habe ich vergessen?
Die Homebridge muss im unsafe mode ausgeführt werden Homebridge -I
Danke, war ein Schreibfehler in der Datei… Danke!
sorry, wo gebe ich dieser Befehl ein, welche datei?
ich habe leider keine Ahnung.
vielen dank!
georgios
Wenn du über SSH gehst dann mit folgendem Befehl den Autostart anpassen:
sudo nano /etc/init.d/homebridge
Bei Zeile 19 fehlt dort das „-I“
(Fehlte auch bei mir beim fertigen Image)
Danke für den Tipp. EIngerichtet läuft. Super.
Ich habe aber immernoch das Problem dass seit meiner CCU3 (hatte vorher die 2er) die Fensterkontakte in iOS nur noch als geschlossen angezeigt werden. Habe schon alle Homebridge Komponenten upgedated, aber nichts hilft.
Auch nicht das feste deklarieren der Fenster als „window“ in der config.json.
Auch bei Google finde ich nicht wirklich hilfe … alle dort berichteten Probleme sind andere.
Die Config UI zeigt mir erstaunlicherweise die Fenstersensoren als „Not Supported“ an.
Hat irgendjemand eine Ahnung, woran das liegen könnte ?
Gruß, Oliver
Ich benutze RaspberryMatic CCU3, das Problem mit den Fensterkontakten habe ich nur bei den Homematic IP-Komponenten. Die „alten“ Fensterkontakte Homematic werden korrekt angezeigt. Eine Ursache habe ich aber auch (noch) nicht gefunden.
Ok, Problem nach langem Suche gefunden. Liegt an der CCU3 und lässt sich wie folgt beheben:
HomeMaticRPC.js im Verzeichnis „/usr/lib/node_modules/homebridge-homematic“ wie beschrieben ändern:
https://github.com/thkl/homebridge-homematic/commit/04b9e25318e9ff93f8ea8e88fbf1e8b54da24076
Danach funktionieren alle Homematic Geräte wieder problemlos wie gehabt.
das funktioniert bei RaspberryMatic nicht, das Verzeichnis gibt hier so nicht… aber ich suche mal ;-) Danke!