notify soll Lampe bei Bewegung einschalten...

Begonnen von ramses, 12 Dezember 2017, 20:01:59

Vorheriges Thema - Nächstes Thema

ramses

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?

DeeSPe

#1
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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuppi68

oder wenn on-for-timer mit Deiner Lampe geht jedesmal bei Bewegung und lux < Schwelle set Lampe on-for-timer 600
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

ramses

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.


DeeSPe

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.

Gruß
Dan

P.S. Sind evtl. event-on-.... Attribute gesetzt?
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuppi68

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 ;-)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen