Worum geht es ? Es gibt ein node.js Projekt namens Homebridge welches Apples Homekit (und damit auch Siri) an diverese andere Systeme anbindet.
Das ganze läuft auf einem Raspberry PI (kann aber auch auf anderen Systemen installiert werden) und stellt eine Schnittstelle (Bridge) für HomeKit zur Verfügung. Aktuell gibt es eine ganze Menge Geräte (Philips Hue, Netatmo) welche schon dort integriert wurden.
Ich habe mich jetzt mal hingesetzt und eine Homematic Anbindung dafür geschrieben.
Aktuell werden folgende wireless Geräte unterstützt.
- Schaltaktoren
- Dimmer
- RGB Controller
- Fensterkontakte
- Bewegungsmelder
- Thermostate und Stellantriebe (neuere Bauart) (seit 0.0.26 wird auch das alte Thermostat unterstützt)
- Rauchmelder
- Keymatik (jetzt in echt)
- Rolloaktoren
- Kippsensoren
- Taster - diese können als Events für die Steuerung anderer HomeKit Geräte genutzt werden
- HMIP SDWO
- HMIP PSM
- HMIP PS
- WINMATIC
Für Wired Unterstützung muss die Zeile "enable_wired":true in die /home/pi/.homebridge/config.json bei der Homematic Platform hinzugefügt werden.
Wer keine Wired Komponeten hat kann das getrost weglassen.
Für HMIP Geräte muss die Zeile "enable_hmip":true in die /home/pi/.homebridge/config.json bei der Homematic Platform hinzugefügt werden.
Ab der aktuellen Version müssen die Kanäle, welche aus der CCU nach HomeKit importiert werden sollen über ein Gewerk in der CCU selektiert werden.
Vorgehensweise:
- neues Gewerk über die Systemsteuerung des CCU WebUI anlegen
- alle Kanäle, welche nach Homekit importiert werden sollen in dieses Gewerk aufnehmen
- Name des Gewerkes auf dem Pi in die Datei /home/pi/.homebridge/config.json unter dem Schlüssel subsection eintragen.
Beispiel : Das Gewerk heisst Siri ... dann wäre der Eintrag in der config.json "subsection":"siri"
Aktuelle Version
Changelog:
https://github.com/thkl/homebridge-home ... /changelog
GitHub Projektpage :
https://github.com/thkl/homebridge-homematic
Da das Setup ja augenscheinlich nicht so EzGoing gibt es auch ein Install Script für den ganzen Spass in Form von einer Zeile.
Das Script macht vom Update des Debian bis zum Setup der Homebridge alles
Einzige Vorraussetzung : ein leeres wheezy wheezy oder jessie Image und das initiale sudo raspi-config mit der Partitionserweiterung ist durchgelaufen.
Dann begebe man sich auf seine Kommandozeile (ssh oder Terminal is Wurschd) und Paste folgenden Text hinein:
Code: Alles auswählen
wget -nv -O- https://raw.githubusercontent.com/thkl/homebridge/xmlrpc/setup.sh | bash -
Code: Alles auswählen
wget -nv -O- https://raw.githubusercontent.com/thkl/homebridge/xmlrpc/setup_zero.sh | bash -
WICHTIG: Ab Version 0.0.71 ist node in Version > 4.5 notwendig.
Hinweis zum Update siehe viewtopic.php?f=19&t=27465&p=364184#p364184
Der Aufruf muss als pi User gemacht werden. Nicht als root. Sonst funktioniert das einbinden der Node Module nicht richtig.
Das Script organisiert sich per sudo root wann immer es benötigt wird.
Das Script fragt dann noch mal nach dem gewünschten Zeichensatz (vorteilhaft wäre in diesen Breiten de_DE.UTF-8) und dann kann man sich gefühlt erstmal 30 Minuten dem Weissbier zuwenden. Es wird das System geupdatet, node + homebridge + module installiert.
Am Ende wird noch die CCU IP abgefragt und die initiale config Datei erzeugt. Achja und man kann sich entscheiden, ob die Homebridge beim Start des Pi mit starten soll.
Ggf muss die Configuration manuell noch angepasst werden. Wie die ausschaut, steht unten in der FAQ
Viel Spass
PS.: Wer Fehler im Script findet möge sich melden ....
PPS.: Im ELV Journal (02/16) ist ein Fachbeitrag darüber erschienen : http://files.elv.de/bilder/journal/2016 ... teil14.pdf
FAQ:
F: Wie starte ich die Bridge ?
A: wenn man zuschauen will mit dem Kommando homebridge
F: Die Bridge beendet sich wenn ich die ssh Verbindung zum pi beende
A: Ja, dann stirbt die Session. Wer beim Setup angegeben hat, das die Bridge mit dem Pi automatisch starten soll kann diese mit
Code: Alles auswählen
sudo service homebridge start
F: Gibts noch andere Geräte die ich in Homekit stecken kann
A: Hier entlang bitte https://www.npmjs.com/browse/keyword/homebridge-plugin
(das ganze ist eine Gemeinschaftsarbeit verschiedener Leute wie man sieht)
F:Wo liegt die config.json in der alle Parameter stehen
A:Bei normaler Installation innerhalb des .homebridge Verzeichnisses im Home von pi also /home/pi/.homebridge
F:Beim Start erscheint eine Fehlermeldung, die sagt die Configuration ist defekt.
A:Die config.json muss ein gültiges JSON Format aufweisen. Wer sich nicht sicher ist, ob der Syntax richtig ist kann den Inhalt der Datei zum Test hier :
http://www.jsonlint.com einwerfen.
F:Meine Fensterkontakte werden nicht als Fenster erkannt, sondern als Kontakte und zeigen Ja/Nein an
A:Es gibt die Möglichkeit die Kontakte als Türen zu definieren. Damit bekommen sie den Zustand geöffnet oder geschlossen. Siri kann entsprechend auch bei der Frage : "Sind die Fenster im Raum... geschlossen" antworten.
Dazu in der config.json alle Kanäle der gewünschten Kontakte in den Parameter "doors" eintragen. Der Parameter erwartet ein Array also lautet der Syntax z.b.
Code: Alles auswählen
"doors":["BidCos-RF.KEQXXXXXXX:1","BidCos-RF.IEQXXXXXXX:1"]
F: Kann ich Variablen damit steuern
A: Jain . Es können nur Zustandsvariablen (also Ja/Nein) gesteuert werden. Diese werden nach Wunsch als Schalter (Outlet) nach Homekit übermittelt. In der Config.json kann ein Parameter namens variables eingetragen werden. Dieser muss als Liste (Syntax wie oben das doors Beispiel) die LIste der Variablennamen enthalten die an Homekit weitergegeben werden sollen.
F:Kann ich WebGUI Programme damit starten
A:Ja, der Parameter in der config.json lautet programs. Hier wieder eine Liste (analog Variablen oder doors) mit den Namen der gewünschten Programme eintragen. (Mir ist allerdings noch keine Möglichkeit untergekommen Siri das beizubringen)
F: kann ich verhindern, das Siri zB. einen Steckdosenzwischenstecker als Licht interpretiert.
A: ja, dazu ist der Parameter outlets da. Dies ist wieder eine Liste. In diese Liste kommen alle Kanäle (Format: BidCos-RF.Seriennummer:Kanal) welche nicht als Lampen in HomeKit erscheinen sollen. Diese werden dann als Steckdosen angezeigt. Siri kann sie aber auch mit Schalte .... ein schalten. Nur eben bei "Schalte das Licht ein" werden sie nicht mehr beachtet.
F: kann ich mit HomeMatic Tastern auch meine Hue Lampen steuern.
A: Ja seit 0.0.26 geht das. Taster können über die Gewerkezuordnung mit aufgenommen werden. Diese erscheinen dann als "Eingabe Ereignis" und können für den Trigger einer Szene verwendet werden. Dabei wird beim Betätigen des Tasters (Kurzer Tastendruck) das Ereignis für 1sek. den Wert 1 gesetzt. Diese Änderung kann in Homekit zum starten von Szenen verwenden. Zb um Hue Lampen einzuschalten oder andere HomeKit Geräte zu steuern.
F: Wieviele HomeMatic Geräte kann ich aufnehmen.
A: Hinter einer sog. Bridge in HomeKit können aktuell maximal 100 Geräte verwaltet werden. Das heisst maximal 100 Geräte (bei Geräten mit mehreren Kanälen zb 2fach Schaltaktoren natürlich dann entsprechend weniger) können verwendet werden.
F:Was wenn ich mehr verwenden möchte ?
A:Aktuell muss dann ein 2. PI benutzt werden und über das Gewerk in der CCU die Zuordnung der Geräte aufgeteilt werden.
F: Kann ich virtuelle Tasten auch über Siri steuern
A: Aktuell nicht. Es gibt meines Wissens keine Tasten in HomeKit, das heisst es gibt auch keine Möglichkeit Siri dazu zu überreden eine Taste zu drücken.
Es gibt allerdings die entgegengesetzte Möglichkeit mittels einer Homematic Taste eine HomeKit Aktion zu triggern. Wie das geht ist hier http://homematic-forum.de/forum/viewtop ... 80#p278903 beschrieben.
F:Seit iOS 10 erkennt Siri keine Fenster mehr ?
A:Es gibt einen Workaround ab version 0.0.37. Hier können über den config Parameter windows die gewünschten Kontakte als Motorfenster definiert werden. Dann erkennt das Siri wieder. Syntax wie oben bei den Doors
F: Wie kann ich bei Problemen die Homebridge zurücksetzen ?
A:
Auf dem iPhone/iPad:
iOS10 HomeApp > Kompassymbol links oben > ganz unten "Haus entfernen"
iOS09 Einstellungen > Datenschutz > HomeKit > HomeKit-Konfiguration zurückzusetzen
Neustart
Auf der Homebridge:
sudo /etc/init.d/homebridge stop
rm /home/pi/.homebridge/persist -R
sudo reboot
Danach muss die Homebridge mit dem iPhone/iPad neu verbunden werden. Gerätenamen, Räume und Raumzuweisungen müssen neu zugewiesen werden.
F:Wie sieht denn jetzt die Konfigurationsdatei aus und was bedeuten die Einträge ?
A:
Code: Alles auswählen
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:31",
"port": 51826,
"pin": "031-45-154"
},
"description": "This is an autogenerated config. only the homematic platform is enabled. see the sample for more",
"platforms": [{
"platform": "HomeMatic",
"name": "HomeMatic CCU",
"ccu_ip": "192.168......",
"subsection": "Homekit",
"filter_device": [],
"filter_channel": [],
"outlets": [],
"doors": [],
"windows": [],
"programs": [],
"ios10": "true"
}],
"accessories": []
}
Sektion Bridge:
===============
- name = Name der Bridge wie er im IOS erscheint
- username = User (wenn IOS die Bridge nicht mehr erkennt diesen ändern)
- port = Port auf dem die Bridge läuft
- pin = Pin welche zur Einbindung in Homekit benutzt wird.
Sektion Platforms:
==================
Diese Sektion ist eine Liste aus Einträgen div. Module
Das Homematic Modul hat folgende Einträge
- platform : "HomeMatic" <- nicht ändern
- name : "HomeMatic CCU" <- nicht ändern
- ccu_ip : Ip Adresse der CCU
- subsection: Gewerk aus dem alle Kanäle ausgelesen werden, welche in Homekit importiert werden
- filter_device : Geräte die nicht eingelesen werden sollen (eigentlich überflüssig seit der Gewerkeselektion)
- filter_channel : analog oben
- outlets : Kanäle die als Steckdosen anstatt Lampen erzeugt werden sollen
- doors: Kanäle die als Türen statt Kontakten erzeugt werden sollen
- windows : Kanäle die als Fenster statt Kontakten erzeugt werden sollen
- programs : Liste von Programmen, die nach Homekit importiert werden sollen
- variables : hier können CCU-Variablen eingetragen werden
- ios10 - "true" wenn die iOS10 Home App benutzt wird (bzw für Siri ab ios10)
- enable_wired : sofern Wired Geräte eingelesen werden sollen auf "true" setzen, ansonsten "false" oder die komplette Zeile löschen
Update des Plugins:
Code: Alles auswählen
sudo npm update -g homebridge-homematic