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($)