Hi
das Ubuntu Image ist nicht von mir => keine ahnung.
Und die Homebridge sollte eigentlich auf dem raspberry image schon laufen - wenn der eibd läuft müsstest du also damit klarkommen.
Gruß
Thorsten
Ankündigung
Einklappen
Keine Ankündigung bisher.
Apple - HomeKit - Schnittstelle zur Heimautomation
Einklappen
X
-
MrMirror knxd ist die "neuere" Version von eibd.
probier mal folgenden Befehl aus:
knxtool groupsocketlisten ip:localhost
Einen Kommentar schreiben:
-
Sehr geniale Anleitung. Habe es eigenltich sehr ähnlich gemacht bzw. größtenteils genauso!
Bei mir ist lediglich der knxd statt eibd installiert, macht das einen Unterschied?
Ich denke hier liegt aber auch irgendwo mein Problem, da ich mit
nichts auf dem Bus sehe... gibts hier noch mehr Diagnosemöglichkeiten um die Verbindung zu testen?Code:knxtool busmonitor1 ip:localhost
Könnte/Sollte ich testweise den eibd zusätzlich installieren?
Einen Kommentar schreiben:
-
Aber ich habe keinen Ordner homebridge in /usr/src/Zitat von Nighthawk777 Beitrag anzeigenPuki
ich lasse es über /etc/rc.local starten.
Dort lasse ich einmal wie folgt den knxd dienst und die homebridge starten.
Funktioniert 1a.
Einen Kommentar schreiben:
-
Puki
ich lasse es über /etc/rc.local starten.
Dort lasse ich einmal wie folgt den knxd dienst und die homebridge starten.
Funktioniert 1a.
Hier die /etc/rc.local:
Code:#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi /etc/init.d/knxd start su root -c 'node /usr/src/homebridge/app.js < /dev/null &' exit 0
Einen Kommentar schreiben:
-
Danke für die Blumen, der Upload läuft gerade hier in den Download-Bereich. Schön wäre noch, wenn mir jemand einen Tipp geben könnte, wie Homebridge automatisch nach Raspi-Start gestartet wird (eibd startet ja bereits automatisch).
Einen Kommentar schreiben:
-
Geht bestimmt in die Geschichte ein als längster Post...Zitat von Puki Beitrag anzeigenInsofern verzeihe man mir bitte die Ausführlichkeit...
Ja das mit dem Image wäre super...
Einen Kommentar schreiben:
-
Wie würde Pep sagen? Super-super-super.
Image könnte auf unseren Server....
Einen Kommentar schreiben:
-
Auch von mir ein dickes Lob für die Anleitung. Ich kann das Image zu meinem Hoster hochladen, wenn du noch jemand brauchst der das Image verteilt.
Einen Kommentar schreiben:
-
Wow, Puki, vielen Dank für die ausführliche Anleitung.
Jetzt kribbelt es mir in den Fingern - ich glaub ich hab ein Wochenend-Projekt
Einen Kommentar schreiben:
-
Achtung: EDIT am Ende!
So, hier also das versprochene detaillierteHow-to "Homebridge und eibd auf dem Raspberry Pi 2 Model B"
aus der Sicht eines Dummies ;o)
Insofern verzeihe man mir bitte die Ausführlichkeit...
Und: viele Wege führen nach Rom! Wenn es an der ein oder andern Stelle eine Abkürzung gibt, bitte ich um Info ;o)
Die Anleitung gilt für Windows-Nutzer, ich selbst habe Win7 Pro 64bit im Einsatz. Zur Info: ich habe
undMeldungen als Zitate
formatiert.Code:[B]einzugebende Texte[/B] als Code
Ausgangslage
Ich hatte noch nie einen Raspberry Pi in Händen, noch nie eibd oder Homebridge installiert.
Vorhandene Hard- und Software
Ich habe eine Einfamilienhaus-KNX-Installation mit einem Homeserver 4 von Gira (aktuell noch auf Stand Experte 4.2), der seriell über eine Gira FT1.2-Schnittstelle am KNX-Bus hängt und verwende nach wie vor (Asche auf mein Haupt) die ETS3f (wer mir günstig eine 4er oder 5er-Lizenz verkaufen kann / will: gerne!).
Besonderheit ist neben der TP-Anlage (ca. 98%) eine kleine PowerLine-Installation, die mit einem Busch-Jaeger Medienkoppler 6987/10 angebunden ist. Die PL programmiere ich mit einer Busch-Jaeger-USB-Schnittstelle 6123 USB / 6920 U-102 (und genau die verwende ich auch im weiteren Verlauf!).
Zu beschaffende Hardware
Ich habe ein typisches Raspi-Starterpaket gekauft (Raspi selbst, 2A-Netzteil, 8GB SDHC-Karte und Gehäuse). Der Raspi ist ein "Raspberry Pi 2 Model B" aus UK-Produktion.
Vorbereitungen
1. Betriebssystem für den Raspi downloaden (als allererstes, denn das dauert): ich habe hier (https://www.raspberrypi.org/downloads/raspbian/) das Image von Raspbian Jessie (Version: February 2016 / Release date: 2016-02-09 / Kernel version: 4.1) heruntergeladen und nach dieser (https://www.raspberrypi.org/document...ages/README.md) Anleitung mit einem handelsüblichen SDHC-fähigen Cardreader auf die microSDHC-Karte geschrieben (Win32 Disk Imager per Rechtsklick als Administrator auführen), die ich vorher mit SD Formatter (https://www.sdcard.org/downloads/formatter_4/) formatiert habe.
Ob das dort ebenfalls verfügbare Raspbian Jessie light ausreichend wäre, habe ich nicht ausprobiert. (Edit: doch, es funktioniert. Der Raspi hat dann keine grafische Oberfläche und es muss git nachinstalliert werden. Dazu später mehr.)
2. Raspi zusammenbauen, Tastatur, Maus, Netzwerkkabel und Monitor dran, SD-Karte einstecken und dann: Netzteil rein (wobei hier erwähnt sein soll, dass man auch getrost auf Monitor, Tastatur und Maus verzichten kann, wenn man via PuTTY weitermacht, aber für den ersten Start ist es schon hilfreich, um zu sehen, dass der Raspi auch wirklich startet.)
3. Entweder im Router nachschauen, welche IP-Adresse der Raspi erhalten hat (er verwendet als Standard DHCP), oder aber auf dem angeschlossenen Monitor mit dem Mauszeiger über die oben rechts befindlichen zwei Monitore fahren, dort erscheint dann nach kurzer Zeit die IP-Adresse. (Unterstreichung funktioniert nicht mit Jessie light)
4. Download von PuTTY (http://www.chiark.greenend.org.uk/~s.../download.html), ich habe den Windows-Installer gewählt.
Jetzt geht's richtig los ;o)
Start von PuTTY: in das Feld "Host Name (or IP address)" wird die IP-Adresse (s.o.) des Raspi eingetragen, dann auf "Open" klicken.
Es öffnet sich das Terminalfenster von PuTTY, das beliebig vergrößert werden kann, mitWir nehmen den Standard-User vom Raspi:login as:Das Passwort lautetCode:pi
(es ist üblich bei Linux, dass das Passwort komplett unsichtbar bleibt).Code:raspberry
Es sollte nun ein Prompt mitzu sehen sein.pi@raspberrypi:~ $
Zuerst sorgen wir dafür, dass die root-Partition an die tatsächliche Größe der SD-Karte angepasst wird.
Dazu rufen wir das Konfigurations-Tool mitauf und wählen gleich den ersten Menüpunkt Expand Filesystem aus. Wir bestätigen die Meldung mit <Ok> und verlassen das Tool mit <Finish> (erst mit den Pfeiltasten nach unten und dann nach rechts ;o) und beantworten die Frage nach dem Reboot mit <Yes>.Code:sudo raspi-config
Weiter geht es mit der Vorbereitung nach dieser Anleitung (https://github.com/nfarina/homebridg...a-Raspberry-Pi). Zur Info: man kann die folgenden Befehle in Windows kopieren und durch Rechtsklick auf den grünen Cursor in PuTTY einfügen.
Up to date...
Wir geben also ein:und sehen, wie der Raspi sich (funktionierende Netzwerkverbindung vorausgesetzt ;o) verschiedene Updates vom Raspberry-Server holt. Wenn er damit fertig ist, meldet sich wieder der Prompt mitCode:sudo apt-get update
Weiter gehts mitpi@raspberrypi:~ $Die MeldungCode:sudo apt-get upgrade
bestätigen wir mitDo you want to continue? [Y/n]Die Abfrage nach der Version des Compilers mitCode:Y
sollte ganz unten mitCode:g++-4.9 -v
vom Raspi beantwortet werden.gcc version 4.9.2 (Raspbian 4.9.2-10)
Im Gegensatz zu der genannten Anleitung, den default-Compiler zu bestimmen, hat bei mir nur die erste Zeile funktioniert. Die zweite Zeile mit der 4.6er Version ergab die Rückmeldung, dass es diesen Pfad nicht gibt.
Also nureingeben.Code:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
Die Rückmeldung lautetWenn die Eingabeupdate-alternatives: using /usr/bin/gcc-4.9 to provide /usr/bin/gcc (gcc) in auto modenun die Rückmeldung (ganz unten)Code:g++ -v
ergibt, hat das funktioniert.gcc version 4.9.2 (Raspbian 4.9.2-10)
Nodes
Es wird nun Nodes (in der Version 4.0.0) installiert, indem wir
und danachCode:wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv7l.tar.gz
undCode:tar -xvf node-v4.0.0-linux-armv7l.tar.gz
eingebenCode:cd node-v4.0.0-linux-armv7l
Wir schließen mitdas ganze ab und überprüfen mitCode:sudo cp -R * /usr/local/
die Version, dieCode:node -v
zurückgeben sollte.v4.0.0
Mitkehren wir ins Verzeichnis /home/pi/ zurück.Code:cd ..
Avahi
Wir fahren mitfort, um Avahi zu installieren. Die MeldungCode:sudo apt-get install libavahi-compat-libdnssd-dev
bejahen wir wieder mitDo you want to continue? [Y/n]Code:Y
Installation von Homebridge
Sollten wir uns oben für die Raspbian Jessie light entschieden haben, müssen wir an dieser Stelle nachinstallieren. Das erledigen wir durchCode:sudo apt-get install git
Wer das komplette Raspbian genommen hat, kann diesen Befehl auslassen.
Jetzt aber: mitinstallieren wir nun endlich Homebridge! Das ganze dauert einen Moment...Code:sudo npm install -g homebridge
Die ganzen gefährlich aussehenden Warnmeldungen hatten bei mir letztendlich keine negative Auswirkungen.
Installation des Homebridge-KNX-Plugins
Mitinstallieren wir das KNX-Plugin. Auch hier hatten die Warnungsmeldung keine negativen Auswirkungen bei mir.Code:sudo npm install -g homebridge-knx
Erster Test
Mitstarten wir erstmalig das Programm und erhalten die RückmeldungCode:homebridge
Dies ist wichtig, da ich bei einem früheren Versuch hier einen Pfad beginnend mitCouldn't find a config.json file at '/home/pi/.homebridge/config.json'. [...]erhalten habe und zu diesem Verzeichnis aber keinen Zugriff habe./root/
Eine Beispieldatei config-sample.json für die noch fehlende Datei config.json findet sich hier (https://github.com/nfarina/homebridge).
Dies ist eine von mir für die ersten Gehversuche angepasste config.json:
Wichtig ist hier die Angabe der IP-Adresse 127.0.0.1, denn der eibd soll ja auf demselben Gerät laufen.Code:{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "This is an example configuration file for KNX platform shim", "hint": "Always paste into jsonlint.com validation page before starting your homebridge, saves a lot of frustration", "hint2": "Replace all group addresses by current addresses of your installation, these are arbitrary examples!", "hint3": "For valid services and their characteristics have a look at the KNX.md file in folder platforms!", "hint99": "Everything that is named description or hint is not used by homebridge but decriptive only, you may change or remove at will", "platforms": [{ "platform": "KNX", "name": "KNX", "knxd_ip": "127.0.0.1", "knxd_port": 6720, "knxd_do_not_read_set_groups": true, "accessories": [{ "name": "Testraum", "services": [{ "type": "Lightbulb", "description": "iOS8 Lightbulb type, supports On (Switch) and Brightness", "name": "Testleuchte", "On": { "Set": "1/1/1", "Listen": ["1/1/2"] }, "Brightness": { "Set": "1/1/3", "Listen": ["1/1/4"] } }] }] } ] }
config.json
Es kann nun die config.json auf den Raspi kopiert werden, ich verwende dafür WinSCP (http://winscp.net/eng/download.php):
Links oben auf neues Verbindungsziel klicken, SFTP als Übertragungsprotokoll auswählen, bei Rechnername die IP-Adresse des Raspi eintragen, Benutzername pi und Passwort raspberry, dann auf Speichern (das Standard-Passwort kann in diesem Fall ruhig gespeichert werden) und schließlich auf Anmelden klicken.
Es öffnet sich, ähnlich wie im Explorer, eine Baumstruktur, links der eigene PC und rechts der Raspi.
Wir wählen auf der rechten Seite oben im drop-down-Feld / <root> aus und gelangen durch Doppelklick auf den jeweiligen Ordner erst zu /home/ und dann zu /pi/. Dort gibt es den Ordner /.homebridge, den wir ebenfalls durch Doppelklick öffnen.
In diesen muss nun die config.json hinein, entweder durch kopieren vom eigenen PC als Datei, oder wir legen sie per Rechtsklick (Neu -> Datei) im Ordner /.homebridge an. WinSCP hat dazu einen einfachen Editor, der automatisch beim Anlegen einer neuen Datei geöffnet wird. Dort muss beachtet werden, dass oben unter Zeichenkodierung „UTF-8“ ausgewählt wird.
Ansonsten empfiehlt sich für Windows Notepad++ (https://notepad-plus-plus.org/), auch hier bitte im Menüpunkt Kodierung „UTF-8 ohne BOM“ auswählen.
Unbedingt sollte jede config.json im JSONLint, dem JSON Validator (http://jsonlint.com/) geprüft werden, das spart Frust und Sucherei ;o)
eibd
Hier bin ich nach einigen Fehlversuchen auf die letztendlich funktionierende Anleitung (und vor allem das passende Script für den Raspi 2 B!) gestoßen: http://michlstechblog.info/blog/rasp...usb-interface/.
Leider bezieht sich die dort beschriebene Methode, dem Raspi eine feste IP-Adresse zu geben, nicht auf den aktuellen Raspi 2 B mit Jessie. Hier gibt es nicht mehr eine Datei, in der man ändern kann / soll, sondern mehrere.
Da aber sowohl Homebridge als auch eibd auf ein und demselben Gerät laufen, ist das aus meiner Sicht nicht tragisch, zumal ich bei mir im Router (FRITZ!Box) eingestellt habe, dass der Raspi immer dieselbe IP-Adresse zugeweisen bekommt.
Wir beginnen mitgefolgt vonCode:sudo wget http://michlstechblog.info/blog/download/electronic/install_eibd_usb_with_cemi_patches_systemd.sh
undCode:sudo chmod +x install_eibd_usb_with_cemi_patches_systemd.sh
Auch das dauert eine ganze Weile…Code:sudo ./install_eibd_usb_with_cemi_patches_systemd.sh
Danach folgen wir der Aufforderung zum Reboot mitund identifizieren uns mitCode:sudo reboot
als pi, geben das PasswortCode:1
ein (Unterstreichung fällt weg bei Jessie light) und freuen uns nach dem Reboot über einen installierten und automatisch gestarteten eibd ;o)Code:raspberry
Nach einem Reboot kann man übrigens durch Rechtsklick auf die obere Fensterleiste von PuTTY Restart Session auswählen, um sich wieder mit dem neu gestarteten Raspi zu verbinden.
Um zu testen, ob der eibd läuft und alles richtig erkannt wurde, geben wirein und erhalten den Status des laufenden eibd:Code:ps ax|grep eibd
Die USB-Adresse kann auch anders lauten, je nach USB-Device. Die Parameter können in der Datei /etc/default/eibd geändert werden.[…] 0:00 /usr/local/bin/eibd -p /run/eibd/eibd.pid -d -D -T -R -S -i -u --eibaddr=1.1.128 usb:1:5:1:0:0 […]
Mitkönnen wir testen, ob der eibd Signale vom KNX-Bus empfängt – einfach starten und ein paar Lichtschalter drücken. Es sollten Logdaten wie diese erscheinen:Code:vbusmonitor1 ip:localhost
Mit STRG & C brechen wir den vbusmonitor1 ab.LPDU: BC 12 40 0B 14 C1 00 80 4F :L_Data low from 1.2.64 to 1/3/20 hops: 04 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 12 40 0B 14 C1 00 81 4E :L_Data low from 1.2.64 to 1/3/20 hops: 04 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
LPDU: BC 12 40 0B 14 C1 00 80 4F :L_Data low from 1.2.64 to 1/3/20 hops: 04 T_DATA_XXX_REQ A_GroupValue_Write (small) 00
LPDU: BC 12 40 0B 14 C1 00 81 4E :L_Data low from 1.2.64 to 1/3/20 hops: 04 T_DATA_XXX_REQ A_GroupValue_Write (small) 01
Das große Finale
Mitstarten wir die Homebridge und erhalten eine Rückmeldung, die dieser ähnelt:Code:homebridge
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Loaded plugin: homebridge-knx
Registering platform 'homebridge-knx.KNX'
---
Loaded config.json with 0 accessories and 1 platforms.
---
Loading 1 platforms...
[KNX] Initializing KNX platform...
[KNX] Fetching KNX devices.
[KNX] parsing acc 0 of 1
[KNX] push new device Testraum
[KNX] Accessory constructor called
[KNX] created Testraum accessory
[KNX] returning 1 accessories
[KNX] Initializing platform accessory 'Testraum'...
[KNX] Preparing Services: 1
[KNX] Preparing Service: 0 of type Lightbulb
[KNX] [Testraum]:Lightbulb on/off characteristic enabled
[KNX] knx registering BOOLEAN 1/1/2
[KNX] [Testraum]:[On]: Issuing read requests on the KNX bus...
[KNX] [knxdevice:knxread] preparing knx request for 1/1/2
[KNX] [Testraum]:Lightbulb Brightness characteristic enabled
[KNX] knx registering PERCENT 1/1/4
[KNX] [Testraum]:[Brightness]: Issuing read requests on the KNX bus...
[KNX] [knxdevice:knxread] preparing knx request for 1/1/4
>>> knxd groupsocketlisten starting <<<
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:
┌────────────┐
│ 031-45-154 │
└────────────┘
Homebridge is running on port 51826.
Server running at: http://raspberrypi:3000
[KNX] [knxdevice:knxread] knx request sent for 1/1/2
[KNX] [knxdevice:knxread] knx request sent for 1/1/4
Die Warnungen mit Sternchen können ignoriert werden.
Nun das iPhone zur Hand genommen, z.B. die kostenlose App EVE starten und die Homebridge sollte erscheinen.
Und bitte nicht Siri vergessen - das macht am meisten Spaß ;o)
Ich sehe mal zu, das ich das Ganze noch als Image bereitstelle (wer hat Speicher? Es sind knapp 1,6GB)...
Für Fragen und Anregungen bin ich jederzeit zu haben!
Grüße
Puki
P.S. Bitte schlagt mich nicht, das ist mein erstes How-to
Edit 27.03.2016:
Bitte unbedingt, auch falls ihr mein Image nutzt, vor (!) Update auf iOS 9.3 auch Homebridge und Homebridge-KNX updaten:
Quelle: https://github.com/snowdd1/homebridge-knx-de/issues/5Bitte vor dem iOS 9.3 - Update homebridge und homebridge-knx auf den neueseten Stand bringen!
Für alle, die es global installiert haben
sudo npm -g update homebridge --unsafe-perm
sudo npm -g update homebridge-knx
alle anderen:
npm update homebridge
npm update homebridge-knx
Zuletzt geändert von Puki; 27.03.2016, 20:12.
- Likes 4
Einen Kommentar schreiben:
-
Ich bin gerade dabei, ein How-to zu schreiben - vielleicht kann das Fragen beantworten.
Hast du mal versucht, in der config.json den Username zu ändern (z.B. das Ende von :30 auf :31)? Das hat bei mir schon einmal geholfen.
Und kurze Frage @all: weiß jemand, wie ich auf dem Raspi 2B die eibd mit dem init-Script manuell starten und stoppen kann? In /etc/init.d/ liegt das Script ja nicht mehr, sondern in /etc/default/, so dassnicht funktionieren kann.Code:sudo /etc/init.d/eibd start bzw. stop
Versuche ichbekomme ich aber nurCode:sudo /etc/Default/eibd start oder stop
Code:sudo: /etc/default/eibd: command not found
Einen Kommentar schreiben:
-
Hallo Christoph,
hast du auch den Key in der App eingegeben?Code:Scan this code with your HomeKit App on your iOS device to pair with Homebridge: ┌────────────┐ │ 031-45-154 │ └────────────┘ Homebridge is running on port 51826.
Bei dem Port bin ich mir jetzt selber nicht sicher, ob das der richtige Port ist.
Einen Kommentar schreiben:
-
So, als absoluter Neuling in Sachen Raspberry habe ich heute am zweiten Abend die Installation abgeschlossen und sowohl knxd als auch homebridge scheinen zu laufen...
...ABER, die Elgato Eve - App findet bei der Suche nach neuen Geräten nichts, kann mir einer helfen?
danke Euch,Code:Loaded plugin: homebridge-knx Registering platform 'homebridge-knx.KNX' --- Loaded config.json with 0 accessories and 1 platforms. --- Loading 1 platforms... [KNX] Initializing KNX platform... [KNX] Fetching KNX devices. [KNX] parsing acc 0 of 1 [KNX] push new device Esstischlicht [KNX] Accessory constructor called [KNX] created Esstischlicht accessory [KNX] returning 1 accessories [KNX] Initializing platform accessory 'Esstischlicht'... [KNX] Preparing Services: 1 [KNX] Preparing Service: 0 of type Lightbulb [KNX] [Esstischlicht]:Lightbulb on/off characteristic enabled [KNX] knx registering BOOLEAN 8/2/10 [KNX] [Esstischlicht]:[On]: Issuing read requests on the KNX bus... [KNX] [knxdevice:knxread] preparing knx request for 8/2/10 [KNX] [Esstischlicht]:Lightbulb Brightness characteristic enabled [KNX] knx registering PERCENT 8/2/12 [KNX] [Esstischlicht]:[Brightness]: Issuing read requests on the KNX bus... [KNX] [knxdevice:knxread] preparing knx request for 8/2/12 >>> knxd groupsocketlisten starting <<< Scan this code with your HomeKit App on your iOS device to pair with Homebridge: ┌────────────┐ │ 031-45-154 │ └────────────┘ Homebridge is running on port 51826.
Christoph
Einen Kommentar schreiben:


Einen Kommentar schreiben: