Ich habe das schon behoben. Bei mir läuft es jetzt einwandfrei.
-> Auch wenn den Code "Kraut und Rüben" ist.
Da hat es 100 Dinge die es entweder nicht braucht oder man etwas schöner hätte lösen können. Ich habe aber deinen Code mal nur soweit bereinigt, dass er funktioniert. Der rest habe ich mal noch drinn gelassen.
z.B.
Du hast ein Hash in dem stehen die Namen und GA...
Für was brauchst du dann noch :
oder für was ist die Zuweisung ein => 1 und aus => 0???
Du beschreibst also eine Variabel mit dem Namen ein statisch mit einer 1 und eine Variabel mit dem Namen aus statisch mit dem Wert 0??? -> Das ist doch für nix oder?
Naja egal...
So geht es erstmal:
Ich hoffe bei dir läuft es nun auch
-> Auch wenn den Code "Kraut und Rüben" ist.

Da hat es 100 Dinge die es entweder nicht braucht oder man etwas schöner hätte lösen können. Ich habe aber deinen Code mal nur soweit bereinigt, dass er funktioniert. Der rest habe ich mal noch drinn gelassen.
z.B.
Du hast ein Hash in dem stehen die Namen und GA...
Für was brauchst du dann noch :
Code:
my $schwarz= '13/2/1'; my $blau= '13/2/2';
Du beschreibst also eine Variabel mit dem Namen ein statisch mit einer 1 und eine Variabel mit dem Namen aus statisch mit dem Wert 0??? -> Das ist doch für nix oder?
Naja egal...
So geht es erstmal:
Code:
########################################################## ################################################################# # do not change anything below, all config stays above ################################################################# my $schwarz= '13/2/1'; my $blau= '13/2/2'; my $gelb= '13/2/4'; my $rot = '13/2/3'; my $Anwesenheit = '13/2/0'; my $begruessung = '13/2/5'; # subscribe plugin and call it only when necessary $plugin_subscribe{$schwarz}{$plugname} = 1; $plugin_subscribe{$gelb}{$plugname} = 1; $plugin_subscribe{$blau}{$plugname} = 1; $plugin_subscribe{$rot}{$plugname} = 1; $plugin_info{$plugname.'_cycle'} = 0; my @AlleButtons; push @AlleButtons, {besitzer => "Elisa", name => "rot", GA => "13/2/3", anwesend => "13/2/0", ein => 1, aus => 0 }; push @AlleButtons, {besitzer => "Volker", name => "schwarz", GA => "13/2/1", anwesend => "13/2/0", ein => 1, aus => 0 }; push @AlleButtons, {besitzer => "Samuel", name => "blau", GA => "13/2/2", anwesend => "13/2/0", ein => 1, aus => 0 }; push @AlleButtons, {besitzer => "Christina", name => "gelb", GA => "13/2/4", anwesend => "13/2/0", ein => 1, aus => 0 }; foreach my $element (@AlleButtons) { if ($msg{'dst'} eq ($element->{GA}) && ($msg{'apci'} eq 'A_GroupValue_Write') && knx_read($msg{'dst'},0,1) != $plugin_info{$plugname.'_' . ($element->{name}) }) { if ($msg{'value'} == 01) { ein($element->{ein}, $element->{anwesend}); begruessung($element->{ein}, $element->{anwesend}); } elsif ($msg{'value'} == 00) { Alleaus($element->{aus}, $element->{anwesend}); plugin_log($plugname,"name: " . $element->{name} . "; aus: "); } $plugin_info{$plugname.'_' . ($element->{name}) } = knx_read($element->{GA} ,0,1); } else { next; } } sub begruessung { knx_write($begruessung,1,1); } sub Alleaus { my $rot_stat = knx_read($rot,0,1); my $schwarz_stat = knx_read($schwarz,0,1); my $gelb_stat = knx_read($gelb,0,1); my $blau_stat = knx_read($blau,0,1); my ($global, $GA) = @_; if ($global == 0 || $global == 1) { if (($rot_stat == 00) && ($blau_stat == 00) && ($gelb_stat == 00) && ($schwarz_stat == 00)) { knx_write($GA,0,1); return "keiner daheim"; } } if (($rot_stat == 01) or ($blau_stat == 01) or ($gelb_stat == 01) or ($schwarz_stat == 01)) { knx_write($GA,1,1); return "Wilkommen zuahause"; } } sub ein { my ($global, $GA) = @_; if ($global == 0 || $global == 1) { knx_write($GA,1,1); return "keiner daheim"; } else { return; } }

Kommentar