Hilfe zu EnOcean Bewegungsmelder

Begonnen von NoPlan12, 11 Oktober 2018, 16:43:09

Vorheriges Thema - Nächstes Thema

NoPlan12

Hallo,

ich brauche mal etwas Hilfe zu den EnOcean Präsenzmelder so wie hier https://www.enocean.com/de/enocean-module/details/ceiling-mounted-occupancy-sensor-eosc-oem/
Die genaue Bezeichnung EOSCA-W-EO
Mein System fhem (aktuelle Version) auf Raspi3 - USB300 für die Bewegungsmelder. (BM)
Das Einbinden der BM in fhem ging etwas holprig. Liegt aber sicher daran, daß ich ein Neuling in diesem Bereich bin.
Mit Hilfe des BM soll ein Licht angeschalten werden. Das An- sowie das Auschalten habe ich jeweils über ein notify geregelt. Anschalten soll er sofort und Ausschalten wenn eine Minute keine Bewegung mehr registriert wird. Der BM hat für mich einen ausreichenden Wirkungsbereich und reagiert auch sehr schnell, auch bei sehr wenig Licht. Aber nun zu meinen Problemen.
1. Wenn der BM eine Bewegung registriert hat schaltet sich sofort das Licht an. So weit so gut. Aber auch wenn ich mich weiterhin in dem Bereich bewege, schaltet sich das Licht nach 1 Minute aus. Dann kommt das
2. Problem. Ein neuerliches Anschalten passiert erst nach einer weiteren Minute Wartezeit. 
Das Verhalten erfüllt für mich nicht ganz meine Vorstellung welche ich von einem Präsenzmelder habe. Ich gehe aber davon aus, daß ich da irgendwo einen Fehler eingebaut habe. Wäre schön wenn mir da jemand weiter helfen könnte.

Notify zum Anschalten:
defmod FlurLED notify EnO_01851686:on set LED_Flur on
attr FlurLED DbLogExclude .*
attr FlurLED room 1.1 Flur
attr FlurLED webCmd on:off

setstate FlurLED 2018-10-11 16:14:45
setstate FlurLED 2018-10-07 22:30:26 state active

Zum Ausschalten:
defmod LEDFlusAus notify EnO_01851686 defmod mdOff at +00:01 set LED_Flur off
attr LEDFlusAus DbLogExclude .*
attr LEDFlusAus room 1.1 Flur
attr LEDFlusAus webCmd on:off

setstate LEDFlusAus 2018-10-11 16:24:48
setstate LEDFlusAus 2018-10-07 22:30:27 state active

Und dann noch eine Frage zu den BM selbst. Lichtwerte werden von denen nicht gemessen und übertragen? Oder habe ich das nur nicht gefunden?

Vielen Dank

NoPlan12




krikan

Laut Anleitung https://www.enocean.com/de/enocean-module/details/ceiling-mounted-occupancy-sensor-eosc-oem/user-manual-pdf/ kommen nur alle 2 Minuten Bewegungsmeldungen
("Motion Transmission Interval 2 minutes") und wenn man dann 1 Minute nach dem letzten Event ausschaltet, dann geht das Licht eben immer aus. Wobei das Suchmuster im 2. notify vermutlich auch zu unscharf ist.

Gruß, Christian

PS: Bitte benutze Code-Tags für Code; siehe https://forum.fhem.de/index.php/topic,71806.0.html. Danke.

NoPlan12

Hallo krikan,
danke für die schnelle Antwort. Das hatte ich dann wohl übersehen. Aber 2 Minutenintervall passt meines Erachtens nicht so richtig zu "Präsenz". Dann werde ich die Teile wieder verkaufen.

Danke nochmal

NoPlan12 

NoPlan12

Hallo krikan,
kannst du mir einen Bewegungsmelder empfehlen? Also schön wäre mit regelmäßiger Messung und vllt auch Übermittlung von Lichtwerten? Und was meintest du mit unscharf?

NoPlan12

krikan

Zitat von: NoPlan12 am 12 Oktober 2018, 08:11:16
kannst du mir einen Bewegungsmelder empfehlen? Also schön wäre mit regelmäßiger Messung und vllt auch Übermittlung von Lichtwerten?
Sorry, kann ich leider nicht. Andere können dazu vielleicht etwas schreiben.

ZitatUnd was meintest du mit unscharf?

defmod LEDFlusAus notify EnO_01851686 defmod mdOff at +00:01 set LED_Flur off
notify wird bei jedem Event von EnO_01851686 ausgelöst. Führt gefühlt -ohne nähere Analyse- zu ungewünschten Seiteneffekten, weil es eventuell auch noch andere Events als Bewegungsmeldungen gibt. Beim anderen notify ist das Suchmuster eingeschränkt auf  "EnO_01851686:on".

Gruß, Christian

NoPlan12


Stonemuc

Warum löst du die Schaltvorgänge durch ein Notify und nicht durch ein DOIF? Da könnte man doch alles zusammen "verwurschteln".
Ich hab das so in der Ankleide gelöst.
Allerdings hab ich dort das gleiche Problem wie du - ich hab im Prinzip den gleichen dummen Sensor von PEHA  (FU-BM DE). Das Problem an dem Ding ist, dass er erst alle 2 Minuten nach einschalten ein neues "Motion Signal" sendet, wenn Bewegung erkannt wird. Wenn keine Bewegung erkannt wird, sendet er das off Signal erst nach 10 Minuten.
Du kannst das also mit einer Minute so nicht lösen, da du dann immer +/- eine Minute im dunkeln stehts. Ich hab das mit 4 Minuten gelöst - entweder bin ich nach 4 Minuten in der Ankleide fertig mit dem Heraussuchen, oder das Licht geht direkt wieder an. Ich hab noch zusätzliche Parameter wie Rolloposition und Twilight, da unsere Ankleide ein Fenster hat.

DOIF ([Bewegungsmelder_Ankleide:motion] eq "on" and [Rollo_Ankleide:position] > 80) (set Licht_Ankleide An) (set Licht_Ankleide Aus)
DOELSEIF ([Bewegungsmelder_Ankleide:motion] eq "on" and [Rollo_Ankleide:position] < 80 and [myTwilight:light] < 3) (set Rollo_Ankleide Ab, set Licht_Ankleide An) (set Licht_Ankleide Aus)

attr do resetwait
attrr wait 0,240:0,240


Im Bad hab ich einen Eltako FBH, die aber nicht mehr hergestellt werden - der meldet nach einer Minute ohne Bewegungserkennung off - der wäre der richtige für dich. Schau mal auf Ebay oder Ebay Kleinanzeigen. Hier mal ein Link zur Anleitung https://www.eltako.com/fileadmin/downloads/de/_bedienung/FBH_30000450_dt_internet.pdf
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

krikan

Die beiden notifys von NoPLan12 könnte man folgendermaßen in einem notify zusammenfassen, wenn das Suchmuster im 2. gezeigten notify nicht absichtlich so weit gefasst ist:

define FlurLED notify EnO_01851686:on set LED_Flur on;; defmod mdOff at +00:03 set LED_Flur off

oder noch kürzer bei Devices mit on-for-timer-Unterstützung

define notify EnO_01851686:on set LED_Flur on-for-timer 180

mediastudio

Wie schon gesagt ich habe Bewegungsmelder EOSWA-W-EO  die auch normal funktionieren.
Die Reading reagieren  ,,motion" und   ,,state". Das auch wenn es Tag ist.
Ich habe nun versucht die über einen Zeitraum aktiv zu setzen.

##############################################
# Bewegungsmelder Test
##############################################
define EnO_4BS_0189A176 EnOcean 0189A176
attr EnO_4BS_0189A176 IODev TCM310
attr EnO_4BS_0189A176 alias Bewegungsmelder Test
attr EnO_4BS_0189A176 eep A5-07-01
attr EnO_4BS_0189A176 eventMap on:on off:off
attr EnO_4BS_0189A176 group Bewegungsmelder
attr EnO_4BS_0189A176 icon Motion-Detector_2.png
attr EnO_4BS_0189A176 manufID 00B
attr EnO_4BS_0189A176 room Bewegungsmelder
attr EnO_4BS_0189A176 stateFormat Bewegung: motion, Strom: current µA, Spannung: voltage V
#attr EnO_4BS_0189A176 subType lightTempOccupSensor.01
attr EnO_4BS_0189A176 subType occupSensor.01


###############################################
# Hilfsactor Bewegungsmelder Test
###############################################
define Actor_BE_Test dummy
attr Actor_BE_Test alias Aktor Test
attr Actor_BE_Test devStateIcon on:power.on off:power.off
attr Actor_BE_Test eventMap B0:off BI:on
attr Actor_BE_Test group Bewegungsmelder
attr Actor_BE_Test icon Motion-Detector_2.png
attr Actor_BE_Test room Bewegungsmelder


# Das ist die Anweisung für die Zeit wo der Bewegungsmelder aktiv sein soll.

define bewegung DOIF ([EnO_4BS_0189A176:motion] eq "on" and [11:30-23:59]) ((set Actor_BE_Test on) define timer_12 at +00:02:15 set Actor_BE_Test off) DOELSE (set Actor_BE_Test off)

Das funktioniert so auch, aber nur alle 10 Minuten wenn  ,,motion" auf ,,off"  schaltet.
Damit  ,,motion" nach 2 minuten  auf ,,off" schaltet habe ich folgende Anweisung dazu gemacht.

define BEW_0on notify EnO_4BS_0189A176:motion:.on {fhem ("define timer_066 at +00:02:00 setreading EnO_4BS_0189A176 motion off")}

Hammer, dass funktioniert  das Licht wird eingeschaltet und nach der eingestellte Zeit für den Aktor wieder eingeschaltet.
So nun dachte ich das  ist es, es funktioniert, leider gibt es da noch einen Haken.
Wenn nun die eingestellte Zeit abläuft und sich noch jemand im Raum aufhält dann geht das Licht aus und erst nach den nächsten 2 Minuten bei Bewegung wieder an.

Nun brauche ich mal Hilfe, ich gehe davon aus, dass dieser Sensor   EOSWA-W-EO schon bei manchen zufriedenstellend unter FHEM läuft. Was mache ich falsch?

mediastudio

Ich möchte nun eine Lösung geben, die nach einer vordefinierten Zeit den Bewegungsmelder "EOSWA-W-EO" richtig arbeitet lässt.
Ein wesentlicher Punkt ist die eingestellte Ausschaltzeit  ,,define timer_12 at +00:01:59 set Actor_BE_Test  off" .
Da der Bewegungsmelder "EOSWA-W-EO" eine Schalthysterese von 2 Minuten hat, also nach einer Bewegungserkennung  erst nach 2  Minuten eine erneute Bewegung erfasst, ist es wichtig das die Zeit für den auszuschaltenden Aktor minimal unter 2 Minuten liegt. Ich habe hier 1:59 Minuten gewählt. Wenn nun das Licht kurz ausgeht wird es sofort wieder für  1:59 Minuten eingeschaltet.
Will man nun eine längere Einschaltphase haben z.B.  4 Minuten dann  ,,define timer_12 at +00:03:59 set Actor_BE_Test  off" .

Der Zeitraum in dem der Bewegungsmelder aktiv sein soll, kann über " if ($hour >= 16 || $hour >= 24)" gewählt werden.   

## Bewegungsmelder "EOSWA-W-EO" mit Timer und Schaltzeiten ##
define BEW_0on notify EnO_4BS_0189A176:motion:.on {\
if ($hour >= 16 || $hour >= 24) {fhem ("set Actor_BE_Test on ;; define timer_12 at +00:01:59 set Actor_BE_Test off")}\
\
}



SouzA

Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Stonemuc

Zitat von: mediastudio am 29 Oktober 2018, 21:29:39
Ich möchte nun eine Lösung geben, die nach einer vordefinierten Zeit den Bewegungsmelder "EOSWA-W-EO" richtig arbeitet lässt.
Ein wesentlicher Punkt ist die eingestellte Ausschaltzeit  ,,define timer_12 at +00:01:59 set Actor_BE_Test  off" .
Da der Bewegungsmelder "EOSWA-W-EO" eine Schalthysterese von 2 Minuten hat, also nach einer Bewegungserkennung  erst nach 2  Minuten eine erneute Bewegung erfasst, ist es wichtig das die Zeit für den auszuschaltenden Aktor minimal unter 2 Minuten liegt. Ich habe hier 1:59 Minuten gewählt. Wenn nun das Licht kurz ausgeht wird es sofort wieder für  1:59 Minuten eingeschaltet.
Will man nun eine längere Einschaltphase haben z.B.  4 Minuten dann  ,,define timer_12 at +00:03:59 set Actor_BE_Test  off" .

Der Zeitraum in dem der Bewegungsmelder aktiv sein soll, kann über " if ($hour >= 16 || $hour >= 24)" gewählt werden.   

## Bewegungsmelder "EOSWA-W-EO" mit Timer und Schaltzeiten ##
define BEW_0on notify EnO_4BS_0189A176:motion:.on {\
if ($hour >= 16 || $hour >= 24) {fhem ("set Actor_BE_Test on ;; define timer_12 at +00:01:59 set Actor_BE_Test off")}\
\
}

Ist dein obiger Beitrag damit obsolet? Oder müssen die ganzen Hilfskonstrukte oben auch noch sein? Ich verzweifel gerade mit meinem BM - ich dachte ich hatte es im Griff mit meinem DOIF, aber dem scheint nun doch nicht so.
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe