Homebridgemapping cmd ignorieren

Begonnen von snowsquirrel, 18 September 2022, 10:42:34

Vorheriges Thema - Nächstes Thema

snowsquirrel

Hallo,
ich möchte mir in Home.app den status der Fenster anzeigen lassen, d.h. ob sie offen oder geschlossen sind.
Die Fenster verfügen über einen Homematic Fenster Sensor (HM-SEC-SCO), der "open" oder "closed" liefert. Diesen status möchte ich per
attr genericDeviceType window
und
CurrentPosition=state,values=open:100;;closed:0
TargetPosition=CurrentPosition
PositionState=state,values=open:STOPPED;;closed:STOPPED

über Homebridge in der Apple Home.app anzeigen lassen.

Das Anzeigen funktioniert so weit auch problemfrei. Wenn man aber in Home.app auf das entsprechende icon clickt, wird der Wert "TargetPosition" getoggelt, d.h. entweder von 0 vorher auf 100 gesetzt oder von 100 vorher auf 0 gesetzt. Dadurch stimmen "CurrentPosition" und "TargetPosition" nicht mehr überein und das Fenster wird in Home.app als "opening" bzw "closing" angezeigt. Was ich also erreichen möchte, ist, das Commands von Home.app ignoriert werden oder auf ein anderes reading(?) umgeleitet werden. Wie kann ich das erreichen?

(PS: Wer sich über die Zeile
PositionState=state,values=open:STOPPED;;closed:STOPPED
wundert: Ich möchte PositionState eigentlich nur auf einen festen Wert, auf eine Konstante setzen, die Werte "Increasing" und "Decreasing", die hier ebenfalls möglich wären, dann ich mit meinem Sensor nicht abbilden. Allerdings habe ich keine Syntax herausgefunden, wie man hier einfach eine Konstante übergeben kann....)

justme1968

window und die diversen position characteristics sind für motor betriebene fenster und nicht das was du willst.

reine offen/geschlossen sensoren sind vom typ contact bzw. ContactSensor und haben nur die ContactSensorState characteristic. ob das ganze in der home app dann als tür, fenster oder sonstiges dargestellt wird lässt sich dann in home konfigurieren.

HM-SEC-RHS und HM-SEC-SCO werden im übrigen automatisch und passend angelegt ohne das man genericDeviceType oder homebridgeMapping selber angeben muss. weniger ist manchmal mehr.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

snowsquirrel

Super, Du hast mir sehr geholfen, vielen Dank!

"contact" + Anpassen in der Home.app war der entscheidende Hinweis. Das automatische Erkennen funktioniert leider so nicht, da ich einen Zwischenschritt unterschlagen hatte: Ich habe mehrere Fenster per structure zu einem zusammengefasst - es ist mir egal, ob das linke oder rechte Fenster in einem Raum offen ist... Aber per contact funktioniert es auch mit der structure...

snowsquirrel

Zur Vollständigkeit und vielleicht für zukünftige Leser hier nochmals das komplette list:
Es werden mehrere (in diesem Fall 2) Fenster in einer structure zusammengefasst. Wenn eines dieser Fenster offen ist, wird auch die Structure offen angezeigt. Diese gemeinsame Status wird per homebridge an homekit weitergeleitet. In der Home.app kann man ggf. noch einstellen, dass dort ein hübsches Fenster-Symbol verwendet wird.

Internals:
   ATTR       GroupState
   CFGFN     
   CHANGEDCNT 21
   DEF        GroupState EG_SZ_Fenster_links EG_SZ_Fenster_rechts
   FUUID      6326fdf1-f33f-4a82-40dc-9878a0f00287d861
   NAME       EG_SZ_Fenster
   NOTIFYDEV  EG_SZ_Fenster_links,EG_SZ_Fenster_rechts,global
   NR         1627
   NTFY_ORDER 50-EG_SZ_Fenster
   STATE      open
   TYPE       structure
   eventCount 21
   READINGS:
     2022-09-18 14:52:28   LastDevice      EG_SZ_Fenster_links
     2022-09-18 14:52:28   LastDevice_Abs  EG_SZ_Fenster_links
     2022-09-18 14:52:28   state           open
Attributes:
   clientstate_behavior relative
   clientstate_priority open closed
   devStateIcon open:fts_window_1w_open closed:fts_window_1w
   genericDeviceType contact
   homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED
   icon       fts_window_1w
   room       EG_Schlafzimmer,Homekit
   siriName   Fenster Schlafzimmer