Lange habe ich gesucht und doch nix gefunden.
Daher hab ich mich mal selbst an die Arbeit gemacht.
Hier mal mein erstes Plugin.
RGB Sequenzer für Dali Gateway.
Meine Tests liefen gut. Einige Feinheiten müssten allerdings noch geändert werden.
Bei mir werkelt übrigens ein ABB Dali Gateway.
Es sollte aber auch mit jedem anderen laufen. Sollte
die Dimmzeit von 0-100% um von 100-0% nicht per GA einstellbar sein,
Muss diese natürlich dem Delay des Plugins angepasst werden.
Sieht sonst komisch aus.
Schaut es Euch mal an und sagt mir ob ich was ändern sollte / muss.
Hier mal der Code:
Bin für jede Kritik Offen :-)
Viel Spaß
Daher hab ich mich mal selbst an die Arbeit gemacht.
Hier mal mein erstes Plugin.
RGB Sequenzer für Dali Gateway.
Meine Tests liefen gut. Einige Feinheiten müssten allerdings noch geändert werden.
Bei mir werkelt übrigens ein ABB Dali Gateway.
Es sollte aber auch mit jedem anderen laufen. Sollte
die Dimmzeit von 0-100% um von 100-0% nicht per GA einstellbar sein,
Muss diese natürlich dem Delay des Plugins angepasst werden.
Sieht sonst komisch aus.
Schaut es Euch mal an und sagt mir ob ich was ändern sollte / muss.
Hier mal der Code:
Code:
#!/usr/bin/perl -w ###RGB Sequenzer### ##v1.0 ##evilg my $delay = 10; #Einstellen der Fadingtime my $ga_fadespeed = "7/6/0"; #GA zum einstellen der Fadingtime im DaliGateway (Das Gateway sollte das unterstützen, sonst muss die DimmZeit der Fadingtime händisch im Gateway gesetzt werden. my $ga_start = "7/1/3"; #Start GA my $ga_rot = "7/2/0"; #GA für Gruppe Rot my $ga_gruen = "7/2/1"; #GA für Gruppe Grün my $ga_blau = "7/2/2"; #GA für Gruppe Blau my $an = "255"; #Max Dimmwert An my $aus = "0"; #Min Dimmwert Aus $plugin_info{$plugname.'_cycle'} = 0; # nur bei Telegramm aufrufen $plugin_subscribe{$ga_start}{$plugname} = 1; if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $ga_start) { my $step1 = knx_read($ga_start,15,1); if ($step1 == 1) { knx_write($ga_fadespeed,0,4); #Fadespeed zum Ausschalten auf 0 setzen knx_write($ga_rot,$aus,5); #Zum Start alles Aus knx_write($ga_blau,$aus,5); #Zum Start alles Aus knx_write($ga_gruen,$aus,5); #Zum Start alles Aus knx_write($ga_fadespeed,$delay,4); #Fadespeed senden Rgb: #Wiederholungsmarke $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = $delay; $plugin_info{$plugname.'_step1_active'} = 1; plugin_log($plugname,"step1 aktiv. Weiter in $delay Sekunden"); knx_write($ga_gruen,$aus,5); knx_write($ga_rot,$an,5); } } else { if ($plugin_info{$plugname.'_step1_active'} == 1) { knx_write($ga_gruen,$an,5); knx_write($ga_blau,$aus,5); $plugin_info{$plugname.'_step1_active'} = 0; plugin_log($plugname,"Pause von $delay Sekunden ausgeführt"); $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = $delay; my $step2 = "1"; if ($step2 == 1) { $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = $delay; $plugin_info{$plugname.'_step2_active'} = 1; plugin_log($plugname,"step2 aktiv. Weiter in $delay Sekunden"); } } else { if ($plugin_info{$plugname.'_step2_active'} == 1) { knx_write($ga_blau,$an,5); knx_write($ga_rot,$aus,5); my $step2 = "0"; $plugin_info{$plugname.'_step2_active'} = 0; plugin_log($plugname,"Pause von $delay Sekunden ausgeführt"); $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = $delay; my $step3 = "1"; if ($step3 == 1) { $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = $delay; $plugin_info{$plugname.'_step3_active'} = 1; plugin_log($plugname,"step3 aktiv. Weiter in $delay Sekunden"); } } else { if ($plugin_info{$plugname.'_step3_active'} == 1) { knx_write($ga_gruen,$aus,5); knx_write($ga_rot,$an,5); my $step3 = "0"; $plugin_info{$plugname.'_step3_active'} = 0; plugin_log($plugname,"Pause von $delay Sekunden ausgeführt"); $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = $delay; goto Rgb; #Sprung zum Anfang } } } } return;
Viel Spaß
Kommentar