Hauptmenü

Dimmen mit Shelly RGBW2?

Begonnen von Stephan1965, 16 April 2021, 10:45:36

Vorheriges Thema - Nächstes Thema

Stephan1965

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Stephan1965

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz