Hallo,
ich habe mir in einem Kellerraum eine Leinwand und einen Beamer aufgehängt. Zur Bedienung nutze ich einen Logitech Harmony Hub. Die Decken-LEDs (RGB) steuere ich mit einem Shelly RGBW2 an, den ich in FHEM mit dem Modul Shelly eingerichtet habe (tolles Modul, mit dem ich einige weitere Shelly's im Haus betreibe).
Internals:
DEF 192.168.1.102
DURATION 0
FUUID 606dfd4b-f33f-cd59-ec63-e2c99d3157959a20
INTERVAL 60
NAME Licht_KinoKeller
NR 387
SHELLYID shellyrgbw2-E758AD
STATE off
TCPIP 192.168.1.102
TYPE Shelly
READINGS:
2021-04-07 21:02:43 L-blue 118
2021-04-07 21:02:43 L-green 201
2021-04-07 21:02:43 L-red 255
2021-04-07 21:02:43 L-white 255
2021-04-07 20:43:24 cloud disabled
2021-04-15 23:10:50 energy 707.6
2021-04-15 19:26:43 firmware v1.10.1(update needed to v1.10.3)
2021-04-16 10:38:08 network <html>connected to <a href="http://192.168.1.102">192.168.1.102</a></html>
2021-04-15 23:01:48 overpower 0
2021-04-15 23:09:50 power 0
2021-04-07 21:02:43 rgb FFC976
2021-04-16 10:38:08 state off
Attributes:
mode color
model shellyrgbw
room 4.2_KinoKeller
Wenn ich jetzt per Fernbedienung z. B. die Aktion BlueRay starte, werden die entsprechenden Geräte eingeschaltet. Gleichzeitig würde ich gerne jetzt den Raum automatisch abdunkeln. Momentan mache ich das mit einem notify:
Internals:
CFGFN
DEF KinoKeller_HarmonyHub:currentActivity:.starting.Blu-ray.wiedergeben sleep 60;set Licht_KinoKeller off
FUUID 6076fda7-f33f-cd59-d709-2de26b3a66b5f476
NAME n_KiKe_Harmony_BlueRay_ein
NOTIFYDEV KinoKeller_HarmonyHub
NR 27083
NTFY_ORDER 50-KinoKeller_HarmonyHub_notify_1
REGEXP KinoKeller_HarmonyHub:currentActivity:.starting.Blu-ray.wiedergeben
STATE active
TRIGGERTIME 1618510134.78974
TYPE notify
READINGS:
2021-04-16 10:20:42 state active
Attributes:
room 4.2_KinoKeller,Multimedia
Momentan wird also nach 60 Sekunden das Licht einfach ausgeschaltet (es dauert solange, bis die Leinwand unten, der Verstärker eingeschaltet und der Beamer läuft).
Ich fände es jetzt schöner, wenn die Beleuchtung von weiß auf rot langsam umschaltet und dann in dem Rest der genanten Zeit von 60 Sekunden runterdimmt bis zum Ausschalten des Lichts.
Meine Fragen sind:
Gibt es dazu eine Möglichkeit, dies umzusetzen? Also einmal wie ich den Farbwechsel nicht schlagartig, sondern als Farbverlauf umsetzen kann und der andere Teil, ob es eine Art Dimmbefehl gibt, dem ich z. B. sagen kann: in x Sekunden von pct 100 auf pct 1 runterdimmen?
Viele Grüße
Stephan
Hi Stephan,
ich habe bei Sonos sowas für die Lautstärke als Perl Befehl gemacht:
for (8..20) {fhem("sleep $_;set $NAME volume {([$NAME:volume]+1)}")}
Müsstest Du also Deine Formel für Farbe irgendwie einsetzen. Könnte man mit einer Liste in der Art machen und im set ... rgb $t{$_} verwenden.
Nur Prinzip :)
my %t=('1'=>'blau','2'=>'rot','3'=>'gelb','4'=>'grün')
Gruß Otto
Hallo,
ich habe es jetzt erst mal so gelöst.
Licht aus bei Filmstart:
set Licht_KinoKeller rgbw FFFBFC;
sleep 5;
set Licht_KinoKeller rgbw FF4C46;
sleep 7;
set Licht_KinoKeller rgbw FF7966;
sleep 7;
set Licht_KinoKeller hsv 0,1,1;
sleep 8;
set Licht_KinoKeller hsv 0,1,0.8;
sleep 8;
set Licht_KinoKeller hsv 0,1,0.6;
sleep 8;
set Licht_KinoKeller hsv 0,1,0.4;
sleep 8;
set Licht_KinoKeller hsv 0,1,0.2;
sleep 8;
set Licht_KinoKeller off
Licht wieder an:
set Licht_KinoKeller on;
set Licht_KinoKeller hsv 0,1,0.2;
sleep 3;
set Licht_KinoKeller hsv 0,1,0.4;
sleep 3;
set Licht_KinoKeller hsv 0,1,0.6;
sleep 3;
set Licht_KinoKeller hsv 0,1,0.8;
sleep 3;
set Licht_KinoKeller hsv 0,1,1;
sleep 3;
set Licht_KinoKeller rgbw FF7966;
sleep 3;
set Licht_KinoKeller rgbw FF4C46;
sleep 3;
set Licht_KinoKeller rgbw FFFBFC;
Für den Anfang ist das schon mal nicht schlecht.
Viele Grüße
Stephan
Hallo Stephan,
versuch mal das hier in der FHEM Kommandozeile für Licht aus.
{my %t=('0'=>'on','1'=>'hsv 0,1,0.2','2'=>'hsv 0,1,0.4','3'=>'hsv 0,1,0.6','4'=>'hsv 0,1,0.8','5'=>'hsv hsv 0,1,1','6'=>'rgbw FF7966','7'=>'rgbw FF4C46','8'=>'rgbw FFFBFC');;for (0..8) {my $s=$_*3;;fhem("sleep $s;;set Licht_KinoKeller $t{$_}")}}
Soll bloß das Prinzip zeigen, viel weniger Code ist das auch nicht. Dazu müsste man dann mehr rechnen. Da könnte man dann zwei Schleifen parallel laufen lassen. Beispiel:
{for (1..10) {fhem("sleep $_;;set Licht_KinoKeller hsv 0,1,".(0.1*$_))}}
Gruß Otto