Erstellung eines Homebridge Plugins für HomeKit

@anon21150642 Idee aufnehmend: Wie wäre es, wenn Du während der Entwicklung (optional) mal abgreifst was die einzelnen Leute so (erfolgreich oder nicht) an Geräten einsetzen um damit einen Überblick zu bekommen wo die Schwerpunkte sind?

Halte ich für eine gute Idee! Am besten wäre natürlich diese Liste in einem Github Issue zu pflegen, damit hier im Thread nichts untergeht. Ich habe gestern noch einen Bug beim Schalten in der Home App gefunden und behoben. Zuvor hat der Button beim Drücken geflackert (Beim Anschalten: An -> Aus -> An). Heute Abend schaue ich mal, ob ich meine anderen Geräte noch integrieren kann.

Update npm

sudo npm i npm@latest -g

  • Installiert die letzte Version von npm

npm -v

  • Versionsnummer überprüfen

Update Node.js

Variante I:

  1. sudo /etc/init.d/homebridge stop
    oder
    sudo systemctl stop homebridge
    (je nachdem wie Homebridge Installiert ist)

  2. sudo npm i npm@latest -g (Optional: Empfohlen bei älteren NPM Versionen)

  3. sudo npm cache clean -f

  4. sudo npm install -g n

  5. sudo n stable (alternativ: latest oder Versionsnummer einsetzen)

  6. sudo npm install -g --unsafe-perm homebridge@latest

  7. sudo reboot

  8. node -v (Versionsnummer überprüfen)

Variante II:

  1. sudo /etc/init.d/homebridge stop
    oder
    sudo systemctl stop homebridge
    (je nachdem wie Homebridge Installiert ist)

  2. sudo npm i npm@latest -g (Optional: Empfohlen bei älteren NPM Versionen)

  3. wget https://nodejs.org/dist/v6.9.5…6.9.5-linux-armv7l.tar.gz (Versionsnummer anpassen nach Bedarf)

  4. tar -xvf node-v6.9.5-linux-armv7l.tar.gz (Versionsnummer anpassen nach Bedarf)

  5. cd node-v6.9.5-linux-armv7l (Versionsnummer anpassen nach Bedarf)

  6. sudo cp -R * /usr/local/

  7. cd

  8. sudo npm install -g --unsafe-perm homebridge@latest

  9. sudo reboot

  10. node -v (Versionsnummer überprüfen)

Backup vorher machen!

3 „Gefällt mir“

So liebe Harmonyhub Besitzer,

ich konnte seit einiger Zeit das Harmonyhub plugin in der Homebridge nicht mehr installieren. Jetzt habe ich es geschafft. Es liegt an den Rechten vom user pi bei npm.

Zuerst den Pfad zum npm Verzeichnis finden:

npm config get prefix

falls es /usr/local ist könnt ihr die Rechte mit folgender Zeile neu vergeben:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

danach das Harmonyhub plugin OHNE sudo installieren.

Ich empfehle die Version 0.1.1 da mit dieser Version die Homebridge nicht nach einer geraumen Zeit abstürzt.

also:

npm install -g homebridge-harmonyhub@0.1.1

sudo reboot

und dann sollte es laufen.

Falls es nicht der Pfad /usr/local sondern /usr ist kann man die 2. Option von folgendem Link benutzen:

https://docs.npmjs.com/getting-started/fixing-npm-permissions

Bei mir läuft es jetzt :slight_smile:
Viel Spaß!

Ach ja die config.json muss noch angepasst werden.

Hallo @Sofasportler,

benutzt du auch die Homebrige-App?! Welche Variante hast du für das node.js Update von @Einstein77 gewählt.

Variante 1 ist bei mir schon schief gegangen… Gut dass ich ein Image gemacht habe…

Danke und Gruß

Nein, nutze ich noch nicht.
Mein PI läuft zur Zeit nur für das Logfile und da ich Alexa nutze, warte ich auf die “Ready-to-run”-Image Lösung :wink:

Aber ich finde die Lösung bis jetzt super und deshalb versuche ich immer auf dem Laufenden zu bleiben, falls ich es doch einmal installiere.

Schade, aber danke für deine schnelle Rückmeldung.

Sonst jemand ne Idee?

Guck mal hier unter Major Version Upgrades: http://thisdavej.com/upgrading-to-more-recent-versions-of-node-js-on-the-raspberry-pi/

Danach dann mit sudo npm install --unsafe-perm homebridge die aktuelle Version installieren und Homebridge bzw. alternativ den Raspberry neu starten.

Danke für die Tipps. Ich glaube es scheitert daran, dass die App mit diversen Plungins arbeitet, die nur die alte Node-Version unterstützen. Also entweder alles selbst aufgesetzt oder auf dein Plugin verzichten. Die Entscheidung ist eigentlich einfach, ich scheue mich aber vor der Arbeit, die damit einhergeht :scream:

@stfnhmplr

Das Plugin läuft auch innerhalb hass.io/Home Assistant :wink:

[8/4/2017, 12:05:33 PM] Loaded plugin: homebridge-homeassistant
[8/4/2017, 12:05:33 PM] Registering platform 'homebridge-homeassistant.HomeAssistant'
[8/4/2017, 12:05:34 PM] ---
[8/4/2017, 12:05:35 PM] Loaded plugin: homebridge-homee
[8/4/2017, 12:05:35 PM] Registering platform 'homebridge-homee.Homee'
[8/4/2017, 12:05:35 PM] ---
[8/4/2017, 12:05:35 PM] Loaded config.json with 0 accessories and 2 platforms.
[8/4/2017, 12:05:35 PM] ---
[8/4/2017, 12:05:35 PM] Loading 2 platforms...
[8/4/2017, 12:05:35 PM] [HomeAssistant] Initializing HomeAssistant platform...
[8/4/2017, 12:05:35 PM] [HomeAssistant] Fetching HomeAssistant devices.
[8/4/2017, 12:05:35 PM] [Homee] Initializing Homee platform...
[8/4/2017, 12:05:35 PM] [Homee] Not connected to homee. Retrying...
[8/4/2017, 12:05:35 PM] Loading 0 accessories...
[8/4/2017, 12:05:35 PM] [HomeAssistant] Received event: ping
[8/4/2017, 12:05:35 PM] [HomeAssistant] Initializing platform accessory 'AppelTVDach'...
[8/4/2017, 12:05:35 PM] [HomeAssistant] Initializing platform accessory '[BD]H6500 (BD-H6500)'...
[8/4/2017, 12:05:35 PM] [HomeAssistant] Initializing platform accessory 'Wohnzimmer'...
[8/4/2017, 12:05:35 PM] [Homee] connected to homee
[8/4/2017, 12:05:39 PM] [Homee] EG-WoZi-TV-Rechts-FIBARO System FGWPE%2FF Wall Plug: Switch
[8/4/2017, 12:05:39 PM] [Homee] Initializing platform accessory 'EG-WoZi-TV-Rechts-FIBARO System FGWPE%2FF Wall Plug'...
[8/4/2017, 12:05:39 PM] [Homee] On: 1

Ich habe folgendes Problem:
HomeBridge mit der homee-Erweiterung läuft (zusammen mit der Home Assistant Erweiterung nativ unter hass.io) und ich habe vorher (kurzzeitig) auch die Bridge an der Apple Home App anlernen können und konnte Devices (einen Fibaro Plug) schalten - aber erst nachdem ich lokal auf der FritzBox die IPv6-Unterstützung abgeschalten hatte.

Irgendwann war die Verbindung zur Brigge und den importierten Devices jedoch weg und ich habe die Bridge manuell gelöscht und versucht neu anzulernen (nach einem Neustart von homebridge und einem vorherigen Umbenennen des Devices in der config.json, damit es auch als neues Device erkannt wird).

Die Bridge taucht jedoch nicht mehr auf, egal was ich an der Fritzbox einstelle (IPv6 an/aus) - auch im Bonjour Browser auf meinem Mac entdecke ich nichts, was nach der Bridge aussieht.

Das ist das einzig auffällige im Homebridge-Log:

> *** 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>

Irgendjemand eine Idee?

Auf die IPv6-Idee kam ich nachdem ich mir aktuelle Issues auf homebridge angesehen habe,

Als Steuerzentralen sind ein AppleTV (v4 mit der letzten Version, aber ohne Beta für 11) und ein iPad Air 2 (mit iOS 10.3.3) eingetragen.

Hast du die Mac Adresse geändert ?
Meistens liegt es daran.

Die MAC des Servers und der Clients sind unverändert. Oder meinst du den Username in der config.json?

{
"bridge": {
    "name": "Homebridge",
    **"username": "CC:22:3D:E3:CE:30"**,
    "port": 51826,
    "pin": "031-45-154"
},

Edit: Gerade Username und Pin geändert, restartet und bringt auch nichts (nachdem ich aus Frust das ganze Haus gelöscht hatte). Ich muss wohl erst mal warten bis mein AppleTV und mein iPad wieder als Steuerzentrale in der iCloud erscheinen… Kann man das irgendwie beschleunigen? (Reboots der betroffenen Geräte bringen wohl nix).

Ja du sagst es , der Username muss geändert werden manchmal.
AppleTV auch mal neu starten, da hängt es auch manchmal, evt. Cloud beim AppleTV abmelden und neu anmelden.
Dann solltest du in der Homeapp alles wieder anlegen können.
VG

1 „Gefällt mir“

Yup, hab es inzwischen hinbekommen (für Apple ziemlich üble User Experience), aber die Bridge wird im Netz nicht gefunden… Obwohl die Ports offen sind…

nmap -p1-65535 192.168.178.91
Starting Nmap 7.60 ( https://nmap.org ) at 2017-08-04 20:04 CEST
Nmap scan report for hassio.fritz.box (192.168.178.91)
Host is up (0.00094s latency).
Not shown: 65526 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
1400/tcp  open  cadkey-tablet
1883/tcp  open  mqtt
3218/tcp  open  smartpackets
8123/tcp  open  polipo
22222/tcp open  easyengine
51826/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 11.13 seconds
1 „Gefällt mir“

Hallo Leute,

hab mein System jetzt noch einmal frisch aufgesetzt - ohne die Hombrige App. Npm und Co alles up to Date. Das Plugin in der Version 0.2.2 läuft aber immer noch nicht. Es wird folgende Fehlermeldung ausgegeben:

TypeError: that.filterDevices is not a function
at that.homee.listen.message (/usr/local/lib/node_modules/homebridge-homee/index.js:41:58)
at WebSocket. (/usr/local/lib/node_modules/homebridge-homee/lib/homee.js:106:9)
at emitTwo (events.js:106:13)
at WebSocket.emit (events.js:191:7)
at Receiver.ontext (/usr/local/lib/node_modules/homebridge-homee/node_modules/ws/lib/WebSocket.js:841:10)
at /usr/local/lib/node_modules/homebridge-homee/node_modules/ws/lib/Receiver.js:536:18
at /usr/local/lib/node_modules/homebridge-homee/node_modules/ws/lib/Receiver.js:368:7
at /usr/local/lib/node_modules/homebridge-homee/node_modules/ws/lib/PerMessageDeflate.js:249:5
at afterWrite (_stream_writable.js:385:3)
at onwrite (_stream_writable.js:376:7)

Kann mir bitte jemand helfen. Möchte auch, dass es bei mir funzt :sob:

Hey Leute (@stfnhmplr, @Micha, @hblaschka, @Einstein77),

keiner ne Idee zu meinem Problem? Bei euch funktioniert das Plugin doch. Und ihr habt Ahnung von Linux und Co. :blush:

Grüße
Sebastian

Da muss dann wirklich mal @stfnhmplr Stefan ran.
Ist ja sein Plugin und da wird er sagen können was deiner Homebridge fehlt.

Startet denn deine Homebridge ?
Was für eine Node Js Version hast du drauf ?

Also die Installation (Jessie, Homebridge) ganz normal siehe Anleitung von mir hier im Forum. Das Einzige was ich feststellen konnte, dass die Homebridge unter dem User Pi installiert wurde und nicht im root-Verzeichnis.

Hier die Fakten:

  • Node 6.11.2
  • Homebridge 0.4.22
  • Homee-Plugin 0.2.2

Habe nur Homebridge und Homee-Plugin installiert. Hier meine Json, mit der die Fehlermeldung kommt. Lasse ich den unteren Teil für das Plugin weg, startet die Homebridge und funktioniert.

{
“bridge”: {
“name”: “Homebridge”,
“username”: “CD:22:3D:E3:CE:70”,
“port”: 51826,
“pin”: “031-45-522”
},

    "platforms": [{
            "platform": "homee",
            "name": "Homee",
            "host": "IP",
            "user": "Name",
            "pass": "Passwort",
            "debug": true
    }]

}

Mal ne Frage am Rande: Mit welchem Befehl(en) wird die Homebridge in das root-Verzeichnis installiert?

Wo du sie installierst spielt keine Rolle ob nun als PI oder Root.
Hast du das Plugin schonmal deinstalliert und neu installiert?

Hast du die config.json gecheckt?