From 2daeec14daf2e5add8ab5fbca9976a141c2a7ffb Mon Sep 17 00:00:00 2001 From: betateilchen Date: Thu, 6 Jul 2017 20:56:31 +0000 Subject: [PATCH] 98_fheminfo.pm: add special handling for zwave git-svn-id: https://svn.fhem.de/fhem/trunk@14657 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_fheminfo.pm | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) 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/