FHEM Forum

FHEM - Hausautomations-Systeme => EnOcean => Thema gestartet von: mediastudio am 13 Juli 2018, 11:12:28

Titel: EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 13 Juli 2018, 11:12:28
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.

Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: dafex am 13 Juli 2018, 12:14:36
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 13 Juli 2018, 14:10:53
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.
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: Wassermann52 am 09 August 2018, 15:03:16
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 05 Oktober 2018, 20:18:33
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 05 Oktober 2018, 22:15:43
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 25 Oktober 2018, 18:15:48
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.
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 25 Oktober 2018, 18:22:21
Hier ein Bild
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: kassi am 27 Oktober 2018, 10:33:30
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 29 Oktober 2018, 21:32:14
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")}\
\
}
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 02 November 2018, 08:40:56
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")};;\
\
}

Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: krikan am 02 November 2018, 11:45:00
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 02 November 2018, 13:32:57
Ich habe das schon mal so probiert, bei mir geht dann das Licht nicht mehr aus, es kommt kein "Actor_BE_Test off"
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: krikan am 02 November 2018, 14:18:53
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
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 04 November 2018, 16:55:01
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.
   
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 05 Februar 2019, 17:26:25
Hallo mediastudio,
ich versuche mich gerade an deinem Programmvorschlag für die Bewegungsmelderschaltung. Die würde bei mir mit ein paar ganz kleinen Änderungen richtig super passen. Leider kommt bei mir nach der Eingabe für den "Trigger Bewegunsgmelder..." folgende Fehlermeldung:
Experimental aliasing via reference not enabled at (eval 20348) line 1.
Damit kann ich gerad nix anfangen. Kannst du mir sagen, was ich da jetzt falsch gemacht habe.
Vielleicht noch eins. Ich habe die EOSCA-W-EO . Ich hatte aber gehofft, daß das nicht ausschlaggebend ist.
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 05 Februar 2019, 17:28:24
Hallo mediastudio,
mist auf den falschen Button gedrückt.
Ich wollte nopch sagen, daß ich natürlich versucht habe den Befehl entsprechend auf meine Gegebenheiten anzupassen.

Gruß Jens
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: Svenergy am 05 Februar 2019, 19:55:47
Kleine Randfrage zum Aufbau (deine Fehlermeldung kann ich leider nicht beantworten)

Ist dein Dummy oder der virtuelle Schalter dahinter auch in den Empfänger eingelernt? FHEM reagiert ja hierbei als Sender mit eigener ID und muss dem Empfänger mitgeteilt werden.

Ich habe ein EOSC in einem KiZi und einen EOSW im anderen KiZi als "Licht-aus-Schalter" nach 3Min. Die Konstellation ist bei mir so ähnlich gestaltet wie im Code oben nur leider viel verschachtelter mit Notify auf Dummy mit timer, der wieder einen notify erzeugt der dann den virtuellen Schalter drückt. Funktioniert aber super (nur manchmal spielen die Kinder mit zu wenig Bewegung, dann geht halt das Licht aus :-) )

Grüße Svenergy
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 06 Februar 2019, 16:44:32
Hallo Svenergy,

ich habe 3 EOSCA-W-EO für 3 Zimmer im "Einsatz". Nachdem es mit den preiswerten BW nicht so erfolgreich war hatte ich die entdeckt und fand die vom Gedanke (wenig Energieverbrauch) sehr interesant. Leider hatte ich das mit den "nur alle 2 Minuten Signal senden" überlesen. Was ich damit wollte war an sich einfach (dachte ich) Bewegung im Raum - Licht an - keine Bewegung mehr - Licht aus. Wobei es sich bei einem Schalter und ein "EspLEDController" handelt und die anderen beiden Schalter ein Sonoff Basic und der andere Schalter ein Shelly ist.
Das Anschalten geht bei allen drei Schaltern über ein ganz normales notify.

defmod LEDFlur notify EnO_01851686:on set LED_Flur on
attr LEDFlur DbLogExclude .*
attr LEDFlur room 1.1 Flur,EnOcean
setstate LEDFlur 2019-02-06 16:26:14
setstate LEDFlur 2019-02-05 19:54:55 state active

Das funktioniert eigentlich sehr zuverlässig. Für das Ausschalten habe ich folgendes verwendet

defmod FlurLedAus notify EnO_01851686 defmod mdOff at +00:02 set LED_Flur off
attr FlurLedAus DbLogExclude .*
attr FlurLedAus room 1.1 Flur,EnOcean
setstate FlurLedAus 2019-02-06 16:33:15
setstate FlurLedAus 2019-02-05 20:08:46 state active

Das war nicht ganz so zuverlässig. Dann habe ich die Lösung von mediastudio gesehen. Das hörte sich so an wie es immer wollte. Also immer an, keine An-AUS Phasen udn dann auch nocheine zeitliche Aktivierung. Deswegen habe ich das einfach versucht bei mir so einzugeben. Ich meine die Lösung vom 2.11.2018 Leider bin ich einmal bei der Zeile "setreading EnO_4BS_0189A176 counter 0" gescheitert. Leider keine Ahnung wie ich das eingeben muß und wo. Und dann kam bei der der Zeilen für "## Trigger Bewegungsmelder "EOSWA-W-EO" mit Timer und Schaltzeiten ##" immer diese Fehlermeldung. Ich muß dazu sagen, ich habe einfach die komplette Befehlskette in die Befehlszeile eingegeben. Also mit entsprechenden Anpassungen.

So, ich weiß nicht ob meine Erklärungen verständlich sind, aber letztendlich suche ich einfach nur eine Lösung. Vielleicht kannst du mir ja weiter helfen.

Gruß Jens


Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: Svenergy am 06 Februar 2019, 20:25:59
oha da muss ich passen, mit defmod und setstate habe ich auch noch nicht gearbeitet.

Das Thema mit dem 2 Minuten Sendeintervall habe ich auch nicht näher bearbeitet, ich nutze es aber für den Reset solange Bewegung im Raum ist. Erst wenn kein 2 Minuten-Intervall-Signal kommt ist auch keine Bewegung mehr im Raum und Fhem schaltet das Licht mit Verzögerung aus. Damit ist das Licht eben maximal so lange noch an wie die Verzögerung einprogrammiert hat.

Wie gesagt mein Code ist womöglich mega umständlich, aber er ist schrittweise gewachsen und erweitert worden bis es funktioniert hat. Vom Ablauf, wie beschrieben: EOSC-motion:on löst einen notify aus, der notify setzt den Licht_helper Dummy auf on mit on-for-timer Funktion, das überschreibt sich so lange wie die 2-Minuten-Intervalle gesendet werden, fällt der Licht_helper zurück auf off löst dies einen weiteren notify aus, der das Licht über den virtuellen FHEM-Schalter hart ausschaltet. Zusätzlich wird das Licht noch ausgeschaltet, wenn der EOSC ein motion:off sendet (für den Notfall)

ich versuche mal alles zusammenzukopieren was wichtig sein könnte (ich benutze ausschießlich EnOcean Produkte hierbei)

Grundsätzliche Lichtansteuerung - RCM250 und PTM 210, sowie einen virtuellen Schalter aus FHEM heraus (mit einer freien ID des USB300) - beides im RCM eingelernt:
define virtLicht_KiZi EnOcean FF8B6005
attr virtLicht_KiZi IODev USB300
attr virtLicht_KiZi eventMap B0:off BI:on
attr virtLicht_KiZi manufID 00B
attr virtLicht_KiZi subType switch


Der EOSC:
define EOSC_KiZi EnOcean 019F20DE
attr EOSC_KiZi IODev USB300
attr EOSC_KiZi manufID 00B
attr EOSC_KiZi subType occupSensor.01


der Licht_helper Dummy:
define virtLicht_KiZi_helper dummy
attr virtLicht_KiZi_helper setList on off
attr virtLicht_KiZi_helper useSetExtensions 1

(das useSetExtensions 1 habe ich irgendwo im Forum gefunden, war irgendwie nötig für die richtige Dummy-Funktion)

die drei Notify´s:

define Licht_KiZi_off_notify notify EOSC_KiZi:motion:.off set virtLicht_KiZi off
define Licht_KiZi_on_notify notify EOSC_KiZi:motion:.on set virtLicht_KiZi_helper on-for-timer 180
define Licht_KiZi_helper_off_notify notify virtLicht_KiZi_helper:state:.off set virtLicht_KiZi off
attr Licht_KiZi_helper_off_notify addStateEvent 1

(das add StateEvent 1 habe ich ebenfalls irgendwo im Forum gefunden, war irgendwie auch nötig)

Grüße Svenergy
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 06 Februar 2019, 21:18:04
Hallo Svenergy,

boah, daß ist viel. Das schau ich mir ganz in ruhe an und versuche es mal auf meine Situation zu schreiben. Mal sehen, vllt ist am we Zeit dazu.
Gleich aber noch ein paar Fragen dazu.
Der aufgeführte Code ist komplett für ein BW zum Licht aus und anschalten?
Was meinst du mit dem freien ID des USB300?

Nochmals vielen Dank Dir.

Gruß Jens
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: krikan am 06 Februar 2019, 21:37:13
Nur mal als Zwischeneinwurf:
Bei den setExtensions wurde vor Kurzem ein Fehler iZm EnOcean korrigiert. Damit sollte auch https://forum.fhem.de/index.php/topic,89353.msg853006.html#msg853006 wieder funktionieren.

Gruß, Christian
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 06 Februar 2019, 23:03:25
Hallo Christian,

da schaltet sich bei mir kein Licht an. Aber der Gedanke mit dem Attribut ist gut.

Gruß Jens
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: Svenergy am 06 Februar 2019, 23:14:52
Hallo Jens,

der Code ist vorrangig zum Ausschalten vom Licht, weil die Kinder das ja selbstständig anschalten beim Betreten des Raums, aber oft vergessen wieder auszumachen wenn sie raus rennen  ;)

Ich denke aber, es ist nur eine Kleinigkeit im motion:on notify auch ein Licht anzuschalten.

Zum USB300 oder EnOceanPi oder TCM300 als EnOcean-Empfänger an der Zentrale wo FHEM drauf läuft:
FHEM soll ja Licht schalten, also muss die Zentrale funktechnisch wie ein Schalter agieren, also Signale schicken, die ein Schalter auch senden würde.
Dazu nutze ich den USB300 Empfänger als Sender und verknüpfe ihn mit einem device im FHEM. Der USB300 (wo ein TCM300 dahinter steckt) nutzt dafür eigene ID´s aus einem ID-Bereich, der für jeden USB300 einzigartig ist. Die Regeln dazu stehen in der Doku oder im Wiki. Ich habe das schon vor einiger Zeit einmal eingerichtet und nie wieder angefasst (dementsprechend erinnere ich mich leider nicht mehr an die Details). Schlagwörter sollten aber folgende sein: mit FHEM Licht steuern, EnOcean Schalter imitieren ...

Grüße Sven
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 10 Februar 2019, 17:56:07
Hallo Svenenergy,

vielen Dank noch mal für deine Hilfe. So richtig habe ich es noch nicht hinbekommen. Was ich nicht verstehe, warum das Anschalten mit einem einfachen notify geht und das Ausschalten so viel Arbeit macht. Auch das mit den ID`s habe ich leider nicht ganz verstanden.

Gruß Jens
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: Svenergy am 10 Februar 2019, 18:34:22
Hallo Jens,

hab ja gesagt, dass mein Code nicht optimal ist ;-)

Funktioniert denn bei dir das "Anschalten" schon?

Grüße Sven
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 10 Februar 2019, 20:19:00
Hallo Svenergy,

das Anschalten geht ohne Probleme. Ich schalte ja 3 verschiedene Aktoren auf der Grundlage der BW Meldungen. Aber das geht bei allen mit einem einfachen notify und auch immer zuverlässig. Komisch ist nur, daß bei der Variante wo ein shelly der Schaltaktor ist, auch das Ausschalten und das "Licht anbleiben" relativ gut klappt.

Gruß Jens
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: Svenergy am 10 Februar 2019, 20:53:07
puh nagut. ich hab noch mal deinen ersten code angeschaut und habe vielleicht noch mal zwei mögliche Ideen:
1. hast du schon andere timings probiert? die 2 Minuten könnten sich irgendwie mit dem EOSC beißen
2. ich hatte mal ein ähnliches Problem mit den AT´s, die sich nicht erneut beschreiben, so lange der laufende at aktiv ist (ich hatte da auch eine entsprechende Fehlermeldung im log).  -> Edit: habe gerade in der commandRef gelesen was defmod eigentlich macht, also dieser Punkt ist keine Hilfe (aber wie immer: alles gefährliches Halbwissen, das nur in meinem Anwendungsfall funktionieren muss)

Grüße, Sven
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: NoPlan12 am 10 Februar 2019, 23:30:01
Ja habe auch schon verschiedene timings probiert. Irgendwie war es immer gleich. Mal ging es und mal nicht.
Und wegen dem Halbwissen. Ich melde mich mal wenn ich bei dem Stand bin.  :(

Gruß Jens
Titel: Antw:EOSWA-W-EO Bewegungsmelder
Beitrag von: mediastudio am 29 März 2019, 16:45:50
Hallo, leider war ich Unterwegs und habe lange nicht in's Forum geschaut. Bei mir funktionieren die Bewegungsmelder so wie ich das mit dem Taktgeber gepostet habe. Wichtig für mich ist, der Raum muss solange ohne Unterbrechung Licht eingeschaltet halten bis ich den Raum verlasse.

Hier nochmal meine cfg mit zusätzlich ,,Lichtzustand hell oder dunkel -sunset sunrise-,,

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

################################################
# Lichtzustand hell oder dunkel sunset sunrise
################################################
define Lichtwert dummy
define at_Sonnenuntergang at *{sunset(-1800,"16:00","22:00")} set Lichtwert dunkel
define at_Sonnenaufgang at *{sunrise(0)} set Lichtwert hell
attr Lichtwert alias Lichtwert
attr Lichtwert group Tageshelligkeit
attr Lichtwert room Wetter
attr Lichtwert room Bewegungsmelder

##############################################
# Anzeige Bewegungsmelder Küche
#############################################
define Actor_Bewegungsmelder_Kueche dummy
attr Actor_Bewegungsmelder_Kueche alias Aktor Küche
attr Actor_Bewegungsmelder_Kueche devStateIcon on:power.on off:power.off
attr Actor_Bewegungsmelder_Kueche eventMap B0:off BI:on
attr Actor_Bewegungsmelder_Kueche group Bewegungsmelder
attr Actor_Bewegungsmelder_Kueche icon Motion-Detector_2.png
attr Actor_Bewegungsmelder_Kueche room Bewegungsmelder

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


## Trigger Bewegungsmelder "EOSWA-W-EO" wenn "dunkel" bleibt solange eingeschaltet wie Bewegung erkannt wird ##
define zaehler_up_kueche notify Bewegungsmelder_Kueche:motion:.on {\
   my $Wert1=ReadingsVal("Bewegungsmelder_Kueche","counter",0);;\
   $Wert1 = $Wert1+2;; if ( $Wert1 > 2 ) {$Wert1=2};;\
   fhem("setreading Bewegungsmelder_Kueche counter $Wert1");;\
   if (Value("Lichtwert") eq "dunkel") {fhem ("set Deckenstrahler_Actor,Actor_Bewegungsmelder_Kueche on")};;\
\
}

## Taktgeber "counter_down" setzt den Wert1 von "$Wert1" um 1 zurück ##
define zaehler_down_kueche notify Counter_BWM:off {\
   my $Wert1=ReadingsVal("Bewegungsmelder_Kueche","counter",0);;\
   $Wert1 = $Wert1-(1);; if ( $Wert1 <=0 ) {$Wert1=0};;\
   fhem("setreading Bewegungsmelder_Kueche counter $Wert1");;\
   if ( ( $Wert1 <= 0) && (Value("Lichtwert") eq "dunkel"))\
   {fhem("setreading Bewegungsmelder_Kueche counter 0 ;; set Deckenstrahler_Actor,Actor_Bewegungsmelder_Kueche  off")};;\
\
}