Erstellung eines Homebridge Plugins für HomeKit

Auch ich habe es endlich wieder am Laufen. Mit dem Homebridge-Docker-Paket auf dem Home Assistant Add-On Repo https://github.com/hassio-addons/repository lässt es sich auch unter Home Assistant (basierend auf hassio) inzwischen problemlos installieren. Rückmeldung zu weiteren funktionierenden Geräten folgt am Wochenende, wenn ich etwas damit herumspielen kann.

Ich habe nochmal eine Schritt für Schritt Anleitung mit allen benötigten Befehlen für die Installation von Homebridge und dem Plugin für homee erstellt: https://himpler.com/blog/homee-mit-siri-steuern

5 „Gefällt mir“

Nochmal eine “vorbereitende” Frage: ich habe homebridge bereits in einer andere Version laufen und mit der HOME-App verknüpft.
Wie löse ich diese Verbindung wieder? Oder wird diese dann durch die neue Installation ersetzt?

Schönen guten Morgen!

Zunächst einmal: vielen Dank @stfnhmplr für die Erstellung deines Homebridge Plugins! Bei mir funktioniert es sehr zuverlässig und ich kann darüber meine Ikea Tradfri Lampen steuern.

Ich setze darüber hinaus viele Philips Hue Bewegungsmelder ein, außerdem, über die FritzBox verbunden, Eurotronics Comet DECT Heizthermostate und die Netatmo Wetterstation mit Innen- und Außenmodulen.
In den Details der Netatmo Geräte kann ich die rel. Luftfeuchtigkeit und den CO2 Spiegel sehen. Wäre es möglich, solche Daten in den Icons darzustellen?
Wichtiger wäre mir allerdings, dass die Bewegungsmelder wie der Devolo Fenster-/Türkontakt seinen Status im Icon anzeigt. In den Details sind die Daten jedenfalls vorhanden.

Kannst du eventuell da etwas programmieren? :slight_smile: Und falls ja, benötigst du dafür irgendwelche Daten oder ähnliches?

Herzliche Grüße
Nils

Update: Ich hab in einem der Beiträge gelesen, dass man weitere Geräte über eine “mapping-Datei” konfigurieren kann. Kannst du ein paar Hinweise dazu geben, wie das funktioniert?

Ich habe hier mal ein paar Screenshots der Geräte und ihrer Details: Homebridge homee Geräte

Moin!

Ich bin mir nicht sicher, ob ich richtig verstehe, was du möchtest. Aber ich fang einfach mal an.

Netatmo
Hier würde ich das homebridge Plugin für netatmo benutzen. Soweit ich das beurteilen kann (hab so ein Ding nicht), wird das richtige Plugin vielleicht noch mehr Informationen anzeigen können. Das Ding was von homee weitergeleitet wird, kannst du dann mit der Gruppe “Homebridge” ausschließen. Das Plugin findest du hier: https://www.npmjs.com/package/homebridge-netatmo

Zustandsanzeige in Icons
Maßgebend für die Anzeige ist der Gerätetyp. Davon gibt es nicht all zu viele. Ein Devolo Tür-/Fensterkontakt wird als Kontaktsensor angelegt. Dementsprechend wird der Kontaktzustand im Symbol angezeigt. Eine andere Anzeige bei einem Kontaktsensor ist nicht möglich. Man kann den Kontaktsensor theoretisch als Bewegungsmelder anlegen. Das betrifft aber dann

  1. alle Kontaktsensoren und
  2. kennt der Bewegungsmelder offiziell nicht das Attribut Kontakt, mit der Folge, dass der Kontaktzustand nicht in der Home App angezeigt wird (nur in der EVE App)
    Macht m.E. keinen Sinn.
    Gerätetypen und deren Eigenschaften kannst du hier nachschauen: https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js
    Service ist das Gerät, Characteristic die Eigenschaft.

Die Mapping Datei sagt einfach nur, welcher homee Gerätetyp in welchen Homekit Gerätetyp umgewandelt wird. Genauso gibt es ein Mapping für die Eigenschaften. Änderungen der Mapping Tabelle für ein einzelnes Gerät sind, da es immer die ganze Geräteklasse betrifft, nicht möglich. Du kannst die beiden Dateien (im Ordner lib) theoretisch selbst anpassen, beim Update werden sie aber überschrieben. Wenn eine Änderung für alle Sinn macht, kann ich die natürlich vornehmen.

Wenn du ein Gerät hast, was falsch dargestellt wird oder nicht richtig funktioniert, schaue ich mir das gerne an. Ich brauche dazu dann die Gerätebezeichnung, das fehlende oder nicht funktionierende Attribut in homee sowie eine Fehlerbeschreibung, wie z.B. Fibaro FGR-222 zeigt keinen Stromverbrauch an, ist in homee aber vorhanden. Weitere Dinge erfrage ich mir dann bei Bedarf. Hast du denn aktuell ein Gerät, was von meinem Plugin noch gar nicht erkannt wird?

2 „Gefällt mir“

Lieber Stefan,

vielen Dank für deine Antwort! Auf die Idee, die Netatmo Geräte direkt über das entsprechende Plugin anzusprechen kam ich gar nicht. Das funktioniert nun hervorragend.
Auch die Eurotronics Comet DECT Heizthermostate habe ich nun über das Fritz!Box Plugin in homebridge eingebunden, das gibt mir ebenfalls mehr Konfigurationsmöglichkeiten.

Zum Thema Zustandsanzeige: Vermutlich hatte ich da einfach einen Denkfehler, den du durch deine umfangreiche Erläuterung korrigiert hast. Was soll so ein Bewegungsmelder auch im HomeKit tun … entsprechend habe ich sie ganz rausgeworfen.

Alle weiteren Geräte funktionieren einwandfrei mit deinem Plugin :slight_smile:

Das einzige, was noch etwas suboptimal ist, ist die Geschwindigkeit. Oft steht bei den Icons: Aktualisieren. Und die Lampen lassen sich dann nicht direkt ansprechen, oder zeigen einen falschen Status. Aber das liegt wohl eher an Homebridge selbst.

Viele Grüße
Nils

Hallo @Angares,

Also meine BWM in der homebridge schalten die sonos Boxen an und aus.
Das steuere ich über die automation in der HomeApp.
Ebenso werden die Hue darüber gesteuert, da ich keinen zigbee Würfel habe.
Also nicht alle Sensoren rauswerfen, kann ganz nützlich sein.

VG Micha

Hab meine ccu2 mit meinem homematic plugin und mein homee plugin, hab eine Gruppe Homebridge erstellt und nur meine ikea tradfri leuchten in der gruppe zugeordnet.

Seitdem startet meine homebridge nicht mehr…

config.json
{
“bridge”: {
“name”: “Homebridge”,
“username”: “CC:22:3D:E3:CE:30”,
“port”: 51826,
“pin”: “031-45-145”
},

“platforms”: [{
“platform”: “HomeMatic”,
“name”: “HomeMatic CCU”,
“ccu_ip”: “192.168.178.xx”,
“subsection”: [“HomeKit”],
“filter_device”:[],
“filter_channel”: [],
“outlets”: [],
“doors”: [],
“programs”: []
},
{
“platform”: “homee”,
“name”: “Homee”,
“host”: “192.168.178.xx”,
“user”: “meinhomeeuser”,
“pass”: “meinhomeepasswort”
}
]
}

Im Log steht dann:
[2017-11-11 00:43:37] Loaded plugin: homebridge-homematic
[2017-11-11 00:43:37] Registering platform ‘homebridge-homematic.HomeMatic’
[2017-11-11 00:43:37] —

und dann passiert nix mehr, eine Idee?

Funktioniert ein anderes Gerät? Also wenn du einen Sensor in die Gruppe nimmst und die Lampe rauslässt?
Lief die Homebridge vorher ohne das homee Plugin? Sonst mach vielleicht mal einen Test nur mit dem homee Plugin.
Steht eventuell noch etwas im error-log? Findest du je nach Installation unter /var/log/homebridge.err

Vielen Dank für Dein Mühe. Das Plugin ist super.

Ich habe nur ein Problem.

Ich habe einen FIBESGS212 von fibaro. Double Relais Switch.
Dieser wird mir als Gerät angezeigt und ich kann ihn steuern. Allerdings kommen die Befehle am homee nicht an.

Gibt es da Abhilfe?

Mfg

Chris

Benutzt du die aktuellste Version meines Plugins? Der Double Switch sollte in der Homekit App dann zweimal auftauchen. Also pro Kanal ein Gerät. Ich habe selbst keinen, aber bisher gabs nur die Rückmeldung, dass es funktioniert.

Habe das Plugin ganz normal letzte Woche über npm installiert. Komischer weise wird nur ein Kanal angezeigt. Ich habe noch einen …-222. Der wird 2fach angezeigt und kann auch gesteuert werden.

Sorry. Der Schalter hat nur einen Kanal. Der homee reagiert allerdings auf keinen trigger von Homebridge.

Nur bei diesem Gerät oder bei allen Geräten? Starte Homebridge mal im Debug Modus und schau mal in die Log-Files. /var/log/homebridge.log und /var/log/homebridge.err Vielleicht steht da was drin.
Ansonsten müsstest du mir mal die Profil-ID des Gerätes verraten. Vielleicht stimmt beim Mapping etwas nicht.

Es ist nur dieses Gerät. Alle anderen funktionieren perfekt. Den Debugmodos teste ich heute mal.

Vielen Dank

Hallo Leute,

auch ich habe mal wieder ein Problem mit meiner Homebridge. Jetzt konkret mit dem http-webhooks Plugin. Installiert habe ich:

Node JS: 8.4.0
NPM 5.3.0
Homebridge 0.4.26
harmonyhub: 0.1.1
homebirdge-homee: 0.2.3
http-webhooks: 0.0.24
JSON

Bis zum Wochenende hat auch bisher alles sehr gut zusammen funktioniert. Dann habe ich ein Update und Upgrade des Systems gemacht. Und seitdem will das http-webhooks-Plugin nicht mehr. Folgende Meldung kommt:

[2017-11-14 23:08:28] [HttpWebHooks] Switch state for ‚Switch3‘…
port: ‚7681‘ }
host: ‚homee‘,
hostname: ‚homee‘,
syscall: ‚getaddrinfo‘,
errno: ‚ENOTFOUND‘,
code: ‚ENOTFOUND‘,
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:95:26)
at errnoException (dns.js:53:10)

[2017-11-14 23:08:24] [HttpWebHooks] Request to ‚[object Object]‘ finished with status code ‚-1‘ and body ‚undefined‘. { Error: getaddrinfo ENOTFOUND homee homee:7681
[2017-11-14 23:08:24] [HttpWebHooks] Switch state for ‚Switch3‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Switch2‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton5‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Switch3‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton7‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton4‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton3‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton2‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton6‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Switch1‘…
[2017-11-14 23:07:58] [HttpWebHooks] Getting current state for ‚Pushbutton1‘…
[2017-11-14 23:07:50] Homebridge is running on port 51826.

Die Befehle über Siri werden dann natürlich auch nicht ausgeführt. In der Home-App kommt die Meldung, dass die Geräte nicht reagieren bzw. keine Antwort kommt. Der Webhook in der JSON stimmt, ist über den Browser getestet und ging ja davor auch schon.

Jemand eine Idee? Danke vorab!

Grüße
Sebastian

Hallo @CaptainL,
Warum installierst du nicht das Plugin von @stfnhmplr?
Ansonsten evt. Das webhook Plugin deinstallieren und neu installieren damit es sich neu registriert.

VG

Hallo @Micha,

habe ich doch :blush:
Allerdings benötige ich ein paar “Taster”, die nur an oder nur aus können, z.B. NAS an. NAS aus über WoL geht bei mir nicht. Und das kann ich über webhooks super umsetzen.

Deinstallation und Reinstallation habe ich auch schon getestet. Bringt auch nichts.

Was mir aber nach den Update/Upgrade aufgefallen ist, obwohl alles zuvor funktioniert hat:

  1. In der Homebridge kam zuerst die Fehlermeldung, dass die JSON leer ist!? Gleich unter dem User Pi nachgeschaut und diese war beschrieben und unverändert.
  2. Im Rahmen meiner Pi-Homebridge-Odyssee ist mir eingefallen, dass teilweise die Homebridge auch unter Root installiert wird. Also hier in der JSON nachgeschaut, die natürlich leer war. Inhalte aus der PI-JSON reinkopiert, womit der Fehler behoben war.

Kann die Homebridge unter Pi und Root laufen, womit sich die Ports “eliminieren”.

Das kenne ich , war mir nach dem Update und Upgrade auch so ergangen.

Und wie hast du das Problem behoben?