Hi Gemeinde,
benötige eure Expertise.
zur Steuerung meines MiLight moduls via Bewegungsmelder komme ich nicht weiter.
das hier funktioniert:
define n_bewegung notify ZW_Multisensor1:basicSet:.255 set testLED2 hsv 4400,0,30;;define at_bewegung at +00:01 set testLED2 off
"hsv 4400,0,30" soll durch eine Variable ersetzt werden, weil ich je nach Lichtverhältnissen und Tageszeit die Lichtfarbe so wie die Helligkeit verändere.
Durch meine Variable "lichtwert" muss ich Perl einsetzen.
folgendes funktioniert wenn ich es in die Befehlszeile eingebe:
{fhem("set testLED2 ".Value("lichtwert"))}
wenn ich aber:
define n_bewegung notify (ZW_Multisensor1:basicSet:.255) {fhem("set testLED2 ".Value("lichtwert")); ("define at_bewegung at +00:00:30 set testLED2 off") if (ReadingsVal ("ZW_Multisensor1","luminance",0) < 50)}
versuche dann scheitere ich kläglich obwohl ich schon so viel varianten versucht habe. Was gelingt ist die Variable an testLED2 zuübergeben aber der "at" und "ReadingsVal" wird nicht ausgeführt.
wie lautet der syntax richtig?
bitte um Eure Unterstützung.
danke Andre
			
			
			
				du musst nicht. ach perl wechseln. [device:reading] reicht. 
ansonsten ist wenn vorhanden on-for-timer oder sleep kürzer. 
			
			
			
				Zitat von: justme1968 am 29 September 2016, 14:14:28
du musst nicht. ach perl wechseln. [device:reading] reicht. 
ansonsten ist wenn vorhanden on-for-timer oder sleep kürzer.
-wie soll denn bei einem hsv  Wert noch on-for-timer oder sleep mit dran gehangen werden?
-das mit dem  [device:reading] versteh ich nicht?  set testLED2 [lichtwert:?????] geht doch nicht.
bitte mal in meinen code einbauen.
danke Andre 
			
 
			
			
				dein device heisst lichtwert und das reading heisst vermutlich state. also [lichtwert:state]. schau in der detail ansicht nach.
ob on-for-timer oder ähnliches geht hängt von deinem device ab. ansonsten sleep. das ist ein eigenes fhem kommando.
also z.b. etwa so:define n_bewegung notify ZW_Multisensor1:basicSet:.255 set testLED2 hsv [lichtwert:state];; sleep 60 set testLED2 off
je nach dem wie oft dein bewegungsmelder sendet musst du das sleep noch benennen und am anfang des notify löschen damit beim mehrere meldungen in unter einer minute kein blödsinn passiert.
gruss
  andre
			
			
			
				Zitat von: justme1968 am 29 September 2016, 15:23:42
dein device heisst lichtwert und das reading heisst vermutlich state. also [lichtwert:state]. schau in der detail ansicht nach.
ob on-for-timer oder ähnliches geht hängt von deinem device ab. ansonsten sleep. das ist ein eigenes fhem kommando.
also z.b. etwa so:define n_bewegung notify ZW_Multisensor1:basicSet:.255 set testLED2 hsv [lichtwert:state];; sleep 60 set testLED2 off
je nach dem wie oft dein bewegungsmelder sendet musst du das sleep noch benennen und am anfang des notify löschen damit beim mehrere meldungen in unter einer minute kein blödsinn passiert.
gruss
  andre
das klappt nicht:  Fhem sagt:
n_bewegung return value: Usage: set testLED2 hsv <h(3000=Warm..6500=Cool)>,<s(-)>,<v(0..100)> [seconds(0..x)] [flags(q=don't clear queue)]
lichtwert = 4400,0,50
und was noch fehlt ist  'if (ReadingsVal ("ZW_Multisensor1","luminance",0) < 50)}'
sorry, aber ich raff es nicht
andre
			
 
			
			
				Zitat von: ischgucke am 29 September 2016, 17:22:01
und was noch fehlt ist  'if (ReadingsVal ("ZW_Multisensor1","luminance",0) < 50)}'
Ich bin ein Freund von DOIF.
			
 
			
			
				Zitat von: igami am 29 September 2016, 17:24:52
Ich bin ein Freund von DOIF.
ja gefällt mir auch wenn ich mir das so durchlese, aber so richtig komm ich noch nicht klar. Wenn du ne idee hast das zu richten - gerne:
define bewegung_buero DOIF ([ZW_Multisensor1:basicSet] eq "255" and  [ZW_Multisensor1:luminance] < "60")  (set testLED2 on-for-timer 62 ;; set testLED2 ct 3350 ;; set testLED2 dim 50)bei set testLED2 sollte dann auch die variable 'lichtwert' über geben werden. Bitte kannst du mir helfen?
hier noch:
Internals: 
   CFGFN 
   NAME       lichtwert 
   NR         7394 
   STATE      4400,0,50 
   TYPE       dummy 
   Readings: 
     2016-09-29 17:17:08   state           4400,0,50 
Attributes: 
			
 
			
			
				Zitat von: ischgucke am 29 September 2016, 17:52:20
ja gefällt mir auch wenn ich mir das so durchlese, aber so richtig komm ich noch nicht klar. Wenn du ne idee hast das zu richten - gerne:
Bitte mal mit Perl Vergleichsoperatoren beschäftigen. Es gibt Unterschiede zwischen Text und Zahlen.
Zitat von: ischgucke am 29 September 2016, 17:52:20
bei set testLED2 sollte dann auch die variable 'lichtwert' über geben werden. Bitte kannst du mir helfen?
Das hat andre schon weiter oben geschrieben.
			
 
			
			
				Ok Danke euch.
ich habe es nicht geschafft den "off" Befehl mit in eine Zeile zu packen und löse das nun über einen 2. Notify.
so klappt es jetzt:
bewegung_buero DOIF ([ZW_Multisensor1:basicSet] eq "255" and  [ZW_Multisensor1:luminance] < "60")  (set testLED2 [lichtwert:state])