FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ramses am 12 Dezember 2017, 20:01:59

Titel: notify soll Lampe bei Bewegung einschalten...
Beitrag von: ramses am 12 Dezember 2017, 20:01:59
Heya,

...und das nur beim Unterschreiten einer gewisse Helligkeit. Jede festgestellte Bewegung soll die Zeit von vorne zählen lassen.

mein notify
define n_Autolicht_Bad notify zw_BS_Bad:alarm:.*Motion.* {fhem ("set Licht_Bad_Decke on-for-timer 600") if (ReadingsVal("zw_BS_Bad","Luminance",30) < 20)}

der Bewegungsmelder hat den Reading zB
luminance   47 Lux

und meldet Bewegung mit
2017-12-07_17:08:25 zw_BS_Bad basicSet: 255
2017-12-07_17:08:26 zw_BS_Bad alarm: HomeSecurity: Motion Detection - Unknown Location, arg 0000


wenn keine Bewegung mehr festgestellt wird schickt der
2017-12-07_18:00:16 zw_BS_Bad basicSet: 0
2017-12-07_18:00:16 zw_BS_Bad alarm: HomeSecurity: Event cleared: Previous Events cleared

ich weiss, dieser Event ist nicht unbedingt erforderlich, habe ihn nur ordnungshalber gepostet

derzeit passiert leider nicht viel, wenn Bewegung festgestellt wird...was mache ich falsch?
Titel: Antw:notify soll Lampe bei Bewegung einschalten...
Beitrag von: DeeSPe am 12 Dezember 2017, 20:16:40
Dein Vorhaben ist leider falsch im Ansatz, und ich spreche da aus Erfahrung!

Was ist nämlich wenn Du nun 10 min im Bad rumwuselst? Dann wird dauerhaft Bewegung erkannt und Du stehst nach genau 10 min im Dunkeln.

Dein Reading heißt, wie Du ja selbst zeigst, nicht Luminance, sondern luminance. Das hat auch noch eine Einheit hinten dran.

Also ich würde das so machen:
define n_Autolicht_Bad notify zw_BS_Bad:basicSet:.* {
  if ($EVTPART1 eq "255")
  {
    fhem ("delete at_Autolicht_Bad") if (IsDevice("at_Autolicht_Bad"));
    fhem ("set Licht_Bad_Decke on") if (ReadingsNum("zw_BS_Bad","luminance",30) < 20);
  }
  elsif ($EVTPART1 eq "0")
  {
    fhem ("defmod at_Autolicht_Bad at +00:10 set Licht_Bad_Decke off");
  }
}


Gruß
Dan

EDIT: Hatte ein "at" vergessen. :o
Titel: Antw:notify soll Lampe bei Bewegung einschalten...
Beitrag von: Wuppi68 am 12 Dezember 2017, 21:03:03
oder wenn on-for-timer mit Deiner Lampe geht jedesmal bei Bewegung und lux < Schwelle set Lampe on-for-timer 600
Titel: Antw:notify soll Lampe bei Bewegung einschalten...
Beitrag von: DeeSPe am 12 Dezember 2017, 21:11:39
Zitat von: Wuppi68 am 12 Dezember 2017, 21:03:03
oder wenn on-for-timer mit Deiner Lampe geht jedesmal bei Bewegung und lux < Schwelle set Lampe on-for-timer 600

Das hat er ja eingangs so beschrieben und das führt eben zu dem von mir beschriebenen Effekt.

Gruß
Dan
Titel: Antw:notify soll Lampe bei Bewegung einschalten...
Beitrag von: ramses am 12 Dezember 2017, 21:43:24
ok, danke für Eure Anregungen!

Ich habe den notify editiert jedoch keine Besserung!
Wie kann ich überprüfen, ob der notify überhaupt getriggert wird?
In den Logfile des Sensors werden brav die Bewegungs-Events geschrieben.

Titel: Antw:notify soll Lampe bei Bewegung einschalten...
Beitrag von: DeeSPe am 12 Dezember 2017, 21:53:18
Zitat von: ramses am 12 Dezember 2017, 21:43:24
Wie kann ich überprüfen, ob der notify überhaupt getriggert wird?
In den Logfile des Sensors werden brav die Bewegungs-Events geschrieben.

Das geht mit trigger (https://fhem.de/commandref_DE.html#trigger).

Gruß
Dan

P.S. Sind evtl. event-on-.... Attribute gesetzt?
Titel: Antw:notify soll Lampe bei Bewegung einschalten...
Beitrag von: Wuppi68 am 12 Dezember 2017, 21:58:35
Du kannst verbose im notify entsprechend erhöhen ...

oder den Ansatz ein wenig verändern ...

im notify

if ReadingsVal('lamps', 'timedOn', 'off ') eq 'on'  then lampe-on-for-timer    ### Lampe bleibt weitere 10 Minuten an
      else lampe-on-for-timer wenn lux > Schwelle

nur als Gedankengang - weder Perl noch FHEM korrekte Schreibweise ;-)