FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Loredo am 18 Februar 2014, 00:12:01

Titel: Structure für Fenster mit 2 Sensoren
Beitrag von: Loredo am 18 Februar 2014, 00:12:01
Hallo,


momentan kombiniere ich den Status zweier Fenstersensoren über ein Notify zu einem Dummy und erhalte dadurch neben "open" und "closed" auch den Status "tilted" ähnlich wie bei den Sensoren für den Fenstergriff.


Jetzt habe ich mir schon öfters den Kopf darüber zerbrochen, dass es doch mit einer Structure auch gehen müsste. Die Logik wie man die Structure anlegt ist für mich aber ein Buch mit sieben Siegeln, ich habe andere immer nur durch planloses herum probieren hinbekommen.


Hat jemand schon einmal solch eine Structure erstellt? Bin doch sicher nicht der einzige, der elegant(er) den Status seiner Terrassentür feststellen möchte :-)



Gruß
Julian
Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: betateilchen am 18 Februar 2014, 10:56:35
Das funktioniert wie jede andere structure auch. Aber ob es wirklich sehr hilfreich ist?


Sensor 1 offen + Sensor 2 offen => structure = offen
Sensor 1 offen + Sensor 2 tilted => structure = unknown
Sensor 1 offen + Sensor 2 zu = > structure = unknown

Sensor 1 tilted + Sensor 2 offen => structure = unknown
Sensor 1 tilted + Sensor 2 tilted => structure = tilted
Sensor 1 tilted + Sensor 2 zu => structure = unknown

Sensor 1 zu + Sensor 2 offen => structure = unknown
Sensor 1 zu + Sensor 2 tilted => structure = unknown
Sensor 1 zu + Sensor 2 zu => structure = unknown


Du bekommst also nur ein wirklich verwertbares Ergebnis, wenn beide Sensoren den gleichen Zustand haben.
Beim state = "unknown" weißt Du aber nicht ohne weiteres, welcher der beiden Sensoren nicht geschlossen ist.
Du musst also auf jeden Fall noch Zusatzinformationen auswerten, um nutzbare Infos zu erhalten.

define st_Terrassentuer structure Terrassentuer <nameSensor1> <nameSensor2

Mehr ist das nicht.

Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: Loredo am 18 Februar 2014, 11:19:18
Zitat von: betateilchen am 18 Februar 2014, 10:56:35

Sensor 1 offen + Sensor 2 offen => structure = offen
Sensor 1 offen + Sensor 2 tilted => structure = unknown
Sensor 1 offen + Sensor 2 zu = > structure = unknown

Sensor 1 tilted + Sensor 2 offen => structure = unknown
Sensor 1 tilted + Sensor 2 tilted => structure = tilted
Sensor 1 tilted + Sensor 2 zu => structure = unknown

Sensor 1 zu + Sensor 2 offen => structure = unknown
Sensor 1 zu + Sensor 2 tilted => structure = unknown
Sensor 1 zu + Sensor 2 zu => structure = unknown


Du bekommst also nur ein wirklich verwertbares Ergebnis, wenn beide Sensoren den gleichen Zustand haben.
Beim state = "unknown" weißt Du aber nicht ohne weiteres, welcher der beiden Sensoren nicht geschlossen ist.
Du musst also auf jeden Fall noch Zusatzinformationen auswerten, um nutzbare Infos zu erhalten.

define st_Terrassentuer structure Terrassentuer <nameSensor1> <nameSensor2

Mehr ist das nicht.


Das ist ja die Sache. Die Sensoren kennen ja keinen Status "tilted", ich interpretiere die selbst daraus dass ich weiß, welcher der beiden Sensoren gerade offen und geschlossen ist (ich habe entsprechend einen Sensor oben am Fenster und einen unten; ist nur der obere offen, ist das Fenster gekippt).


Schade, ich dachte das könnte ich eleganter mit einer Structure lösen :-(
Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: betateilchen am 18 Februar 2014, 11:24:48
achso - ich dachte, Du hast zwei Türflügel ;) Dann ist die Sache doch ganz einfach, weil es nur drei Möglichkeiten gibt und nicht neun.

Zustand 1: Sensor unten geschlossen + Sensor oben geschlossen => structure geschlossen
Zustand 2: Sensor unten geschlossen + Sensor oben offen => structure unknown
Zustand 3: Sensor unten offen + Sensor oben offen => structure offen

Wenn Dir das "unknown" nicht gefällt (das besagt letztendlich "gekippt") dann arbeitest Du einfach mit eventMap und schreibst das um. Die Fälle 1+3 sind ja bereits eindeutig.

Übrigens:
Zustand 4: Sensor unten offen + Sensor oben geschlossen => Tür kaputt  :P

Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: Loredo am 18 Februar 2014, 11:42:02
Zitat von: betateilchen am 18 Februar 2014, 11:24:48
achso - ich dachte, Du hast zwei Türflügel ;)


Hab ich teilweise auch, aber ich wollte es mir leicht machen  ;D


Zitat von: betateilchen am 18 Februar 2014, 11:24:48Wenn Dir das "unknown" nicht gefällt (das besagt letztendlich "gekippt") dann arbeitest Du einfach mit eventMap und schreibst das um.


Ja das ist der springende Punkt. Okay, also mit eventMap. Dachte ich hätte was übersehen und structure würde da etwas eleganteres bieten.

Zitat von: betateilchen am 18 Februar 2014, 11:24:48Übrigens: Zustand 4: Sensor unten offen + Sensor oben geschlossen => Tür kaputt  :P


*grins*  ;D
Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: betateilchen am 18 Februar 2014, 11:58:45
Zitat von: Loredo am 18 Februar 2014, 11:42:02Okay, also mit eventMap. Dachte ich hätte was übersehen und structure würde da etwas eleganteres bieten.

ähm... woher soll structure denn wissen, was es Dir bedeutet, dass die beiden Sensoren unterschiedliche Werte liefern? Genau dafür ist doch eventMap die vorgesehene und von Dir gesuchte "elegante" Lösung.
Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: Loredo am 18 Februar 2014, 12:06:15
Zitat von: betateilchen am 18 Februar 2014, 11:58:45
ähm... woher soll structure denn wissen, was es Dir bedeutet, dass die beiden Sensoren unterschiedliche Werte liefern? Genau dafür ist doch eventMap die vorgesehene und von Dir gesuchte "elegante" Lösung.


Ja mit 3 unterschiedlichen Stati klappt das ja noch, weil ich unknown irgendwie selbst interpretieren (und umschreiben) kann.
Wäre aber toll, wenn man beliebige Stati zu einer beliebigen Anzahl bestimmter Stati zusammenfassen könnte. Manchmal ist die Welt eben nicht nur schwarz oder weiß ;-)


Für die Fenster Geschichte kann ich aber damit leben.
Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: betateilchen am 18 Februar 2014, 12:17:01
ZitatWäre aber toll, wenn man beliebige Stati zu einer beliebigen Anzahl bestimmter Stati zusammenfassen könnte.

geht bestimmt auch irgendwie, aber sowas hab ich noch nicht gebraucht.
Titel: Antw:Structure für Fenster mit 2 Sensoren
Beitrag von: justme1968 am 18 Februar 2014, 12:32:41
mit den _map attributen kannst du pro device jeweils den status für eine bestimmte structure auf etwas mappen was du dann in der structure brauchen kannst. das funktioniert aber nur pro device und nicht um eine kombination zu einem ergebnis zu verknüpfen.

da bei dir aber nicht alle kombinatioen auftreten können geht es in diesem fall trotzdem. du musst nur mit _map im sensor oben das open auf tilted ummappen und in der structure die drei zustände open, tilted, closed in dieser reihenfolge in clientstate_priority verwenden:define Fenster structure Fenster sensorOben sensorUnten
attr Fenster clientstate_behavior relative
attr Fenster  clientstate_priority open tilted closed
attr sensorOben Fenster_map open:tilted



das open vom unteren sensor überschreibt dann das tiltet das wiederum das closed überschreibt.

gruss
  andre