dpt5, wenn 0 liefert value="off" > Problem bei der Konvertierung

Begonnen von stefan.struhs, 03 Januar 2014, 15:21:20

Vorheriges Thema - Nächstes Thema

stefan.struhs

Im FHEM log ist mir aufgefallen, dass jedes mal wenn eine meiner dpt5-Gruppenadressen den Wert 0% einnehmen ein Fehler ausgegeben wird, i.e., dass "o" kein valides hexadezimales Zeichen sei, was natürlich korrekt ist:
Zitat
Illegal hexadecimal digit 'o' ignored at ./FHEM/10_EIB.pm line 487.

If habe herausgefunden, dass FHEM (?) "off" als value an 10_EIB.pm übergibt. Folgende Änderung behob das Problem. Wäre gut, wenn das offiziell übernommen werden würde:

EIB_ParseByDatapointType($$$)
...
if ($code eq "dpt5")
{
if ($value eq "off")
{
$transval = 0;
Log(5,"EIB $code parse $value translated: $transval");
} else
{

my $dpt5factor = $eib_dpttypes{"$model"}{"factor"};
my $fullval = hex($value);
$transval = $fullval;
$transval = sprintf("%.0f",$transval * $dpt5factor) if($dpt5factor != 0);

Log(5,"EIB $code parse $value = $fullval factor = $dpt5factor translated: $transval");
}
}
...

hmm01

Hallo,
gute Idee, aber wenn dieser Eingriff durchgeführt wird - lässt sich meine Lampe nicht mehr dimmen...

## TV Licht dimmen ##############################
define Licht_TV_Dim EIB 0/1/0
attr Licht_TV_Dim IODev KNX_IP
attr Licht_TV_Dim alias TV Lampe Dim
attr Licht_TV_Dim group Licht
attr Licht_TV_Dim icon scene_livingroom
attr Licht_TV_Dim model percent
attr Licht_TV_Dim room Wohnzimmer
attr Licht_TV_Dim webCmd value