FHEM Forum

FHEM => Automatisierung => Thema gestartet von: holzwurm83 am 27 Juli 2014, 20:29:02

Titel: Notify für Fensterkontakte
Beitrag von: holzwurm83 am 27 Juli 2014, 20:29:02
Hallo zusammen,

ich habe mir pro Fenster zwei Sensoren eingebaut mit denen ich den Status der Fenster abfragen und darstellen möchte.

Wollte dafür ein Dummy und eine notify anlegen. Bei dem notify tue ich mir noch etwas schwer und hoffe auf eure Unterstützung.

Folgendes muss immer abgefragt werden um den Status zu definieren:

Readings der Sensoren:

Sensor 1 = 51200 & Sensor 2 = 0  => Fenster ist zu
Sensor 1 = 0 & Sensor 2 = 51200  => Fenster ist gekippt
Sensor 1 = 0 & Sensor 2 = 0  => Fenster ist offen

Wenn es dafür einen einfacheren und besseren weg gibt bin ich dafür offen!

Danke für eure Hilfe!
Titel: Antw:Notify für Fensterkontakte
Beitrag von: justme1968 am 27 Juli 2014, 21:52:59
du kannst dazu seine structure verwenden in der du beide sensoren zusammen fasst. mit den _map attributen mappst du die beiden zustände des  einen auf closed und tilted und die des anderen auf closed und open.

in der structure verwendest du clientstate_priority um die rangfolge von closed, tilted und open festzulegen.

ein beispiel findest du hier:  http://forum.fhem.de/index.php?topic=20404.msg139577#msg139577 und hier noch eins: http://forum.fhem.de/index.php/topic,23495.msg167659.html#msg167659

gruss
  andre
Titel: Antw:Notify für Fensterkontakte
Beitrag von: holzwurm83 am 28 Juli 2014, 20:22:57
Hallo Andre,

danke für das Feedback. Sollte ja eigentlich auch einfach gehen, aber irgendwie wohl nicht bei mir. :) Die Device kann ich nur mit eventMap mappen. Mit Fenster_Map ändert sich da nichts bei mir.

In der Stucture bekomme ich immer nur undefined.

Kann es sein das es daran liegt, dass der Sensor nur ein "sensor" Reading erzeugt und kein "state"

Hier noch meine cfg:

[define HMW_Sen_SC_12_DR_JEQ0545703_03 HM485 000094E5_03
attr HMW_Sen_SC_12_DR_JEQ0545703_03 Fenster Fenster_WZ_OST
attr HMW_Sen_SC_12_DR_JEQ0545703_03 Fenster_map sensor_51200:closed sensor_0:tilied
attr HMW_Sen_SC_12_DR_JEQ0545703_03 firmwareVersion 3.01
attr HMW_Sen_SC_12_DR_JEQ0545703_03 group Fenster
attr HMW_Sen_SC_12_DR_JEQ0545703_03 model HMW_Sen_SC_12_DR
attr HMW_Sen_SC_12_DR_JEQ0545703_03 room HM485
attr HMW_Sen_SC_12_DR_JEQ0545703_03 serialNr JEQ0545703
attr HMW_Sen_SC_12_DR_JEQ0545703_03 subType sensor
define HMW_Sen_SC_12_DR_JEQ0545703_04 HM485 000094E5_04
attr HMW_Sen_SC_12_DR_JEQ0545703_04 Fenster Fenster_WZ_OST
attr HMW_Sen_SC_12_DR_JEQ0545703_04 Fenster_map sensor_51200:open sensor_0:closed
attr HMW_Sen_SC_12_DR_JEQ0545703_04 firmwareVersion 3.01
attr HMW_Sen_SC_12_DR_JEQ0545703_04 group Fenster
attr HMW_Sen_SC_12_DR_JEQ0545703_04 model HMW_Sen_SC_12_DR
attr HMW_Sen_SC_12_DR_JEQ0545703_04 room HM485
attr HMW_Sen_SC_12_DR_JEQ0545703_04 serialNr JEQ0545703
attr HMW_Sen_SC_12_DR_JEQ0545703_04 subType sensor


define Fenster_WZ_OST structure Fenster HMW_Sen_SC_12_DR_JEQ0545703_03 HMW_Sen_SC_12_DR_JEQ0545703_04
attr Fenster_WZ_OST clientstate_behavior relative
attr Fenster_WZ_OST clientstate_priority open tilted closed
attr Fenster_WZ_OST group Fenster
attr Fenster_WZ_OST room Wohnzimmer

Titel: Antw:Notify für Fensterkontakte
Beitrag von: justme1968 am 28 Juli 2014, 20:28:45
ja. structure arbeitet hier nur mit state.

schau mal ob du mit stateFormat den state vom reading sensor nach STATE bekommst und es dann geht.

wenn nicht kannst du je einen readingsProxy dafür verwenden. so wie im 1-wire beispiel.

einfacher im sinn von weniger devices und weniger code geht es wenn du direkt mit notifys arbeitest und alles von hand machst.

der weg über structure und die nötige vorbereitung ist nicht unbedingt komplizierter wenn du genau weisst was wo warum passiert :)

gruss
  andre
Titel: Antw:Notify für Fensterkontakte
Beitrag von: Damian am 28 Juli 2014, 21:01:45
Zitat von: justme1968 am 28 Juli 2014, 20:28:45
ja. structure arbeitet hier nur mit state.

schau mal ob du mit stateFormat den state vom reading sensor nach STATE bekommst und es dann geht.

wenn nicht kannst du je einen readingsProxy dafür verwenden. so wie im 1-wire beispiel.

einfacher im sinn von weniger devices und weniger code geht es wenn du direkt mit notifys arbeitest und alles von hand machst.

der weg über structure und die nötige vorbereitung ist nicht unbedingt komplizierter wenn du genau weisst was wo warum passiert :)

gruss
  andre

Oder einfach so:

define di_Fenster
DOIF ([Sensor1:sensor] == 51200 and [Sensor2:sensor] == 0)
  (set Fenster zu)
DOELSEIF ([Sensor1:sensor] == 0 and [Sensor2:sensor] == 51200)
  (set Fenster gekippt)
DOELSEIF ([Sensor1:sensor] == 0 and [Sensor2:sensor] == 0)
  (set Fenster offen)


Fenster ist hier ein dummy. "sensor" soll der Reading sein, wo deine Information steht.

Gruß

Damian
Titel: Antw:Notify für Fensterkontakte
Beitrag von: holzwurm83 am 30 Juli 2014, 20:21:11
Hallo Jungs,

danke schon mal für eure Hilfe!

@ Andre:
Zitatschau mal ob du mit stateFormat den state vom reading sensor nach STATE bekommst und es dann geht.
wie meinst du das genau? Meinst du vom Sensor in die Structure, oder im Sensor selbst? Ein STATE ist im sensor vorhanden und das Sensor reading wird dort auch geschrieben.

@ Damian:
Habe deine Variante auch getestet. Der Staus zu und gekippt funktionieren. Nur der Status offen nicht.
define Fenster2 dummy
attr Fenster2 room Wohnzimmer
define di_Fenster DOIF ([HMW_Sen_SC_12_DR_JEQ0545703_05:sensor] == 51200 and [HMW_Sen_SC_12_DR_JEQ0545703_06:sensor] == 0)   (set Fenster2 zu)
DOELSEIF ([HMW_Sen_SC_12_DR_JEQ0545703_05:sensor] == 0 and [HMW_Sen_SC_12_DR_JEQ0545703_06:sensor] == 51200)   (set Fenster2 gekippt)
DOELSEIF ([HMW_Sen_SC_12_DR_JEQ0545703_05:sensor] == 0 and [HMW_Sen_SC_12_DR_JEQ0545703_06:sensor] == 0)   (set Fenster2 offen)
Titel: Antw:Notify für Fensterkontakte
Beitrag von: Damian am 30 Juli 2014, 20:45:18
Zitat von: holzwurm83 am 30 Juli 2014, 20:21:11
Hallo Jungs,

danke schon mal für eure Hilfe!

@ Andre:wie meinst du das genau? Meinst du vom Sensor in die Structure, oder im Sensor selbst? Ein STATE ist im sensor vorhanden und das Sensor reading wird dort auch geschrieben.

@ Damian:
Habe deine Variante auch getestet. Der Staus zu und gekippt funktionieren. Nur der Status offen nicht.
define Fenster2 dummy
attr Fenster2 room Wohnzimmer
define di_Fenster DOIF ([HMW_Sen_SC_12_DR_JEQ0545703_05:sensor] == 51200 and [HMW_Sen_SC_12_DR_JEQ0545703_06:sensor] == 0)   (set Fenster2 zu)
DOELSEIF ([HMW_Sen_SC_12_DR_JEQ0545703_05:sensor] == 0 and [HMW_Sen_SC_12_DR_JEQ0545703_06:sensor] == 51200)   (set Fenster2 gekippt)
DOELSEIF ([HMW_Sen_SC_12_DR_JEQ0545703_05:sensor] == 0 and [HMW_Sen_SC_12_DR_JEQ0545703_06:sensor] == 0)   (set Fenster2 offen)

Warum benennst du dir die Sensoren nicht um, z. B. : "rename MW_Sen_SC_12_DR_JEQ0545703_05 Sensor5", dann hast du weniger zu tippen.

Wenn die ersten Fälle funktionieren, dann muss auch der dritte funktionieren, wenn die Zustände der Sensoren so sind, wie du annimmst, es sei denn da steht noch was anderes außer 0.

Gruß

Damian
Titel: Antw:Notify für Fensterkontakte
Beitrag von: holzwurm83 am 30 Juli 2014, 22:06:29
ZitatWarum benennst du dir die Sensoren nicht um, z. B. : "rename MW_Sen_SC_12_DR_JEQ0545703_05 Sensor5", dann hast du weniger zu tippen.
Da bin ich Wohl zu faul. ;D Ich kopier den Namen einmal beim anlegen und dann brauche ich ihn im gründe auch nicht.

Zitates sei denn da steht noch was anderes außer 0
Denkfehler! Es steht 51200 bei beiden und nicht 0  :)
Titel: Antw:Notify für Fensterkontakte
Beitrag von: Damian am 31 Juli 2014, 17:48:03
Zitat von: holzwurm83 am 30 Juli 2014, 22:06:29
Da bin ich Wohl zu faul. ;D Ich kopier den Namen einmal beim anlegen und dann brauche ich ihn im gründe auch nicht.
Denkfehler! Es steht 51200 bei beiden und nicht 0  :)

Zukünftig wirst du auch keinen Dummy für reine Anzeige brauchen, den Zustand kannst du im Modul selbst definieren, dann wird schon ausreichen:

define di_Fenster
DOIF ([Sensor1:sensor] == 51200 and [Sensor2:sensor] == 0)
DOELSEIF ([Sensor1:sensor] == 0 and [Sensor2:sensor] == 51200)
DOELSEIF ([Sensor1:sensor] == 51200 and [Sensor2:sensor] == 51200)

attr di_Fenster cmdState Fenster zu|Fenster gekippt|Fenster offen


Gruß

Damian

Titel: Antw:Notify für Fensterkontakte
Beitrag von: holzwurm83 am 31 Juli 2014, 19:38:34
Das ist ja cool. Das geht dann mit der nächsten Version? Ich muss schon sagen, deine Module sind sehr User freundlich.
Titel: Antw:Notify für Fensterkontakte
Beitrag von: Puschel74 am 31 Juli 2014, 19:56:42
Hallo,

Zitat von: holzwurm83 am 31 Juli 2014, 19:38:34
Ich muss schon sagen, deine Module sind sehr User freundlich.

Aber nur für User die nicht herkömmlich aka "zu Fuß" Programmieren wollen  ;D

Grüße
Titel: Antw:Notify für Fensterkontakte
Beitrag von: Rince am 03 August 2014, 09:24:08
ZitatIch muss schon sagen, deine Module sind sehr User freundlich.
ZitatAber nur für User die nicht herkömmlich aka "zu Fuß" Programmieren wollen

Ich kann mir nicht helfen, aber Perl Programmierer basteln auch nicht alles zu Fuß sondern benutzen Module wo es geht.
Macht die Programmierung schneller und weniger fehleranfällig.
Dafür das das Endprodukt langsamer ist, gibt es schnellere CPUs und RAM.

Ich verstehe nicht warum Perl Module toll sind, warum fhem viele tolle Module hat, und ausgerechnet ein fhem Modul welches die fhem Programmierung vereinfacht schlecht sein soll?
Titel: Antw:Notify für Fensterkontakte
Beitrag von: marvin78 am 03 August 2014, 09:27:49
Es hat doch niemand gesagt, dass das schlecht ist. Trotzdem erledige ich viele dieser Aufgaben lieber mit einer Perl sub in der myUtils o.ä. weil ich da noch flexibler bin.

Das heißt nicht, dass DOIF per se schlecht ist. Es ist bloß nicht für jeden gleich gut geeignet. Mehr hat Puschel74 nicht gesagt.
Titel: Antw:Notify für Fensterkontakte
Beitrag von: holzwurm83 am 31 August 2014, 23:12:19
Hallo Damian,

ist das schon möglich?

Zukünftig wirst du auch keinen Dummy für reine Anzeige brauchen
Titel: Antw:Notify für Fensterkontakte
Beitrag von: Damian am 31 August 2014, 23:16:07
Zitat von: holzwurm83 am 31 August 2014, 23:12:19
Hallo Damian,

ist das schon möglich?

Zukünftig wirst du auch keinen Dummy für reine Anzeige brauchen

Ja.

Für weitere Infos siehe: http://fhem.de/commandref_DE.html#DOIF

Gruß

Damian