Community

Erstellung eines Homebridge Plugins für HomeKit


#61

Nachdem die Ankündigung der HomeKit Unterstützung ja zurück gezogen wurde, habe ich ein Plugin für Homebridge erstellt mit dem sich die Geräte abfragen und direkt steuern lassen. Also ohne Umweg über ein Homegramm und einen Webhook.

Das Package heißt homebridge-homee (https://www.npmjs.com/package/homebridge-homee). Die Installation sowie die Konfiguration ist in der ReadMe erklärt.

Da ich nur ein paar wenige Geräte besitze, ist die Unterstützung momentan noch recht gering. Geräte die bereits teilweise oder ganz funktionieren:

  • Devolo Window/Door Sensor
  • Danfoss Living connect Thermostat
  • Fibaro Motion Sensor
  • Fibaro Door/Window Sensor

Andere Geräte werden zurzeit bewusst nicht angezeigt.

Für weitere Geräte muss zumindest der richtige HomeKit-Geräte-Typ in einer Mapping-Datei ergänzt werden. Sensoren sollten recht einfach umsetzbar sein, bei anderen Geräten können aber noch andere Änderungen nötig sein.

Wer mich dabei unterstützen möchte und mit NodeJS umgehen kann, kann sich gerne per PN melden. Für alle die bei Github angemeldet sind: Ich freue mich über einen Stern: https://github.com/stfnhmplr/homebridge-homee

Bitte beachtet, dass es sich um eine unstabile Version handelt. Es kann also unter Umständen zu Fehlern und Abstürzen eurer Homebridge Installation führen. Bei mir läuft die Installation jedoch seit zwei Tagen mit den o.g. Geräten ohne Fehler.


Verknüpfung Homee + Apple Homekit über Raspberrypi + Homebridge
"Akkustand" Apple-Tablet
#62

Find ich das klasse, das Du das an den Start gebracht hast…

Ich kann leider nicht Programmieren würde dich aber wo es geht unterstützen.


#63

super danke für deine Arbeit!!!

Habt direkt mal ausprobiert.

Die Konsole zeigt mir dann folgendes an:

[Homee] Failed getting devices. Retrying…
[7/11/2017, 6:35:58 PM] [Homee] Error: Homee: Error while receiving AccessToken: Error: getaddrinfo ENOTFOUND undefined undefined:7681
at Request._callback (/usr/local/lib/node_modules/homebridge-homee/lib/homee.js:46:21)
at self.callback (/usr/local/lib/node_modules/homebridge-homee/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:189:7)
at Request.onRequestError (/usr/local/lib/node_modules/homebridge-homee/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:189:7)
at Socket.socketErrorListener (_http_client.js:358:9)
at emitOne (events.js:96:13)
at Socket.emit (events.js:189:7)

Hast du da zufällig eine Idee!


#64

@Einstein77 Prima, danke. Es hilft schon, wenn du das Plugin bei dir zu Hause ausprobierst und die funktionierenden und nicht funktionierenden Geräte auflistest.

@fisch Das sieht auf den ersten Blick nach einer falschen IP-Adresse in der config.json aus. Du kannst die Adresse kontrollieren indem du folgende Adresse im Browser aufrufst: http://[deine-ip]:7681/webapp Dort sollte dann die Homee Oberfläche erscheinen.


#65

mmmm an der IP liegt es leider nicht …


#66

ich habe es auch mal installiert… und beim Start fliegt er hier raus

[7/11/2017, 7:26:00 PM] Loading 2 platforms…
/usr/lib/node_modules/homebridge/lib/api.js:108
if (name.indexOf(’.’) == -1) {
^

TypeError: Cannot read property ‘indexOf’ of undefined
at API.platform (/usr/lib/node_modules/homebridge/lib/api.js:108:11)
at Server._loadPlatforms (/usr/lib/node_modules/homebridge/lib/server.js:284:45)
at Server.run (/usr/lib/node_modules/homebridge/lib/server.js:80:36)
at module.exports (/usr/lib/node_modules/homebridge/lib/cli.js:40:10)
at Object. (/usr/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:570:32)
at Object.Module._extensions…js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:389:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:504:3

Hast Du eine Idee?


#67

ich habe die config.json geändert

{
“accessory”: “Homee”,
“name”: “Homee”,
“ip”: “192.168.178.1”

geändert auf

{
“platform”: “Homee”,
“name”: “Homee”,
“ip”: “192.168.178.1”

danach will er aber auch nicht richtig

[7/11/2017, 7:37:33 PM] Loading 2 platforms…
[7/11/2017, 7:37:33 PM] [Homee] Initializing Homee platform…
[7/11/2017, 7:37:33 PM] [Homee] Failed getting devices. Retrying…
[7/11/2017, 7:37:33 PM] [My FritzBox] Initializing Fritz!Box platform…
[7/11/2017, 7:37:33 PM] Loading 0 accessories…
[7/11/2017, 7:37:33 PM] [Homee] Error: Homee: Error while receiving AccessToken: Error: getaddrinfo ENOTFOUND undefined undefined:7681
at Request._callback (/usr/lib/node_modules/homebridge-homee/lib/homee.js:46:21)
at self.callback (/usr/lib/node_modules/homebridge-homee/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at Request.onRequestError (/usr/lib/node_modules/homebridge-homee/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at Socket.socketErrorListener (_http_client.js:309:9)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at connectErrorNT (net.js:1021:8)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
[7/11/2017, 7:37:34 PM] [My FritzBox] Fritz!Box platform login failed
[7/11/2017, 7:37:35 PM] [Homee] Failed getting devices. Retrying…
[7/11/2017, 7:37:37 PM] [Homee] Failed getting devices. Retrying…
[7/11/2017, 7:37:39 PM] [Homee] Failed getting devices. Retrying…
[7/11/2017, 7:37:41 PM] [Homee] Failed getting devices. Retrying…


#68

Genau so habe ich es auch gemacht…selbiges Fehlerbild.


#69

Sorry, da haben sich zwei Fehler in die Readme eingeschlichen. Wie ihr schon entdeckt habt muss es “platform” heißen. Bitte benennt dann die “ip” noch in “host” um. Dann sollte es klappen. Die ReadMe ist aktualisiert.

Ich habe gestern Abend auch noch weitere Profile mit den HomeKit Typen verbunden. Das update lässt sich mit npm update -g homebridge-homee installieren.


#70

Danke werde ich morgen direkt mal testen!! Gesonnt was es alles findet!

Wenn das gajze ohne Webhooks funzt :+1::+1::+1:wäre genial!


#71
[Homee] Failed getting devices. Retrying...

Update auf 0.3 wurde durchgeführt und die Änderungen wie in der Readme vorgenommen-

[7/12/2017, 6:17:21 AM] [Homee] Error: Homee: Error while receiving AccessToken: Error: Parse Error
at Request._callback (/usr/local/lib/node_modules/homebridge-homee/lib/homee.js:46:21)
at self.callback (/usr/local/lib/node_modules/homebridge-homee/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:189:7)
at Request.onRequestError (/usr/local/lib/node_modules/homebridge-homee/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:189:7)
at Socket.socketOnData (_http_client.js:416:9)
at emitOne (events.js:96:13)
at Socket.emit (events.js:189:7)


#72

Hallo…

Wirklich klasse das Du das Plugin noch weiter verbesserst…

ich habe auch das Update gemacht und die Config angepasst… fliege aber auch wie “fisch” raus

[7/12/2017, 6:50:00 AM] Loading 1 platforms…
[7/12/2017, 6:50:00 AM] [Homee] Initializing Homee platform…
[7/12/2017, 6:50:00 AM] [Homee] Failed getting devices. Retrying…
[7/12/2017, 6:50:00 AM] Loading 0 accessories…
[7/12/2017, 6:50:00 AM] [Homee] Error: Homee: Error while receiving AccessToken: Error: Parse Error
at Request._callback (/usr/lib/node_modules/homebridge-homee/lib/homee.js:46:21)
at self.callback (/usr/lib/node_modules/homebridge-homee/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at Request.onRequestError (/usr/lib/node_modules/homebridge-homee/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at Socket.socketOnData (_http_client.js:367:9)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:547:20)
[7/12/2017, 6:50:02 AM] [Homee] Failed getting devices. Retrying…
[7/12/2017, 6:50:04 AM] [Homee] Failed getting devices. Retrying…


#73

Mmh. Das ist komisch. Benutzername und Passwort sind auch korrekt? Das müssen die gleichen Angaben sein, wie Ihr euch ins Webinterface einloggt. Also die komplette config muss dann so aussehen:

"platforms": [
    {
        "platform": "Homee",
        "name": "Homee",
        "host": "ip-von-homee",
        "user": "testuser",
        "pass": "testpasswort"
    }
]

Könnt ihr denn das Webinterface über http://[deine-ip]:7681/webapp erreichen und euch mit user und pass einloggen?


#74

ist alles korrekt…

kann mich über http://[deine-ip]:7681/webapp auch mit dem benutzer einloggen


#75

wenn du mal bei mir rauf schauen möchtest, kann ich dich auf ein GoTo Meeting einladen.
Brauche dann deine Mailadresse


#76

@fisch, hast Du einen V1 oder V2 Cube?


#77

V1 hat der liebe @fisch


#78

micha du bist schnell :slight_smile:
genau V1


#79

eben nochmal eine komplett neue config.json angelegt mit nur Homer Plugin…

Leider funzt es auch nicht.

     (/usr/local/lib/node_modules/homebridge-homee/lib/homee.js:46:21)
    at self.callback (/usr/local/lib/node_modules/homebridge-homee/node_modules/request/request.js:188:22)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:189:7)
    at Request.onRequestError (/usr/local/lib/node_modules/homebridge-homee/node_modules/request/request.js:884:8)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:189:7)
    at Socket.socketOnData (_http_client.js:416:9)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:189:7)
[7/12/2017, 9:38:10 PM] [Homee] Failed getting devices. Retrying...
[7/12/2017, 9:38:12 PM] [Homee] Failed getting devices. Retrying...
[7/12/2017, 9:38:14 PM] [Homee] Failed getting devices. Retrying...
[7/12/2017, 9:38:16 PM] [Homee] Failed getting devices. Retrying...
[7/12/2017, 9:38:18 PM] [Homee] Failed getting devices. Retrying...

oder erkennt das Teil einfach meine devices nicht?


#80

Nein. Das Problem ist ein anderes. Die Anforderung des Access Tokens schlägt bereits fehl.
Ich hab mir das bis gerade per Teamviewer angeschaut und verstehe es noch nicht. Gleicher Benutzername und Passwort auf meinem Homee funktioniert. Ich schicke dir mal ne PN, dann kannst du was testen, wenn du möchtest.