FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Vince am 03 August 2014, 15:24:52

Titel: Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Vince am 03 August 2014, 15:24:52
Hallo Leute,

bin bisher ohne Hilfe und viel Lesen ausgekommen. Nun ist es aber soweit und ich muss doch mal Fragen stellen. Somit habe ich mich in diesem Forum angemeldet, da ich hier bereits viele Fragen beantwortet bekommen habe.

Jetzt zu meiner Frage. Folgende Konfiguration habe ich:

FHEM Zentrale auf Raspberry mit CUL
HM-Sen-MDIR-O-2 - Bewegungsmelder ---> "BewegungEingang"
HM-LC-SW1-FM - UP 1fach Schalt Aktor ---> "AktorKellerAussenLicht"

Bewegungsmelder und Aktor sind beide an die Zentrale gekoppelt. Also indirekt.

Ich habe mit forlgendem FHEM Code eingestellt, das die Lampe Schaltet sobald Bewegung erkannt wird:

define BewegungVorgarten notify BewegungEingang:motion set AktorKellerAussenLicht on-for-timer 180


Das funktioniert soweit auch ganz gut. Jetzt möchte ich aber, das er schaltet sobald eine Bewegung erkannt wird und die Brightness unter 50 ist.... Aber das ist mir zu hoch was ich dafür im Wiki gefunden habe...

define nt.allerolloszu notify (R1ZU|R2ZU|R6ZU) {
my $r1 == $value{"R1ZU"};;
my $r2 == $value{"R2ZU"};;
my $r3 == $value{"R6ZU"};;
if ($r1 eq "on" && $r2 eq "on" && $r3 eq "on") {
   fhem "set LEDalleRolloZu on"
} else {
   fhem "set LEDalleRolloZu off"
}
}


Ich schaffe es nicht das auf meine Bedürfnisse umzuschreiben, da ich nicht wirklich verstehe was diese Funktion macht.

Könnte mir das jemand auf meine Bedürfnisse anpassen? So ist es für mich auch leichter es zu verstehen

Vielen Dank und
Grüße

Vince
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Puschel74 am 03 August 2014, 15:31:35
Hallo,

ich hab dir hier mals was zum lesen - die Suchfunktion ist doch nicht soo schlecht  8)

http://forum.fhem.de/index.php/topic,15497.msg160973.html#msg160973 (http://forum.fhem.de/index.php/topic,15497.msg160973.html#msg160973)
http://forum.fhem.de/index.php/topic,17895.msg153151.html#msg153151 (http://forum.fhem.de/index.php/topic,17895.msg153151.html#msg153151)
http://forum.fhem.de/index.php/topic,24965.msg180086.html#msg180086 (http://forum.fhem.de/index.php/topic,24965.msg180086.html#msg180086)

Bei der Suche nach "Bewegungsmelder brightness" habe ich immerhin 30 Treffer inkl. diesem Beitrag bekommen.

Grüße
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Vince am 03 August 2014, 15:40:44
Vielen Dank erstmal soweit.

Ich finde es ziemlich schwierig die wichtigen Passagen für mich in den einzelnen Threads herauszufinden.

Habe es jetzt erstmal so probiert:

define BewegungVorgarten notify BewegungEingang:motion IF ([BewegungEingang:brightness] < 60) set AktorKellerAussenLicht on-for-timer 180

Mal sehen ob das funktioniert


EDIT: Natürlich nicht..... Bin wieder zurück zu:
define BewegungVorgarten notify BewegungEingang:motion set AktorKellerAussenLicht on-for-timer 180
seit dem steht jetzt im Log des Bewegungsmelders immer eine Brightness von 43..... Was ist denn nu wieder kaputt?
2014-08-03_15:53:54 BewegungEingang brightness: 43
2014-08-03_15:53:54 BewegungEingang cover: closed
2014-08-03_15:53:54 BewegungEingang battery: ok
2014-08-03_15:54:43 BewegungEingang trigDst_F079FC: noConfig
2014-08-03_15:54:43 BewegungEingang motion
2014-08-03_15:54:43 BewegungEingang motion: on (to CUL0)
2014-08-03_15:54:43 BewegungEingang motionCount: 92_next:14s
2014-08-03_15:54:43 BewegungEingang brightness: 43
2014-08-03_15:55:20 BewegungEingang trigDst_F079FC: noConfig
2014-08-03_15:55:20 BewegungEingang motion
2014-08-03_15:55:20 BewegungEingang motion: on (to CUL0)
2014-08-03_15:55:20 BewegungEingang motionCount: 93_next:14s
2014-08-03_15:55:20 BewegungEingang brightness: 43
2014-08-03_15:56:13 BewegungEingang trigDst_F079FC: noConfig
2014-08-03_15:56:13 BewegungEingang motion
2014-08-03_15:56:13 BewegungEingang motion: on (to CUL0)
2014-08-03_15:56:13 BewegungEingang motionCount: 94_next:14s
2014-08-03_15:56:13 BewegungEingang brightness: 43
2014-08-03_15:57:21 BewegungEingang trigDst_F079FC: noConfig
2014-08-03_15:57:21 BewegungEingang motion
2014-08-03_15:57:21 BewegungEingang motion: on (to CUL0)
2014-08-03_15:57:21 BewegungEingang motionCount: 95_next:14s
2014-08-03_15:57:21 BewegungEingang brightness: 43
2014-08-03_15:59:15 BewegungEingang brightness: 43
2014-08-03_15:59:15 BewegungEingang cover: closed
2014-08-03_15:59:15 BewegungEingang battery: ok
2014-08-03_15:59:20 BewegungEingang trigDst_F079FC: noConfig
2014-08-03_15:59:20 BewegungEingang motion
2014-08-03_15:59:20 BewegungEingang motion: on (to CUL0)
2014-08-03_15:59:20 BewegungEingang motionCount: 96_next:14s
2014-08-03_15:59:20 BewegungEingang brightness: 43
2014-08-03_16:00:04 BewegungEingang Activity: alive
2014-08-03_16:01:27 BewegungEingang trigDst_F079FC: noConfig
2014-08-03_16:01:27 BewegungEingang motion
2014-08-03_16:01:27 BewegungEingang motion: on (to CUL0)
2014-08-03_16:01:27 BewegungEingang motionCount: 97_next:14s
2014-08-03_16:01:27 BewegungEingang brightness: 43


was genau bedeutet dieser Eintrag:

trigDst_F079FC: noConfig



EDIT2:

Boa dieser  Bewegungsmelder macht mich schwach.....

FHEM Referenz schreibt:

trigDst_<name>: noConfig
Ein Sensor triggert ein Device welches nicht in seiner Peerliste steht. Die Peerliste ist nicht akuell.

toll..... Anfänger freundlich wäre: warum macht das Gerät das? Was könnte passiert sein? Wie behebt man das?
Schade das man sich echt so viel aus 100 verschiedenen Seiten ziehen muss und dann bekommt man den Hinweis man hätte mal die Suche nutzen sollen.... bin ziemlich deprimiert gerade.... Überlege mir echt gerade was Benutzerfreundlicheres zuzulegen.... blödes FHEM.... :(
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Damian am 03 August 2014, 16:24:51
Wenn schon dann:

define BewegungVorgarten notify BewegungEingang:motion IF ([BewegungEingang:brightness] < 60) (set AktorKellerAussenLicht on-for-timer 180)

Gruß

Damian
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Puschel74 am 03 August 2014, 17:54:50
Hallo,

Damian hat dir ja schon eine Möglichkeit gezeigt.

ZitatAnfänger freundlich wäre: warum macht das Gerät das? Was könnte passiert sein? Wie behebt man das?
Wenn sowas in der Doku fehlt dann bitte - nur zu.
Es werden noch Helfer für die Dokuergänzungen gesucht.

Zitatund dann bekommt man den Hinweis man hätte mal die Suche nutzen sollen
Nö - ich hab sogar für dich die SuFu benutzt und 3 Beiträge verlinkt  ;)
Lesen und verstehen musst du schon selbst.

Ich finde aber nichts schwieriges daran den letzten Beitrag im letzten Link zu lesen - ich hab ihn übrigens auch jetzt erst gesehen.
http://forum.fhem.de/index.php/topic,24965.msg180119.html#msg180119 (http://forum.fhem.de/index.php/topic,24965.msg180119.html#msg180119)
Dort wird ja eigentlich schon ein Code geboten den du nur noch abändern musst.

Wenn du das aber mit IF machen willst steht dir das frei.
Dann lies dir aber bitte auch den Beitrag zu IF bzw. auch zu DOIF im Bereich Automatisierung durch.

Aber ich hab hier mal was für DICH abgeändert:
BewegungEingang:motion.* {
  if ((ReadingsVal("BewegungEingang","brightness","80") < "60") {
    fhem("set AktorKellerAussenLicht on-for-timer 180");
  }
}

Keine Gewähr das das bei dir funktioniert. Anpassen und Fehlermeldungen anschauen musst du aber dann schon selbst.

ZitatÜberlege mir echt gerade was Benutzerfreundlicheres zuzulegen.... blödes FHEM....
Gib uns bitte Bescheid wenn du etwas gefunden hast das auch nur annähernd mit der Flexibilität von FHEM vergleichbar ist - und genauso eine Comm dahinter steht wie hier - und auch nichts kostet außer die eigene Zeit und den eigenen Willen  8)

Grüße
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: karl0123 am 03 August 2014, 18:03:10
Ich war versucht zu schreiben: Dann geh und nimm was anderes! Mist, jetzt hab' ich es geschrieben ;)

Ja, man muss tatsächlich selbst etwas machen, damit alles so funktioniert, wie man das will. Komisch, oder?  ::)
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Vince am 03 August 2014, 18:18:01
 ;D

Ich danke euch, soweit!

Ich war genervt vorhin... Wenn es nach zwei Stunden lesen und probieren nichts funktioniert und es scheinbar noch schlimmer wird... 1000 Tabs im Browser offen sind..... Man langsam aber sicher völlig den Überblick verliert...... Irgendwann gehts dann mit mir durch  ;D

Hab mich erstmal mit was anderem beschäftigt, bevor der Bewegungsmelder defekt an der Wand geklebt hätte...

Ich werde nachher nochmal ein wenig probieren.

Habe eure Kritik aufgenommen und versuche sie umzusetzen  ;)
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Vince am 03 August 2014, 19:22:43
So habe jetzt ein wenig weiter probiert

define BewegungVorgarten notify BewegungEingang:motion IF ([BewegungEingang:brightness] < 150) (set AktorKellerAussenLicht on-for-timer 180)
bei dem Code schreibt FHEM garnichts in den Log... ?

Wenn ich den Code nutze:

BewegungEingang:motion.* {
  if ((ReadingsVal("BewegungEingang","brightness","80") < "60"){
    fhem("set AktorKellerAussenLicht on-for-timer 180");
  }
}


2014.08.03 19:20:44 3: BewegungVorgarten return value: syntax error at (eval 38) line 2, near ") {"
syntax error at (eval 38) line 5, near "}
}"

2014.08.03 19:20:44 3: BewegungVorgarten return value: syntax error at (eval 39) line 2, near ") {"
syntax error at (eval 39) line 5, near "}
}"

2014.08.03 19:20:44 3: BewegungVorgarten return value: syntax error at (eval 40) line 2, near ") {"
syntax error at (eval 40) line 5, near "}
}"


Mehrere Syntax Error. Kann mir aber nicht erklären was da falsch sein könnte. Ist da irgendwo ne Klammer falsch gesetzt?



EDIT:

ok hab es so funktioniert es:

BewegungEingang:motion.* {
  if (ReadingsVal("BewegungEingang","brightness","80") < "150"){
    fhem("set AktorKellerAussenLicht on-for-timer 180");
  }
}


PERFEKT!
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: franky08 am 03 August 2014, 19:34:41
3 runde Klammern geöffnet, nur 2 geschlossen. Die 2. runde Klammer nach if ist zuviel  :)

P.S. zu langsam geschrieben  :-\

VG
Frank
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Puschel74 am 03 August 2014, 19:38:56
Hallo,

ich hab doch geschrieben
ZitatKeine Gewähr das das bei dir funktioniert. Anpassen und Fehlermeldungen anschauen musst du aber dann schon selbst.

Ok, ich habe das (-zählen übersehen  8)

Grüße
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: franky08 am 03 August 2014, 19:41:05
ZitatWenn ich den Code nutze:

Code: [Auswählen]
BewegungEingang:motion.* {
  if ((ReadingsVal("BewegungEingang","brightness","80") < "60"){
    fhem("set AktorKellerAussenLicht on-for-timer 180");
  }
}


Da ist eine ( zuviel !
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Vince am 03 August 2014, 20:17:12
Ich danke euch! Hat mich viel nerven gekostet....  ::)


Aber trotzdem bleiben noch Fragen offen:

- Was genau soll mit der "80" erreicht werden?
- Habe noch immer den Fehler vom Bewegungsmelder:
      -- 2014-08-03_19:36:57 BewegungEingang trigDst_F079FC: noConfig
- Warum schreibt FHEM alles 3 mal in den Log?
2014.08.03 19:36:57 3: CUL_HM set AktorKellerAussenLicht on-for-timer 180
2014.08.03 19:36:57 3: CUL_HM set AktorKellerAussenLicht on-for-timer 180
2014.08.03 19:36:57 3: CUL_HM set AktorKellerAussenLicht on-for-timer 180
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Damian am 03 August 2014, 20:25:28
Zitat von: Vince am 03 August 2014, 20:17:12
Ich danke euch! Hat mich viel nerven gekostet....  ::)


Aber trotzdem bleiben noch Fragen offen:

- Was genau soll mit der "80" erreicht werden?
- Habe noch immer den Fehler vom Bewegungsmelder:
      -- 2014-08-03_19:36:57 BewegungEingang trigDst_F079FC: noConfig
- Warum schreibt FHEM alles 3 mal in den Log?
2014.08.03 19:36:57 3: CUL_HM set AktorKellerAussenLicht on-for-timer 180
2014.08.03 19:36:57 3: CUL_HM set AktorKellerAussenLicht on-for-timer 180
2014.08.03 19:36:57 3: CUL_HM set AktorKellerAussenLicht on-for-timer 180


Weil dein notify BewegungEingang:motion.* auf alles reagiert, was da von BewegungEingang kommt. Da musst du dich mit regulären Ausdrücken beschäftigen.

Oder du probierst DOIF aus dem Automatisationsthread, dann brauchst du dich um reguläre Ausdrücke nicht zu kümmern, brauchst kein notify und kein IF. Die Definition sieht dann so aus

define di_Eingang DOIF ([BewegungEingang:brightness] < 150) (set AktorKellerAussenLicht on-for-timer 180)
attr di_Eingang do always


Gruß

Damian
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: franky08 am 03 August 2014, 20:29:56
Die 80 ist der default Wert. Meiner Meinung nach ist der mit 80 aber zuwenig bei mir meldet der IR brightness Werte >150. Ich würde statt 80, 999 eintragen. Mach mal ein getConfig für den Bewegungsmelder, könnte daran liegen.

VG
Frank
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Puschel74 am 03 August 2014, 20:30:47
Hallo,

Zitat- Was genau soll mit der "80" erreicht werden?
Lies dir das Einsteiger.pdf durch - Abschnitt ReadingsVal (und sag nicht es gibt keine Doku zum lesen  ;) ).

Zitat- Habe noch immer den Fehler vom Bewegungsmelder:
      -- 2014-08-03_19:36:57 BewegungEingang trigDst_F079FC: noConfig
Das sieht mir nach Homematic aus - bitte im Homematic-Bereich schauen (ich schreib absichtlich nicht suchen  8) ).

Zitat- Warum schreibt FHEM alles 3 mal in den Log?
das hat Damian schon beantwortet - RegExp ist dein Freund (und das Forum  ;D ).
Und das hier:
http://forum.fhem.de/index.php/topic,16311.0.html (http://forum.fhem.de/index.php/topic,16311.0.html)
Speziell der Teil mit dem EventMonitor  ;)
Es dürfte eig. nur auftreten wenn motion 3 Events sendet - das glaube ich aber nicht).
Oder du verwendest schon wieder einen anderen Code und sagst uns nichts davon  >:(

Grüße

Edith:
ZitatWeil dein notify BewegungEingang:motion.* auf alles reagiert, was da von BewegungEingang kommt. Da musst du dich mit regulären Ausdrücken beschäftigen.
Eben nicht Damian - das notify dürfte nur bei einem Event von BewegungEingang:motion triggern und nicht bei jedem Event von BewegungEingang (was ja dann einige mehr wären).
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Rince am 03 August 2014, 21:36:50
Ich bastle an einem Guide, der dein Problem ziemlich gut erklären dürfte.
Wenn du mal eine ruhige Minute hast, schau rein ;)
https://docs.google.com/document/d/153NYOUdErYlg8FKlIUI6vQlcerkEm0Dupd_0RO2UtUE/edit?usp=docslist_api
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Vince am 04 August 2014, 11:10:34
Also ich muss sagen....

Dein Buch klingt erstmal ein wenig merkwürdig, es ist aber schön erklärt, so das auch ein kompletter Neuling das relativ gut verstehen kann. Schön mit Beispielen und Erläuterungen was passiert wenn man folgendes ändert oder hinzufügt usw.

Es ist doch recht schwierig sich in die Materie einzuarbeiten. Dein Buch mag für einige vllt. absoluter Kinderkram sein. Aber ich finde es bisher ganz gut.

Bestimmt fehlt noch eine Menge da das FHEM Gebiet so riesig ist aber es ist ein schöner Anfang! Danke dafür
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Damian am 04 August 2014, 17:25:48
Zitat von: Puschel74 am 03 August 2014, 20:30:47
Edith:Eben nicht Damian - das notify dürfte nur bei einem Event von BewegungEingang:motion triggern und nicht bei jedem Event von BewegungEingang (was ja dann einige mehr wären).

Das ist falsch. Notify reagiert auf alle Events, die zu Regexp passen, auch wenn sie vom gleichen Trigger zur gleichen Zeit kommen. Der Bewegungsmelder liefert einfach drei verschiedene Events mit motion bei einer Bewegung. Probiere es einfach aus.


Gruß

Damian
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: Puschel74 am 04 August 2014, 17:52:19
Hallo,

ZitatProbiere es einfach aus.
Würd ich gerne aber ich habe keinen HM-Bewegungsmelder  8)

Wenn die HM-BWM aber tatsächlich 3-mal motion senden dann ist das Verhalten natürlich klar.
Sorry wenn ich in Unkenntniss Blödsinn geschrieben habe.

Grüße
Titel: Antw:Bewegungsmelder bei eingestellter Helligkeit schalten
Beitrag von: karl0123 am 04 August 2014, 18:01:08
Er liefert nicht 3 mal motion sondern 3 Events, die motion enthalten (state:motion, motion:on (to..), motionCount). Das kann man recht gut mit event-on-update-reading in den Griff bekommen.

Dazu ist kein DOIF und auch kein besseres Regex notwendig.