Apple HomeKit: Anbindung an IPS auf Basis der HomeBridge von nfarina

Hallo Oli,

ich habe IPS in einer VM unter Debian Jessie am laufen.
Sofern man die HomeBridge erst einmal grundsätzlich lauffähig hat, sollte da aber kein Unterschied sein.

Kann ich dir irgendwie weiterhelfen?

Gruß, André

Hi André,

wie gesagt läuft perfekt.

Hast du vor Rollladen / KNX Shutter auch noch zu integrieren?

Grüße

Oli

Hallo Oli,

ich habe mal gerade die Funktionalität für Rolläden hinzugefügt.
Die Funktionalität für EIB/KNX habe ich auch hinzugefügt, kann sie aber nicht testen (habe LCN).

Meine LCN-Rolläden kann ich nun per Siri schalten, auch wenn es etwas unglücklich gelöst ist - HomeKit kennt keine Rolläden: Es gibt nur Garagentore.

Jetzt kann ich die Rolläden steuern, indem ich sage: „Mach das Garagentor im Wohnzimmer zu.“ :stuck_out_tongue:

Gruß, André

Hi André,

für KNX hast du den Rollladen noch nicht hinzugefügt?

Dann kann ich das Testen :wink:

Ja so hätte ich dies auch gelöst.

Ab iOS 9 sollten auch Rollladen dabei sein. :wink:

Grüße

Oli

Könnte jemand dies auch für Homematic bereitstellen?

Ich komme hier nicht mehr weiter :

pi@ihome ~/homebridge $ sudo npm run start

> homebridge@0.0.0 start /home/pi/homebridge
> node app.js

Starting HomeBridge server...
undefined:5
        "port": 3777, // Port des Webfronts (unter Linux immer 3777)
                      ^
SyntaxError: Unexpected token /

Wo ist der Fehler :frowning:

Hier die Konfig:


{
    "platform": "Symcon",
    "name": "Symcon",
    "rpcClientOptions": {
        "port": 3777, // Port des Webfronts (unter Linux immer 3777)
        "host": "192.168.0.11",// Name oder IP des Webfronts (bei mir der gleic$
        "path": "/api/", // Pfad der JSON-RPC-API (immer gleich)
        "login": "dz@gmail.com",// wie bei der Konsole Benutzername f$
        "hash": "blabla",     // für 00000
        "strict": true
    }
}

Jetzt spuckt er diesen Fehler nur noch aus:

pi@ihome ~ $ npm run start
npm ERR! Linux 3.18.11-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! path /home/pi/package.json
npm ERR! code ENOENT
npm ERR! errno -2

npm ERR! enoent ENOENT, open '/home/pi/package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/npm-debug.log
pi@ihome ~ $ sudo npm run start
npm ERR! Linux 3.18.11-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! path /home/pi/package.json
npm ERR! code ENOENT
npm ERR! errno -2

npm ERR! enoent ENOENT, open '/home/pi/package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/npm-debug.log

@drapple: Entferne mal meine Kommentare aus der Datei, also alles nach und inklusive der zwei “/“. Ich habe beim Posten hier nicht auf eine gültige Syntax für Kommentare geachtet…

So habe es nochmal neu gemacht und jetzt startet der Server so:

pi@ihome ~/homebridge/lib/HAP-NodeJS $ sudo npm run start

> HAP-NodeJS@0.0.1 start /home/pi/homebridge/lib/HAP-NodeJS
> node BridgedCore.js

*** 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>
HAP-NodeJS starting...
TCP server accepting connection on port: 51826
HAP Server is listening

Aber es wird nicht das symcon modul geladen ? Wo ist der Fehler ?

Bei mir passiert das:

pi@ihome ~ $ git pull   
fatal: Not a git repository (or any of the parent directories): .git
pi@ihome ~ $ sudo git pull 
fatal: Not a git repository (or any of the parent directories): .git
pi@ihome ~ $ git submodule update 
fatal: Not a git repository (or any of the parent directories): .git

wenn ich die 2 Befehle ausführe ?

Du musst alle Befehle im homebridge-Verzeichnis ausführen, also bei dir: /home/pi/homebridge

Danke das hat geklappt.

Aber schau dir mal Post 48 an, der Server startet ohne Fehler, aber es wird kein symcon Modul geladen ???

Aus welchem Verzeichnis muss ich den den Server starten ?

Den Server musst du auch aus dem homebridge-Verzeichnis starten

So jetzt sieht es ganz gut aus:

> homebridge@0.0.0 start /home/pi/homebridge
> node app.js

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 9 accessories...
[Coffee Maker] Initializing WeMo accessory...
[Coffee Maker] Searching for WeMo device with exact name 'CoffeeMaker'...
Display name: Coffee Maker
TCP server accepting connection on port: 51826
HAP Server is listening
[Garage Door] Initializing LiftMaster accessory...
Display name: Garage Door
TCP server accepting connection on port: 51828
HAP Server is listening
[Speakers] Initializing Sonos accessory...
Display name: Speakers
TCP server accepting connection on port: 51832
HAP Server is listening
[Front Door] Initializing Lockitron accessory...
Display name: Front Door
TCP server accepting connection on port: 51838
HAP Server is listening
[Leaf] Initializing Carwings accessory...
Display name: Leaf
TCP server accepting connection on port: 51846
HAP Server is listening
[Xfinity Home] Initializing XfinityHome accessory...
Display name: Xfinity Home
TCP server accepting connection on port: 51856
HAP Server is listening
[Light] Initializing HomeMatic accessory...
Display name: Light
TCP server accepting connection on port: 51868
HAP Server is listening
[Lamp] Initializing X10 accessory...
Display name: Lamp
TCP server accepting connection on port: 51882
HAP Server is listening
[Kitchen Lamp] Initializing Http accessory...
Display name: Kitchen Lamp
TCP server accepting connection on port: 51898
HAP Server is listening
[Symcon] 0 instances found

Was bedeutet den das in der Config:

{
            "accessory": "HomeMatic",
            "name": "Light",
            "description": "Control HomeMatic devices (The XMP-API addon for the CCU is required)",
            "ccu_id": „1234“,
            "ccu_ip": „192.168.0.19“
        },

Was ist den Die XML-API ID (ccu_id) ? Und muss ich bei description auch was eintragen ?

Wie benutzt man das HM Modul ?

Mittlerweile habe ich das ganze in einer Debian 8.1 VM am laufen. Zumindest den Server, die Gerätschaften und co. kann ich erst dann einbinden, wenn ich mit der VM zu Hause bin g

So habe mal eben ein paar Versuche mit der HomeMatic Zusatz in der config.js gemacht:

{ 
            "accessory": "HomeMatic", 
            "name": "Light",  // Was ist es Licht Rollläden usw.
            "description": "Control HomeMatic devices (The XMP-API addon for the CCU is required)", 
            "ccu_id": „1234“,  //Das ist die ID vom Aktor aus der http://ip der ccu /config/xmlapi/devicelist.cgi
            "ccu_ip": „192.168.0.19“  // IP der HM CCU
        },  

in der devicelist.cgi sucht man sich ein Device aus z.B. ein Licht :

<channel name="Wohnzimmer Dimmer 4 1" type="27" address="JEQ0733699:1" ise_id="4299" direction="RECEIVER" parent_device="4281" index="1" group_partner="" aes_available="false" transmission_mode="DEFAULT" visible="true" ready_config="true" operate="true"/>

Und die CCU_ID ist hier die ise_id=„4299“ !

Viel spaß beim testen :rolleyes:

Also ich hab die XML API auf der CCU2 installiert, nichts verändert, ein Gerät aus der devicelist gezogen und eingetragen. Die Infini Home App findet das Device… Schalte ich es nun ein oder aus passiert nichts jedoch zeigt die Serverconsole folgende meldung

{ characteristics: [ { aid: 1, iid: 9, value: true } ] }
Broadcasting event {"characteristics":[{"aid":1,"iid":9,"value":true}]} to: {"49203":true,"49204":true}
Characteristics.js:updateCharacteristicValue()
[Lampe] Setting power state of CCU to true
[Lampe] NaN
[Lampe] Error 'Error: getaddrinfo ENOTFOUND undefined' setting lock state: undefined

Per Http gehts übrigens hab ich mal getestet. Kann damit Lampen und co schalten.

Das Symcon Modul ist scheinbar bei mir Nutzlos da ich keine KNX LCN pipapo Hardware habe… ebenso das Homematic script scheint bei mir nicht out of the box zu funktionieren.

Ansonsten TOP!!! <3

Hallo Kallii,

magst Du Deine http-Anwendung mal bitte näher erläutern?

Joachim

Hallo,

nach ewigem hin und her hab ich das Ganze dank dieses Threads auf einer Debian 8.1 Jesse VM zum laufen bekommen.

Eine Verbindung zu Symcon funktioniert derzeit übrigens nicht über HTTPS.

Verstehe ich es richtig, dass derzeit Homematic Accessories nicht über IP-Symcon laufen sondern ausschließlich per direkter Kommunikation mit der CCU -> XML-API-Addon?

Das ist schade.

@Andre: gibt es eine Dokumentation auf deren Basis du die Symcon.js programmierst und die Accessories anlegst? Ich würde da gerne mitwirken und für Homematic Komponenten Accessories erweitern.

Gruß

Das mit dem HTTPS werd ich gleich heute probieren, da das http accessory wohl scheinbar auch https probleme hat, obwohl ich ein gekauftes verifiziertes ssl zerti auf meinem symcon server einsetze… Ich hab also noch einen zweiten Webserver erstellt in IPS und diesen auf http gestellt und kann nun mittels des http accessorys geräte ein und ausschalten, die brightness url lasse ich sozusagen leer laufen…

        {
            "accessory": "Http",
            "name": "Deckenlicht",
            "on_url": "http://ipsserver:83/user/ips.php?typ=HM&id=50513&state=true",
            "off_url": "http://ipsserver:83/user/ips.php?typ=HM&id=50513&state=false",
            "brightness_url": "http://fakeurl:83/user/ips.php?typ=HM&id=50513&state=true",
            "http_method": "POST"
                     }


Noch ein Tipp, in der Config Json ist „name“ jeweils einmalig… legt man z.B. ein Gerät Test1 an fügt das in einer App am iPhone hinzu, löscht es danach wieder kann man es nicht mehr finden… erst wenn man es umbenennt. Hier hilft auch nicht die HomeKit Konfiguration zurückzusetzen in den Datenschutzoptionen. Auch die Apps beschweren sich wenn ich ein Gerät Deckenlicht nennen möchte, was ich schon gestern mal angelegt hatte und wieder gelöscht hatte…