diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 333060cde..a9916e609 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -12,6 +12,7 @@ sub ZWave_Set($@); sub ZWave_Get($@); sub ZWave_Cmd($$@); sub ZWave_ParseMeter($); +sub ZWave_ParseScene($); sub ZWave_SetClasses($$$$); sub ZWave_getParse($$$); @@ -64,7 +65,9 @@ my %zwave_class = ( SWITCH_TOGGLE_MULTILEVEL => { id => '29', }, CHIMNEY_FAN => { id => '2a', }, SCENE_ACTIVATION => { id => '2b', - set => { sceneActivate => "01%02x%02x",}, }, + set => { sceneActivate => "01%02x%02x",}, + parse => { "042b01(..)(..)" => '"scene_$1:$2"', + "042b01(..)ff" => 'ZWave_ParseScene($1)',}, }, SCENE_ACTUATOR_CONF => { id => '2c', set => { sceneConfig => "01%02x%02x80%02x",}, get => { sceneConfig => "02%02x", }, @@ -578,6 +581,16 @@ ZWave_SetClasses($$$$) return ""; } +sub +ZWave_ParseScene($) +{ + my ($p)=@_; + my @arg = ("unknown", "on", "off", + "dim up start", "dim down start", "dim up end", "dim down end"); + return sprintf("sceneEvent%s:%s", int(hex($p)/10), $arg[hex($p)%10]); +} + + sub ZWave_mcCapability($$) { @@ -993,10 +1006,18 @@ s2Hex($)