mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-08 13:24:56 +00:00
corrected encoding problem for celsius
file log now contains the translated value git-svn-id: https://svn.fhem.de/fhem/trunk@1251 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5e6f6ade39
commit
c888595148
@ -44,7 +44,7 @@ my %eib_dpttypes = (
|
||||
|
||||
# 2-Octet unsigned Value (Temp / Light)
|
||||
"dpt9" => {"CODE"=>"dpt9", "UNIT"=>""},
|
||||
"tempsensor" => {"CODE"=>"dpt9", "UNIT"=>"°C"},
|
||||
"tempsensor" => {"CODE"=>"dpt9", "UNIT"=>"Celsius"},
|
||||
"lightsensor" => {"CODE"=>"dpt9", "UNIT"=>"Lux"},
|
||||
|
||||
# Time of Day
|
||||
@ -262,34 +262,41 @@ EIB_Parse($$)
|
||||
|
||||
my $v = $codes{$val};
|
||||
$v = "$val" if(!defined($v));
|
||||
my $rawv = $v;
|
||||
|
||||
my @list;
|
||||
my $found = 0;
|
||||
|
||||
my $def = $modules{EIB}{defptr}{"$dev"};
|
||||
if($def) {
|
||||
my @list;
|
||||
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} = $v;
|
||||
$lh->{RAWSTATE} = $rawv;
|
||||
$lh->{LASTGROUP} = $dev;
|
||||
$lh->{READINGS}{state}{TIME} = TimeNow();
|
||||
$lh->{READINGS}{state}{VAL} = $v;
|
||||
Log GetLogLevel($n,2), "EIB $n $v";
|
||||
|
||||
# parse/translate by datapoint type
|
||||
EIB_ParseByDatapointType($lh,$n,$v);
|
||||
Log 2, "EIB $n $v";
|
||||
|
||||
push(@list, $n);
|
||||
$found = 1;
|
||||
}
|
||||
return @list;
|
||||
} else {
|
||||
|
||||
#return @list;
|
||||
}
|
||||
|
||||
# check also the further codes
|
||||
{
|
||||
# check if the code is within the read groups
|
||||
my $found = 0;
|
||||
|
||||
foreach my $mod (keys %{$modules{EIB}{defptr}})
|
||||
{
|
||||
my $def = $modules{EIB}{defptr}{"$mod"};
|
||||
@ -306,32 +313,34 @@ EIB_Parse($$)
|
||||
|
||||
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} = $v;
|
||||
$lh->{RAWSTATE} = $rawv;
|
||||
$lh->{LASTGROUP} = $dev;
|
||||
$lh->{READINGS}{state}{TIME} = TimeNow();
|
||||
$lh->{READINGS}{state}{VAL} = $v;
|
||||
Log GetLogLevel($n,2), "EIB $n $v";
|
||||
|
||||
# parse/translate by datapoint type
|
||||
EIB_ParseByDatapointType($lh,$n,$v);
|
||||
|
||||
Log 2, "EIB $n $v";
|
||||
|
||||
push(@list, $n);
|
||||
$found = 1;
|
||||
}
|
||||
}}
|
||||
return @list if $found>0;
|
||||
}
|
||||
}
|
||||
|
||||
if($found==0)
|
||||
{
|
||||
my $dev_name = eib_hex2name($dev);
|
||||
Log(3, "EIB Unknown device $dev ($dev_name), Value $val, please define it");
|
||||
return "UNDEFINED EIB_$dev EIB $dev";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return @list if $found>0;
|
||||
|
||||
if($found==0)
|
||||
{
|
||||
my $dev_name = eib_hex2name($dev);
|
||||
Log(3, "EIB Unknown device $dev ($dev_name), Value $val, please define it");
|
||||
return "UNDEFINED EIB_$dev EIB $dev";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -343,12 +352,12 @@ EIB_ParseByDatapointType($$$)
|
||||
my $model = $attr{$name}{"model"};
|
||||
|
||||
# nothing to do if no model is given
|
||||
return undef if(!defined($model));
|
||||
return $value if(!defined($model));
|
||||
|
||||
my $dpt = $eib_dpttypes{"$model"};
|
||||
|
||||
Log(4,"EIB parse $value for $name model: $model dpt: $dpt");
|
||||
return undef if(!defined($dpt));
|
||||
return $value if(!defined($dpt));
|
||||
|
||||
my $code = $eib_dpttypes{"$model"}{"CODE"};
|
||||
my $unit = $eib_dpttypes{"$model"}{"UNIT"};
|
||||
@ -408,13 +417,15 @@ EIB_ParseByDatapointType($$$)
|
||||
# set state to translated value
|
||||
if(defined($transval))
|
||||
{
|
||||
Log(4,"EIB $name translated to $transval");
|
||||
$hash->{STATE} = "$transval $unit";
|
||||
Log(4,"EIB $name translated to $transval $unit");
|
||||
$value = "$transval $unit";
|
||||
}
|
||||
else
|
||||
{
|
||||
Log(4,"EIB $name model $model could not be translated.");
|
||||
Log(4,"EIB $name model $model value $value could not be translated.");
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
#############################
|
||||
|
@ -11,13 +11,20 @@ define tul TUL eibd:marvin 1.1.249
|
||||
|
||||
define Lampe1 EIB 0/0/1
|
||||
define Lampe2 EIB 0/0/2 0/0/3
|
||||
define Lampe3 EIB 0/0/3
|
||||
|
||||
define LightSens EIB 0/0/250
|
||||
attr LightSens dummy 1
|
||||
attr LightSens model lightsensor
|
||||
attr LightSens model brightness
|
||||
#attr LightSens model lightsensor
|
||||
#attr LightSens model date
|
||||
|
||||
define LightSensLog FileLog test/LightSens_%Y.log LightSens
|
||||
define Lampe1Log FileLog test/Lampe1_%Y.log (Lampe1|Lampe2|Lampe3)
|
||||
|
||||
|
||||
attr Lampe1 webCmd on:off:on-for-timer 10
|
||||
|
||||
get Lampe3 value
|
||||
get Lampe1 value
|
||||
get Lampe2 value
|
Loading…
x
Reference in New Issue
Block a user