Farbcodes für Sonnenaufgang mit hue (und Alexa :)

Begonnen von nicor2k, 22 Februar 2017, 10:33:39

Vorheriges Thema - Nächstes Thema

nicor2k

Ich habe mir mal ein paar Farbwerte herausgesucht, um einen kurzen (40 Sek.) Sonnenaufgang mit hue Lampen zu simulieren. Angesteuert per FHEM, aber ausgelöst bei mir durch Alexa (entweder per Sprachbefehl oder mit IFTTT, wenn der Wecker angeht...).

Hoffe es ist hilfreich - Code für FHEM und meine Farbwerte hier:
https://www.computerhilfen.de/info/sonnenaufgang-mit-alexa-fhem-und-philips-hue.html

Wie es aussieht:
https://www.youtube.com/watch?v=oNtAGQ4fWV4


Viel Spaß, falls es jemand nachbauen möchte!

Rheingold

Hi,

habe den Beitrag gesehen und muss sagen, dass es schon sehr gut aussieht :) Nun möchte ich es nachbauen und an einer Stelle erweitern/ergänzen: Es soll möglich sein die Schleife abzubrechen.

In deinem Code läuft der Sonnenaufgang durch egal was passiert und ob sich der Status von "sonnenaufgang" ändert. Wie muss ich denn die Schleife erweitern, dass wenn ich manuell den Sonnenaufgang auf "off" schalte, die Schleife aufhört zu arbeiten?

Szenario ist: den Sonnenaufgang als Wack-Up-Light nutzen (mit entsprechender Verzögerung versteht sich). Wenn ich wach bin, möchte ich eine Taste drücken und den Sonnenaufgang stoppen und nicht warten, bis er durchläuft um dann erst das Licht aus zu schalten.
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

kaihs

Ich bin zwar nicht der ursprüngliche Autor aber ich habe basierend auf seinem Code meine Sonnenaufgangssteuerung erstellt.


sub myUtils_wakeuplight() {
      my @lamps = ('struc_sz_leds');
      my @sonne = ('030100','0B0300','190601','230902','2F0D03','370F03','401204','481405','521806',
       '591007','622108','6E2508','772809','7F2A09','882D0A','90300A','96320A','9D330A','A6360A','B0390A',
       'B0450A','B9480B','C1580B','CB610B','D3650C','D6740C','DC770B','DC810B','E5860B','ED8E12','F2A113',
       'F2B013','F5B51A','F9BA22','FBBD29','FEC232','FFC742','FECC55','FED166','FDD473',
       'FDD880','FEDD8C','FDDF97','FDE4A7','FDEABC','FDEEC8','FDF0D1','FDF3DA','FCF4E2');
      my $dauer = 30 * 60; # 30 Minuten
      my $sleepPerStep = $dauer/@sonne;
      my $cmd = "";
      my $cancel = "";
      my $i = 1;
      my $lamp = "";

      foreach my $rgb (@sonne) {
        foreach $lamp (@lamps) {
          $cmd .= "set $lamp rgb $rgb;"; 
        }
        $cmd .= "sleep $sleepPerStep slwul_$i;";
        $cancel .= "cancel slwul_$i quiet;;";
        $i++;
      }

      foreach $lamp (@lamps) {
        $cancel .= "set $lamp off;;"; 
      }
      # mglw. bereits laufendes WUL beenden
      fhem "cancel_wul";
      # alias cancel_wul neu anlegen
      fhem "defmod cancel_wul cmdalias cancel_wul AS $cancel";
      # WUL starten
      fhem $cmd if $cmd ne "";
}


Dort kann man
1. in @lamps beliebig viele Lampen angeben die angesteuert werden sollen. Das müssen dabei nicht unbedingt HUEs sein, sondern alles was ein 'set rgb' und 'set off' unterstützt
2. in $dauer die Dauer in Sekunden angeben die der Sonnenaufgang dauern soll
3. wird ein cmdalias cancel_wul erzeugt mit dem sich der Sonnenaufgang abbrechen lässt.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Rheingold

Mit den myUtils kenne ich mich noch nicht so richtig aus  ??? Wenn ich deinen Code in der 99_myUtils.pm einfüge, was muss ich dann noch ergänzen? Beispielsweise einen Dummy als Schalter zum starten/abbrechen definieren usw.
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

bjoernbo

Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

kaihs

Zitat von: Rheingold am 02 November 2017, 19:52:57
Mit den myUtils kenne ich mich noch nicht so richtig aus  ??? Wenn ich deinen Code in der 99_myUtils.pm einfüge, was muss ich dann noch ergänzen? Beispielsweise einen Dummy als Schalter zum starten/abbrechen definieren usw.

Wenn du in der fhem-Kommandozeile

{myUtils_wakeuplight()}

eingibst wird die Simulation gestartet.

Mit

cancel_wul

wird sie wieder abgebrochen.

Das kannst du dann überall verwenden, z. B. in einem notify welches auf einen dummy reagiert.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

bjoernbo

Super Sache, wie schon erwähnt. Habe das ganz nun umgekehrt, also in einen Sonnenuntergang. Jedoch möchte ich gerne, dass am Ende die Lampe ausgeschaltet wird. Funktioniert jedoch nicht, warum?

sonnenuntergang_ben {if ("$EVENT" eq "on") {
fhem("set HUEDevice1 rgb 030100;");
my @sonne = ('FCF4E2','FDF3DA','FDF0D1','FDEEC8','FDEABC','FDE4A7','FDDF97','FEDD8C','FDD880','FDD473','FED166','FECC55','FFC742','FEC232','FBBD29','F9BA22','F5B51A','F2B013','F2A113','ED8E12','E5860B','DC810B','DC770B','D6740C','D3650C','CB610B','C1580B','B9480B','B0450A','B0390A','A6360A','9D330A','96320A','90300A','882D0A','7F2A09','772809','6E2508','622108','591007','521806','481405','401204','370F03','2F0D03','230902','190601','0B0300');
my $counter = 2;
for(my $i = 0; $i < @sonne; $i++) {
fhem("sleep ".$counter."; set HUEDevice1 rgb ".$sonne[$i].";;");
$counter = $counter + 1;
fhem ("set HUEDevice1 off");

}
}

}


Im LogFile finde ich lediglich:
Zitat2017.11.03 10:00:59 3: set HUEDevice1 state off : Unknown argument state, choose one of off:noArg on:noArg toggle:noArg statusRequest:noArg pct:colorpicker,BRI,0,1,100 bri:colorpicker,BRI,0,1,254 rgb:colorpicker,RGB color:colorpicker,CT,2000,1,6500 ct:colorpicker,CT,154,1,500 hue:colorpicker,HUE,0,1,65535 sat:slider,0,1,254 xy effect:none,colorloop dimUp:noArg dimDown:noArg ctUp:noArg ctDown:noArg hueUp:noArg hueDown:noArg satUp:noArg satDown:noArg alert:none,select,lselect rename off-till blink on-till on-till-overnight off-for-timer on-for-timer intervals off-till-overnight

Auch mit fhem ("set HUEDevice1 state off"); funktioniert es nicht.

Jemand eine Idee was ich ändern muss?
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

ComputerZOO

#7
Hmm, mich wundert wo das state herkommen soll  ???
Zitatfhem ("set HUEDevice1 state off");

So sollte das Ganze doch funktionieren:
fhem ("set HUEDevice1 off");


EDIT: wird denn die Lampe ausgeschaltet, wenn du in der FHEM-Kommandozeile
set HUEDevice1 off eingibst?

bjoernbo

mit set HUEDevice1 off wird die Lampe ausgeschaltet, jedoch nicht innerhalb des "Sonnenunterganges". Muss dies ggf. an einer anderen Stelle eingebunden werden? Es ist ja eine if-Bedingung mit einer Schleife  :-\
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

CoolTux

Ich habe das immer so gemacht
Sonnenaufgang

set LED_StreifenSchlafzimmerBett bri 1 : transitiontime 0; set LED_StreifenSchlafzimmerBett hue 0 : sat 254 : transitiontime 0; set LED_StreifenSchlafzimmerBett hue 14505 : sat 25 : bri 254 : transitiontime 9000


Sonnenuntergang

set LED_StreifenFlurDecke bri 254 : transitiontime 0; set LED_StreifenFlurDecke hue 14505 : sat 25 : transitiontime 0; set LED_StreifenFlurDecke hue 0 : sat 254 : bri 1 : transitiontime 9000



Geht aber nur bei Hue
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


nicor2k

Freut mich, dass euch meine Idee gefallen hat und ihr sie direkt verbessern konntet!  :)

Wem das zu wenig Farben / noch zu große Farbsprünge sind: Ich habe die Farben etwas ergänzt. Dies ist der alte und der neue Farb-Array, viel Spaß!

ALT:
my @sonne = ('0B0300','190601','230902','2F0D03','370F03','401204','481405','521806','591007','622108','6E2508','772809','7F2A09','882D0A','90300A','96320A','9D330A','A6360A','B0390A','B0450A','B9480B','C1580B','CB610B','D3650C','D6740C','DC770B','DC810B','E5860B','ED8E12','F2A113','F2B013','F5B51A','F9BA22','FBBD29','FEC232','FFC742','FECC55','FED166','FDD473','FDD880','FEDD8C','FDDF97','FDE4A7','FDEABC','FDEEC8','FDF0D1','FDF3DA','FCF4E2');

NEU:
my @sonne = ('0B0300','0B0300','0B0300','0C0300','0C0300','0C0300','0D0300','0D0300','0E0300','0E0300','0E0300','0F0300','0F0300','100300','100300','100300','110300','110300','110300','120300','120300','130300','130300','130300','140300','140300','150300','150300','150300','160300','160300','160300','170300','170300','180300','180401','180401','190401','190401','1A0401','1A0401','1A0401','1B0401','1B0401','1B0401','1C0401','1C0401','1D0401','1D0401','1D0401','1E0401','1E0401','1F0401','1F0401','1F0401','200401','200401','210401','210401','210401','220401','220401','220401','230401','230401','240401','240401','240401','250401','250502','260502','260502','260502','270502','270502','270502','280502','280502','290502','290502','290502','2A0502','2A0502','2B0502','2B0502','2B0502','2C0502','2C0502','2C0502','2D0502','2D0502','2E0502','2E0502','2E0502','2F0502','2F0502','300502','300502','300502','310502','310502','310502','320502','320603','330603','330603','330603','340603','340603','350603','350603','350603','360603','360603','370603','370603','370603','380603','380603','380603','390603','390603','3A0603','3A0603','3A0603','3B0603','3B0603','3C0603','3C0603','3C0603','3D0603','3D0603','3D0603','3E0603','3E0603','3F0603','3F0603','3F0704','400704','400704','410704','410704','410704','420704','420704','420704','430704','430704','440704','440704','440704','450704','450704','460704','460704','460704','470704','470704','470704','480704','480704','490704','490704','490704','4A0704','4A0704','4B0704','4B0704','4B0704','4C0704','4C0704','4D0805','4E0905','4F0A05','500B05','510C05','520D06','530E06','540F06','551006','561106','571207','581307','591407','5A1507','5B1607','5C1708','5D1908','5E1A08','5F1B08','601C09','611D09','621E09','631F09','642009','65210A','66220A','67230A','68240A','69250A','6A260B','6B270B','6C290B','6D2A0B','6E2B0B','6F2C0C','702D0C','712E0C','722F0C','73300D','74310D','75320D','76330D','77340D','79350E','7A360E','7B370E','7C380E','7D3A0E','7E3B0F','7F3C0F','803D0F','813E0F','823F10','834010','844110','854210','864310','874411','884511','894611','8A4711','8B4811','8C4A12','8D4B12','8E4C12','8F4D12','904E12','914F13','925013','935113','945213','955314','965414','975514','985614','995714','9A5815','9B5915','9C5B15','9D5C15','9E5D15','9F5E16','A05F16','A16016','A26116','A46217','A56317','A66417','A76517','A86617','A96718','AA6818','AB6918','AC6B18','AD6C18','AE6D19','AF6E19','B06F19','B17019','B27119','B3721A','B4731A','B5741A','B6751A','B7761B','B8771B','B9781B','BA791B','BB7A1B','BC7C1C','BD7D1C','BE7E1C','BF7F1C','C0801C','C1811D','C2821D','C3831D','C4841D','C5851D','C6861E','C7871E','C8881E','C9891E','CA8A1F','CB8C1F','CC8D1F','CD8E1F','CE8F1F','D09020','D19120','D29220','D39320','D49420','D59521','D69621','D79721','D89821','D99922','DA9A22','DB9B22','DC9D22','DD9E22','DE9F23','DFA023','E0A123','E1A223','E2A323','E3A424','E4A524','E5A624','E6A724','E7A824','E8A925','E9AA25','EAAB25','EBAD25','ECAE26','EDAF26','EEB026','EFB126','F0B226','F1B327','F2B427','F3B527','F4B627','F5B727','F6B828','F7B928','F8BA28','F9BB28','FBBD29','FBBD29','FBBD2A','FBBD2B','FBBD2B','FBBE2C','FBBE2D','FBBE2E','FBBE2E','FBBF2F','FBBF30','FBBF31','FBBF31','FBBF32','FBC033','FBC034','FBC034','FBC035','FBC136','FBC137','FBC137','FBC138','FBC239','FBC23A','FBC23A','FBC23B','FBC23C','FBC33D','FBC33D','FBC33E','FBC33F','FBC43F','FBC440','FBC441','FBC442','FBC542','FBC543','FBC544','FBC545','FBC545','FBC646','FBC647','FBC648','FBC648','FBC749','FBC74A','FBC74B','FBC74B','FBC84C','FBC84D','FBC84E','FBC84E','FBC84F','FBC950','FBC951','FBC951','FBC952','FBCA53','FBCA53','FBCA54','FBCA55','FBCA56','FBCB56','FBCB57','FBCB58','FBCB59','FBCC59','FBCC5A','FBCC5B','FBCC5C','FBCD5C','FBCD5D','FBCD5E','FBCD5F','FBCD5F','FBCE60','FBCE61','FBCE62','FBCE62','FBCF63','FBCF64','FBCF65','FBCF65','FBD066','FBD067','FCD068','FCD068','FCD069','FCD16A','FCD16A','FCD16B','FCD16C','FCD26D','FCD26D','FCD26E','FCD26F','FCD370','FCD370','FCD371','FCD372','FCD373','FCD473','FCD474','FCD475','FCD476','FCD576','FCD577','FCD578','FCD579','FCD679','FCD67A','FCD67B','FCD67C','FCD67C','FCD77D','FCD77E','FCD77E','FCD77F','FCD880','FCD881','FCD881','FCD882','FCD883','FCD984','FCD984','FCD985','FCD986','FCDA87','FCDA87','FCDA88','FCDA89','FCDB8A','FCDB8A','FCDB8B','FCDB8C','FCDB8D','FCDC8D','FCDC8E','FCDC8F','FCDC90','FCDD90','FCDD91','FCDD92','FCDD92','FCDE93','FCDE94','FCDE95','FCDE95','FCDE96','FCDF97','FCDF98','FCDF98','FCDF99','FCE09A','FCE09B','FCE09B','FCE09C','FCE19D','FCE19E','FCE19E','FCE19F','FCE1A0','FCE2A1','FCE2A1','FCE2A2','FCE2A3','FCE3A4','FCE3A4','FCE3A5','FCE3A6','FDE4A7');



bigtruite

Das Skript ist echt super.  :D

Frage:
Wie müsste man abändern, dass es in Schleife durchläuft?

amenomade

Aus einem wiederkehrenden at aufrufen. https://fhem.de/commandref_DE.html#at
Aber Du musst an etwas denken, das die Schleife unterbrechen kann.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus