FHEM Forum

FHEM => Automatisierung => Thema gestartet von: roedert am 10 Dezember 2018, 20:03:46

Titel: Perl-Ausdruck in Lightscene-Set einbinden
Beitrag von: roedert am 10 Dezember 2018, 20:03:46
Ich schalte meine "WeissSpektrum-Lampen" farblich je nach Sonnenstand ein.
In Perl geht dies mit
fhem("set Lampe pct 6 : ct " . (450-2*ReadingsVal("myTwilight","twilight",0)));

Gibt es einen Weg, diesen Ausdruck auch in eine Lightscene einzubinden?
Einfach ein 
{"pct 6 : ct " . (450-2*ReadingsVal("myTwilight","twilight",0))}
in der Set-Zeile der entsprechenden Lampe in der LightScene funktioniert leider nicht.
Titel: Antw:Perl-Ausdruck in Lightscene-Set einbinden
Beitrag von: rudolfkoenig am 10 Dezember 2018, 20:17:20
LightScene kenne ich nicht, aber "set magic", mit {(...)} koennte klappen, siehe https://fhem.de/commandref_modular.html#set

Titel: Antw:Perl-Ausdruck in Lightscene-Set einbinden
Beitrag von: roedert am 10 Dezember 2018, 21:08:53
Das klappt leider nicht.
Wenn ich den Perl-Ausdruck {(...)} in die Definitionszeile der Lightscene eingebe, wird dieser sofort ausgeführt und das (zu dem Zeitpunkt korrekte) Ergebnis eingetragen.
Somit ist der Eintrag in der Lightscene dann der wieder statisch und nicht mehr dynamisch.

Workaround wäre ein zusätzliches dummy-Device mit entsprechendem notify, welches aus einfache set on/off-Befehle reagiert und die Twilight-Werte intern berechnet und an doe Lampe übergibt.
Aber diese 2 zusätzlichen Objekte (dummy + notify) hätte ich mir gerne gespart.
Titel: Antw:Perl-Ausdruck in Lightscene-Set einbinden
Beitrag von: roedert am 18 Dezember 2018, 08:06:07
Man muss nur richtig lesen, dann klappt es auch  :D
Lösung war ein setcmd statt set in der LightScene zu verwenden - da kann man dann gewohnt Perl-Cod ein geschweiften Klammern eingeben.

Jetzt ist nur noch offen ob es eine Variabel/Platzhalter für den Devicenamen gibt, den man in Perl nutzen kann - $name funktioniert nicht.