Water leak sensor Homebridge-Mapping

Begonnen von snoopersen, 11 Dezember 2023, 13:45:08

Vorheriges Thema - Nächstes Thema

snoopersen

Ich hoffe jetzt nicht unnötig ein neues Thema zu eröffnen, aber die Suche lies mich bisher recht erfolglos zurück.

Folgendes Setup:
Tuya-Water-Leak-Sensor -> Zigbee2MQTT -> FHEM -> Homebridge -> HomeKit

Der Sensor funktioniert und die Signale werden auch bis in Homebridge durchgestellt, grundsätzlich zumindest.
Die Readings des Sensors kommen ursprünglich als true/false durch. Also habe ich dam Teil analog zu den Kontaktsensoren ein Homebridgemapping wie folgt verpasst:

clear ContactSensorState=state,values=true:LEAK_DETECTED;false:LEAK_NOT_DETECTED
(Das ist das, was mir das Netz bisher dazu verriet. GenericDeviceType ist LeakSensor und wird in der Homebridge-Oberfläche, als auch in HomeKit als Wassersensor angezeigt)

Nachdem Homebridge sich beschwerte das true/false keine Nummer ist, konnte ich via EventMap dem Teil eine 1/0 abringen. Diese kommt in Homebridge an und in der Weboberfläche springt die Zeile "ContactSensorState" auch zwischen 1 und 0 hin und her. Allerdings ist Homebridge nicht der Ansicht, das als "Leak Detected" zu interpetieren. Sprich, die Zeile "Leak Detected" bleibt stur bei 0.

Zum Vergleich:
Der LeakSensor führt in Homebridge zu folgender Meldung:
caching: ContactSensorState: 0 (as number; from '0')
Ein Kontaktsensor hingegen zu folgender, mit Interpretation:
cached: 0 (as number; means CONTACT_DETECTED)
Ich stehe also etwas ratlos da und suche den richtigen Weg, der Homberidge beizubringen, wie sie das Ganze zu interpretieren hat.

Vielen Dank.

passibe

#1
Du hast einfach die falsche Characteristic gewählt, die ist hier nicht ContactSensorState, sondern LeakDetected.

Richtig ist also das homebridgeMapping:
clear
LeakDetected=state,values=true:LEAK_DETECTED;false:LEAK_NOT_DETECTED

Das mit der EventMap brauchst du übrigens nicht. Wenn du das so wie oben machst, kriegt HomeBridge das problemlos hin, auch wenn das state-Reading nur "true/false" liefert.

Hoffe das hilft!

Übrigens: Die jeweiligen Service- und Characteristic-Definitions finden sich hier:
https://github.com/homebridge/HAP-NodeJS/blob/latest/src/lib/definitions/ServiceDefinitions.ts
https://github.com/homebridge/HAP-NodeJS/blob/latest/src/lib/definitions/CharacteristicDefinitions.ts

snoopersen

Das ging fix. Vielen Dank!
Da hat mir echt das Auffassungsvermögen gefehlt. Ich probierte allerhand rum mit "LeakSensorState" usw. und stellte nicht die Verknüpfung zum Wording in Homebridge her.

Und ja, es funktioniert direkt mit "true/false". Stunden des Grübelns weil man keine Anfängerfragen im Forum stellen mag. Ich danke Dir sehr! :)
Ich hatte beiden Links durchsucht, wieder und wieder. Offenbar nicht gründlich genug.