2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

ZWave.pm: METER class: change undef to UNKNOWN_X (Forum #124642)

git-svn-id: https://svn.fhem.de/fhem/trunk@25317 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2021-12-07 16:29:12 +00:00
parent 851f902784
commit 881e76524d

View File

@ -1817,7 +1817,14 @@ my %zwm_unit = (
heating => ["kWh" ], heating => ["kWh" ],
cooling => ["kWh" ] cooling => ["kWh" ]
); );
my @meter_type_text = ("undef", "energy", "gas", "water", "heating", "cooling"); my @meter_type_text = (
"UNKNOWN_0",
"energy",
"gas",
"water",
"heating",
"cooling"
);
sub sub
ZWave_meterParse($$) ZWave_meterParse($$)
@ -1836,7 +1843,7 @@ ZWave_meterParse($$)
my $meter_type = ($v1 & 0x1f); my $meter_type = ($v1 & 0x1f);
my $meter_type_text = ($meter_type > $#meter_type_text ? my $meter_type_text = ($meter_type > $#meter_type_text ?
"undef" : $meter_type_text[$meter_type]); "UNKNOWN_${meter_type}" : $meter_type_text[$meter_type]);
my $precision = ($v2>>5) & 0x7; # 3 bits my $precision = ($v2>>5) & 0x7; # 3 bits
my $scale = ($v2>>3) & 0x3; # 2 bits, meaning unit my $scale = ($v2>>3) & 0x3; # 2 bits, meaning unit
@ -1845,8 +1852,8 @@ ZWave_meterParse($$)
$scale |= (($v1 & 0x80) >> 5); $scale |= (($v1 & 0x80) >> 5);
$scale = 8+hex(substr($v3, -2)) if($scale == 7); # V4 $scale = 8+hex(substr($v3, -2)) if($scale == 7); # V4
my $unit_text = ($meter_type_text eq "undef" ? my $unit_text = ($meter_type_text =~ m/^UNKNOWN/ ?
"undef" : $zwm_unit{$meter_type_text}[$scale]); "UNKNOWN" : $zwm_unit{$meter_type_text}[$scale]);
$meter_type_text = "power" if ($unit_text eq "W"); $meter_type_text = "power" if ($unit_text eq "W");
$meter_type_text = "voltage" if ($unit_text eq "V"); $meter_type_text = "voltage" if ($unit_text eq "V");
$meter_type_text = "current" if ($unit_text eq "A"); $meter_type_text = "current" if ($unit_text eq "A");