FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: LAN-Opfer am 25 April 2015, 22:33:04

Titel: Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: LAN-Opfer am 25 April 2015, 22:33:04
...ich bräuchte etwas Unterstützung: mein Aeotec Multisensor soll bei Dunkelheit und Bewegung mein Außenlicht einschalten. Leider bekomme ich die Verriegelung mit der Helligkeit nicht hin :-(


define MOTION notify ZW.MULTISENSOR.*basicReport.* { if (Value("ZW.AS_LICHT") eq "off" && Value("ZW.MULTISENSOR luminance") <= 1){ fhem ("set ZW.AS_LICHT on-for-timer 5") } }



Bei Bewegung geht das Licht für 5 Sekunden an - leider auch dann, wenn es hell ist.

Was muss ich an obigem Code korrigieren?

Uwe
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: krikan am 25 April 2015, 22:47:19
Value("ZW.MULTISENSOR luminance") das ist "seltsam" und sollte Fehlermeldungen im Log auslösen.
Nimm mal ReadingsVal (siehe http://fhem.de/commandref#perl)
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: LAN-Opfer am 26 April 2015, 12:55:26
stimmt - es gibt eine Fehlermeldung  :-[

2015.04.25 22:25:00 1: PERL WARNING: Argument "" isn't numeric in numeric le (<=) at (eval 5768) line 1.
2015.04.25 22:25:00 3: eval: { if (Value("ZW.AS_LICHT") eq "off" && Value("ZW.MULTISENSOR luminance") <= 1){ fhem ("set ZW.AS_LICHT on-for-timer 5") } }
2015.04.25 22:25:00 2: ZWave set ZW.AS_LICHT on
2015.04.25 22:25:05 2: ZWave set ZW.AS_LICHT off
2015.04.25 22:29:58 1: PERL WARNING: Argument "" isn't numeric in numeric le (<=) at (eval 6081) line 1.
2015.04.25 22:29:58 3: eval: { if (Value("ZW.AS_LICHT") eq "off" && Value("ZW.MULTISENSOR luminance") <= 1){ fhem ("set ZW.AS_LICHT on-for-timer 5") } }
2015.04.25 22:29:58 2: ZWave set ZW.AS_LICHT on
2015.04.25 22:30:03 2: ZWave set ZW.AS_LICHT off
2015.04.25 22:30:14 1: PERL WARNING: Argument "" isn't numeric in numeric le (<=) at (eval 6110) line 1.
2015.04.25 22:30:14 3: eval: { if (Value("ZW.AS_LICHT") eq "off" && Value("ZW.MULTISENSOR luminance") <= 1){ fhem ("set ZW.AS_LICHT on-for-timer 5") } }
2015.04.25 22:30:14 2: ZWave set ZW.AS_LICHT on
2015.04.25 22:30:19 2: ZWave set ZW.AS_LICHT off


ReadingsVal("ZW.MULTISENSOR","luminance",0) in die Kommandozeile eingetragen liefert
"Unknown command ReadingsVal("ZW.MULTISENSOR","luminance",0), try help."

Uwe
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: krikan am 26 April 2015, 13:04:50
Das ist Perl-Ebene. Darum in Kommandozeile mit {...} eingeben.
Ansonsten mal in Deine notify einbauen.
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: LAN-Opfer am 26 April 2015, 21:01:58
...ok - geschweifte Klammern gehen und ich bekomme "59 Lux" zurück - ohne Anführungszeichen

define MOTION notify ZW.MULTISENSOR.*basicReport.* { if (Value("ZW.AS_LICHT") eq "off" && ReadingsVal("ZW.MULTISENSOR","luminance",0) <= 5){ fhem ("set ZW.AS_LICHT on-for-timer 5") } }


funktioniert  :)
Vielen Dank!!

Uwe
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: krikan am 26 April 2015, 21:07:27
Hallo Uwe.
Prima :); denke nur bei diesem Rückgabewert mal darüber nach statt "ReadingsVal", was ich zunächst vorgeschlagen hatte, lieber "ReadingsNum" zu nutzen.
Gruß, Christian
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: LAN-Opfer am 27 April 2015, 07:56:01
...funktioniert seltsamer weise sowohl mit  "ReadingsVal", als auch mit "ReadingsNum". "ReadingsNum" scheint mir der bessere Weg zu sein, da die Einheit, die "ReadingsVal" mitliefert doch mal stören könnte.
Welche Bedeutung hat der 3. Parameter "defaultvalue"? Ich habe da jetzt einfach eine 0 übergeben. In der FHEM-Referenz und bei google konnte ich nichts darüber finden.

Uwe
Titel: Antw:Z-Wave Multisensor - Sensordaten auswerten
Beitrag von: krikan am 27 April 2015, 13:20:51
ReadingsVal funktioniert dank der automatischen Konvertierung (String/Zahl) durch Perl (siehe bspw. http://www.perlboard.de/perlguide/Kap02.html). Sollte aber eine Warnung in Deinem Log auslösen; kurz: nimm ReadingsNum.
Der "defaultvalue" in ReadingsVal wird genommen, wenn Auslesen des Readings fehlschlägt; sieht man am einfachsten in fhem.pl selbst.