2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-04 11:26:55 +00:00

10_ZWave.pm: decode ccCapability, fix rgb (Forum #44014)

git-svn-id: https://svn.fhem.de/fhem/trunk@9909 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-11-15 19:28:20 +00:00
parent 0d4aa59bc7
commit b29d956ec8

View File

@ -97,7 +97,7 @@ my %zwave_class = (
parse => { "..3105(..)(..)(.*)" => 'ZWave_multilevelParse($1,$2,$3)'} }, parse => { "..3105(..)(..)(.*)" => 'ZWave_multilevelParse($1,$2,$3)'} },
METER => { id => '32', METER => { id => '32',
set => { meterReset => "05" }, set => { meterReset => "05" },
get => { meter => 'Zwave_meterGet("%s")', get => { meter => 'ZWave_meterGet("%s")',
meterSupported => "03" }, meterSupported => "03" },
parse => { "..3202(.*)" => 'ZWave_meterParse($hash, $1)', parse => { "..3202(.*)" => 'ZWave_meterParse($hash, $1)',
"..3204(.*)" => 'ZWave_meterSupportedParse($hash, $1)' } }, "..3204(.*)" => 'ZWave_meterSupportedParse($hash, $1)' } },
@ -105,9 +105,9 @@ my %zwave_class = (
get => { ccCapability=> '01', # no more args get => { ccCapability=> '01', # no more args
ccStatus => '03%02x' }, ccStatus => '03%02x' },
set => { # Forum #36050 set => { # Forum #36050
rgb => '05050000010002%02x03%02x04%02x', rgb => '050302%02x03%02x04%02x',
wcrgb => '050500%02x01%02x02%02x03%02x04%02x' }, wcrgb => '050500%02x01%02x02%02x03%02x04%02x' },
parse => { "043302(.*)"=> '"ccCapability:$1"', parse => { "043302(..)(..)"=> 'ZWave_ccCapability($1,$2)',
"043304(..)(.*)"=> '"ccStatus_$1:$2"' } }, "043304(..)(.*)"=> '"ccStatus_$1:$2"' } },
ZIP_ADV_CLIENT => { id => '34' }, ZIP_ADV_CLIENT => { id => '34' },
METER_PULSE => { id => '35' }, METER_PULSE => { id => '35' },
@ -830,6 +830,20 @@ ZWave_HrvStatus($)
return join("\n", @l); 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<int(@names); $i++) {
push @ret,$names[$i] if($x & (1<<$i));
}
return join(",",@ret);
}
my %zwm_unit = ( my %zwm_unit = (
energy=> ["kWh", "kVAh", "W", "pulseCount", "V", "A", "PowerFactor"], energy=> ["kWh", "kVAh", "W", "pulseCount", "V", "A", "PowerFactor"],
gas => ["m3", "feet3", "undef", "pulseCount"], gas => ["m3", "feet3", "undef", "pulseCount"],
@ -906,7 +920,7 @@ ZWave_meterParse($$)
sub sub
Zwave_meterGet($) ZWave_meterGet($)
{ {
my ($scale) = @_; my ($scale) = @_;