From e4446f20788bf0e096ff3248b6a695e925cc6188 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sun, 15 Nov 2015 19:28:20 +0000 Subject: [PATCH] 10_ZWave.pm: decode ccCapability, fix rgb (Forum #44014) git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@9909 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_ZWave.pm | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 574ff46c7..ace9f07e8 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -97,7 +97,7 @@ my %zwave_class = ( parse => { "..3105(..)(..)(.*)" => 'ZWave_multilevelParse($1,$2,$3)'} }, METER => { id => '32', set => { meterReset => "05" }, - get => { meter => 'Zwave_meterGet("%s")', + get => { meter => 'ZWave_meterGet("%s")', meterSupported => "03" }, parse => { "..3202(.*)" => 'ZWave_meterParse($hash, $1)', "..3204(.*)" => 'ZWave_meterSupportedParse($hash, $1)' } }, @@ -105,9 +105,9 @@ my %zwave_class = ( get => { ccCapability=> '01', # no more args ccStatus => '03%02x' }, set => { # Forum #36050 - rgb => '05050000010002%02x03%02x04%02x', + rgb => '050302%02x03%02x04%02x', wcrgb => '050500%02x01%02x02%02x03%02x04%02x' }, - parse => { "043302(.*)"=> '"ccCapability:$1"', + parse => { "043302(..)(..)"=> 'ZWave_ccCapability($1,$2)', "043304(..)(.*)"=> '"ccStatus_$1:$2"' } }, ZIP_ADV_CLIENT => { id => '34' }, METER_PULSE => { id => '35' }, @@ -830,6 +830,20 @@ ZWave_HrvStatus($) return join("\n", @l); } +sub +ZWave_ccCapability($$) +{ + my ($l,$h) = @_; + my @names = ("WarmWhite","ColdWhite","Red","Green", + "Blue","Amber","Cyan","Purpple","Indexed"); + my $x = hex($l)+256*hex($h); + my @ret; + for(my $i=0; $i ["kWh", "kVAh", "W", "pulseCount", "V", "A", "PowerFactor"], gas => ["m3", "feet3", "undef", "pulseCount"], @@ -906,7 +920,7 @@ ZWave_meterParse($$) sub -Zwave_meterGet($) +ZWave_meterGet($) { my ($scale) = @_;