Contents
(Update für HomeKit 0.3.x, November 2016)
Dieser Artikel erläutert, wie man einen Raspberry Pi 3 einrichtet um eine Bridge für HomeKit zu installieren. Dadurch wird es möglich, auch mittels Siri, über sein iPhone seine KNX Installation zu Hause zu steuern.
Die Anleitung richtet sich an Anfänger (bin ich in Bezug auf Raspberry auch selber) und geht von einer Neuinstallation aus.
Wer es gerne etwas kompakter mag, darf sich gerne die Kurzanleitung ansehen.
Folgende Komponenten werden benötigt:
Hardware
- KNX IP Gateway
- Raspberry Pi 3
Software
- nodejs
- homebridge
- homebridge-knx
- knxd
Geräteauswahl
Ziel war es, hier kein Virtualisierung zu verwenden sondern ein Gerät irgendwo im Keller oder im Haus zu deponieren, welches brav seinen Dienst als KNX Bridge für HomeKit versieht. Ein Raspberry bietet sich an, und Angebot gibt es viele. Da ich noch etwas mehr experimentieren will, habe ich ein Raspberry Pi 3 Kit besorgt, bei dem schon alles dabei ist: Netzteil, Gehäuse, HDMI Kabel, Bastelset, Speicherkarte und der Raspberry. Passt. Mit Amazon Prime am nächsten Tag geliefert, so kann das Experimentieren schnell losgehen.
Ein netter Freund hat mich darauf hingewiesen, dass ich doch bitte dieses Bastelgehäuse sein lassen soll. Im Elektroversand gäbe es bspw. auch einen Raspberry Pi mit Gehäuse für die Hutschiene + Netzteil. Ist natürlich deutlich schicker für später im Einbau im Elektroschrank. (Beispielsweise bei Conrad Elektronik)
Installation
Der Raspberry wird einfach per HDMI an den Fernseher angeschlossen und los geht’s. SD Karte vorher einlegen, evtl. Ethernet anschliessen und los. Aber: Ethernet braucht man nicht mehr! Der Raspberry Pi 3 verwendet auch perfekt WLAN und tatsächlich ist auch die Installation und Performance über Ethernet im Vergleich zu WLAN identisch (nämlich SD Karten abhängig langsam). Bei mir waren nicht mehr als 500kB/sec Download + Installation möglich – und das liegt nicht an der Internetanbindung.
Hinweis: Bei der Eingabe des Kennwort für das WLAN sollte man darauf achten den richtigen Tastaturtyp eingestellt zu haben. Diese Möglichkeit wird ganz unten am Bildschirm als Auswahlmenü angeboten.
Nach ca. 1h meldet sich schliesslich der Raspberry als fertig installiert, und man kann Durchstarten.
Konfiguration des Raspberry
Eine erste Anmeldung erfolgt mit dem Standardnutzer und Passwort:
- Nutzername: pi
- Passwort: raspberry
Die schicke (nunja) PIXEL Oberfläche möchte man evtl. per VNC nutzen. Also aktiviert man unter dem Raspberry Menü -> Einstellungen den VNC Dienst und kann schon von seinem Mac aus direkt mit VNC Viewer auf seine Himbeere zugreifen. Alternativ kann man den Remotezugriff auch per Terminal einrichten:
sudo raspi-config
Effizienter wird im Folgenden aber der Zugriff per Terminal sein. Der nötige SSH Dienst ist von Haus aus aktiv.
Hinweis: es wird später nicht mehr erwähnt, aber es versteht sich von selbst, dass der Standardnutzer ein neues Passwort erhalten sollte!
Nach der Erstinstallation ist der Raspberry aber beileibe noch nicht mit aktuellen Paketen installiert. Eine Auffrischung aller installierten Komponenten schadet also nicht.
Man öffnet sich also ein Terminalfenster (Juhu!) und führt das Linux Debian Upgrade durch:
sudo apt-get update sudo apt-get dist-upgrade
Hinweis: An dieser Stellt können wir getrost „dist-upgrade“ statt „upgrade“ verwenden, da wir eine Neuinstallation durchführen. Da danach einzelne Komponenten nicht mehr über
apt
installiert werden, sollte hier vorsichtigerweise aufapt-get upgrade
umgestellt werden.
Installation der „HomeBridge“
Die HomeBridge ist ein OpenSource Projekt, welches eine Anbindung an HomeKit von Apple erlaubt.
Im Prinzip funktioniert die Heimkonfiguration von Apple nämlich wie folgt:
- zertifizierte Geräte können direkt am iPhone registriert werden
- Geräte anderen Typs, können über eine Bridge (Brücke) an HomeKit auf dem iPhone registriert werden. Über eine Bridge werden also alle Geräte für das iPhone zugänglich die selbst nicht HomeKit fähig sind. Dabei können das verschiedene Systeme sein. Für jedes System am Markt gibt es im HomeBridge Projekt eine Plugin oder auch hier SHIM genannt (weil es eine transparente Hardwarekompatibilitätserweiterung in Software darstellt).
- AppleTV oder ein an der Stromversorgung angeschlossenes iPad können als Remotezugang dienen.
Damit wir also unser KNX-Anlage zu Hause anbinden können, wird zwingend eine Bridge benötigt. Derzeit (Nov. 2016) gibt es keinen Anbieter am Markt, der eine Lösung in Hardware anbietet. Das Startup Thinka arbeitet allerdings bereits an einer Lösung, so dass dann diese „Bastelllösung“ mit einem Raspberry in Zukunft entfallen wird.
Konfiguration Homebridge
Nachfolgend benötigen wir weitere Pakete die für homebridge nötig sind. Namentlich node.js ist, welches bei meiner Raspberry version in einer veralteten 0.10.x Version installiert ist. Die aktuellste Version sollte es tun.
Der C-Compiler gcc wird in Version 4.9 oder höher benötigt, und sollte bereits installiert sein (durch das vorhergehende Upgrade). Überprüfung mittels gcc -v
.
Nun benötigen wir also die aktuelle Version von Node.js. Die Homepage listet dafür folgende Kommandosequenz:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y nodejs
Anschliessend benötigt homebridge noch die AVAHI Bibliothek:
sudo apt-get install -y libavahi-compat-libdnssd-dev
Nun kann endlich homebridge installiert werden
sudo npm install -g homebridge homebridge-knx
Fertig. Die homebridge Installation findet sich nun unter /usr/lib/node_modules/
.
Für den Autostart mit dem Raspberry Pi 3 (der unter Debian Jessie läuft), bietet Johann Richard eine Kurzanleitung für die Einbindung in den Systemstart mit systemd.
Wir benötigen einen Systemnutzer, welcher die Konfig-Datei config.json
enthält:
sudo useradd --system homebridge sudo mkdir /var/homebridge sudo chown homebridge /var/homebridge
Unter /etc/default
wird dabei die Datei homebridge
neu angelegt und wie folgt gefüllt:
sudo nano /etc/default/homebridge
Inhalt:
# Defaults / Configuration options for homebridge # The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others) HOMEBRIDGE_OPTS=-U /var/homebridge # If you uncomment the following line, homebridge will log more # You can display this via systemd's journalctl: journalctl -f -u homebridge # DEBUG=*
Und für die Servicebeschreibung unter /etc/systemd/system
die Datei homebridge.service
angelegt:
sudo nano /etc/systemd/system/homebridge.service
Inhalt:
[Unit] Description=Node.js HomeKit Server After=syslog.target network-online.target [Service] Type=simple User=homebridge EnvironmentFile=/etc/default/homebridge ExecStart=/usr/lib/node_modules/homebridge/bin/homebridge $HOMEBRIDGE_OPTS Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Und jetzt noch starten:
sudo systemctl daemon-reload sudo systemctl enable homebridge sudo systemctl start homebridge
Hinweis: Die Log-Daten können wieder über
/var/log/syslog
abgegriffen werden.
Nun kann man schon das iPhone (vorausgesetzt es befindet sich im selben Netz), mit der Bridge koppeln.
Der Initiale Code lautet: 031-45-154
(oder kann über syslog ausgelesen werden). Dieser Code ist der Default-Code der auch verfügbar ist, wenn noch keine Konfigurationsdatei verfügbar ist.
Konfiguration des KNX SHIM (Plugin)
Nun wollen wir aber endlich unsere KNX Installation zum Leben erwecken. Dazu erzeugen wir eine config.json Datei, welche im Homeverzeichnis des Systemnutzers „homebridge“ liegt. Nach dieser Vorgehensweise also unter /var/homebridge
.
In der Version 0.3 wurde die Art der Konfiguration. Wer also bisher Version 0.2 verwendet hat, muss hier umstellen.
Es werden zwei Konfigurationsdateien benötigt. In der config.json
Datei findet sich die Hauptkonfiguration der Bridge an sich, und in der knx-config.json
die Gerätekonfiguration die über den KNX Bus erreicht werden sollen.
Beispielkonfiguration für die Bridge
sudo nano /var/homebridge/config.json
und folgende „Grundkonfiguration“ einfügen:
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "This is an example ....", "platforms": [ ], "accessories": [ ] }
Werden mehrere homebridge Installationen betrieben, sollte man auch die MAC-Adresse der virtuellen Hardware („username“) ändern, damit nicht Geräte doppelt im Netz auftauchen.
Die Konfiguration der KNX Geräte erfolgt nun über die Datei knx_config.json
.
Eine ausführliche Beschreibung wie die Datei aufgebaut ist findet sich auf der Projektseite.
Die Grundkonfiguration dieser Datei sieht wie folgt aus:
{ "knxd_ip": "127.0.0.1", "knxd_port": 6720, "AllowWebserver": true, "AllowKillHomebridge": false, "Devices": [ ] }
Wichtig ist die Verbindung zum knxd, der auch auf dem Raspberry läuft, daher kann die Adresse 127.0.0.1 verwendet werden.
Spannend ist nun auch die Möglichkeit über ein kleines Webinterface auf die konfigurierten Geräte zuzugreifen. Im Moment ist das lediglich zum debuggen sinnvoll und für den Betrieb sollte der Webserver ausgeschalten (false) werden. Aber vielleicht tut sich hier in Zukunft noch mehr.
Hier nun ein komplettes Beispiel für eine einfache Lampensteuerung.
sudo nano /var/homebridge/knx_config.json
Inhalt wie folgt (Achtung bei der Gruppenadresse!):
{ "knxd_ip": "127.0.0.1", "knxd_port": 6720, "AllowKillHomebridge": true, "Devices": [ { "DeviceName": "Wohnzimmer Lampe", "Services": [ { "ServiceType": "Lightbulb", "ServiceName": "Wohnzimmerlampe", "Characteristics": [ { "Type": "On", "Set": [ "1/3/5" ], "Listen": [ "1/3/5" ] } ] } ] } ] }
Zum Schluss müssen wir noch die Schreibrechte an den Nutzer „homebridge“ übertragen, sonst kann die knx_config.json nicht verwaltete werden:
sudo chown -R homebridge.homebridge /var/homebridge/
Damit nun aber auch die Kommunikation zum KNX-Bus funktioniert, wird noch der Kommunikationsprozess benötigt, welcher leider nicht Bestandteil von homebridge ist: der knxd
.
Installation des „knxd“ (aka „eibd“)
Ursprünglich wurde ein Projekt bzw. Diplomarbeit an der TU-Wien gestartet für die Anbindung an den KNX Bus. Als Teilprojekt wurde der eibd
entwickelt, auf den noch immer viele Anleitungen verweisen. Wer Lust verspürt kann auch in der tollen Beschreibung von Martin Kögler, dem Autor, zu diesem Projekt schwelgen.
Da der Autor dann aber langsam die Unterstützung eingestellt hat, wurde ein Fork des ursprünglichen Quelltexts durchgeführt und es entstand der knxd
. Dieser wird aktuell von einer engagierten Community gepflegt und ist daher die erste Wahl zur Kommunikation mit dem EIB Bus.
Installiert wird der knxd einfach nach der Anleitung der Projektseite, mit ein paar kleinen Ergänzungen, wie bspw die cdbs und andere Abhängigkeiten die noch installiert werden müssen. Mein modifiziertes Script sieht daher wie folgt aus:
# Do not use "sudo" unless told to do so. # If "dpkg-buildpackage" complains about missing packages # ("Unmet build dependencies"): install them # (apt-get install …) and try that step again. # If it wants "x | y", try just x; install y if that doesn't work. # Also, if it complains about conflicting packages, remove them (duh). # first, install build tools and get the source code sudo apt-get install -y git-core build-essential cdbs autoconf automake libtool libsystemd-dev libsystemd-daemon-dev dh-systemd base-files libusb-1.0.0-dev git clone https://github.com/knxd/knxd.git # knxd requires libpthsem which unfortunately isn't part of Debian wget https://www.auto.tuwien.ac.at/~mkoegler/pth/pthsem_2.0.8.tar.gz tar xzf pthsem_2.0.8.tar.gz cd pthsem-2.0.8 dpkg-buildpackage -b -uc cd .. sudo dpkg -i libpthsem*.deb # now build+install knxd itself cd knxd dpkg-buildpackage -b -uc cd .. sudo dpkg -i knxd_*.deb knxd-tools_*.deb
Danach ist der knxd unter /var/lib/knxd
installiert.
Die Konfigurationsdatei findet sich unter /etc/knxd.conf.
Konfiguration und Start des knxd
Die Konfiguration des knxd scheint der aufwändigste Teil zu sein. Technisch ist es wohl kein Problem, nur wird offenbar ein gewisses Know-How für die zahlreichen Optionen vorausgesetzt.
In meinem Szenario soll eine KNX Installation per IP Gateway angebunden werden. Die Installation beruht zum Großteil auf GIRA Komponenten und somit auch das Gateway. Das Gateway wurde schon vorher für die Konfiguration für den GIRA Homeserver benötigt und konfiguriert: es leitet alle Paket aus dem EIB BUS auf IP und umgekehrt. Das es funktioniert kann also sehr leicht über die ETS bzw. den Homeserver überprüft werden: die ETS kann darüber den Bus monitoren, und der Homeserver bringt seine Logik ein. Also diese Komponente kann dann als „funktionierend“ abgehakt werden. Bei anderen Gateways sollte das vorher überprüft werden!
Den knxd kann man auf verschieden Arten nutzen, daher kann es hilfreich sein, ein paar Daten bereit zu halten:
- Die IP des Gatways (bei mir 10.0.1.100)
- Die EIB ID des Geräte (bspw. 1.1.100)
- Die Multicast Adresse (Standard: 224.0.23.12)
Die Konfigurationsdatei für den knxd
liegt unter /etc/knxd.conf
und kann dort editiert werden.
sudo nano /etc/knxd.conf
Hier kann man nun mit seiner eigenen Installation arbeiten, und bspw. das KNX/IP Tunneling einsetzen. Die Autoren des knxd empfehlen aber auch selbst den Einsatz als Multicast Server und das hat auch bei mir funktioniert. Alle obigen Daten braucht man dann nicht denn es funktioniert ganz einfach mit folgender Optionszeile:
KNXD_OPTS="-D -T -R -S"
Hinweis: wer den knxd
debuggen will, kann beispielsweise folgende Optionen ergänzen:
KNXD_OPTS="--trace=1023 -D -T -R -S"
Wichtig ist hier die --trace
Option. Mittels tail -f /var/log/syslog.d
kann man dann in einem zweiten Terminalfenster hübsch mitlesen was so alles passiert. Alle Optionen sind auf der knxd
Homepage gelistet.
Und nun kann man den knxd starten. Der Start erfolgt auf aktuellen Systemen wie dem Raspberry mittels dem systemd. Dadurch wird der Systemdienst im Hintergrund gestartet.
Kontrolliert wird der knxd
wie folgt:
# Starten sudo systemctl start knxd.service # Stoppen sudo systemctl stop knxd.service # Konfig neu laden sudo systemctl restart knxd.service
Hinweis: beim Raspberry Pi 3 ist es auf Grund der Verwendung des
systemd
nicht notwendig eine Socket-Datei oder einen Port anzugeben oder zu nutzen. Das passiert automatisch durch den Systemdienst.
Herzlichen Glückwunsch! Nun sollte die KNX-IP Homebridge funktionieren!
Falls es nicht gleich klappt:
- Die Systemdienste neu starten, evtl. wurde ein Config-File noch nicht aktualisiert.
- Die config.json und knx_config.json Datei ist sehr empfindlich gegenüber Sonderzeichen, Zeilenumbrüchen, etc.
- das Caching könnte auch zuschlagen, gerade wenn man viel an den Dateien herumspielt. Wenn man es sich leisten kann
- Homebridge stoppen (s.o.)
- accessories/ leeren, evtl. auch das persist/ Verzeichnis
- Homebridge neu starten
- Haus neu anlegen
Die meisten Anmerkungen beziehen sich auf Unterschiede auf die benötigten Bibliotheken die zusätzlich oder anders eingebunden werden solle/müssen. Hier kann sich jeder schnell selber helfen. Einfach die entsprechenden Fehlerzeile durchlesen. Hier wird immer erwähnt, welche Bibliothek noch im System fehlt. Diese dann einfach in der sudo apt get install
Zeile ergänzen.
Über Kommentare, Verbesserungsvorschläge freue ich mich!
44 Gedanken zu “HomeKit Anbindung mit Raspberry Pi 3 + KNX IP Gateway”
Any chance to upload the raspi .img file so we can save time to installing it? Thanks a lot for the documentation; having problems to get it working and it’s a quite time consuming task…. [and unfortunately for me always in German]
Hm, this requires me to create a clean, shareable image without other customizations.
Likely doable, but I’m not sure about the demand.
I’m going to monitor this and if there are more people asking for it, I’m going to build one.
OK Thank you very much! Will keep an eye in the blog
I’d appreciate an image for pi 3 as well. I tried all the steps and still get errors after starting from a clean raspbian Jessie install. I’m sure a few of us not too familiar with Linux would really like the idea of a working image.
🙂
I was thinking about this now for some time, but I just can’t afford hosting an image on this site, due to bandwidth limitations. Suggestions for hosting an image somewhere else are welcome.
All I made according to your manual.
Used the Raspberry Pi 3 set Rasbian 1.1
Instead Evika LogicMachine2 gateway.
In raspberri ip-address 192.168.1.80
at LM ip-address 192.168.1.12
I made the following settings
{
„knxd_ip“: „192.168.1.12“,
„knxd_port“: 3671,
„AllowKillHomebridge“: true,
„Devices“: [
{
„DeviceName“: „My Lamp“,
„Services“: [
{
„ServiceType“: „Lightbulb“,
„ServiceName“: „Room lamp“,
„Characteristics“: [
{
„Type“: „On“,
„Set“: [
„1/1/1“
],
„Listen“: [
„1/1/1“
]
}
]
}
]
}
]
}
But as it turned out I missed setting knxd.conf file
With the tablet connected to Homebridge, I saw his Room Lamp, but got an error tutzhe no internet access. If you restart the „Home“ on the iPad, then my the lamps visible, but changing her condition, I do not get a change to LM
After this began to change knxd.conf file
KNXD_OPTS=“-D -T -R -S“ and KNXD_OPTS=“-u /tmp/eib -b ip:192.168.001.012″ lead to errors
pi@raspberrypi:~ $ sudo systemctl start knxd.service
Job for knxd.service failed. See ’systemctl status knxd.service‘ and ‚journalctl -xn‘ for details.
pi@raspberrypi:~ $ sudo systemctl status knxd.service
Б≈▐ knxd.service – KNX Daemon
Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
Active: activating (auto-restart) (Result: exit-code) since пїя┌ 2017-02-16 09:38:55 UTC; 9s ago
Process: 5136 ExecStart=/usr/bin/knxd $KNXD_OPTS (code=exited, status=1/FAILURE)
Main PID: 5136 (code=exited, status=1/FAILURE)
16 09:38:55 raspberrypi systemd[1]: Failed to start KNX Daemon.
16 09:38:55 raspberrypi systemd[1]: Unit knxd.service entered failed ….
Hint: Some lines were ellipsized, use -l to show in full.
I really hope for your help
Hallo Boerny,
die nächste (major) Version von homebridge-knx ist draußen, dabei hat sich die Konfiguration deutlich geändert. Könntest Du das heir auch anpassen?
Ein paar Links dazu:
Das Readme: https://github.com/snowdd1/homebridge-knx-de
Kleiner Vergleich: https://github.com/snowdd1/homebridge-knx-de/blob/master/vergleichV02V03.md
Die ganze Konfiguration: https://github.com/snowdd1/homebridge-knx-de/blob/master/Konfiguration.md
Sehr gut! Glückwunsch! Dann werde ich mir das gleich mal ansehen, und die Anleitung überarbeiten.
Die überarbeitete Version (mit einer kleinen Fehlerbeseitigung) ist nun online!
Wer sich vorher gewundert hatte, warum der knxd sich nicht hat bauen lassen: das libusb-1.0.0-dev Paket hatte gefehlt.
Exakte Vorgehensweise genau so ausgeführt, hat sofort funktioniert!
Vielen Dank für diese perfekte Anleitung!
Ich habe ein Hager KNX/IP Gateway TYF120.
Dies hat mit der knxd.conf-Einstellung
KNXD_OPTS=“-D -T -R -S“
nicht funktioniert.
Mit der Default-Vorgabe
KNXD_OPTS=“-u /tmp/eib -b ip:www.xxx.yyy.zzz“
läuft es ohne Probleme.
Hi,
ich habe folgendes in die KNXD config geschrieben:
KNXD_OPTS=“-u /tmp/eib -b ip:192.168.005.015:3671″
Jedoch kriege ich folgende Fehlermeldungen, nach Restart des KNXD:
i@raspberrypi:~ $ sudo systemctl status knxd.service -l
● knxd.service – KNX Daemon
Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
Active: activating (auto-restart) (Result: exit-code) since Do 2016-12-15 19:23:07 UTC; 2s ago
Process: 3007 ExecStart=/usr/bin/knxd $KNXD_OPTS (code=exited, status=1/FAILURE)
Main PID: 3007 (code=exited, status=1/FAILURE)
Dez 15 19:23:07 raspberrypi systemd[1]: Failed to start KNX Daemon.
Dez 15 19:23:07 raspberrypi systemd[1]: Unit knxd.service entered failed state.
Kann mir jemand helfen, woran das liegt?
Danke und Gruß
Hallo,
sollte der Port nicht 6720 sein. Dies ist der Default Wert und braucht man eigentlich nicht anzugeben.
Gruß
hallo Bernhard,
ist deine Anleitung auch so 1:1 auf einen intel NUC oder ähnliches übertragbar? bzw. was müsste geändert oder angepasst werden
Mit freundlichen Grüßen
Hallo Christian,
wichtig ist vor allem des Betriebssystem. Raspberry Pi 3 setzt auf Debian Jessie (derzeit). Wenn auf deinem intel NUC auch Debian installiert wurde, wird es wohl fast 1:1 auch so umsetzbar sein, da die Befehle zur Packetverwaltung identisch sind.
Unterschiede gibt es dann noch zwischen den Distributionen, welche Komponenten vorinstalliert sind, wie der Systemstart aussieht (systemd oder init.d) usw. Hier muss man evtl. nachbessern.
Die Vorgehensweise an sich, dürft aber überall ähnlich sein. Ich habe ja letztlich auch nur die entsprechenden Einzelanleitungen der Komponenten zusammengefügt.
Viel Erfolg mit dem intel NUC!
„ip:“ ist für Multicast. Du willst „ipt“:.
Das Problem mit deiner „sudo apt-get install“-Zeile ist, dass neue Abhängigkeiten hinzukommen könnten. Dann geht das nicht mehr. Daher verweise ich inzwischen ausdrücklich auf die Fehlermeldung, die dpgk-buildpackage ggf ausspuckt.
„Danach ist der knxd unter /var/lib/knxd installiert.“ ?? der knxd ist in /usr/sbin,
Bei Problemen: der Bugtracker ist auf github.
Wir arbeiten gerade daran, den pthsem abzuschaffen. Wird wohl Januar werden. Dann wird das Ganze einfacher.
Buenas noches
A ver si me podeis ayudar… He realizado toda la instalacion y al iniciar el servicio knxd me salen los siguientes datos
root@raspberrypi:/# sudo systemctl start knxd.service
Job for knxd.service failed. See ’systemctl status knxd.service‘ and ‚journalctl -xn‘ for details.
root@raspberrypi:/# sudo systemctl start knxd.service
Job for knxd.service failed. See ’systemctl status knxd.service‘ and ‚journalctl -xn‘ for details.
root@raspberrypi:/# /etc/init.d/eibd stop
bash: /etc/init.d/eibd: No existe el fichero o el directorio
root@raspberrypi:/# systemctl status knxd.service
● knxd.service – KNX Daemon
Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
Active: activating (auto-restart) (Result: exit-code) since lun 2017-01-02 23:24:22 UTC; 952ms ago
Process: 3538 ExecStart=/usr/bin/knxd $KNXD_OPTS (code=exited, status=217/USER)
Main PID: 3538 (code=exited, status=217/USER)
ene 02 23:24:22 raspberrypi systemd[1]: Failed to start KNX Daemon.
ene 02 23:24:22 raspberrypi systemd[1]: Unit knxd.service entered failed state.
root@raspberrypi:/#
NECESITO AYUDA!
MUCHAS GRACIAS Y UN SALUDO
Maybe somebody with Spanish language skills can help.
Please don’t post in other languages than German or English, thanks!
Hola Mario, todo bien? Aún necesitas ayuda?
unter Jessie Light benötigt man noch:
sudo apt-get install libev-dev
Bin nach der Anleitung vorgegangen, aber er will noch „libfmt3-dev“. Jemand eine Ahnung wie man das installiert?
hi,
@tobi : mach mal apt-get install cmake. Hatte den gleichen fehler danach gings …
Hi, tolle Anleitung, müsste es mehr von geben im Web. Und wenn ich sofort alles korrekt gelesen hätte, hätte ich mir Zeit erspart. Es gilt wie immer: Wer lesen kann ist klar im Vorteil 😉
Das mit den config files unter /root/.homebridge/ kann ich bestätigen. Dort sucht er bei mir auch. Also habe ich beide Dateien da reingesetzt habe, jetzt läuft es auch.
Ich habe allerdings eine Frage zum KNX-Gateway, bzw KNX Router. Ich nutze einen Gira KNX Router. Demnach brauche ich knxd nicht. Wie soll ich allerdings jetzt die Konfiguration in knx_config.json machen damit er über den Router verfährt?
Danke für jeden Ratschlag,
Claude
Hallo nochmal,
Ich bin dann doch nochmal auf knxd eingegangen, und habe es versucht zu installieren. Alles klappt, bis auf den letzten Command. KNXD starten geht danach auch nicht.
sudo dpkg -i knxd_*.deb knxd-tools_*.deb
Selecting previously unselected package knxd.
(Reading database … 111450 files and directories currently installed.)
Preparing to unpack knxd_0.14.16-1_armhf.deb …
Unpacking knxd (0.14.16-1) …
dpkg: warning: knxd: conffile ‚/etc/init.d/knxd‘ is not a plain file or symlink (= ‚/etc/init.d/knxd‘)
Selecting previously unselected package knxd-tools.
Preparing to unpack knxd-tools_0.14.16-1_armhf.deb …
Unpacking knxd-tools (0.14.16-1) …
Setting up knxd (0.14.16-1) …
dpkg: warning: knxd: conffile ‚/etc/init.d/knxd‘ is not a plain file or symlink (= ‚/etc/init.d/knxd‘)
addgroup: The group `knxd‘ already exists as a system group. Exiting.
Warning: The home dir /var/lib/knxd you specified already exists.
The system user `knxd‘ already exists. Exiting.
update-rc.d: error: initscript does not exist: /etc/init.d/knxd
Job for knxd.service failed. See ’systemctl status knxd.service‘ and ‚journalctl -xn‘ for details.
invoke-rc.d: initscript knxd, action „restart“ failed.
dpkg: error processing package knxd (–install):
subprocess installed post-installation script returned error exit status 1
Setting up knxd-tools (0.14.16-1) …
Processing triggers for systemd (215-17+deb8u7) …
Processing triggers for libc-bin (2.19-18+deb8u9) …
Errors were encountered while processing:
knxd
Danke für weitere Hilfe.
Hey,
vielen Dank für deine tolle Anleitung. Ich bin total der Noob was Linux und Terminal angeht, weshalb ich auf solche Anleitungen angewiesen bin. Ich bin jetzt an der Stelle, dass ich das erste mal das iPhone rausholen soll, um mich zu verbinden. Leider sehe ich nichts wenn ich nach neuen Geräten suche bei Home. laut systemctl status homebridge läuft die homebridge aber. Also es steht active (running) in PID: 2153 da. Was mach ich da falsch?
Verdammt. Wenn ich systemctl status homebridge nochmal eingebe kommt jetzt:
homebridge.service – Node.js HomeKit Server
Loaded: loaded (/etc/systemd/system/homebridge.service; enabled)
Active: activating (auto-restart) (Result: exit-code) since Mi 2017-07-19 16:08:06 UTC; 3s ago
Process: 2681 ExecStart=/usr/lib/node_modules/homebridge/bin/homebridge $HOMEBRIDGE_OPTS (code=exited, status=1/FAILURE)
Main PID: 2681 (code=exited, status=1/FAILURE)
Irgendwas mache ich falsch.
Hallo zusammen,
ich bin gerade dabei meine KNX-Komponenten zusammenzustellen und jetzt ist die Frage ob der GIRA 216800 (IP-Schnittstelle) ausreichend für die Kopplung ist oder benötige ich den GIRA 216700?
Danke und Gruß
Peter
Super Anleitung. Ich habe auch einmal im Iphone das Gerät gesehen, jetzt leider nicht mehr. Auch ein Neustart des Raspberry hat nichts gebracht.
Hej,
Bei mir bricht die Installation von dpkg buildpackage mit folgender Meldung ab
pi@raspberrypi:~/pthsem-2.0.8 $ dpkg-buildpackage -b -uc
dpkg-buildpackage: info: source package pthsem
dpkg-buildpackage: info: source version 2.0.8
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Martin Koegler
dpkg-buildpackage: info: host architecture armhf
dpkg-source –before-build pthsem-2.0.8
dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 7) cdbs
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
jemand eine Idee?
Hallo,
Gibt es auch eine Möglichkeit das ganze mit einem USB Gateway zu realisieren?
Danke für Eure Antworten
Hi, wäre es vll. möglich deine Image Datei zu bekommen? Aus irgendeinem mir nicht ersichtlichen Grunds kann ich keine Verbindung zur hombridge bekommen.. lg
Leider nein
hat irgendwer irgendeinen Tipp für mich? Hab alles genau nach Anleitung gemacht und ich finde in der App kein Gerät.
Danke schonmal im Voraus
In der App sieht man nur die Geräte die man mit ihrer Gruppen-ID auch konfiguriert hat. Es gibt hier keine Automatismus der automatisch alle KNX Komponenten in der Home-App sichtbar macht.
Das hört sich wirklich super an. Ich bin ein absoluter Noob und habe meinen RaspberryPi gerade erst bestellt, jedoch finde ich das „rumbasteln“ total spannend.
Wir haben das Hager KNX easy im Haus mit einer Visualisierung über domovea. Kann ich mit den o.g. Paketen auf mein Bussystem zugreifen?
Das schöne an KNX ist, dass es Anbieter übergreifend funktioniert. D.h. „Ja“, mit einem IP Gateway kommt man auf jedes KNX System.
Ich habe die Seite jetzt schon zig mal durchgelesen. Aber wo trage ich die IP Adresse des IP/KNX Gateways ein?
Auch wenn das IP/KNX Gateways als Multicast Server arbeitet muss doch der Raspberry Pi bzw. die Homebridge wissen, wo sich das IP/KNX Gateway befindet.
Darum kann ich mit der Zeile KNXD_OPTS=“-D -T -R -S“ nicht wirklich was anfangen.
Am iPad habe ich die Lampe drauf. Aber scheinbar kommt keine Kommunikation zum Bus zustande.
Bei mir funktioniert nur die Multicast Variante. Dadurch dass es ein Multicast Server ist ist, muss eben nicht ein spezifische IP hinterlegt werden. Evtl. kann ein Leser helfen bei dem die nicht-multicast Variante funktioniert. Als mögliche Stolperfalle: es darf nur ein knxd im Multicast laufen! Sonst leiten die sich gegenseitig die Telegramme weiter. So wie ich die Verbindung verstanden habe, fungiert das IP/KNX Gateway als Empfänger der Multicast Telegramme, vorausgesetzt es kann das.
Hmmm …
Der Anleitung folgen lief ganz gut, bis zum Check ob der homebridge service auch läuft …
Läuft … aber auf einen Fehler. Die kritischen Einträge (alle 10 Sekunden) in /var/log/syslog lauten:
… homebridge.service: Failed at step EXEC spawning /usr/lib/node_modules/homebridge/bin/homebridge: No such file or directory
Laut Anleitung soll ja gelten:
Die homebridge Installation findet sich nun unter /usr/lib/node_modules/.
Es gibt aber nach der Installation entsprechend Anleitung dort kein Unterverzeichnis node_modules/
–> Was kann hier falsch gelaufen sein?
(Ich halte den homebridge Service erstmal wieder an. Schreibt ja derzeit doch nur das syslog voll.)
Ich habe mal weiter geschaut … 8wo ist eigentlich mein erster Kommentar von gestern?)
Wenn ich die entspr. dieser Anleitung installierte homebridge einfach mal aufrufe – anstatt als service zu starten – erhalte ich folgende Erkenntnis: homebridge erwartet z.B: die *.conf files in ganz anderen Verzeichnissen!!
pi@raspi:~ $ homebridge
(node:18669) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[20/02/2019, 23:43:23] config.json (/home/pi/.homebridge/config.json) not found.
[20/02/2019, 23:43:23] Loaded plugin: homebridge-knx
homebridge API version: 2.3
Create Service AirPurifier
Create Service AirQualitySensor
Create Service BatteryService
Create Service CameraRTPStreamManagement
Create Service CarbonDioxideSensor
Create Service CarbonMonoxideSensor
Create Service ContactSensor
Create Service Door
Create Service Doorbell
Create Service Fan
Create Service Fanv2
Create Service FilterMaintenance
Create Service Faucet
Create Service GarageDoorOpener
Create Service HeaterCooler
Create Service HumidifierDehumidifier
Create Service HumiditySensor
Create Service IrrigationSystem
Create Service LeakSensor
Create Service LightSensor
Create Service Lightbulb
Create Service LockManagement
Create Service LockMechanism
Create Service Microphone
Create Service MotionSensor
Create Service OccupancySensor
Create Service Outlet
Create Service SecuritySystem
Create Service ServiceLabel
Create Service Slat
Create Service SmokeSensor
Create Service Speaker
Create Service StatelessProgrammableSwitch
Create Service Switch
Create Service TemperatureSensor
Create Service Thermostat
Create Service Valve
Create Service Window
Create Service WindowCovering
Create Service CameraControl
Create Service StatefulProgrammableSwitch
Create Service Label
Create Service BridgeConfiguration
Create Service BridgingState
Create Service Pairing
Create Service ProtocolInformation
Create Service Relay
Create Service TimeInformation
Create Service Television
Create Service InputSource
Create Service TelevisionSpeaker
create Characteristic AccessoryFlags
create Characteristic Active
create Characteristic AdministratorOnlyAccess
create Characteristic AirParticulateDensity
create Characteristic AirParticulateSize
create Characteristic AirQuality
create Characteristic AudioFeedback
create Characteristic BatteryLevel
create Characteristic Brightness
create Characteristic CarbonDioxideDetected
create Characteristic CarbonDioxideLevel
create Characteristic CarbonDioxidePeakLevel
create Characteristic CarbonMonoxideDetected
create Characteristic CarbonMonoxideLevel
create Characteristic CarbonMonoxidePeakLevel
create Characteristic ChargingState
create Characteristic ColorTemperature
create Characteristic ContactSensorState
create Characteristic CoolingThresholdTemperature
create Characteristic CurrentAirPurifierState
create Characteristic CurrentAmbientLightLevel
create Characteristic CurrentDoorState
create Characteristic CurrentFanState
create Characteristic CurrentHeaterCoolerState
create Characteristic CurrentHeatingCoolingState
create Characteristic CurrentHorizontalTiltAngle
create Characteristic CurrentHumidifierDehumidifierState
create Characteristic CurrentPosition
create Characteristic CurrentRelativeHumidity
create Characteristic CurrentSlatState
create Characteristic CurrentTemperature
create Characteristic CurrentTiltAngle
create Characteristic CurrentVerticalTiltAngle
create Characteristic DigitalZoom
create Characteristic FilterChangeIndication
create Characteristic FilterLifeLevel
create Characteristic FirmwareRevision
create Characteristic HardwareRevision
create Characteristic HeatingThresholdTemperature
create Characteristic HoldPosition
create Characteristic Hue
create Characteristic Identify
create Characteristic ImageMirroring
create Characteristic ImageRotation
create Characteristic InUse
create Characteristic IsConfigured
create Characteristic LeakDetected
create Characteristic LockControlPoint
create Characteristic LockCurrentState
create Characteristic LockLastKnownAction
create Characteristic LockManagementAutoSecurityTimeout
create Characteristic LockPhysicalControls
create Characteristic LockTargetState
create Characteristic Logs
create Characteristic Manufacturer
create Characteristic Model
create Characteristic MotionDetected
create Characteristic Mute
create Characteristic Name
create Characteristic NightVision
create Characteristic NitrogenDioxideDensity
create Characteristic ObstructionDetected
create Characteristic OccupancyDetected
create Characteristic On
create Characteristic OpticalZoom
create Characteristic OutletInUse
create Characteristic OzoneDensity
create Characteristic PairSetup
create Characteristic PairVerify
create Characteristic PairingFeatures
create Characteristic PairingPairings
create Characteristic PM10Density
create Characteristic PM2_5Density
create Characteristic PositionState
create Characteristic ProgramMode
create Characteristic ProgrammableSwitchEvent
create Characteristic RelativeHumidityDehumidifierThreshold
create Characteristic RelativeHumidityHumidifierThreshold
create Characteristic RemainingDuration
create Characteristic ResetFilterIndication
create Characteristic RotationDirection
create Characteristic RotationSpeed
create Characteristic Saturation
create Characteristic SecuritySystemAlarmType
create Characteristic SecuritySystemCurrentState
create Characteristic SecuritySystemTargetState
create Characteristic SelectedRTPStreamConfiguration
create Characteristic SerialNumber
create Characteristic ServiceLabelIndex
create Characteristic ServiceLabelNamespace
create Characteristic SetDuration
create Characteristic SetupEndpoints
create Characteristic SlatType
create Characteristic SmokeDetected
create Characteristic StatusActive
create Characteristic StatusFault
create Characteristic StatusJammed
create Characteristic StatusLowBattery
create Characteristic StatusTampered
create Characteristic StreamingStatus
create Characteristic SulphurDioxideDensity
create Characteristic SupportedAudioStreamConfiguration
create Characteristic SupportedRTPConfiguration
create Characteristic SupportedVideoStreamConfiguration
create Characteristic SwingMode
create Characteristic TargetAirPurifierState
create Characteristic TargetAirQuality
create Characteristic TargetDoorState
create Characteristic TargetFanState
create Characteristic TargetHeaterCoolerState
create Characteristic TargetHeatingCoolingState
create Characteristic TargetHorizontalTiltAngle
create Characteristic TargetHumidifierDehumidifierState
create Characteristic TargetPosition
create Characteristic TargetRelativeHumidity
create Characteristic TargetSlatState
create Characteristic TargetTemperature
create Characteristic TargetTiltAngle
create Characteristic TargetVerticalTiltAngle
create Characteristic TemperatureDisplayUnits
create Characteristic ValveType
create Characteristic Version
create Characteristic VOCDensity
create Characteristic Volume
create Characteristic WaterLevel
create Characteristic AppMatchingIdentifier
create Characteristic ProgrammableSwitchOutputState
create Characteristic SoftwareRevision
create Characteristic SelectedStreamConfiguration
create Characteristic LabelNamespace
create Characteristic LabelIndex
create Characteristic AccessoryIdentifier
create Characteristic Category
create Characteristic ConfigureBridgedAccessory
create Characteristic ConfigureBridgedAccessoryStatus
create Characteristic CurrentTime
create Characteristic DayoftheWeek
create Characteristic DiscoverBridgedAccessories
create Characteristic DiscoveredBridgedAccessories
create Characteristic LinkQuality
create Characteristic Reachable
create Characteristic RelayControlPoint
create Characteristic RelayEnabled
create Characteristic RelayState
create Characteristic TimeUpdate
create Characteristic TunnelConnectionTimeout
create Characteristic TunneledAccessoryAdvertising
create Characteristic TunneledAccessoryConnected
create Characteristic TunneledAccessoryStateNumber
create Characteristic ActiveIdentifier
create Characteristic ConfiguredName
create Characteristic SleepDiscoveryMode
create Characteristic ClosedCaptions
create Characteristic DisplayOrder
create Characteristic CurrentMediaState
create Characteristic TargetMediaState
create Characteristic PictureMode
create Characteristic PowerModeSelection
create Characteristic RemoteKey
create Characteristic InputSourceType
create Characteristic InputDeviceType
create Characteristic Identifier
create Characteristic CurrentVisibilityState
create Characteristic TargetVisibilityState
create Characteristic VolumeControlType
create Characteristic VolumeSelector
create Characteristic KNXThermAtHome
[20/02/2019, 23:43:24] Registering platform ‚homebridge-knx.KNX‘
[20/02/2019, 23:43:24] —
Load homebridge-knx.KNX
Couldn’t find file at ‚/home/pi/.homebridge/knx_config.json.
pi@raspi:~ $
Klingt für mich, als ob es eine einfache Lösung geben müßte.
Nur kenne ich mich bisher nicht damit aus, wo ich das anpassen könnte
Wer hilft mir mal weiter … ?
Ah, da isser ja, der Kommentar von gestern. Gerade zusammen mit dem zweiten erschienen …
(hmmm … ?)
Sorry wegen den Delays, das ist ein privates Blog und da kontrolliere ich alle Einträge vor Veröffentlichung.
Ich habe genau das selbe Problem. Hat jemand eine Lösung dafür?