-
Notifications
You must be signed in to change notification settings - Fork 48
Homekit
Bitte einen Issue anlegen falls ein Gerät nicht unterstützt wird und gewünscht ist. Die bereits unterstützen Geräte sind hier ersichtlich: https://github.com/hobbyquaker/RedMatic-HomeKit/tree/master/homematic-devices
- Einrichtung
- Nutzungshinweise
- Homematic Fernbedienungen/Tasten in HomeKit nutzen
- Systemvariablen
- CCU Programme starten
- Universelles Accessory, Einbinden von nicht-Homematic Geräten
- HomeKit Reset
Den Node RedMatic HomeKit - Homematic per Drag&Drop einem Flow hinzufügen
Die Konfiguration des neu hinzugefügten Node per Doppelklick öffnen, den Button mit dem Bleistift-Icon anklicken um eine neue Bridge hinzuzufügen
Die Standardeinstellungen können beibehalten werden, mit einem Klick auf den Button Add wird die Bridge angelegt
Die Konfiguration des RedMatic HomeKit - Homematic mit klick auf Done verlassen und dann den Button Deploy anklicken
Nochmals die Konfiguration des RedMatic HomeKit - Homematic Node per Doppelklick öffnen und nochmal über den Bleistift-Button die Bridge-Konfiguration öffnen
Bei einer erfolgreich aktivierten Bridge wird in dem Bridge Konfigurationsdialog nun ein QR-Code angezeigt
In der Home App oben rechts über den Plus-Button ein neues Gerät hinzufügen, den QR-Code vom Bildschirm abscannen
Die Sicherheitswarnung bestätigen
Nun sollten alle unterstützen Geräte der CCU in der Home App erscheinen.
Nicht alle Änderungen an den in HomeKit bereitgestellten Accessories werden bei einem Deploy in Node-RED übernommen. Bestimmte Änderungen erfordern nach dem Deploy einen Neustart von RedMatic:
- Entfernen von Geräten
- Umbenennen von Geräten
- Konfigurationsänderung an Geräten (z.B. entfernen des Boost Switch bei Thermostaten)
- Ändern der Anzahl der Tasten des Event Nodes
- Die konfigurierten Services eines "Universellen Accessory" ändern
Zum Auslösen von Aktionen in HomeKit über Homematic Fernbedienungen/Taster kann der Node RedMatic HomeKit - Event genutzt werden. Er erwartet an seinem Eingang eine Message die in msg.topic
die zu drückende Taste und die Art des Tastendrucks (kurz/lang) enthält, z.B. 1/PRESS_LONG
für einen langen Tastendruck auf Taste 1. Dieses Topic kann direkt vom RPC Event Node erzeugt werden in dem man die Topic-Konfiguration auf ${channelIndex}/${datapoint}
setzt und den Datenpunkt mit dem regulären Ausdruck PRESS_SHORT|PRESS_LONG
filtert:
(Boolsche) Systemvariablen können über den Redmatic HomeKit - Switch Node in HomeKit bereitgestellt werden. Hierzu werden die Ein- und Ausgänge eines CCU Sysvar Nodes über kreuz mit dem Redmatic HomeKit - Switch Node verbunden
Leider werden bisher von der Home App und Siri keine Taster unterstützt die einen Einmaligen Event erzeugen. Als Workaround steht mit dem redmatic homekit - button Node ein Schalter zur Verfügung der sich automatisch nach dem Anschalten zurücksetzt und so als "Pseudobutton" genutzt werden kann.
Dieser kann einfach mit einem ccu - program Node verbunden werden, als Payload wird timestamp
ausgewählt:
Mit dem Universal Accessory ist es möglich beliebige HomeKit-Geräte zu erzeugen, z.B. um damit auch Geräte abseits von Homematic einzubinden.
Dem Accessory können beliebig viele Services hinzugefügt werden. Siehe dazu auch https://github.com/HM-RedMatic/RedMatic-HomeKit/issues/44
Verfügbare Services sowie die dafür benötigten und optionalen Characteristiken sind in dieser Datei ersichtlich: https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js
Um eine optionale Characteristic anzulegen müssen dem Accessory direkt beim Start (z.B. über einen Inject Node) Messages gesendet werden.
Es soll ein Accessory mit einem ContactSensor Service angelegt werden. Die 0
vor dem Service gibt den "Subtype" an, dieser wird später benötigt um diesen Service anzusprechen.
Aus https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js ist ersichtlich dass der Service ContactSensor eine Charakteristik ContactSensorState benötigt:
In der Definition dieser Charakteristik ist ersichtlich dass diese den Wert 0
annehmen muss um einen geschlossenen Kontakt zu signalisieren und den Wert 1
um einen offenen Kontakt zu melden:
Um nun einen geschlossenen Kontakt zu melden muss dem Node eine Message geschickt werden deren msg.topic
Property sich durch den "Subtype" (siehe oben) und den Namen der Characteristik zusammensetzt, getrennt durch einen Slash: 0/ContactSensorState
.
Die Property msg.payload
muss in diesem Fall auf die Number 0
gesetzt werden. Um diese beiden Properties der Message zu setzen kann ein Change Node genutzt werden:
[{"id":"f3c1ee32.c1bdf","type":"redmatic-homekit-universal","z":"e679be4e.ea888","bridgeConfig":"505f657d.84710c","name":"ContactSensor","services":[{"subtype":"0","service":"ContactSensor","name":"Test"}],"x":580,"y":240,"wires":[[]]},{"id":"26ae9d08.5d6242","type":"change","z":"e679be4e.ea888","name":"CONTACT_DETECTED","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"},{"t":"set","p":"topic","pt":"msg","to":"0/ContactSensorState","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":220,"wires":[["f3c1ee32.c1bdf","55fcb00d.f7a66"]]},{"id":"70eea6a6.faf3f8","type":"change","z":"e679be4e.ea888","name":"CONTACT_NOT_DETECTED","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"},{"t":"set","p":"topic","pt":"msg","to":"0/ContactSensorState","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":260,"wires":[["f3c1ee32.c1bdf","55fcb00d.f7a66"]]},{"id":"92689c97.a698c","type":"inject","z":"e679be4e.ea888","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":220,"wires":[["26ae9d08.5d6242"]]},{"id":"7cbf7fe8.59d9","type":"inject","z":"e679be4e.ea888","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":260,"wires":[["70eea6a6.faf3f8"]]},{"id":"55fcb00d.f7a66","type":"debug","z":"e679be4e.ea888","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":560,"y":320,"wires":[]},{"id":"505f657d.84710c","type":"redmatic-homekit-bridge","z":"","name":"RedMatic Test Bridge","username":"CC:22:3D:00:F6:05","pincode":"964-84-514","port":"51826"}]
Um die Bridge im Fall von schwerwiegenden Problemen ("sollte" nicht passieren, aber man weiss ja nie 😉) komplett zurückzusetzen kann wie folgt vorgegangen werden:
- Bridge in iOS Home App löschen
- RedMatic stoppen
- Auf der CCU das Verzeichnis
/usr/local/addons/redmatic/var/homekit
mitsamt Inhalt löschen - RedMatic starten
Hierbei gehen alle Raum-Zuordnungen sowie Umbenennungen in HomeKit verloren!
Inhaltsverzeichnis RedMatic Documentation © 2018-2022 Sebastian Raff and RedMatic Contributors, licensed under CC BY-SA License 4.0