Hat man Sensoren anderer Hersteller als Homematic möchte man diese vielleicht eben auch a) zur Steuerung nutzen oder b) diese “sehen” über HomeKit zum Beispiel.
Ich verwende von Xiaomi den Temperatur- und Feuchtigkeitssensor. Der Nebenbei auch noch den Luftdruck misst. Der Sensor ist gefühlt nur 3×3 cm groß 🙂 also super klein. Funken kann der Sensor mittels ZigBee. Und so wird das System aussehen:
Der Sensor wird über den ConBee II im Daemon DECONZ angemeldet. DECONZ bietet hier eine API an womit man den abfragen kann. DECONZ läuft bei mir als Docker-Container. Gleichzeitig läuft auf der CCU3 der CUx-Daemon der virtuelle Geräte erstellen kann ( ja der könnte auch zigbee 😉 )
Kernstück ist dann Node Red – was die ganzen Dienste verknüpft. Es holt sich die Daten von Deconz und schaufelt sie in die CCU3, in die InfluxDB und aus der CCU3 gelangen die Geräte ins HomeKit
Vorbereitungen
- Über den CUxD legen wir ein Thermostat an
- in der CCU3 muss das CUxD-Gerät konfiguriert und einem Raum zugewiesen werden.
- Der Sensor muss im DECONZ angelernt werden.
Anlegen im CUxD
Dazu in der CCU3: Einstellung >> Gerätemanager >> CUx-Daemon auswählen
Im CUx-Daemon dann im Menü oben “Geräte” auswählen und wie folgt einrichten:
Konfig in der CCU3
In der CCU3 erscheint das Gerät nun im Posteingang, kann einem Raum/Gewerke zugeordnet werden und mit Fertig in die Geräteliste übernommen werden.
hier sind nun einmal der Mode auf “Temp+HUM” zu setzen und “USE_HMDATAPT” ist zu deaktivieren.
Anlernen in der Phoscon App / DECONZ
Dazu einfach auf Einstellungen >> Sensoren gehen und “Neuen Sensor verbinden” anklicken. Am Sensor selbst musste ich die Taste nur einmal kurz betätigen. Der Sensor blinkte blau und zack waren beide verbunden.
Im Node RED
Für den Zugriff auf DECONZ benötigen wir das Modul: node-red-contrib-deconz. Und das Modul node-red-contrib-ccu.
Hier wird nun der Wert vom Sensor abgefragt, kurz umgewandelt (division durch 100) und dann a) der CCU3 gemeldet (dazu gleich mehr) und in meinem Fall sende ich das noch an die Influx DB.
Um den Wert in der CCU3 ist es wichtig das Gerät wie oben beschrieben zu konfigurieren und dann die SET_HUMIDITY bzw. SET_TEMPERATURE zu setzen und nicht HUMIDITY oder TEMPERATURE direkt!
Anzeigen im HomeKit
Das ist wohl der einfachste Teil. Mithilfe des Node Red Paketes redmatic-homekit muss man nur, wie in der Anleitung gut beschrieben, eine Home Bridge in einen Flow ziehen und schon werden alle CCU3 Geräte veröffentlicht – vollautomatisch. 🙂
Alternativ kann man das auch händig machen. Die DECONZ Adapter haben alle 2 Ausgänge. Der erste immer für das Datenobjekt bzw. den State (je nach Einstellung) und der 2. ist der Service Ausgang für ein Universalgerät im HomeKit. siehe https://github.com/rdmtc/RedMatic/wiki/Homekit#universal-accessory
Node Red Flow
[{"id":"f166fe9f.4bcde","type":"deconz-input","z":"dde2b0e6.aa168","name":"Bad Feuchte","server":"81052cf.8204ed","device":"00:15:8d:00:04:65:9e:1a-01-0405","device_name":"Multisensor 3 Bad : ZHAHumidity","state":"humidity","output":"always","outputAtStartup":true,"x":110,"y":440,"wires":[["5d167aa.1a49e84","2027fc31.7aab34"],[]]},{"id":"2027fc31.7aab34","type":"function","z":"dde2b0e6.aa168","name":"/ 100","func":"msg.payload = ( msg.payload / 100.0 )\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":680,"wires":[["368e868c.72f33a"]]},{"id":"5d167aa.1a49e84","type":"function","z":"dde2b0e6.aa168","name":"/ 100","func":"msg.payload = {Bad_Feuchte: ( msg.payload / 100.0 )}\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":420,"wires":[["391f3cc9.1cf6a4"]]},{"id":"85bc5941.0fe3e8","type":"function","z":"dde2b0e6.aa168","name":"/ 100","func":"msg.payload = ( msg.payload / 100.0 )\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":740,"wires":[["6bba9e24.dd6f"]]},{"id":"617ed7c2.c5d398","type":"function","z":"dde2b0e6.aa168","name":"/ 100","func":"msg.payload = {BadTemperatur: ( msg.payload / 100.0 )}\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":500,"wires":[["391f3cc9.1cf6a4"]]},{"id":"18e0e1f9.2b591e","type":"deconz-input","z":"dde2b0e6.aa168","name":"Bad Temp","server":"81052cf.8204ed","device":"00:15:8d:00:04:65:9e:1a-01-0402","device_name":"Multisensor 3 Bad : ZHATemperature","state":"temperature","output":"always","outputAtStartup":true,"x":110,"y":500,"wires":[["617ed7c2.c5d398","85bc5941.0fe3e8"],[]]},{"id":"6bba9e24.dd6f","type":"ccu-set-value","z":"dde2b0e6.aa168","name":"set temp","iface":"CUxD","ccuConfig":"c14af3ca.fbc75","rooms":"","roomsRx":"str","functions":"","functionsRx":"str","device":"CUX9002003","deviceRx":"str","deviceName":"","deviceNameRx":"str","deviceType":"","deviceTypeRx":"str","channel":"CUX9002003:1","channelRx":"str","channelName":"","channelNameRx":"str","channelType":"","channelTypeRx":"str","channelIndex":"","channelIndexRx":"str","datapoint":"SET_TEMPERATURE","datapointRx":"str","force":false,"x":580,"y":740,"wires":[]},{"id":"368e868c.72f33a","type":"ccu-set-value","z":"dde2b0e6.aa168","name":"set feuchte","iface":"CUxD","ccuConfig":"c14af3ca.fbc75","rooms":"","roomsRx":"str","functions":"","functionsRx":"str","device":"CUX9002003","deviceRx":"str","deviceName":"","deviceNameRx":"str","deviceType":"","deviceTypeRx":"str","channel":"CUX9002003:1","channelRx":"str","channelName":"","channelNameRx":"str","channelType":"","channelTypeRx":"str","channelIndex":"","channelIndexRx":"str","datapoint":"SET_HUMIDITY","datapointRx":"str","force":false,"x":570,"y":680,"wires":[]},{"id":"391f3cc9.1cf6a4","type":"change","z":"dde2b0e6.aa168","name":"Klima_Innen","rules":[{"t":"set","p":"measurement","pt":"msg","to":"Klima_Innen","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":440,"wires":[["444445b0.f3c80c"]]},{"id":"a5473156.07d27","type":"influxdb out","z":"dde2b0e6.aa168","influxdb":"542a42d0.731ccc","name":"Insert Influx Hausdaten","measurement":"","precision":"","retentionPolicy":"","x":1150,"y":440,"wires":[]},{"id":"444445b0.f3c80c","type":"delay","z":"dde2b0e6.aa168","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"2","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":860,"y":440,"wires":[["a5473156.07d27"]]},{"id":"81052cf.8204ed","type":"deconz-server","z":"","name":"Phoscon-GW","ip":"192.168.103.2","port":"8098","apikey":"AB6C93F0DF","ws_port":"8099","secure":false,"polling":"15"},{"id":"c14af3ca.fbc75","type":"ccu-connection","z":"","name":"CCU3","host":"192.168.103.3","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"192.168.103.2","rpcServerHost":"192.168.103.2","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""},{"id":"542a42d0.731ccc","type":"influxdb","z":"","hostname":"192.168.103.2","port":"8086","protocol":"http","database":"Hausdaten","name":"Influx Raspi 4 Hausdaten","usetls":false,"tls":""}]