EOSWA-W-EO Bewegungsmelder

Begonnen von mediastudio, 13 Juli 2018, 11:12:28

Vorheriges Thema - Nächstes Thema

mediastudio

Ich habe Bewegungsmelder vom Typ: EOSWA-W-EO
die habe ich in FHEM eingebunden

Bewegungsmelder:  subType lightTempOccupSensor.01
define Bewegungsmelder_HWRaum EnOcean  01850CC7
attr Bewegungsmelder_HWRaum  IODev TCM310
attr Bewegungsmelder_HWRaum  eep eep A5-07-01
attr Bewegungsmelder_HWRaum  eventMap B0:off BI:on
attr Bewegungsmelder_HWRaum  manufID 00B
attr Bewegungsmelder_HWRaum  room Bewegungsmelder
attr Bewegungsmelder_HWRaum  subType lightTempOccupSensor.01

Readings:
brightness: 104
motion: on
presence: absent
state: M: on E: 104 P: absent T: 51.0 U: 4.2
temperature: 51.0
voltage: 4.2

Bei  ,,subType  lightTempOccupSensor.01"  ändert sich bei Bewegung
brightness,  temperature,  voltage.
Wenn keine Bewegung registriert wird ist der Wert von  ,,temperature"  0.0
brightness und  voltage  nehmen immer den umgebungswert an.
Wenn Bewegung im  Raum ist ändert sich der Wert   ,,temperature"  auf  51.0
Leider ändert sich der  Wert von ,,motion" nicht, ist  immer ,,on".

Bewegungsmelder:  subType occupSensor.01
define Bewegungsmelder_Eingang  EnOcean  01853821
attr Bewegungsmelder_Eingang   IODev TCM310
attr Bewegungsmelder_Eingang   eep A5-07-01
attr Bewegungsmelder_Eingang   eventMap B0:off BI:on
attr Bewegungsmelder_Eingang   manufID 00B
attr Bewegungsmelder_Eingang   room Bewegungsmelder
attr Bewegungsmelder_Eingang  subType occupSensor.01

Readings:
current:       34.0
motion:        off
sensorType: wall
state:            off
voltage:        4.3

Bei  ,,subType occupSensor.01"  ändert sich bei Bewegung  ,,motion" von off auf on.
,,current" und ,, voltage"  nehmen immer den umgebungswert an.
So wie ich das sehe ist  ,,current" wohl der wert  ,,brightness"  .

Hat jemand eine EOSWA-W-EO im Einsatz?
Ich würde gerne eine Lampe über ,,brightness"  und ,,motion" schalten.


dafex

Servus,

ich hab den EOSC für die Decke sollten sich aber meiner Meinung nach im Betrieb nicht unterscheiden.
Zitat
,,current" und ,, voltage"  nehmen immer den umgebungswert an.
So wie ich das sehe ist  ,,current" wohl der wert  ,,brightness"  .
Was meinst du mit Umgebungswert?
Mit current ist der Ladestrom in µA gemeint. Der ist natürlich von der Helligkeit abhängig.

Bei voltage handelt es sich um die Spannung in V des Supercaps.

Subtype ist: occupSensor.01 da der EOSWA-W-EO keine Temperatur misst.

Wenn du das Heartbeat Signal nicht eingeschaltet hast, wird natürlich nur bei Bewegung, bzw. 10 und 30 min nach der letzen Bewegung ein Signal gesendet.

Hier meine Definition falls es Dir hilft:
defmod 01.sensor.praesenz EnOcean 01842592
attr 01.sensor.praesenz IODev TCM310
attr 01.sensor.praesenz alias Präsenz 01
attr 01.sensor.praesenz comment get myDbLog - all YYYY-MM-DD - 01.sensor.praesenz:motion
attr 01.sensor.praesenz devStateIcon Ja:user_available@green Nein:user_away
attr 01.sensor.praesenz eep A5-07-01
attr 01.sensor.praesenz eventMap on:Ja off:Nein
attr 01.sensor.praesenz genericDeviceType security // für hombridge
attr 01.sensor.praesenz manufID 00B
attr 01.sensor.praesenz room EnOcean
attr 01.sensor.praesenz stateFormat Bewegung: motion, Strom: current µA, Spannung: voltage V
attr 01.sensor.praesenz subType occupSensor.01
attr 01.sensor.praesenz teachMethod 4BS

Eingelernt wurde er bei mir automatisch mit dem richtigen subType. Ich hab nur die eventMap und das stateFormat hinzugefügt

mediastudio

Danke für die Schnelle Antwort,
ich werde Deine Definition ausprobieren, ich habe auch noch zwei EOSC für die Decke,
die reagieren wie die Wandsensoren.
ich gebe sofort Bescheid wenn ich das bei mir ausprobiert habe.
Auf jedem Fall hat mich Deine Aussagen zum Sensor schon mal weitergebracht.

Wassermann52

Ich hab beide Sensor Typen, Ceiling und Wall, und mit den Parametern laufen die auch problemlos.

manufID               00B
subType               occupSensor.01
eep                      A5-07-01
TeachMethod        4BS

bye

NoPlan12

Hallo,
ich versuche mich gerade beim Anlernen eines  EOSCA-W-EO. Das Anlernen am DSB300 hat eigentlich gut geklappt. Bei den Readings stehen dann aber so Werte wie "D0" "D1" "D2" "D3" und weiter "sensor1" "sensor3".  Bei "teach" steht 4BS teach-in is missing.
Eigentlich hatte ich so Werte wie motion und brightness erwartet. Irgendwie komme ich gerade nicht so richtig weiter. Wollte den Melder an sich nutzen um bei bestimmter Helligkeit und Bewegung ein Licht anzuschalten.
Kann mir da jemand weiter helfen?

Jens

NoPlan12

Hallo,

nun bin ich ein ganzes Stück weiter gekommen. Aber irgendwie habe ich immer noch einen Fehler drin. Der Wert bei "brightness" ändert sich nicht. Muß man da noch irgendwas einstellen an dem Sensor oder in Fhem eingeben?

Jens

mediastudio

EOSWA-W-EO
Bei "subType occupSensor.01" werden folgende Readings ausgegeben:

current 2.0 µA       //Ladestrom, verändert sich mit der Helligkeit im Raum
motion on           // on bei Bewegung, ohne Bewegung nach 10 minuten off
sensorType ceiling    // bleibt unverändert
state on           // on bei Bewegung, ohne Bewegung nach 10 minuten off
voltage 3.1       // Betriebsspannung des Sensors
brightness 0      // Dieser Wert ändert sich nicht

Ich habe nun folgendes gemacht;
Wenn der EOSWA-W-EO  "current < 1" und Bewegung erfolgt, dann ist es Dunkel und das Licht wird für 2 minuten eingeschaltet.
Das funktioniert in einem Raum der Tagsüber ausreichend Licht hat um den EOSWA-W-EO aufzuladen.
Eine Betriebsspannung von 3 V sollte immer vorhanden sein. Ich habe drei Räume so ausgelegt.
Der Sommer war gut und es gab keine Probleme, ich hatte "motion" und über die Strommessung "brightness".
Leider sind die Wintermonate meistens nicht in der lage den EOSWA-W-EO aufzuladen.
Der Deckensensor EOSWA-W-EO ist für dunkle Räume besser geeignet, die doppelte Solarfläche zeichnet sich aus.
Ich habe dann mal eine 3V Batterie eingebaut, ist ja so beschrieben. Wenn nun die Batterie eingebaut bleibt,
verändert sich der gemessene Strom "current" nicht mehr, der liegt nun bei 64,0 µA.
Damit habe ich keine Funktion der Helligkeitsmessung über den Strom.
Mit eingebauter Batterie ändert sich nur noch "motion" und "state".
Brightness muss ich nun über eine Uhrzeit steuern "Sun_RiseSet_Timer".

Wenn man den Wert "brightness" auswerten will, dann kann man den "subType lightTempOccupSensor.01" wählen.
Da fallen dann wieder andere "Readings" weg.

Die icon's sind eigene, die muss man anpassen.

##############################################
# Bewegungsmelder Hauseingang_1
##############################################
define Bewegungsmelder_Eingang_1 EnOcean 01844586
attr Bewegungsmelder_Eingang_1 IODev TCM310
attr Bewegungsmelder_Eingang_1 alias Bewegungsmelder Hauseingang 1
attr Bewegungsmelder_Eingang_1 eep A5-07-01
attr Bewegungsmelder_Eingang_1 eventMap on:Ja off:Nein
attr Bewegungsmelder_Eingang_1 group Bewegungsmelder
attr Bewegungsmelder_Eingang_1 icon Motion-Detector_2.png
attr Bewegungsmelder_Eingang_1 manufID 00B
attr Bewegungsmelder_Eingang_1 room Bewegungsmelder
attr Bewegungsmelder_Eingang_1 stateFormat Bewegung: motion, Strom: current µA, Spannung: voltage V
attr Bewegungsmelder_Eingang_1 subType occupSensor.01
#attr Bewegungsmelder_Eingang_1 subType lightTempOccupSensor.01

define FileLog_Bewegungsmelder_Eingang_1 FileLog ./log/Bewegungsmelder_Eingang_1-%Y.log Bewegungsmelder_Eingang_1
attr FileLog_Bewegungsmelder_Eingang_1 logtype text
attr FileLog_Bewegungsmelder_Eingang_1 room Bewegungsmelder

define Lichtan_1 notify Bewegungsmelder_Eingang_1:motion:.on { if (ReadingsVal("Bewegungsmelder_Eingang_1","current",100) < 1 ) {fhem ("set Flur_Eingang_Actor,Actor_BE_Eingang_1 on ;; define timer_3 at +00:02:00 set Flur_Eingang_Actor,Actor_BE_Eingang_1 off")}}
#define Lichtaus_1 notify Bewegungsmelder_Eingang_1:motion:.off.* { if (ReadingsVal("Bewegungsmelder_Eingang_1","temperature",50) < 50 ) { fhem ("set Actor_BE_Eingang_1 off")}}

###### Als Anzeige ob der Aktor geschaltet hat  ######
# Hilfsactor Bewegungsmelder Hauseingang_1
#############################################
define Actor_BE_Eingang_1 dummy
attr Actor_BE_Eingang_1 alias Aktor Hauseingang 1
attr Actor_BE_Eingang_1 devStateIcon on:power.on off:power.off
attr Actor_BE_Eingang_1 eventMap B0:off BI:on
attr Actor_BE_Eingang_1 group Bewegungsmelder
attr Actor_BE_Eingang_1 icon Motion-Detector_2.png
attr Actor_BE_Eingang_1 room Bewegungsmelder

Wenn da jemand eine praktikable Lösung mit im Sensor eingebauter Batterie hat, dann währe ich
für eine Information dankbar.

mediastudio


kassi

Eine Anmerkung zu EOSC und EOSW.

Neue Geräte (seit 2016) rapportieren NICHT mehr den Ladestrom, da der Ladestrom (und damit die Beleuchtung) nicht im EEP definiert ist.
Der Grund ist, dass die "eigenmächtige" Erweiterung von EEP (durch selbst definierte Belegung ungenutzter Bits) seit 2016 nicht mehr erlaubt ist.

Siehe:
https://www.enocean.com/de/enocean-module/details/wall-mounted-occupancy-sensor-eosw-oem/PCN_EOSWx-W-EO-2160411_01.pdf/

Viele Grüße,
Matthias

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")}\
\
}

mediastudio

Bewegungsmelder "EOSWA-W-EO" forschen und testen.
Wenn ich mich in einem Raum aufhalte, möchte ich nicht das sich das Licht ausschaltet während ich noch im Raum bin.
Ich habe hier eine Schaltung die nach ca.  4 Minuten das Licht ausschaltet wenn der Bewegungsmelder keine Bewegung mehr erfasst.
Ich definiere einen Taktgeber der automatisch immer nach 2 Minuten einen Zähler um 1 runterzählt.
Wenn der Bewegungsmelder sich nun meldet dann setzt er den Zähler auf 2. Da der Taktgeber nicht synchron mit dem
Bewegungsmelder "EOSWA-W-EO" läuft kann er irgendwann schon den Zähler auf 1 zetzen. Da aber nach 2 Minuten der Bewegungsmelder
den Zähler wieder auf 2 setzt, bleibt das Licht an. Erst wenn keine Bewegung mehr erfasst wird kann der Taktgeber den Zähler bis
auf  ,,null" runterzählen und dann wird das Licht ausgeschaltet. Das sind dann maximal 4 Minuten weil   2 Impulse a. 2 Minuten erforderlich werden. 


2 festgelegte Zeiten wo der Bewegungsmelder aktiv sein soll  " $hour >= 17 || $hour >= 24 || $hour >= 6 && $hour < 8"
  abhängig vom Zustand der Aktoren  "  Value("Tischleuchte_Licht_Actor") eq "off" && Value("Wandlampen_Actor") eq "off" "
  und abhängig vom Zähler  " ($Wert > 0) "

###############################################
# 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

##############################################
# Bewegungsmelder "EOSWA-W-EO" 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 occupSensor.01
setreading EnO_4BS_0189A176 counter 0

###########################
# Taktgeber alle 2 Minuten 
###########################
define Counter_BWM dummy
define counter_down DOIF ([+120]) (setreading Counter_BWM state off)
attr counter_down do always

## Trigger Bewegungsmelder "EOSWA-W-EO" mit Timer und Schaltzeiten ##
define zaehler_up notify EnO_4BS_0189A176:motion:.on {\
   my $Wert=ReadingsVal("EnO_4BS_0189A176","counter",0);;\
   $Wert = $Wert+2;; if ( $Wert > 2 ) {$Wert=2};;\
   fhem("setreading EnO_4BS_0189A176 counter $Wert");;\
   if (($hour >= 17 || $hour >= 24 || $hour >= 6 && $hour < 8 ) && \
   Value("Tischleuchte_Licht_Actor") eq "off" && Value("Wandlampen_Actor") eq "off" && ($Wert > 0))\
   {fhem ("set Actor_BE_Test on")};;\
\
}

## Taktgeber "counter_down" setzt den Wert von "$Wert" um 1 zurück ##
define zaehler_down notify Counter_BWM:off {\
   my $Wert=ReadingsVal("EnO_4BS_0189A176","counter",0);;\
   $Wert = $Wert-(1);;\
   fhem("setreading EnO_4BS_0189A176 counter $Wert");;\
   if ($Wert <= 0) {fhem("setreading EnO_4BS_0189A176 counter 0 ;; set Actor_BE_Test off")};;\
\
}


krikan

Genügt es in diesem Fall nicht ein simples notify mit einem Schaltbefehl per on-for-timer zu nutzen? Wo ist der Vorteil obigen Konstruktes?

Beispielsweise (ungetestet):
define Licht notify EnO_4BS_0189A176:motion:.on {if (Value("Tischleuchte_Licht_Actor") eq "off" && Value("Wandlampen_Actor") eq "off") {fhem ("set Actor_BE_Test on-for-timer 250")}}

Die Ausführungszeiten des notify kann man mit dem Attribut https://fhem.de/commandref.html#disabledForIntervals beschränken.

Gruß, Christian

mediastudio

Ich habe das schon mal so probiert, bei mir geht dann das Licht nicht mehr aus, es kommt kein "Actor_BE_Test off"

krikan

Bei EnOcean-Devices muss in bestimmten Fällen das Attribut eventMap passend gesetzt werden, damit on-for-timer funktioniert: https://wiki.fhem.de/wiki/EnOcean_Starter_Guide#Was_muss_man_beim_Einsatz_der_.22set_extensions.22_.28on-for-timer.2C_on-till.2C_....29_beachten.3F

Gruß, Christian

mediastudio

Leider geht bei dieser Konstellation das Licht nicht mehr aus, auch wenn ich testweise 10 oder 30 sekunden eintrage.

on-tor-timer: attr <device> eventMap on-for-timer:on-for-timer BI:on B0:off

###############################################
# 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
attr Actor_BE_Test eventMap on-for-timer:on-for-timer BI:on B0:off


define Licht notify EnO_4BS_0189A176:motion:.on {if (Value("Tischleuchte_Licht_Actor") eq "off" && Value("Wandlampen_Actor") eq "off") {fhem ("set Actor_BE_Test on-for-timer 250")}}

Diese Anweisung ist zwar kurz aber funktioniert bei mir nicht, eventuel habe ich ja da einen Fehler.
Meine Konstelation ist zwar umfangreicher aber es funktioniert einwandfrei das Licht geht erst aus wenn sich keiner mehr im Raum aufhält.