====== Installation von Homebridge mit KNX Anbindung auf einem Raspberry Pi ======
===== Einleitung =====
Diese Anleitung ist eine Zusammenfassung von anderen Anleitungen, die teilweise nicht funktioniert haben.
Es geht hier um die Installation von [[https://homebridge.io|Homebridge]] auf einem Raspberry Pi.
===== Voraussetzungen =====
Folgende Voraussetzungen sollten gegeben sein:
* Eines der unterstützten Raspberry Pi [[https://github.com/homebridge/homebridge-raspbian-image/wiki/Supported-Raspberry-Pi-Models|Modelle]]. Ein neueres Modell ist auf alle Fälle besser, da es leistungsfähiger ist.
* Eine SD Karte mit mindestens 4GB (Class 10 40Mb/s oder schneller empfohlen)
* Einen Computer mit SD Kartenleser
* Für die Anbindung an den KNX-Bus muss ein KNX/IP Gateway vorhanden sein.
Ich empfehle das Homebridge Raspberry Pi Image zu verwenden. Hier sind bereits alle wichtigen Komponenten eingerichtet (z.B. SSH aktiviert) und ist über einen Webbrowser bedienbar.
===== Installation =====
Die Installation mit dem Image über wie auf der Seite von [[https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started|Homebridge - Get Started]] beschrieben funktioniert sehr gut.
Nach der Installation ist der Raspberry Pi über den Hostnamen **homebridge.local** zu erreichen.
Ab jetzt kann alles über die Weboberfläche erledigt werden.
==== Sonderfall: Gleicher Name existiert bereits ====
Sollte der Name **homebridge** im Netzwerk bereits anderweitig vergeben sein, so ist der vom neu installieren Raspberry Pi der Name wie folgt zu ändern:
ssh pi@
sudo raspi-config
2 Network Options auswählen
N1 Hostname auswählen
Neues Hostnamen vergeben, z.B. raspberrypi
Finish wählen
Raspberry PI neu starten
Danach kann mit **ssh pi@raspberrypi.local** Verbindung aufgenommen werden.
===== Erste Schritte =====
Nach der Installation ist eine Anmeldung im Browser über **homebridge.local** möglich.
Für Homebridge und Raspberry Pi sind nach der Installation die folgenden Standardzugangsdaten vergeben:
| ^ User ^ Passwort ^
^ Homebridge | admin | admin |
^ Raspberry Pi | pi | raspberry |
==== Terminal über Browser öffnen ====
Homebridge biete die Möglichkeit auf Terminalebene des Raspberry Pi mit dem Browser zu kommen. Somit ist kein zusätzliches Terminal Programm (z.B. Putty) notwendig.
- Rechts oben auf das Menü mit den 3 senkrechten Punkten klicken
- //Terminal// auswählen
==== Defaultpassworte ändern ====
Aus Sicherheitsgründen empfiehlt es sich die Standardpassworte zu ändern. Entweder jetzt gleich, oder später nach fertiger Installation.
=== Homebridge ===
- An Homebridge anmelden
- Rechts oben auf das Menü mit den 3 senkrechten Punkten klicken
- //Benutzerkonten// auswählen
- Beim **Administrator** auf //Bearbeiten// klicken
- neuen Kennwort eingeben und bestätigen
- auf //Speichern// klicken
=== Raspberry Pi ===
- [[#Terminal über Browser öffnen|Terminal öffnen]]
- **sudo raspi-config** eingeben
- **1 Change User Password** auswählen
- Neues Passwort vergeben und bestätigen
- //Finish// auswählen
==== Systemupdates durchführen ====
Bevor irgendwie weitergemacht wird sollte die aktuelle Konfiguration auf den letzten Stand gebracht werden.
Im [[#Terminal über Browser öffnen|Terminal]] die folgenden Befehle eingeben:
# Nach Updates suchen
sudo apt-get update
# Upgrade durchführen
sudo apt-get upgrade
# Bei Bedarf wenn angegeben:
sudo apt-get autoremove
# Wenn viele Änderungen waren kann der Raspberry Pi zur Sicherheit neu gestartet werden:
sudo reboot now
==== Homebridge Updates durchführen ====
Auch Homebridge verträgt hin und wieder mal ein Update:
- Im [[#Terminal über Browser öffnen|Terminal]] **sudo hb-config** eingeben
- //8 Update// auswählen
- //1 Upgrade Node.js// auswählen
- //2 Upgrade Homebridge// auswählen (eventuelle Warnungen "deprecated" ignorieren), Danach muss Homebridge neu gestartet werden (einfach Neustart bestätigen).
==== Homebridge Konfigurations-Editor ====
Im Konfigurations-Editor sind alle Einstellungen und Plugins gespeichert.
Um später im Apple HomeKit keinen kryptischen Namen zu haben, können im Bereich **"bridge"**, **"name"** die 5 Zeichen nach **Homebridge** entfernt werden.
"name": "Homebridge",
Sonst ist hier weiter eigentlich nichts zu ändern, ausser ein Plugin wird hier nicht ordentlich eingetragen.
Wer keinen KNX Bus hat ist eigentlich schon fertig und kann mit Homebridge loslegen.
==== Installation von KNXD ====
Um mit dem KNX Bus zu kommunizieren wird ein Daemon (Service) benötigt.
Die Installationsbeschreibung findet man prinzipiell [[https://github.com/knxd/knxd|hier]].
Die Verwendung des [[#Terminal über Browser öffnen|Terminals]] wird für die folgenden Befehle **NICHT** empfohlen. Aufgrund der teilweise sehr langen Laufzeiten kann es zu Timeouts und dadurch zu Unterbrechungen kommen.
# Notwendige Pakete installieren
sudo apt-get install git
# get the source code
git clone -b debian https://github.com/knxd/knxd.git
# now build+install knxd
sh knxd/install-debian.sh
# ACHTUNG: Dieser Befehl dauert sehr lange, je nach Raspberry Pi Modell mehrere Stunden.
# Der Computer sollte in dieser Zeit daher nicht in einen Ruhezustand gehen und das
# Terminalprogramm die Verbindung verlieren.
Um zu testen, ob KNXD nun installiert ist einfach **knxd** aufrufen, dann sollte die Verwendung beschrieben werden.
==== KNXD einrichten ====
Die Konfigurationsdatei befindet sich unter **/etc/knxd.conf**.
sudo nano /etc/knxd.conf
Hier sind oben die KNXD Optionen eingetragen.
Bei mir funktioniert das:
KNXD_OPTS="-e 7.0.1 -E 7.0.100:100 -u /tmp/eib -b ipt:"
Nach erfolgter Änderung ist der Service neu zu starten:
sudo systemctl restart knxd.service
Ob alles richtig funktioniert kann mit dem Tool **knxtool** getestet werden. (hier am Beispiel einer Lampe zum Einschalten):
knxtool groupswrite local: 0/1/2 1
==== Installation Homebridge KNX ====
Für die Anbindung an den KNX Bus muss jetzt ein Plugin installiert werden:
- Im Menü links oben auf //Plugins// klicken.
- Im Suchfeld nach **knx** suchen.
- Bei **Homebridge Knx** auf //Installieren// klicken.
In der Datei **knx_config.json** (Aufruf über //nano knx_config.json//) werden die Geräte für HomeKit konfiguriert. Ein komplette Dokumentation ist [[https://github.com/snowdd1/homebridge-knx/blob/plugin-2.0/knx_config.json.md|hier]] zu finden.\\
Hier ist ein Beispiel mit einer Lampe zum Testen:
{
"knxd_ip": "127.0.0.1",
"knxd_port": 6720,
"AllowWebserver": true,
"AllowKillHomebridge": false,
"Devices": [
{
"DeviceName": "Lampe",
"Services": [
{
"ServiceType": "Lightbulb",
"ServiceName": "Lampe",
"Characteristics": [
{
"Type": "On",
"Set": [
"0/1/2"
],
"Listen": [
"0/1/2"
]
}
],
"KNXReadRequests": [
"0/1/2"
]
}
]
}
]
}
==== Konfiguration von Homebridge KNX ====
Damit Homebridge über KNXD mit dem KNX Bus kommunizieren kann ist in der Homebridge Konfiguration noch eine Änderung durchzuführen. Normalerweise erledigen das Plugins bei der Installation. Das Homebridge-KNX Plugin macht das nicht. Möglicherweise will man durch einen fehlenden KNXD ein dauerndes Neustarten der Homebridge verhindern. Wenn für KNX alles sauber eingerichtet ist KNXD und die knx_config.json), dann kann dies durchgeführt werden:
- Den [[#Homebridge Konfigurations-Editor|Homebridge Konfigurations-Editor]] aufrufen und die folgenden Zeilen unter **"platforms"** ergänzen.\\ **WICHTIG**: vor der geschwungenen Klammer { ist in der Zeile davor nach der geschwungenen Klammer } in Komma , zu setzen.
{
"name": "KNX",
"platform": "KNX"
}
- Mit //Speichern// die Änderungen sichern.
- Danach Homebridge rechts oben über das Ausschaltsymbol neu starten.
Wie die Konfiguration nun genau erfolgt ist [[https://github.com/snowdd1/homebridge-knx|hier]] gut beschrieben.
==== Datensicherung ====
Es empfiehlt sich von allen wichtigen Daten eine Sicherung anzulegen.\\
Homebridge bietet eine einfache Möglichkeit über die Weboberfläche an:
- Über die 3 Punkte rechts oben auf //Backup / Wiederherstellen//
- Auf den Button **Backup-Archiv herunterladen** klicken
Zusätzlich sollte auch die Datei **/etc/knxd.conf** oder zumindest deren Inhalt gesichert werden.
Es empfiehlt sich auch von der SD Karte regelmäßig ein Image zu ziehen. Dann erspart man sich im die komplette Einrichtung und muss nur Systemupdates und eventuell Konfigurationsänderungen nachtragen, bzw. aus dem Homebridge Backup von oben wiederherstellen.