Erstellung eines Homebridge Plugins für HomeKit

So. Problem gefunden und behoben. Bei @Einstein77 läuft es jetzt und erkennt auf den ersten Blick auch die meisten Geräte. Das Thermostat ist noch ein wenig komisch, da gucke ich die Tage mal nach.
Das Update mit der Fehlerbehebung ist veröffentlicht und kann mit
sudo npm update -g homebridge-homee
installiert werden.

moin,

danke für das Update!!! dennoch stürzt das Teil bei irgendeinem Teil ab.

Hier der Log:

[7/13/2017, 5:36:37 AM] [Homee] connected to homee
[7/13/2017, 5:36:40 AM] [Homee] Esszimmer: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Küchenfenster: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] LED   Band: Switch
[7/13/2017, 5:36:40 AM] [Homee] Sofalicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Küchenfenster : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Wohnzimmertür : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Haustüre: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Windfang: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Flur DG : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] AZ Chris : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] AZ Caro links : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee]  AZ Caro rechts : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Fernseher: Switch
[7/13/2017, 5:36:40 AM] [Homee] Waschmaschine: Switch
[7/13/2017, 5:36:40 AM] [Homee] Briefkasten : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Garage  : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Wohnzimmer: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Heizung Badezimmer: Thermostat
[7/13/2017, 5:36:40 AM] [Homee] Heizung Gäste WC: Thermostat
[7/13/2017, 5:36:40 AM] [Homee] Heizung Wohnzimmer: Thermostat
[7/13/2017, 5:36:40 AM] [Homee] Heizung Küche : Thermostat
[7/13/2017, 5:36:40 AM] [Homee] Unterschranklicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Trockner: Switch
[7/13/2017, 5:36:40 AM] [Homee]  Bad DF : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Küchentür : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Gäste WC: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Kellertüre : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Spülenfenster: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Schlafzimmerlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Rauchmelder Wohnzimmer : SmokeSensor
[7/13/2017, 5:36:40 AM] [Homee] Rauchmelder Keller: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Terasse BWM: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Gäste WC : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Wohnzimmertür: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Spülenfenster: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Jule DF : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Devolo home Control Remote: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Doppeltaster: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Lampe : Switch
[7/13/2017, 5:36:40 AM] [Homee] Außen : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Arbeitszimmer Caro: Switch
[7/13/2017, 5:36:40 AM] [Homee] Esszimmerlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Arbeitszimmer Chris: Switch
[7/13/2017, 5:36:40 AM] [Homee] Haustürlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Flurlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Kinderzimmer Jule: Switch
[7/13/2017, 5:36:40 AM] [Homee] Kinderzimmer Zoe: Switch
[7/13/2017, 5:36:40 AM] [Homee] Spiegellicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Wohnzimmerfenster: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Zoé DF : MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Klimaanlage: Switch
[7/13/2017, 5:36:40 AM] [Homee] Küchenleuchte: Switch
[7/13/2017, 5:36:40 AM] [Homee] Heizung Zoé: Thermostat
[7/13/2017, 5:36:40 AM] [Homee] Heizung Jule: Thermostat
[7/13/2017, 5:36:40 AM] [Homee] Danfoss  Wohnzimmer: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Danfoss  Schlafzimmer: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Danfoss  Bad: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Danfoss Gäste WC: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Danfoss Kinderzimmer Zoé: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Garagesensor: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Badlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Küchenlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Flur EG: MotionSensor
[7/13/2017, 5:36:40 AM] [Homee] Küchentür: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Esstischlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Garagenlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Wohnzimmerlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Wohnzimmer: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Außenthermometer: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Kinderzimmer: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Regenmesser: unknown Accessory Type
[7/13/2017, 5:36:40 AM] [Homee] Treppenlicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Gartenpumpe: Switch
[7/13/2017, 5:36:40 AM] [Homee] Windfanglicht: Switch
[7/13/2017, 5:36:40 AM] [Homee] Abstellkammer: ContactSensor
[7/13/2017, 5:36:40 AM] [Homee] Initializing platform accessory 'Esszimmer'...
[7/13/2017, 5:36:40 AM] [Homee] MotionDetected: 1
[7/13/2017, 5:36:40 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:40 AM] [Homee] CurrentTemperature: 23.899
[7/13/2017, 5:36:40 AM] [Homee] CurrentAmbientLightLevel: 3
[7/13/2017, 5:36:40 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:40 AM] [Homee] Initializing platform accessory 'LED   Band'...
[7/13/2017, 5:36:40 AM] [Homee] On: 0
[7/13/2017, 5:36:40 AM] [Homee] Initializing platform accessory 'Sofalicht'...
[7/13/2017, 5:36:40 AM] [Homee] On: 0
[7/13/2017, 5:36:40 AM] [Homee] Initializing platform accessory 'Küchenfenster '...
[7/13/2017, 5:36:40 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:40 AM] [Homee] CurrentTemperature: 22
[7/13/2017, 5:36:40 AM] [Homee] CurrentAmbientLightLevel: 1
[7/13/2017, 5:36:40 AM] [Homee] ContactSensorState: 0
[7/13/2017, 5:36:40 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:40 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:40 AM] [Homee] Initializing platform accessory 'Wohnzimmertür '...
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] ContactSensorState: 0
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 23.333
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 2
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Haustüre'...
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 21.5
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 1
[7/13/2017, 5:36:41 AM] [Homee] ContactSensorState: 0
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Windfang'...
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 24.7
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 0
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Flur DG '...
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 18
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 23.899
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 1
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'AZ Chris '...
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 22
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 1
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] ContactSensorState: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'AZ Caro links '...
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 22.777
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 1
[7/13/2017, 5:36:41 AM] [Homee] ContactSensorState: 0
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory ' AZ Caro rechts '...
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 100
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 22.5
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 2
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] ContactSensorState: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Fernseher'...
[7/13/2017, 5:36:41 AM] [Homee] On: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Waschmaschine'...
[7/13/2017, 5:36:41 AM] [Homee] On: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Briefkasten '...
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 44
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 15.399
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 3
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 1
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Garage  '...
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] BatteryLevel: 77
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 21.5
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 0
[7/13/2017, 5:36:41 AM] [Homee] StatusTampered: 0
[7/13/2017, 5:36:41 AM] [Homee] Initializing platform accessory 'Wohnzimmer'...
[7/13/2017, 5:36:41 AM] [Homee] MotionDetected: 0
[7/13/2017, 5:36:41 AM] [Homee] CurrentTemperature: 24.5
[7/13/2017, 5:36:41 AM] [Homee] CurrentAmbientLightLevel: 1
[7/13/2017, 5:36:41 AM] [Homee] CurrentRelativeHumidity : 45
/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:71
    if (existing.UUID === characteristic.UUID)
                                        ^

TypeError: Cannot read property 'UUID' of undefined
    at Service.MotionSensor.Service.addCharacteristic (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Service.js:71:41)
    at HomeeAccessory.getServices (/usr/local/lib/node_modules/homebridge-homee/accessories/HomeeAccessory.js:83:30)
    at Server._createAccessory (/usr/local/lib/node_modules/homebridge/lib/server.js:378:36)
    at Server.<anonymous> (/usr/local/lib/node_modules/homebridge/lib/server.js:364:32)
    at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:16:19
    at that.homee.listen.message (/usr/local/lib/node_modules/homebridge-homee/index.js:81:13)
    at WebSocket.<anonymous> (/usr/local/lib/node_modules/homebridge-homee/lib/homee.js:102:9)
    at emitTwo (events.js:111:20)
    at WebSocket.emit (events.js:192:7)
    at Receiver.ontext (/usr/local/lib/node_modules/homebridge-homee/node_modules/ws/lib/WebSocket.js:841:10)

Scheint so, als ob es der aeotec Multisensor Gen 5 ist, der das Teil zum Absturz bringt…

https://aeotec.freshdesk.com/support/solutions/articles/6000056451-multisensor-gen5-user-guide-

Ja läuft wirklich super… freu mich riesig…

Verbesserungsvorschlag…
Nur Geräte erscheinen auf der Homebridge die in einer festgelegten Gruppe sind.

Ist sowas möglich?

Mmmmm bei mir scheint ein device laut log von oben, die Bridge zum Absturz zu bringen .

@stfnhmplr folgendes Problem entdeckt

es macht ein Unterschied ob ich die Lampe mit Siri schalte oder üver die Home App

Über Siri funktioniert es leider nicht

[7/13/2017, 11:02:32 AM] [Homee] Setting Stehlampe to true <Siri
[7/13/2017, 11:02:32 AM] [Homee] Stehlampe: On: 0
[7/13/2017, 11:02:32 AM] [Homee] Stehlampe: On: 0
[7/13/2017, 11:02:41 AM] [Homee] Setting Stehlampe to 1 <HomeApp
[7/13/2017, 11:02:41 AM] [Homee] Stehlampe: On: 0
[7/13/2017, 11:02:41 AM] [Homee] Stehlampe: On: 1

@stfnhmplr

Wenn du tv Zugang brauchst , sag Bescheid.

Gruß

@Einstein77 Der Fehler mit dem Schalten über Siri sollte behoben sein. Update ist online. Konnte es selbst mangels Gerät aber nicht testen.

Der Absturz sollte auch behoben sein.

1 „Gefällt mir“

Absoluter HAMMER
die 0.7 läuft Perfekt…

DANKE

Hallo Leute,

ich verfolge das neue Plugin seit kurzem und bin begeistert von der Entwicklung. Vor allem da es auch bei den ersten sehr gut zu laufen schein. Da ich gerade Zeit habe, habe ich mich an die Materie gewagt. Allerdings halten sich meine Programmierkenntnisse in Grenzen. Habe mir ein paar Befehle selbst rausgesucht, aber wenn nichts mehr geht, bin ich aufgeschmissen bzw. auf eure Hilfe angewiesen. Wie jetzt.

Ich bekomme das Plugin einfach nicht zum Laufen.

  1. Wie heißt der Befehl, um den Log anzuzeigen? Benutze die Homebridge App und da den Debugging Modus.
  2. Der Fehler abgetippt heißt:
    ERROR LOADING PLUGIN homebridge-homee
    Syntax Error: Block-scooped declarations (let, const, function, class) not yet supported outside stict mode… und dann kommt noch ganz viel…
  3. JSON hab ich wie in der Anleitung angepasst
  4. Hab auch das Harmony Plugin gelöscht, hat aber auch nichts geholfen.
  5. Mehrfache Deinstallation und Installation hat auch nichts gebracht.

Hoffe ihr könnt mir weiterhelfen.

Danke und Grüße

Jede Konfiguration ist ein wenig anders. Normalerweise sollte es zwei Logfiles geben, die sich mit sudo /var/log/homebridge.log und sudo /var/log/homebridge.err aufrufen lassen. Der Speicherort kann aber auch je nach Setup schon mal variieren.

Das wichtigste ist aber, dass du den Fehler bereits siehst. Siehe Nr. 2. Das bedeutet unterm Strich, dass du eine zu alte Version von NodeJS (das ist die Basis Software) nutzt. Ich habe allerdings keine Ahnung, ob du mit der Homebridge App ein Update machen kannst. Die bei dir installierte NodeJS Version lässt sich mit node -v rausfinden. Aktuell ist die 8.1.4. Ich vermute, du hast eine deutlich ältere Version. Es sollte mindestens eine 6.x.x sein.

Wenn sich NodeJS nicht über die App updaten lässt gibt es zwei Möglichkeiten: Den Entwickler anschreiben ob er das in die App implementieren kann oder selbst tätig werden. Letzteres ist aber recht aufwendig und wie ich zuletzt feststellen musste, nicht immer direkt von Erfolg gekrönt. Leider scheint die App das manuelle Update zu erschweren.

Sobald ich etwas mehr Zeit habe, kann ich aber auch ein fertiges Image mit Homebridge bereitstellen, welches nur noch auf die SD Karte übertragen werden muss. Das wird aber vermutlich noch mindestens 2 Wochen dauern.

4 „Gefällt mir“

Hallo @stfnhmplr,

vielen Dank für deine Rückmeldung.
Es liegt tatsächlich an der alten NodeJS.
Bevor ich hier ein “Upgrade” wage, erstelle ich mir erst einmal ein Image.
Zumindest weiß ich, woran es liegt.
Und die Logfiles bin ich noch am suchen. Müssen woanders liegen :cry:

Vielen Dank für deine Hilfe.

@CaptainL

Kann es sein, das Du die homebridge als Service Startest?
dann musst Du die Datei ändern
sudo nano /etc/init.d/homebridge

und zwar die Zeile
su - pi -c “homebridge > /dev/null 2>&1 &”
nach
su - pi -c “homebridge >> /var/log/homebridge.log 2>> /var/log/homebridge.err &”

dann werden da auch die LOG Dateien geschrieben.

Nach bearbeiten der Datei noch ein Update des Service machen

sudo update-rc.d homebridge defaults

Läuft das Plugin jetzt durch oder muß man noch individuelle Anpassungen vornehmen?

  1. Frage: wie erstellt man ein Image/Backup vom Pi?

@Sofasportler

bei mir läuft es Super…

Backup vom Pi kannst Du mit ApplePi-Baker auf dem MAC machen.
Bei Windows weiß ich es leider nicht genau… Aber Google hilft da bestimmt…

Bei mir läuft es jetzt auch, aber folgendes ist mir aufgefallen:

  1. Falls du den Pi mit der App aufgesetzt hast, bekommt man mit der NODEJS Version Probleme, bzw. das Plugin wird nicht ausgeführt. Auch nach update von NODEJS.
    Ich habe nur das Image von smartapfel.de genommen und dann alles nach dieser Anleitung installiert.
    Verknüpfung Homee + Apple Homekit über Raspberrypi + Homebridge
  2. Weiter ist mir aufgefallen, das die verschiedenen Sensoren verschiedene Bezeichnungen benötigen. Bei meiner Tochter waren Name für Dimmer und Fenstersensor identisch. Das bringt das Plugin dann durcheinander.
  3. Außerdem hatte ich noch ein Lampensymbol vor dem Namen, allerdings kann die Home app damit nicht umgehen.

Ich hoffe ich konnte auch noch einen kleinen Teil dazu beitragen.
Viele Grüße

Daniel

@Daniel Danke für dein Feedback. Welche Version hast du installiert? Inzwischen ist die 0.0.8 draußen, damit sollten auch gleiche Gerätebezeichnungen möglich sein. Oder bist du bereits auf der aktuellen Version?

ich habe die 0.0.8 installiert. War jetzt aber nicht weiter schlimm Lampe oder Licht vor die Bezeichnung zu setzen.

Noch einige Rückfragen, bevor ich es auch wage:
Wie kontrolliere ich die Version von NODEJS vor der Installation?
Ich würde versuchen nur das Plugin zu installieren. Muß ich dafür die alte Homebridge Version vorher deinstallieren oder einfach drüber?
Muß ich in der Homekit App noch irgend etwas vorbereiten/löschen?

node -v auf der commandline

1 „Gefällt mir“

Cooles Projekt! Ich habe mal direkt meine Geräte getestet und alle funktionierenden der Liste auf Github hinzugefügt. Für alle anderen, die momentan noch nicht funktionieren, werde ich den Code entsprechend anpassen und einreichen! :slight_smile:

1 „Gefällt mir“