Perl-Ausdruck in Lightscene-Set einbinden

Begonnen von roedert, 10 Dezember 2018, 20:03:46

Vorheriges Thema - Nächstes Thema

roedert

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.

rudolfkoenig

LightScene kenne ich nicht, aber "set magic", mit {(...)} koennte klappen, siehe https://fhem.de/commandref_modular.html#set


roedert

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.

roedert

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.