HM-SEN-MDIR-SM mit veralteten Brightness Werten

Begonnen von Fredi69, 29 August 2016, 08:26:03

Vorheriges Thema - Nächstes Thema

Fredi69

Wie ich jetzt nach in Betriebnahme erfahren habe sendet der HM-SEN-MDIR-SM Brightness Werte nur bei erkannter Bewegung und nicht zyklisch auch ohne Bewegung.
Damit kann man doch aber nichts ordentlich bei Dunkelheit steuern.
Heute morgen war es schon hell, trotzdem hat der Bewegungsmelder mit der Brightness "0" gesendet und somit mein Licht bei erkannter Bewegung eingeschaltet.
Mit dieser Bewegung kam dann eine neuer Wert von "8", warum auch immer, denn es war bereits hell.
D.h. bei der nächsten Bewegung wird nochmals das Licht eingeschaltet obwohl es bereits nach 09:00 Uhr ist.

Hier mein DOIF
define Bewegungmelder_Strasse_On_DI DOIF
([Aussen_Garten_Bewegungmelder_Strasse:"motion"] and [Aussen_Garten_Bewegungmelder_Strasse:brightness] < 34)
(set Aussen_Garten_Lampe_Wegbeleuchtung on-for-timer 60,set Aussen_Garten_Lampe_Haustuer on-for-timer 60)
attr Bewegungmelder_Strasse_On_DI do always
attr Bewegungmelder_Strasse_On_DI room Steuerung


Hat jemand eine Idee wie man das besser hinbekommt?

Danke
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Brockmann

Vermutlich wird durch "motion" das DOIF getriggert, wenn das brightness-Reading noch nicht aktualisiert wurde.
Wenn Du die Aktion mit einem wait 1 um eine Sekunde verzögerst, sollte das reichen. Dass ankommende brightness-Reading sollte das DOIF in der Zeit erneut triggern und das wait abbrechen (wenn brightness nicht < 34).
Dadurch schaltet sich das Licht allerdings erst eine Sekunde später ein.

Kannst Du den Sensor nicht direkt mit den Switches peeren? Dann sollte er die nur ansteuern, wenn die vorgegebene Helligkeit nicht erreicht wird und Du kannst Dir das DOIF sparen. Alles was da jetzt drin steht, kann der Sensor ja im Prinzip direkt selbst machen, nur ohne das beschriebene Problem.

Wegen dem niedrigen Helligkeitswert: Hast Du das Register brightFilter runtergesetzt? Das kann sonst dafür sorgen, dass Helligkeitswerte nur verzögert ankommen. Es wird immer der niedrigste Wert aus den letzen x Messungen genommen, wobei x=brightfilter. Mit brightfilter=0 wird also immer der letzte Wert verwendet. Bei brightfilter=7 kann er theoretisch bis zu 40 Minuten "alt" sein.

Fredi69

Zitat von: Brockmann am 29 August 2016, 09:18:20
Vermutlich wird durch "motion" das DOIF getriggert, wenn das brightness-Reading noch nicht aktualisiert wurde.
Wenn Du die Aktion mit einem wait 1 um eine Sekunde verzögerst, sollte das reichen. Dass ankommende brightness-Reading sollte das DOIF in der Zeit erneut triggern und das wait abbrechen (wenn brightness nicht < 34).
Dadurch schaltet sich das Licht allerdings erst eine Sekunde später ein.

Danke, hast Du eine Idee wie man ein wait 1 in ein DOIF einbaut?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Brockmann

Zitat von: Fredi69 am 29 August 2016, 10:48:46
Danke, hast Du eine Idee wie man ein wait 1 in ein DOIF einbaut?
attr Bewegungmelder_Strasse_On_DI wait 1

bzw. das ist ein Attribut Deines DOIF, dass Du in der Attributliste direkt auswählen und einstellen kannst (genau wie beim "do always").

Fredi69

Zitat von: Brockmann am 29 August 2016, 11:09:42
attr Bewegungmelder_Strasse_On_DI wait 1

bzw. das ist ein Attribut Deines DOIF, dass Du in der Attributliste direkt auswählen und einstellen kannst (genau wie beim "do always").

Ok, ich hatte dieses Attribut wait von DOIF so verstanden, das mit der Abarbeitung der Befehle gewartet wird.
In meinem Fall müsste aber doch das einlesen der Bedingungen verzögert werden.
Macht das dieses "wait"?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

Brockmann

Zitat von: Fredi69 am 29 August 2016, 11:32:38
Ok, ich hatte dieses Attribut wait von DOIF so verstanden, das mit der Abarbeitung der Befehle gewartet wird.
Das ist auch so. Aber wenn das DOIF während der wait-Zeit seinen Zustand ändert, wird das wait abgebrochen und die Befehle gar nicht ausgeführt.
Dein DOIF wird bei jeder Bewegung zweimal getriggert, einmal durch motion und einmal durch brightness. Wenn der brightness-Trigger als zweiter kommt und zu hoch ist, wäre die Bedingung nicht erfüllt und das DOIF würde seinen Zustand ändern, also das wait unverrichtet abbrechen. Wenn brightness die Bedingung erfüllt bleibt der Zustand und die Aktion wird nach einer Sekunde ausgeführt.