Homebridge Raspberry Pi Installieren – Homekit für ungeduldige

Wäre es nicht schön, das gesamte Smart Home über das in iOS integrierte Apple HomeKit zu steuern? Sprachsteuerung über Siri, an- und ausschalten der Lampen mit nur einem Wischen, Steuern über die Apple Watch, alles kein Problem. Für den Raspberry Pi gibt es dafür die Homebridge, ein Vermittler zwischen einer vorhandenen Steuerzentrale (FHEM, Homematic, etc.) und Apple Geräten. Ich verwende in diesem Tutorial eine Homematic CCU2 als Smart Home Steuerzentrale. Daher auch der Titel Homebridge Raspberry Pi installieren, wer hätte es gedacht ;).

Was ist eine Homebridge?

Eine Homebridge erlaubt dir, Smart Home Geräte über Apple HomeKit zu steuern, die diese Funktion nicht offiziell (native) unterstützen. Du kannst sie dir also wie eine Art übersetzer vorstellen:

  • Zum einen: Sie nimmt die Befehle von iOS Geräten an, wandelt diese um und gibt diese schließlich an die eingestellte Steuerzentrale und somit an die Geräte weiter
  • Andererseits sucht die Homebridge nach in der Zentrale verfügbaren Geräte, listet diese auf und publiziert diese in einer Form, die für iOS Geräte verständlich ist

Was wird von der Homebride alles unterstützt?

Homebridge Screenshot der Webseite
Screenshot der Webseite Homebridge.io

Es gibt über 2000 Homebridge Plugins mit denen du tausende verschiedene Geräte anbinden kannst. Darunter fallen Plugins für Ring, Nest, TP-Link Kasa Smart Home, Hue / deCONZ, Shelly und Logitech Harmony und noch viel mehr, auf der Homepage der Homebridge gibt es eine Suche für Plugins.

Zu den unterstützen Herstellen zählen unter anderem LIFX, IKEA, Netatmo, ecobee, Tesla, Logitech, arlo, wemo und viele weitere!

Alternative zur Raspberry Homebridge

Auch wenn die Installation auf dem Raspberry Pi der empfohlene Weg ist, eine Übersicht über alle mir bekannten und praktikablen Installationsmöglichkeiten der Homebridge, findet ihr hier!

Empfohlene Hardware für die Raspberry Homebridge

Raspberry Pi 4 (Empfohlen)

Zuletzt aktualisiert am 4. Dezember 2020 um 01:06 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.  

Alternativ: Raspberry Pi 3

Zuletzt aktualisiert am 4. Dezember 2020 um 01:05 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.  

Empfohlenes Zubehör

UGREEN USB 3.0 SD TF Kartenleser
Zuletzt aktualisiert am 4. Dezember 2020 um 01:05 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.  
AmazonBasics Ethernet-Netzwerkkabel, RJ45, Cat6, 3 m, 1.000Mbit/s
AmazonBasics Ethernet-Netzwerkkabel, RJ45, Cat6, 3 m, 1.000Mbit/s* Prime  Preis: € 6,81 Zu Amazon*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 4. Dezember 2020 um 01:06 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.  

Homebridge auf Raspberry Pi installieren

Zum installieren gibt es 2 Möglichkeiten:

  1. Möglichkeit 1 ist der von mir empfohlene Weg: Die Installation über das offizielle Homebirdge Image für den Raspberry Pi. So musst du nur sehr wenig konfigurieren und vor allem wird die Config UI direkt mitinstalliert (Grafische webbasierte Benutzeroberfläche für die Homebirge)
  2. Die Möglichkeit 2 ist die manuelle Installation. Das bietet sich an, wenn du z.B. schon einen Raspberry Pi im Netzwerk hast der nur darauf wartet, noch ein paar Anwendungen installiert zu bekommen.
Aus dem Blog
Shelly Button 1 im Test - Der perfekte smarte Schalter?

Die Homebridge ist aber inzwischen so mächtig und wichtig, dass ich empfehle, einen Raspberry nur damit zu betreiben und wie in Möglichkeit 1 zu installieren!

1 Installation auf dem Raspberry mit dem offiziellem Image

1.1 Image runterladen

Homebridge image zip Datei GitHub

Zuerst brauchst du das neuste Image der Homebridge. Gehe dazu auf diese Seite und lade dir die Zip Datei herunter. Anschließend die Datei entpacken und das Image mit dem Win32 Disk Imager auf die microSD-Karte schreiben.

Falls auf deiner MicroSD-Karte bereits Daten vorhanden sind, vergesse nicht eine Sicherung anzulegen und die SD-Karte anschließend ordnungsgemäß zu formatieren.

Homebridge Installation Flashen des Images auf SD Karte

Wenn alles abgeschlossen ist, steckte die microSD-Karte wieder in den Raspberry, starte ihn aber noch nicht!

1.2 Zum Netzwerk verbinden

Okay, bevor du den Raspberry das erste mal startest musst du entscheiden, ob du per Netzwerkkabel (empfohlen) oder per WiFi mit deinem Heimnetzwerk verbinden willst.

1.2.A Kabelverbindung

Einfach ein Netzwerkkabel einstecken und den Raspberry starten, fertig. Keine weitere Konfiguration erforderlich.

1.2.B WLAN

Folge diesen Schritten um die WLAN-Verbindung einzurichten

  1. Starte den Raspberry ohne eingestecktes Netzwerkkabel
  2. Warte 1-2 Minuten
  3. Suche mit deinem Smartphone nach neuen WLAN Netzwerken
  4. Verbinde dich mit dem WLAN namens Homebridge WiFi Setup
  5. Warte nach dem Verbinden ein paar Minuten, bis sich das Konfigurationsportal öffnet. Hier kannst du dann die Zugangsdaten für dein WLAN eingeben.
  6. Nach der Eingabe wird sich der Raspberry verbinden

1.3 Homebridge verwalten und verbinden

Homebridge Config UI X Webinterface

Okay, fast geschafft. Nun musst du dich in das Webinterface einloggen, um die Homebridge verwalten zu können.

1.3.1 macOS

Falls du auf einem Mac arbeitest musst du nur http://homebridge.local eingeben, um das Webinterface zu erreichen.

1.3.2 Windows

Auf Windows brauchst du die IP-Adresse. Zum herausfinden gibt es 4 Möglichkeiten:

  • Schaue auf deinem Router nach, welche IP-Adresse der Raspberry mit der Homebridge bekommen hat
  • Benutze dein iPhone oder iPad und rufe im Browser http://homebridge.local auf. Sobald du angemeldet bist, findest du die IP-Adresse auf der Startseite unter System Informationen
  • Benutze ein Programm wie FindMyPi um die IP-Adresse anzuzeigen
  • Als letzte Option kannst du noch einen Bildschirm am Raspberry anschließen. Sobald der Bootvorgang abgeschlossen ist, wird die IP angezeigt

Sobald du die IP-Adresse herausgefunden hast, öffne die Weboberfläche indem du http://<IpAdresseDeinesRaspberry> in einem Webbrowser eingibst.

1.4 Homebridge einrichten

Um die Homebridge auf deinem iPhone oder iPad einzurichten, mache folgendes:

  1. Öffne die Home App auf deinem Gerät
  2. Tippe auf der Startseite auf das Plus-Zeichen oben rechts
  3. Wähle “Gerät hinzufügen” aus
  4. Scanne den QR-Code auf der Homebrige Weboberfläche

1.5 Plugins hinzufügen

homebridge raspberry 1

Okay so weit so gut. Nun musst du noch die Plugins der Geräte hinzufügen, die du über die Homebridge oder genauer gesagt die Home App bzw. Siri steuern willst.

Aus dem Blog
Linux auf USB Stick installieren mit Rufus

Gehe dazu in den Reiter Plugins und suche nach den gewünschten Herstellern oder Geräten. Viele der Plug-ins erlauben dir die grafische Konfiguration der Einstellungen, bei einigen anderen oder für zusätzliche Einstellungen musst du die Konfigurationsdatei Config.json manuell über den Reiter “Konfiguration” bearbeiten.

Fall du ein paar Ideen brauchst, unten habe ich dir einige meiner lieblings-Plugins aufgelistet.

2 Manuelle Installation (alternativ)

Voraussetzungen der Homebridge-Installation

Ich gehe von einem frisch installiertem, konfiguriertem und geupdateten Raspberry Pi mit Raspbian-Jessie-lite aus. Jedes andere Raspbian, Debian oder Ubuntu sollte aber auch funktionieren. Vergesst nicht, für den Fall der Fälle, ein Backup eurer SD Karte anzulegen.

Ich werde hier auf einem Raspberry Pi 3 b+ homebridge installieren, das sollte aber auch für den Raspberry Pi 4 so klappen 😉

Folgende Kommandos bitte der Reihe nach ausführen

sudo apt-get install git make -y && sudo apt-get install g++ -y
Code-Sprache: JavaScript (javascript)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
Code-Sprache: JavaScript (javascript)
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
Code-Sprache: JavaScript (javascript)
sudo apt-get install -y nodejs gcc g++ make python && sudo apt-get install libavahi-compat-libdnssd-dev -y
Code-Sprache: JavaScript (javascript)
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild

Installieren der Hombridge & Config UI

sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x

Test-Start der Homebridge

homebridge
Ausgabe des Kommandos homebridge
Die Ausgabe sollte in etwa so aussehen, anschließend mit der Tastenkombination STRG+C homebridge beenden

Autostart der Homebridge einrichten

Damit ihr nicht nach jedem Neustart des Raspberry die Homebridge starten müsst, lassen wir sie ab jetzt automatisch beim Systemstart ausführen.

Neue Datei anlegen via

sudo nano /etc/init.d/homebridge

Folgende Inhalte in Datei kopieren:

Mit den Tasten STRG+X, J, Enter speichern und verlassen

Die Datei ausführbar machen

sudo chmod 755 /etc/init.d/homebridge && sudo update-rc.d homebridge defaults

Wir können die Funktionalität nun mit diesem Befehl testen: sudo service homebridge start

Fertig! Ihr könnt eure Geräte nun z.B. mit dem Siri-Befehl “Alle Lichter aus” steuern. Viel Spaß!

Wie geht’s jetzt weiter?

Falls du ein paar Ideen brauchst, was du mit deiner Homebridge so alles anstellen kannst oder welche Plug-ins sinn machen, hier ein paar Anregungen:

Fehlerbehebung

Wenn eure Homematic Homebridge auf dem iPhone nicht gefunden wird:

  • Seid ihr im selben Netzwerk wie der Raspberry?
  • Wurde die config.json als Benutzer pi angelegt?
  • Liegt die config.json unter  /home/pi/.homebridge ?
  • iPhone neustarten
  • Raspberry neu starten
  • Falls in der App Home bereits ein Haus angelegt ist, dieses über die Schaltfläche “Bearbeiten” oben rechts löschen und ein neues anlegen
  • In der config.json den Wert “username”: “CC:22:3D:E3:CE:24”  ändern, z.B. in “username”: “CC:22:3D:E3:CE:26”

About Simon

Hi 👋 ich bin Simon Müller. Gründer des Blogs simon42 & bekennender vollblut- und Berufs-Nerd. Hier schreibe ich ehrlich und mit Leidenschaft über alle Smart Home und Technik Themen, die mir im Leben begegnen oder mich aktuell interessieren. Mein Zuhause wurde bereits von Sprachassistenten übernommen und längst habe ich die Kontrolle über die Anzahl der smarten Geräte verloren 😁 Kaffeespende für den Author

Buy me a Coffee

Unterstütze simon42!

Dir hat der Beitrag gefallen? Super!

Wenn du magst, kannst du mich gerne durch eine kleine Spende unterstützen. Artikel zu schreiben ist sehr zeitintensiv & das Hosting der Website verschlingt einiges an Geld. Jeder Betrag ist willkommen!

33 Gedanken zu „Homebridge Raspberry Pi Installieren – Homekit für ungeduldige“

  1. Hallo Simon,

    ich hab meine homebridge zwar nicht nach deiner tollen Anleitung installiert (die hätte mir vor einigen Monaten einiges an Sucherei erspart), aber die homebridge lief einwandfrei, bis ich vor drei Tagen auf die glorreiche Idee kam den Namen meines RasPI zu ändern. danach lief die Homebride nicht mehr. Beim Start kam die Name conflicht Fehlermeldung, die du oben auch kurz beschreibst.
    Ich hab mittlerweile den Namen wieder zurück geändert, trotzdem kommt immer noch die Fehlermeldung.
    Beim verzweifelten googlen nach dem Fehler bin ich hier gelandet. Hast du noch eine Idee woher die Fehlermeldung kommen kann ?
    Den Usernamen (steht übrigens in Zeile 4) hab ich schon mehrfach ohne Erfolg geändert…

    Gruß

    Markus

    Hier die Fehlermeldung:

    ┌────────────┐
    │ 031-45-154 │
    └────────────┘

    [2017-11-28 22:21:30] [homematic-ccu2] Number of mapped devices : 48
    /usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56
    dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name,
    ^

    Error: dns service error: name conflict
    at Error (native)
    at new Advertisement (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56:10)
    at Object.create [as createAdvertisement] (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:64:10)
    at Advertiser.startAdvertising (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Advertiser.js:47:30)
    at Bridge.Accessory._onListening (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:655:20)
    at emitOne (events.js:96:13)
    at HAPServer.emit (events.js:188:7)
    at HAPServer._onListening (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:190:8)
    at emitOne (events.js:96:13)
    at EventedHTTPServer.emit (events.js:188:7)
    at EventedHTTPServer. (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:65:10)
    at emitNone (events.js:86:13)
    at Server.emit (events.js:185:7)
    at emitListeningNT (net.js:1285:10)
    at _combinedTickCallback (internal/process/next_tick.js:71:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

    und noch meine config.json

    {
    “bridge”: {
    “name”: “Homebridge”,
    “username”: “CC:22:3D:E3:CE:19”,
    “port”: 51826,
    “pin”: “031-45-154”
    },

    “accessories”: [
    ],

    “platforms”: [{
    “platform”: “HomeMatic”,
    “name”: “homematic-ccu2”,
    “ccu_ip”: “192.168.100.50”,
    “filter_device”: [],
    “filter_channel”: [],
    “outlets”: [],
    “doors”: [],
    “programs”: [],
    “accessories”: [],
    “enable_hmip”: “true”,
    “ios10”:true,
    “subsection”: “Homekit”
    }]
    }

    Antworten
    • Hi Markus,
      könntest du bitte den Raspberry einmal neu starten und den Status der Homebridge über sudo systemctl status homebridge verifizieren?
      Der Fehler Error: dns service error: name conflict weist normalerweise darauf hin, das die homebridge bereits läuft. Wobei das umbenennen in deinem Fall natürlich auch die Ursache sein kann 😉

      Wie hast du denn den Raspberry Pi umbenannt, über sudo raspi-config?
      Du könntest auch noch versuchen, die Homebridge zu stoppen und deinem Raspberry Pi noch einmal via sudo raspi-config einen anderen Namen zu geben, während alle Instanzen der Homebridge gestoppt sind.

      Und was mir grade noch einfällt, die alte homebridge auf alle fälle vom iPhone löschen, dann den Username und Name änder, dann die mit dem neuen Namen hinzufügen.

      Viel Glück, sag bitte bescheid ob’s geholfen hat 🙂

    • Hallo Simon,
      die Homebridge lief tatsächlich noch. Ich bin kein Linux Crack, daher kannte ich den Befehl nicht. Daraufhin hab ich den Raspi neu gestartet und die automatisch gestartete Homebridge mit “sudo Service homebridge stop” gestoppt, danach auf meinem iPhone alles gelöscht, in der config.json den Usernamen geändert. Dann hab ich die homebridge zuerst einmal von der Kommandozeile gestartet, um den QR Code zu bekommen um auf dem iPhone wieder alles einzubinden. Soweit hat alles einwandfrei geklappt.
      Wenn ich aber nun die homebridge mit ctrl+c beende und anstatt dessen mit “sudo Service homebridge start” starte (sie startet einwandfrei) findet das Homekit auf meinem iPhone keine Geräte mehr.
      Immer wenn dich die homebridge direkt von der Kommandozeile aufrufe, sehe ich die Geräte im iPhone.
      Sieht so aus als wären hier zwei völlig unterschiedliche Instanzen der homebridge am Werk. Vermutlich war die Namensänderung gar nicht die Ursache, sondern der Neustart und darauf folgende Start der Bridge über die init.d. Als ich die Homebridge installiert hab, hab ich den automatischen Start erst ein paar Tage später eingerichtet – wie gesagt ich bin kein Linux crack. was ich mittlerweile weiß hab ich mir zusammen gegoogelt.
      Ich hab mittlerweile die /etc/init.d/homematic neu nach deinem Vorgaben oben erstellt. Leider auch ohne Erfolg.

      sudo systemctl status homebridge bringt folgendes Ergebnis, falls das weiter hilft.

      pi@raspberrypi:~ $ sudo systemctl status homebridge
      ● homebridge.service – LSB: Start daemon at boot time for homebridge
      Loaded: loaded (/etc/init.d/homebridge)
      Active: active (exited) since Mi 2017-11-29 21:43:18 CET; 17min ago
      Process: 2519 ExecStop=/etc/init.d/homebridge stop (code=exited, status=0/SUCCESS)
      Process: 2625 ExecStart=/etc/init.d/homebridge start (code=exited, status=0/SUCCESS)

      Nov 29 21:43:18 raspberrypi su[2628]: Successful su for pi by root
      Nov 29 21:43:18 raspberrypi su[2628]: + ??? root:pi
      Nov 29 21:43:18 raspberrypi su[2628]: pam_unix(su:session): session opened for …0)
      Nov 29 21:43:18 raspberrypi homebridge[2625]: Homebridge starting
      Nov 29 21:43:18 raspberrypi homebridge[2625]: Homebridge is not running
      Nov 29 21:43:18 raspberrypi systemd[1]: Started LSB: Start daemon at boot time …e.
      Nov 29 21:43:21 raspberrypi systemd[1]: Started LSB: Start daemon at boot time …e.
      Nov 29 22:01:08 raspberrypi systemd[1]: Started LSB: Start daemon at boot time …e.
      Hint: Some lines were ellipsized, use -l to show in full.
      pi@raspberrypi:~ $

      PS: Den Namen hab ich übrigends über die grafische Oberfläche geändert – und auch wieder zurück.

      Vielen Dank für deine Hilfe

      Markus

    • Hi Markus,
      du hast dir warscheinlich die config.json entweder als root erstellt und die Bridge startet im Kondext des Benutzers pi, oder anders rum ^^
      Du kannst dir nach einem erneuten Neustart des Raspberry die Prozesse und die dazugehörigen Benutzer mit TOP anzeigen lassen, is ganz praktisch 🙂

      Das einfachste wäre wahrscheinlich: Führe einfach die Schritte 4.5 – 4.7 in diesem Beitrag aus. Dann wir die Homebridge mit dem User pi gestartet und du erstellst eine config.json im Home Ordner des Benutzers pi, die dann auch für den automatischen Start genommen wird 😉

    • Hallo Simon,

      Hab ich gemacht, (2 Mal) 😉 beim 2. Mal hab ich dann noch die Zeile ios10″:”true” wieder in die config.json aufgenommen, jetzt läufts wieder einwandfrei. SUPER!

      Wäre gut, wenn du die in dein Beispiel in 4.5 mit aufnimmst. IOS 10 bzw 11 ist ja mittlerweile Standard und den Hinweis darauf findet man nur weiter unten in dem Chat mit Frank.

      Besten Dank für die Unterstützung. Ich komm bestimmt öfters mal vorbei.

      Gruß

      Markus

  2. Hallo,
    ich bin verzweifelt, da ich nun schon so viel getestet und gelesen habe, aber dennoch nicht weiter komme. Die Fehlermeldung ist ähnlich wie zuvor genannt, aber eben nur fast. Folgende Text erscheint nach dem Starten Homebridge:
    pi@raspberrypi:~ $ 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
    *** 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
    [2017-11-18 16:56:35] Loaded plugin: homebridge-homematic
    [2017-11-18 16:56:35] Registering platform ‘homebridge-homematic.HomeMatic’
    [2017-11-18 16:56:35] —
    [2017-11-18 16:56:35] Loaded config.json with 0 accessories and 1 platforms.
    [2017-11-18 16:56:35] —
    [2017-11-18 16:56:35] Loading 1 platforms…
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Initializing HomeMatic platform…
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Homematic Plugin Version 0.0.96
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Plugin by thkl https://github.com/thkl
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Homematic is a registered trademark of the EQ-3 AG
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Please report any issues to https://github.com/thkl/homebridge-homematic/issues
    [2017-11-18 16:56:35] [HomeMatic-CCU2] will connect to your ccu at 192.168.178.035
    [2017-11-18 16:56:35] [HomeMatic-CCU2] using binrpc for communication with BidCos-RF
    [2017-11-18 16:56:35] [HomeMatic-CCU2] init RPC for BidCos-RF.
    [2017-11-18 16:56:35] [HomeMatic-CCU2] local ip used : 192.168.178.96. you may change that with local_ip parameter in config
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Fetching Homematic devices…
    [2017-11-18 16:56:35] [HomeMatic-CCU2] RPC server for interface BidCos-RF. is listening on port 9090.
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Creating Local HTTP Client for CCU RPC Events
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Error Error: connect ECONNREFUSED 192.168.178.29:8181while executing rega script Write(‘PONG’);
    [2017-11-18 16:56:35] [HomeMatic-CCU2] if undefined is PONG CCU is alive
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Error Error: connect ECONNREFUSED 192.168.178.29:8181while executing rega script string sDeviceId;string sChannelId;boolean df = true;Write(‘{“devices”:[‘);foreach(sDeviceId, root.Devices().EnumIDs()){object oDevice = dom.GetObject(sDeviceId);if(oDevice){var oInterface = dom.GetObject(oDevice.Interface());if(df) {df = false;} else { Write(‘,’);}Write(‘{‘);Write(‘”id”: “‘ # sDeviceId # ‘”,’);Write(‘”name”: “‘ # oDevice.Name() # ‘”,’);Write(‘”address”: “‘ # oDevice.Address() # ‘”,’);Write(‘”type”: “‘ # oDevice.HssType() # ‘”,’);Write(‘”channels”: [‘);boolean bcf = true;foreach(sChannelId, oDevice.Channels().EnumIDs()){object oChannel = dom.GetObject(sChannelId);if(bcf) {bcf = false;} else {Write(‘,’);}Write(‘{‘);Write(‘”cId”: ‘ # sChannelId # ‘,’);Write(‘”name”: “‘ # oChannel.Name() # ‘”,’);if(oInterface){Write(‘”intf”: “‘ # oInterface.Name() # ‘”,’);Write(‘”address”: “‘ # oInterface.Name() #’.’ # oChannel.Address() # ‘”,’);}Write(‘”type”: “‘ # oChannel.HssType() # ‘”,’);Write(‘”access”: “‘ # oChannel.UserAccessRights(iulOtherThanAdmin)# ‘”‘);Write(‘}’);}Write(‘]}’);}}Write(‘]’);var s = dom.GetObject(“HomeKit”);string cid;boolean sdf = true;if (s) {Write(‘,”subsection”:[‘);foreach(cid, s.EnumUsedIDs()){ if(sdf) {sdf = false;} else { Write(‘,’);}Write(cid);}Write(‘]’);}Write(‘}’);
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Fetch Response
    [2017-11-18 16:56:35] [HomeMatic-CCU2] Unable to load cached ccu data. giving up
    Setup Payload:
    X-HM://0023ISYWYBFAE
    Scan this code with your HomeKit app on your iOS device to pair with Homebridge:

    Mein Problem (außer das es nicht funktioniert): Die IP 192.168.178.29, auf die sich die Fehlermeldung bezieht, ist die IP meines Netzwerkdruckers. Diese habe ich im Raspbian nie angegeben, daher meine Verwunderung. Auch der Port 8181 wird von mir nicht bewusst verwendet. Ich weiß nicht weiter. Kannst Du helfen?
    Grüße, Frank

    Antworten
    • Hi Frank,
      danke für deine Frage. Das Problem beginnt ab der Zeile [2017-11-18 16:56:35] [HomeMatic-CCU2] Error Error: connect ECONNREFUSED 192.168.178.29:8181while executing rega script Write(‚PONG‘);
      Ich denke mal folgende Schritte könnten helfen:
      – Auf der CCU2 die Firewall-Einstellungen kontrollieren, ich denke hier liegt das Problem
      – Angegeben IP-Adresse der CCU2 überprüfen, oh ich sehe grade das kann glaube ich nicht gehen. Bitte 192.168.178.035 durch 192.168.178.35 ersetzen. Vielleicht kommt daher auch auf einmal die 192.168.178.29. Kann sein, muss aber nicht 🙄

      Bitte um Rückmeldung, oder poste einfach mal deine config.json 😈

      LG
      Simon

    • Hallo Simon,
      ich habe wohl die falsche Anleitung (zu alt) verwendet. Eine neuere Anleitung funktionierte auf Anhieb. Allerdings bleibt noch immer ein Problem.
      Wenn ich Programme in der Config-Datei hinzufüge, dann erscheinen diese in der Home-App, auch im Eve, aber mit dem Hinweis: “Wird nicht unterstützt”. Wenn ich dennoch versuche das Programm “Test” zu starten, dann erscheint im Terminalprogramm “Launch Program Test”, aber die CCU tut nichts. Schalter und Variablen funktionieren.
      Was tun?

    • Also… vielleicht stelle ich mich grade blöd an, aber könntest du mal näher beschreiben was du mit Programme ❓ meinst? Außerdem, poste doch mal die Config.json oder einen Link zu ihr…

    • Hier die Config.json:
      {
      “bridge”: {
      “name”: “Homebridge”,
      “username”: “CC:22:3D:E3:CE:30”,
      “port”: 51826,
      “pin”: “031-45-154”
      },

      “platforms”: [{
      “platform”: “HomeMatic”,
      “name”: “HomeMatic CCU2”,
      “ccu_ip”: “192.168.178.35”,
      “filter_device”: [],
      “filter_channel”: [],
      “outlets”: [],
      “doors”: [],
      “programs”: [“Rollladen Wohnzimmer runter”, “Rollladen Wohnzimmer hoch”, “Test”],
      “accessories”: [],
      “subsection”: “Homekit”,
      “variables”: [“var Rollladen Wohnzimmerfenster halb”]
      }]
      }

      So sollen angeblich Programme in der CCU startbar sein. Da ich aber Anfänger in dieser Thematik bin und eigentlich keine Ahnung habe, stelle ich mir das vielleicht zu leicht vor.
      In der iPhone-App erscheinen die Programme, welche in der Rubrik programs aufgelistet sind, auch mit einem speziellen Symbol. Allerdings mit dem Hinweis: “nicht unterstützt”. Die Variable kann ich ansprechen.
      Danke für die Hilfe!

    • Hi Frank,
      jetzt ist mir klar geworden, was du meinst 😉
      Ich glaube da fehlt der ios10 schalter, oder?
      “programs”:[“ProgName1″,”ProgName2”],
      “ios10”:true,

      Auch wenn wir schon bei ios11 sind, ich glaube die Fehlermeldung hat was damit zu tun.
      LG
      Simon

    • Hallo Simon,
      den ios10-Parameter hatte ich auch schon im Test. Damit funktioniert es weder mit einem ios10- noch mit einem ios11-Gerät. Lediglich das Symbol der Programme ändert sich in der App, insofern hat es Auswirkung. Wie oben bereits erwähnt kann ich im Terminal sehen, dass die App dem Raspi etwas schickt, aber es kommt nicht bei der CCU an. Aber das hatte ich ja schon erwähnt. Leider weiss ich nicht mehr weiter, habe hierzu auch nichts weiter im Netz gefunden. Habe nur ich das Problem?
      Grüße, Frank

    • Hi Frank,
      habe eben bei mir mal getestet. Funktioniert bei mir, aber nur mit dem iso10 in der config.json:
      {
      "bridge": {
      "name": "Homebridge",
      "username": "CC:22:3D:E3:CE:14",
      "port": 51826,
      "pin": "031-45-444"
      },

      "platforms": [
      {
      "platform": "HomeMatic",
      "name": "HomeMatic CCU2",
      "ccu_ip": "192.168.1.24",
      "filter_device": [],
      "filter_channel": [],
      "outlets": [],
      "doors": [],
      "programs": ["Alexa Entertainment System"],
      "ios10":true,
      "accessories": [],
      "subsection": "Homebridge"
      }
      ]
      }

      So erscheint bei mir das Programm Alexa Entertainment System, und es kann bedient werden.
      LG
      Simon

    • Hi,
      mir ist aufgefallen, dass Du eine andere Pin verwendest. Welchen Einfluss hat die Pin auf die Funktionen?
      Frank

    • Nein, auf die Funktion hat der Pin keinerlei Einfluss.
      Dieser dient lediglich zur Authentifizierung, wenn man mit der Bridge erstmalig die Verbindung herstellt.
      Ich würde dir, zu dem Problem mit dem Homematic Programm, folgendes Empfehlen:
      Versuche nochmal die “ios10”:true, Zeile wie in meiner Config.json einzufügen und starte danach mal den Raspberry und dein iPhone neu.
      Falls es dann noch nicht gehen sollte, änder mal den Username ( “username”: “CC:22:3D:E3:CE:14“,) und verbinde die Bridge neu mit dem iPhone. (Die alte Bridge wird dann nicht mehr gefunden)

      Viel Glück 😉
      Simon

    • Hallo Simon,
      es klappt jetzt endlich. Ich habe den Usernamen geändert, wie vorgeschlagen, aber das war wohl nicht das Problem. Ich hatte in der Config-Datei ein Sonderzeichen drin, direkt vor dem Wort Platforms. Ein kleines grünes Kästchen. Sah aus wie der Cursor, viel einfach nicht auf. Nun ist es weg und alles läuft, auch ohne den Eintrag ios10. Vielen Dank für Deine Geduld.
      Grüße, Frank.

    • Kein Problem Frank, gerne doch 😉
      Nur um sicherzugehen, dass nicht unnötige Verwirrung gestiftet wird: Bei mir war das Homematic Programm ohne den ios10 Eintrag tatsächlich nicht bedienbar, es erschien nur der Hinweis: „nicht unterstützt“… Wer weis schon warum 😈 , aber wenn jemand nochmal das Problem haben sollte…

      Freut mich, dass es bei dir geklappt hat Frank!

  3. Hallo,
    nach dem Installieren erhalte ich folgende Fehlermeldung beim Starten…
    Ich habe alles nach der Anleitung https://wiki.fhem.de/wiki/Homebridge_einrichten installiert. Wenn ich homebridge starte, kommt diese (Fehler)Meldung. Ab der Position des Homekit-Codes kommt dies (Code wird nicht angezeigt):

    `Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
    /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:384
    var encodedPayload = (buffer.readUInt32BE(4) + (buffer.readUInt32BE(0) * Math.pow(2, 32))).toString(36).toUpperCase().padStart(9, ‘0’);
    ^

    TypeError: (buffer.readUInt32BE(…) + (buffer.readUInt32BE(…) * Math.pow(…))).toString(…).toUpperCase(…).padStart is not a function
    at Bridge.Accessory.setupURI (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:384:121)
    at Server._printSetupInfo (/usr/lib/node_modules/homebridge/lib/server.js:600:32)
    at Server._publish (/usr/lib/node_modules/homebridge/lib/server.js:128:8)
    at Server. (/usr/lib/node_modules/homebridge/lib/server.js:381:14)
    at /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:16:19
    at regarequest.script.e (/usr/lib/node_modules/homebridge-homematic/index.js:300:4)
    at IncomingMessage. (/usr/lib/node_modules/homebridge-homematic/HomeMaticRegaRequest.js:43:9)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)

    Antworten
  4. Hallo Simon,
    erst einmal vielen Dank für die klasse Anleitung! Ich hab nun den zweiten Versuch unternommen den Pi als bridge für die HomeMatic einzurichten. Bin absoluter Anfänger in Sachen Pi und weiß mir nicht zu helfen, nach jedem Neustart bekomme ich einen Fehler, dass die DNS bereits verwendet wird. Aus diesem Grund hab ich beim ersten Mal den Pi komplett neu aufgesetzt und alles hat funktioniert. Nach Neustart des Pis wieder der gleiche Effekt! Jetzt hab ich nach Neustart ein killall durchgeführt und die homebridge neu gestartet, dann lief alles wieder. Ich denke, es hat vielleicht was mit der Init Datei zu tun, ich weiß aber nicht was und wie ich das beheben kann! Ich hoffe sehr mir kann geholfen werden! Gruß, Martin

    Antworten
    • Hallo Martin,
      erstmal vielen Dank für dein Feedback! Könntest du eventuell den genauen Fehler posten? Ich weiß außerdem gerade nicht genau, an welcher Stelle der Fehler bei dir auftritt. Beim starten der Homebridge?
      LG
      Simon

    • Vielen Dank für deine Antwort! Also nach einiger Testerei und Sucherei ist mein Zustand wie folgt: Nach Start oder Restart des Raspberrys zeigen alle Geräte keine Antwort (sie waren aber alle bereits steuerbar). Bei Eingabe von “sudo /etc/init.d/homebridge status” ist das Ergebnis folgendes: “Homebridge is running PID 668”. Sobald ich folgendes eingebe: “sudo /etc/init.d/homebridge restart” findet die apple home app wieder die Geräte und der Status ist folgender: “Homebridge is running PID 1277”. Ich kann mir das nicht erklären, da der Dienst anscheinend ja gestartet wird, die home app aber keine Verbindung aufbaut. Ich hoffe sehr, dass mir dabei geholfen werden kann. Vielen Dank schonmal und viele Grüsse aus Essen!

    • Hi Martin,
      sorry für die späte Antwort. Ich war leider länger Zeit krank.
      Zu deinem Problem: Das gleiche Problem hatte ich auch mal. Dieses Problem trat bei mir auf, da der Autostart der Homebridge unter dem falschen User ausgeführt wurde. (z.B. unter root statt unter pi)

      Dann wird die Homebridge also z.B. als root ausgeführt, und dieser hat dann keine config.json im Verzeichnis ~/.homebridge/. Also wird die Homebridge unkonfiguriert oder fehlerbehaftet gestartet.

      Bitte einfach mit dem Befehl “top” bestätigen, dass die Homebridge bei dem neu gestartetem Raspberry nicht unter dem User pi läuft. Dann den Autostart neu einrichten und das sollte es gewesen sein. Falls die Homebridge unter dem User Pi läuft fehlt die config.json im Verzeichnis ~/.homebridge/, hoffe ich 😉

      LG
      Simon

  5. Hallo,

    ich bekomme folgenden Fehler: Error Error: connect ECONNREFUSED 127.0.0.1:8181…

    Was mache ich falsch?
    Danke.

    [2017-9-4 19:04:18] Loaded plugin: homebridge-homematic
    [2017-9-4 19:04:18] Registering platform ‘homebridge-homematic.HomeMatic’
    [2017-9-4 19:04:18] —
    [2017-9-4 19:04:18] Loaded config.json with 0 accessories and 1 platforms.
    [2017-9-4 19:04:18] —
    [2017-9-4 19:04:18] Loading 1 platforms…
    [2017-9-4 19:04:18] [HomeMatic CCU2] Initializing HomeMatic platform…
    [2017-9-4 19:04:18] [HomeMatic CCU2] Homematic Plugin Version 0.0.76
    [2017-9-4 19:04:18] [HomeMatic CCU2] Plugin by thkl https://github.com/thkl
    [2017-9-4 19:04:18] [HomeMatic CCU2] Homematic is a registered trademark of the EQ-3 AG
    [2017-9-4 19:04:18] [HomeMatic CCU2] Please report any issues to https://github.com/thkl/homebridge-homematic/issues
    [2017-9-4 19:04:18] [HomeMatic CCU2] will connect to your ccu at undefined
    [2017-9-4 19:04:18] [HomeMatic CCU2] using binrpc for communication with BidCos-RF
    [2017-9-4 19:04:18] [HomeMatic CCU2] init RPC for BidCos-RF.
    [2017-9-4 19:04:18] [HomeMatic CCU2] Fetching Homematic devices…
    [2017-9-4 19:04:18] [HomeMatic CCU2] RPC server for interface BidCos-RF. is listening on port 9090.
    [2017-9-4 19:04:18] [HomeMatic CCU2] Creating Local HTTP Client for CCU RPC Events
    [2017-9-4 19:04:18] [HomeMatic CCU2] Error Error: connect ECONNREFUSED 127.0.0.1:8181while executing rega script Write(‘PONG’);
    [2017-9-4 19:04:18] [HomeMatic CCU2] if undefined is PONG CCU is alive
    [2017-9-4 19:04:18] [HomeMatic CCU2] Error Error: connect ECONNREFUSED 127.0.0.1:8181while executing rega script string sDeviceId;string sChannelId;boolean df = true;Write(‘{“devices”:[‘);foreach(sDeviceId, root.Devices().EnumIDs()){object oDevice = dom.GetObject(sDeviceId);if(oDevice){var oInterface = dom.GetObject(oDevice.Interface());if(df) {df = false;} else { Write(‘,’);}Write(‘{‘);Write(‘”id”: “‘ # sDeviceId # ‘”,’);Write(‘”name”: “‘ # oDevice.Name() # ‘”,’);Write(‘”address”: “‘ # oDevice.Address() # ‘”,’);Write(‘”type”: “‘ # oDevice.HssType() # ‘”,’);Write(‘”channels”: [‘);boolean bcf = true;foreach(sChannelId, oDevice.Channels().EnumIDs()){object oChannel = dom.GetObject(sChannelId);if(bcf) {bcf = false;} else {Write(‘,’);}Write(‘{‘);Write(‘”cId”: ‘ # sChannelId # ‘,’);Write(‘”name”: “‘ # oChannel.Name() # ‘”,’);if(oInterface){Write(‘”intf”: “‘ # oInterface.Name() # ‘”,’);Write(‘”address”: “‘ # oInterface.Name() #’.’ # oChannel.Address() # ‘”,’);}Write(‘”type”: “‘ # oChannel.HssType() # ‘”,’);Write(‘”access”: “‘ # oChannel.UserAccessRights(iulOtherThanAdmin)# ‘”‘);Write(‘}’);}Write(‘]}’);}}Write(‘]’);var s = dom.GetObject(“Siri”);string cid;boolean sdf = true;if (s) {Write(‘,”subsection”:[‘);foreach(cid, s.EnumUsedIDs()){ if(sdf) {sdf = false;} else { Write(‘,’);}Write(cid);}Write(‘]’);}Write(‘}’);
    [2017-9-4 19:04:18] [HomeMatic CCU2] Fetch Response
    [2017-9-4 19:04:18] [HomeMatic CCU2] Unable to load cached ccu data. giving up
    Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ 031-45-154 │
    └────────────┘

    [2017-9-4 19:04:19] [HomeMatic CCU2] Number of mapped devices : 0
    [2017-9-4 19:04:19] Homebridge is running on port 51826.
    [2017-9-4 19:04:21] [HomeMatic CCU2] NPM 0.0.76 vs Local 0.0.76

    Antworten
    • Hi Herbert,
      vielen Dank für deine Frage.
      Ich denke zuerst solltest du versuchen, die tatsächliche IP-Adresse des Adapters (z.B. 192.168.1.34) und nicht die localhost (127.0.0.1) IP einzutragen.

  6. Hallo Simon!
    SUper Anleitung hast Du da geschrieben. Ich habe gerade meine Einzelteile bestellt und wollte die Installation kommende Woche vornehmen. Ich habe aber noch eine Frage vorweg. Ich wollte die CCU auf dem Raspberry mit dem Funkmodul betreiben. Kann ich Homebridge und CCU auf dem gleichen Raspberry installieren? Die IP für die CCU wäre dann die IP der Homebridge.

    Beste Grüße

    Paul

    Antworten
    • Hey Paul,
      Vielen Dank für deine Frage.
      Ich bin mir da leider nicht absolut sicher, da ich selber die Homematic CCU2 Zentrale im Einsatz habe. Sollte aber theoretisch kein Problem sein!
      Das Einzige, was mir spontan einfällt, ist, dass Du die tatsächliche IP-Adresse des Adapters (z.B. 192.168.1.34) und nicht die localhost (127.0.0.1) IP angeben musst, da sonst das iPhone die Bridge nicht finden kann. Du kannst dich ja gerne noch mal melden, ob alles geklappt hat 🙂

    • Hallo Simon!
      Also, mit RaspberryMatic geht es nicht, da es eine eigene Distribution ohne Erweiterungsmöglichkeiten ist.

      Allerdings gibt es noch YAHM und hier kann man die Homebridge als Modul installieren. Ich nutze dies mit den Rollladenaktoren. Leider geht da nur ganz auf und ganz zu.
      Man muss die Config dazu um folgendes ergänzen:
      “services”: [{
      “type”: “HM-LC-Ja1PBU-FM:JALOUSIE”,
      “service”: “HomeMaticHomeKitBlindService”
      }]
      Oder kannst Du bei den Rollladen auch Zwischenstufen einrichten? Dann würde mich interessieren, wie Du das gelöst hast.

      Beste Grüße
      Paul

  7. Hallo Simon,

    der Artikel ist Super beschrieben und hat acuh gleich bei mir funktioniert.
    Vielleicht eine kleine Anmerkung: in der config.json in Zeile 12 muß ggf. der Name geändert werden. Bei mir war Standartmäßig der Name “homematic-ccu2” vergeben. So dass man entweder die Datei oder die FritzBox anpassen muß. Aber ansonsten alles Super gelaufen und sehr stabil.

    Eine Frage hätte ich trotzdem noch.
    Lässt sich hier auch noch meine TV Schaltung integrieren?
    Ich habe derzeit eine ältere Logitech und nütze die Makros. Könnte mir vorstellen mir den Logitech Hub zuzulegen.
    Allerdings weiß ich nihct ob und wie das funktionieren wird. Hast Du da auch ein Script und evtl auch einen Beitrag um das noch zusätzlich einzubinden?

    Grüße
    Georg

    Antworten

Schreibe einen Kommentar

×
Jemand hat Die Ultimative Smart Life App Anleitung über Print geteilt
vor 6 hours
×
Jemand hat Die Ultimative Smart Life App Anleitung über Print geteilt
vor 11 hours
Send this to a friend