From 4727ec2414d12f292f6b4d0c2e3a2936a66fee01 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 21 Feb 2016 17:51:10 +0000 Subject: [PATCH] 10_ZWave.pm: impement swm SWITCH_MULTILEVEL_START_LEVEL_CHANGE (Forum #49568) git-svn-id: https://svn.fhem.de/fhem/trunk@10909 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_ZWave.pm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 32228ebd3..5f579cfa2 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -74,6 +74,7 @@ my %zwave_class = ( "..2601ff.."=> "state:setOn", "..260420" => "state:swmBeginUp", "..260460" => "state:swmBeginDown", + "..2604(..)(..)(..)(..)" => 'ZWave_swmParse($1,$2,$3,$4)', "..2605" => "state:swmEnd" } }, SWITCH_ALL => { id => '27', set => { swaIncludeNone => "0100", @@ -1995,6 +1996,18 @@ ZWave_SetClasses($$$$) return ""; } +sub +ZWave_swmParse($$$$) +{ + my ($fl, $sl, $dur, $step)=@_; + my $fl1 = (hex($fl) & 0x18)>>3; + my $fl2 = (hex($fl) & 0xc0)>>6; + $fl = ($fl1==0 ? "Increment": $fl1==1 ? "Decrement" : "")." ". + ($fl2==0 ? "Up": $fl1==1 ? "Down" : ""); + return sprintf("state:swm %s Start: %d Duration: %d Step: %d", + $fl, hex($sl), hex($dur), hex($step)); +} + sub ZWave_sceneParse($) { @@ -5206,6 +5219,8 @@ s2Hex($)