Hallo zusammen,
hier mein Mini-Patch für das WG-Plugin Russound_RIO.pl von ChrisM (danke!) für die Zonen 7 und 8 der Russound C5.
Es ist ein Mini-Patch, denn er betrifft nur die GA-Struktur. Nach Makkis Skript beginnt Zone 1 bspw. bei 10/1/10, Zone 2 bei 10/1/50 usw. Das reicht in der Mittelgruppe 10/1 nur bis Zone 6, und bei 10/2/10 startet Zone 1 des zweiten Russound MCA sein.
Um nicht zu viel zu ändern, mache ich das so: Zone 1 bspw. bei 10/1/10, Zone 2 bei 10/1/50 ... Zone 7 bei 10/2/10, Zone 8 bei 10/2/50, und bei 10/3/10 startet Zone 1 des zweiten Russound MCA. Das ist ein wenig verschwenderischmit GAs, aber dafür verlassen wir Makkis GA-Struktur nicht.
@ChrisM: wenn ok für dich, kann ich das gepatchte Plugin ins SVN hochladen.
VG, Fry
hier mein Mini-Patch für das WG-Plugin Russound_RIO.pl von ChrisM (danke!) für die Zonen 7 und 8 der Russound C5.
Es ist ein Mini-Patch, denn er betrifft nur die GA-Struktur. Nach Makkis Skript beginnt Zone 1 bspw. bei 10/1/10, Zone 2 bei 10/1/50 usw. Das reicht in der Mittelgruppe 10/1 nur bis Zone 6, und bei 10/2/10 startet Zone 1 des zweiten Russound MCA sein.
Um nicht zu viel zu ändern, mache ich das so: Zone 1 bspw. bei 10/1/10, Zone 2 bei 10/1/50 ... Zone 7 bei 10/2/10, Zone 8 bei 10/2/50, und bei 10/3/10 startet Zone 1 des zweiten Russound MCA. Das ist ein wenig verschwenderischmit GAs, aber dafür verlassen wir Makkis GA-Struktur nicht.
Code:
@@ -12,7 +12,7 @@ # ############################################################################# -# $plugin_info{$plugname.'_cycle'}=0; return "Russound_RIO disabled"; # uncomment to disable plugin +#return; # uncomment to disable plugin ############################################################################# # Configuration: @@ -33,7 +33,7 @@ ############################################################################# # Constants: my $MAX_ZONES = 31; -my $ZONES_PER_CONTROLLER = 8; +my $ZONES_PER_CONTROLLER = 6; ############################################################################# # Collect log information @@ -138,8 +138,7 @@ { my $ctrl = int($zone/$ZONES_PER_CONTROLLER); my $czone = int($zone%$ZONES_PER_CONTROLLER); - my $base = $knxstartaddress + 10 + ($czone*40) + ($ctrl*512); - $base+=16 if $czone>=6; + my $base = $knxstartaddress + 10 + ($czone*40) + ($ctrl*256); for( my $i = 0; $i < 13; $i++ ) # iterate funcnames { my $a = $base + $i; @@ -168,21 +167,18 @@ my $controller; { use integer; - $func = ($dest - $knxstartaddress) % 512; - $func -=16 if $func>=266; - $zone = ($func - 10) / 40; + $func = ($dest - $knxstartaddress) % 256; + $zone = ($func - 10) / 40; $func = ($func - 10) % 40; - $controller = ($dest - $knxstartaddress) / 512; + $controller = ($dest - $knxstartaddress) / 256; } - + if( $func < 20) # >= 20 = response addresses { $retval .= sendrussFunc( $controller, $zone, $func, $val ); } } -return if $retval eq 'Socket: [->;;'; - return $retval; ############################################################################# @@ -353,4 +349,4 @@ my $knxGA = $knxstartaddress+30+$func + (($Z-1)*40) + (($C-1)*256); knx_write( addr2str( $knxGA, 1 ), $val, $dpt ); $retval .= 'KNX[' . addr2str( $knxGA, 1 ) . ',' . $dpt . ']:' . $val . ';' if $show_debug; -} +}
VG, Fry
Kommentar