diff --git a/fhem/FHEM/98_fheminfo.pm b/fhem/FHEM/98_fheminfo.pm index 95219a0c2..c30b45c28 100644 --- a/fhem/FHEM/98_fheminfo.pm +++ b/fhem/FHEM/98_fheminfo.pm @@ -107,8 +107,7 @@ sub _fi2_Count() { $model = ReadingsVal($name,'type',$model) if (lc($type) eq 'bosest'); # special reading for ZWave - $model = ReadingsVal($name,'modelId',$model) - if (lc($type) eq 'zwave'); + $model = _fi2_zwave(ReadingsVal($name,'modelId','')) if (lc($type) eq 'zwave'); # 5. ignore model for KNX $model = $c_noModel if (lc($type) eq 'knx'); @@ -251,6 +250,36 @@ sub _fi2_findRev { return $rev; } +sub _fi2_zwave($) { + my ($zwave) = @_; + my $xml = $attr{global}{modpath}. + "/FHEM/lib/openzwave_manufacturer_specific.xml"; + + my ($mf, $prod, $id) = split(/-/,$zwave); + ($mf, $prod, $id) = (lc($mf), lc($prod), lc($id)); # Just to make it sure + + my ($err,@data) = FileRead({FileName => $xml, ForceType=>'file'}); + return $err if($err); + + my ($lastMf, $mName, $ret) = ("",""); + foreach my $l (@data) { + if($l =~ m/