2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-16 10:46:03 +00:00
git-svn-id: https://svn.fhem.de/fhem/trunk@1253 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
hotmaz 2012-02-11 22:20:34 +00:00
parent 9c15c8fe76
commit d4f26fbf93

View File

@ -276,70 +276,41 @@ EIB_Parse($$)
my @list;
my $found = 0;
my $def = $modules{EIB}{defptr}{"$dev"};
if($def) {
foreach my $n (keys %{ $def }) {
my $lh = $def->{$n};
$n = $lh->{NAME}; # It may be renamed
return "" if(IsIgnored($n)); # Little strange.
# parse/translate by datapoint type
$v = EIB_ParseByDatapointType($lh,$n,$v);
$lh->{CHANGED}[0] = $v;
$lh->{STATE} = $v;
$lh->{RAWSTATE} = $rawv;
$lh->{LASTGROUP} = $dev;
$lh->{READINGS}{state}{TIME} = TimeNow();
$lh->{READINGS}{state}{VAL} = $v;
Log 2, "EIB $n $v";
push(@list, $n);
$found = 1;
# check if the code is within the read groups
# we will inform all definitions subsribed to this code
foreach my $mod (keys %{$modules{EIB}{defptr}})
{
my $def = $modules{EIB}{defptr}{"$mod"};
if($def) {
foreach my $n (keys %{ $def }) {
my $lh = $def->{$n};
foreach my $c (keys %{ $lh->{CODE} } )
{
$c = $lh->{CODE}{$c};
if($c eq $dev)
{
$n = $lh->{NAME}; # It may be renamed
return "" if(IsIgnored($n)); # Little strange.
# parse/translate by datapoint type
$v = EIB_ParseByDatapointType($lh,$n,$v);
$lh->{CHANGED}[0] = $v;
$lh->{STATE} = $v;
$lh->{RAWSTATE} = $rawv;
$lh->{LASTGROUP} = $dev;
$lh->{READINGS}{state}{TIME} = TimeNow();
$lh->{READINGS}{state}{VAL} = $v;
Log 2, "EIB $n $v";
push(@list, $n);
$found = 1;
}
}}
}
#return @list;
}
# check also the further codes
{
# check if the code is within the read groups
foreach my $mod (keys %{$modules{EIB}{defptr}})
{
my $def = $modules{EIB}{defptr}{"$mod"};
if($def) {
my @list;
foreach my $n (keys %{ $def }) {
my $lh = $def->{$n};
foreach my $c (keys %{ $lh->{CODE} } )
{
$c = $lh->{CODE}{$c};
if($c eq $dev)
{
$n = $lh->{NAME}; # It may be renamed
return "" if(IsIgnored($n)); # Little strange.
# parse/translate by datapoint type
$v = EIB_ParseByDatapointType($lh,$n,$v);
$lh->{CHANGED}[0] = $v;
$lh->{STATE} = $v;
$lh->{RAWSTATE} = $rawv;
$lh->{LASTGROUP} = $dev;
$lh->{READINGS}{state}{TIME} = TimeNow();
$lh->{READINGS}{state}{VAL} = $v;
Log 2, "EIB $n $v";
push(@list, $n);
$found = 1;
}
}}
}
}
}
}
return @list if $found>0;
@ -349,9 +320,7 @@ EIB_Parse($$)
Log(3, "EIB Unknown device $dev ($dev_name), Value $val, please define it");
return "UNDEFINED EIB_$dev EIB $dev";
}
}
}
sub