Hi RaK,
ich habe hier auch ein Dali Gateway.
Wird im MOment nur zum Dimmen von Leuchtstoffröhren verwendet.
Was hast Du denn da dranhängen?
LG
Klaus
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Misterhouse] RGB Sequencer
Einklappen
X
-
Fertisch
. Nicht schön, aber selten.
Folgende Einträge in der *.mht
Sollte Selbsterklärend sein.Code:EIB6, 10/0/3, Bad_Rot, OG_Bad, EIB6, 10/0/4, Bad_Gruen, OG_Bad, EIB6, 10/0/5, Bad_Blau, OG_Bad, EIB1, 10/0/6, SequenzerAn, OG_Bad, EIB1, 10/0/7, Bad_Spiegel, OG_Bad,
Folgender Perl Code als sequenzer.pl im Code Verzeichnis:
Die hsv2rgb bekommt man sicherlich für unsere Zwecke noch schlanker hin (Wertebereich 0 bis 100 zB). Dann sinkt der Rechenbedarf. Aber das ist die KürCode:# noloop=start my ($current_hue) = 0; my ($ro,$go,$bo) = hsv2rgb(0 , 255, 255); # noloop=stop if (!($New_Second % 2) == 0 && state $SequenzerAn eq ON && state $Bad_Spiegel eq ON) { my ($r,$g,$b); $current_hue += 5; if ($current_hue >= 255) { $current_hue = 0; } ($r, $g, $b) = hsv2rgb($current_hue, 255, 255); $r = int( $r/255*100); $g = int( $g/255*100); $b = int( $b/255*100); set $Bad_Rot $r if ($ro != $r); set $Bad_Gruen $g if ($go != $g); set $Bad_Blau $b if ($bo != $b); ($ro, $go, $bo) = ($r,$g,$b); printf("RGB %3i %3i %3i\n",$r,$g,$b); } if (state_changed $Bad_Spiegel eq OFF) { set $Bad_Rot 0; set $Bad_Gruen 0; set $Bad_Blau 0; set $SequenzerAn OFF; printf("RGB %3i %3i %3i\n",0,0,0); } elsif (state_changed $Bad_Spiegel eq ON) { set $Bad_Rot $ro; set $Bad_Gruen $go; set $Bad_Blau $bo; printf("RGB %3i %3i %3i\n",$ro,$go,$bo); } sub hsv2rgb { my ($H,$S,$V) = @_; my ($R,$G,$B) = (0,0,0); my ($var_r, $var_g, $var_b); $H = $H/255; $S = $S/255; $V = $V/255; if ( $S == 0 ) { $R = $V * 255; $G = $V * 255; $B = $V * 255; } else { my $var_h = $H * 6; if ( $var_h == 6 ) { $var_h = 0;} # H must be < 1 my $var_i = int( $var_h ) ; # Or ... $var_i = floor( var_h ) my $var_1 = $V * ( 1 - $S ); my $var_2 = $V * ( 1 - $S * ( $var_h - $var_i ) ); my $var_3 = $V * ( 1 - $S * ( 1 - ( $var_h - $var_i ) ) ); if ( $var_i == 0 ) { $var_r = $V ; $var_g = $var_3 ; $var_b = $var_1 ;} elsif ( $var_i == 1 ) { $var_r = $var_2 ; $var_g = $V ; $var_b = $var_1 ;} elsif ( $var_i == 2 ) { $var_r = $var_1 ; $var_g = $V ; $var_b = $var_3 ;} elsif ( $var_i == 3 ) { $var_r = $var_1 ; $var_g = $var_2 ; $var_b = $V ;} elsif ( $var_i == 4 ) { $var_r = $var_3 ; $var_g = $var_1 ; $var_b = $V ;} else { $var_r = $V ; $var_g = $var_1 ; $var_b = $var_2 ;} $R = $var_r * 255; # RGB results from 0 to 255 $G = $var_g * 255; $B = $var_b * 255; } return ($R, $G, $B); }
Bedienung ist dann wie folgt:
Zwei EIB1 Items (SequenzerAn und Bad_Spiegel). Beides als UM auf zwei Taster.
Bad_Spiegel toggelt das Licht an und aus. Bei an wird der letzte Farbwert wieder eingestellt.
SequenzerAn auf ON und schon beginnt das Farbenspiel (einmal durch den Farbkreis in 100 Sekunden) bis entweder SequenzerAn wieder auf Off gesetzt wird, oder das Licht ausgeschaltet wird.
Ich hoffe das reicht als "Beispiel" für ein wenig Perl Code nach dem ich immer gefragt werde.
Fragen? Fragen!
Wer hat noch DALI an MH? Was habt ihr so an Funktionen implementiert?
Einen Kommentar schreiben:
-
File
V-RGB-comparison.svg - Wikipedia, the free encyclopedia
Hab was gefunden. Ist eigentlich ganz logisch. Man kann das mit dem Farbmodel HSV erledigen.
Einen Kommentar schreiben:
-
Hab was gefunden. Im wesentlichen kann man das mit dem HSV Farbraum erledigen, nein nicht Hamburger Sportverein
.
Einen Kommentar schreiben:
-
Hallo Rak,
schau mal hier: LINK
unten auf der Seite ist der Quelltext für einen RGB-Fader mit Sonderfunktionen als bascom-basic programm verlinkt.
Ich habe das Programm in einem ATMEL laufen für meinen Springbrunnen - tuts prima.
Sollte eigentlich acuh in perl umsetzbar sein.
Gruß,
Thorsten
Einen Kommentar schreiben:
-
[Misterhouse] RGB Sequencer
Hallo Jungs,
ich bin gerade dabei mit DALI zu spielen. RGB ist der nächste logische Schritt. Dafür würde ich gerne einen RGB Sequenzer für MH bauen.
Funktion stelle ich mir so vor:
- Tastendruck löst Sequenzer aus
- MH steuert solange den Regenbogen durch (Farben, Geschwindigkeiten anpassbar) bis wieder auf die Taste gedrückt wird.
Ergo brauchen wir:
- drei Gruppenadressen (Taster und drei Dimmkanäle)
- noch eine beliebig lange Liste von RGB Farbwerten, die dann inkl. Interpolation dazwischen abgefahren werden
- eine Zeitkonstante, die die Geschwindigkeit bestimmt (für einen kompletten Durchlauf)
- ein boolean für Loop Ja/Nein
Hat jemand mit dem MH schon was ähnliches realisiert?
Wie sehen die Algorithmen aus für das "durchfahren" der Farbwerte.
Liebe GrüßeStichworte: -


Einen Kommentar schreiben: