ich habe mal etwas mit der HomeBridge (https://github.com/nfarina/homebridge) experimentiert und eine „Platform“ für die Integration in IPS erstellt.
Aktuell werden zwar nur Instanzen vom Typ „LCN Unit“ unterstützt, da hier für mich der Schwerpunkt lag :-), kann aber jederzeit erweitert werden.
Die Kommunikation mit IPS läuft über die JSON-RPC-Schnittstelle.
Beim Starten des Servers werden alle vorhandenen Instanzen dynamisch abgefragt und es werden HomeKit-Accessories erstellt. Je nachdem, ob die Instanz ein LCN Ausgang oder ein LCN Relais ist, werden Methoden zum Ein-/Ausschalten (Ausgänge und Relais) oder auch zum Dimmen (nur Ausgänge) bereitgestellt.
Ich bin aktuell noch beim Ausprobieren, wie ich die Geräte in HomeKit nenne, um sie am besten mit Siri steuern zu können. Die Einrichtung mache ich über die Apps Insteon+ (kann Zonen verwalten, aber keine Siri-Namen vergeben) und Elgato Eve (kann Siri-Namen vergeben, kennt aber keine Zonen).
@swissboy: Eigentlich sollte das auch unter Windows laufen. Versuch doch mal Node.js zum laufen zu bringen: Node.js (Es gibt dort einen Windows-Installer zum Download)
Dann solltest du auch die Dependencies mit „npm“ nachladen können und somit alles lauffähig bekommen…
@DerThommy, PeterChrisben, JPaeper: Also ich habe Debian 8.1 (ganz frische Version :-)) in einer VM als x64 (amd64) System installiert. Ich kann mir das auch gerne mal auf einem RPI ansehen, aber frühestens am Wochenende.
Ich habe soweit alles zum Laufen gebracht. Ich nutze Wheezy auf dem RPI 2.
In der Config:
Platforms nur IP-Symcon
Accessories nur der HTTP-Standard Eintrag mit der „Kitchen Lamp“
Wenn ich den Homebridge-Server starten will, erhalte ich folgende Meldung:
Starting HomeBridge server...
*** 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>
Loading 1 platforms...
[Symcon] Initializing Symcon platform...
[Symcon] Fetching Symcon instances...
Loading 1 accessories...
[Kitchen Lamp] Initializing Http accessory...
Display name: Kitchen Lamp
TCP server accepting connection on port: 51826
HAP Server is listening
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
Das heißt im Klartext, dass sich der HomeBridge-Server nicht bei IPS anmelden kann. Überprüfe doch bitte noch einmal deine config.json-Datei. Der Eintrag für IPS ist bei mir in etwa so aufgebaut:
{
"platform": "Symcon",
"name": "Symcon",
"rpcClientOptions": {
"port": 3777, // Port des Webfronts (unter Linux immer 3777)
"host": "127.0.0.1", // Name oder IP des Webfronts (bei mir der gleiche Server)
"path": "/api/", // Pfad der JSON-RPC-API (immer gleich)
"login": "name@domain.de", // Benutzername für den Remote-Zugriff
"hash": "password", // Passwort für den Remote-Zugriff Base64 codiert, so wie hier beschrieben: https://www.symcon.de/forum/threads/24620-Installationsanleitung-(RaspberryPi)?p=226096#post226096
"strict": true
}
}
Ich habe noch eine Anpassung meiner HomeBridge-Erweiterung vorgenommen, so dass es einfacher sein sollte, weitere Module zu integrieren.
[ol]
[li]Es werden jetzt nicht mehr nur die „LCN Unit“-Instanzen geladen, sondern alle Instanzen.
[/li][li]Im Konstruktur vom SymconAccessory wird nach der ModuleID der Instanz unterschieden und es werden mögliche Commands registriert (bzw. dem Array hinzugefügt).
[/li][li]Je nachdem, ob danach ein SymconAccessory-Objekt ein Command definiert hat oder nicht, wird es überhaupt zu den verfügbaren HomeKit-Accessories hinzugefügt (oder halt nicht).
[/li][/ol]
Zur Erweiterung kann man nun also im Konstruktor weitere ModuleIDs im switch/case hinzufügen und die entsprechenden Commands zum Array hinzufügen. Danach kann man dies dann analog in den Funktionen zur Steuerung (setPowerState/setBrightness) hinzufügen und dort dann die korrekte IPS-Methode für das Modul aufrufen.
An die ModuleID bin ich dran gekommen, indem ich in der IPS-Console in einem Test-Script mir die Eigenschaften einer bestimmten Instanz ausgeben lassen habe, ungefähr so:
Bei mir läuft die HomeBrige wiegeschrieben auf bem RPI und Symcon auf Win7 (Firewall aus)
{
"platform": "Symcon",
"name": "Symcon",
"rpcClientOptions": {
"port": 82, // Port des Webfronts (unter Linux immer 3777)
"host": "192.168.15.120", // Name oder IP des Webfronts (bei mir der gleiche Server)
"path": "/api/", // Pfad der JSON-RPC-API (immer gleich)
"login": "meine eMail-Adresse", // wie bei der Konsole Benutzername für den Remote-Zugriff
"hash": "MDAwMDA=", // für 00000
"strict": true
}
}
der Fehler ist dann weg, allerdings findet er 0 Instanzen. (Ich habe mal 2 LCN Relais testweise angelgt,im IPS werden beide gefunden)
Ich werde heute Abend noch meine Anleitung für die Installation auf dem RPI posten.
Aktualisiere mal die Symcon.js mit meiner aktuellen Version von GitHub. Dann sollten zumindest erst einmal alle Instanzen abgerufen werden. Du musst dann aber noch die von mir beschriebenen Anpassungen durchführen, damit die Instanzen verfügbar sind.
geht leider immer noch nicht. hatte jetzt allerdings nicht viel Zeit. Die LCNs müssten auch ohne Änderung gefunden werden, oder?
Mir ist nur aufgefallen, dass Du in der Zeile 81 einen Fehler drin hast. Da hast Du die geschweifte Klammer auskommentiert.
So, wie angekündigt die Schritte, die ich durchgeführt habe um die Homebridge auf dem RPI2 zum Laufen zu kriegen.
Ich habe so einiges aus verschiedenen Ecken des WWW zusammengetragen. So sollte es funzen.
Grundlage ist das Raspbian Image vom 2015-05-05.
Bitte beachten, dass ich alles als SU durchgeführt habe.
jetzt wird immer ein Fehler erzeugt. Hier steht, welches Modul noch installiert werden muss. Hier waren folgende.
nach jedem Modul node BridgedCore.js eingeben, bis keine Module mehr fehlen.
Ich habe vermutlich irgendwo noch einen Fehler.
Interessanter Weise ist es egal, was ich beim Benutzer und Passwort in der Config.json eingetragen habe. Bringt keinen Fehler und zeit immer die 0 Instanzen an.
Die aktuelle Symcon.js hab ich gesaugt.
Ich poste mal die Bilder meiner Konfiguration:
eigenen Webserver angelegt: (als Passwort 00000)
Ich habe als Login auch die eMailadresse auf die IPS registriert ist eingetragen. Als Passwort dann entsprechend das für den Fernzugriff (Base64 UTF-8 kodiert) eingetragen.
Als Port 82 (wie Webfront) -> 0 instances
Als Port 3777 -> Verbindungsfehler (siehe Post #11)
Ich bekomme folgenden Fehler beim Starten… der Server stoppt anschliessend wieder.
Jemand ne Idee?
Starting HomeBridge server...
*** 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>
Loading 1 platforms...
[Symcon] Initializing Symcon platform...
[Symcon] Fetching Symcon instances...
Loading 1 accessories...
[Speakers] Initializing Sonos accessory...
Display name: Speakers
TCP server accepting connection on port: 51826
HAP Server is listening
[Speakers] Found device at 192.168.2.44
[Speakers] Found device at 192.168.2.41
[Speakers] Found device at 192.168.2.56
[Speakers] Found device at 192.168.2.3
undefined:1
undefined
^
SyntaxError: Unexpected token u
at Object.parse (native)
at /root/homebridge/platforms/Symcon.js:78:94
at /root/homebridge/node_modules/async/lib/async.js:682:13
at /root/homebridge/node_modules/async/lib/async.js:49:16
at done (/root/homebridge/node_modules/async/lib/async.js:239:19)
at /root/homebridge/node_modules/async/lib/async.js:40:16
at /root/homebridge/node_modules/async/lib/async.js:679:17
at /root/homebridge/platforms/Symcon.js:70:11
at IncomingMessage.<anonymous> (/root/homebridge/node_modules/node-json-rpc/lib/rpcclient.js:182:9)
at IncomingMessage.emit (events.js:129:20)
npm ERR! Linux 3.18.14-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "start"
npm ERR! node v0.12.1
npm ERR! npm v2.5.1
npm ERR! code ELIFECYCLE
npm ERR! homebridge@0.0.0 start: `node app.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the homebridge@0.0.0 start script 'node app.js'.
npm ERR! This is most likely a problem with the homebridge package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node app.js
npm ERR! You can get their info via:
npm ERR! npm owner ls homebridge
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /root/homebridge/npm-debug.log