diff --git a/fhem/FHEM/lib/AttrTemplate/zwave.template b/fhem/FHEM/lib/AttrTemplate/zwave.template index 50cab6684..9bb75fdb4 100644 --- a/fhem/FHEM/lib/AttrTemplate/zwave.template +++ b/fhem/FHEM/lib/AttrTemplate/zwave.template @@ -49,9 +49,59 @@ name:----Fibaro-devices-section-------- filter:TYPE=ZWave order:01Fibaro00000 -name:FGRM222 +name:FGRM222_Roller_Mode filter:TYPE=ZWave order:01Fibaro000005 +desc:Applies to Fibaro FGRM222 devices. This is for normal shutter mode. For other modes use different attrTemplates if available or manual configuration. +farewell:Things to be done manually: configure switch type (configSwitchType). +par:CALLSPEECHRECOGN;Set this to 0 to not set any speech recogn. related attributes;{ 1 } +par:ICON;ICON as set, defaults to fts_shutter_updown;{ AttrVal("DEVICE","icon","fts_shutter_updown") } +attr DEVICE icon ICON +deletereading -q DEVICE (?!associatedWith|model.*).* +attr DEVICE eventMap { usr=>{'dim.100'=>'dim 99' } } +attr DEVICE webCmd dim:stop +attr DEVICE cmdIcon stop:fts_shutter_manual +attr DEVICE widgetOverride dim:colorpicker,BRI,0,1,99 +set DEVICE configRollerShutterOperatingModes 1RollerBlindModeWithPositioning +set DEVICE configReportsType BlindPositionReportsSentToThe0 +option:{ CALLSPEECHRECOGN } +set DEVICE attrTemplate speechcontrol_type_blind +#closing section +option:{ 1 } +get DEVICE configAll +get DEVICE associationAll +setreading DEVICE attrTemplateVersion FGRM222_Roller_Mode_20200925 + + +name:FGRM222_Ventian_Blind_Mode +filter:TYPE=ZWave +order:01Fibaro000005a +desc:Applies to Fibaro FGRM222 devices. This is for venetian blind mode. For other modes use differnt attrTemplates or manual configuration. Note: additional code needed - has to be downloaded seperately from svn. +farewell:Things to be done manually: configure switch type (configSwitchType) and turning time for lamellas (configInVenetianBlindModeTheParameter12). +par:CALLSPEECHRECOGN;Set this to 0 to not set any speech recogn. related attributes;{ 1 } +par:ICON;ICON as set, defaults to fts_shutter_updown;{ AttrVal("DEVICE","icon","fts_shutter_updown") } +attr DEVICE icon ICON +deletereading -q DEVICE (?!associatedWith|model.*).* +attr DEVICE eventMap { usr=>{'dim.100'=>'dim 99' } } +attr DEVICE webCmd dim:stop +attr DEVICE cmdIcon stop:fts_shutter_manual +attr DEVICE widgetOverride dim:colorpicker,BRI,0,1,99 +attr DEVICE devStateIcon { FHEM::attrT_ZWave_Utils::devStateIcon_venetian_shutter($name,"FGRM222") } +set DEVICE configRollerShutterOperatingModes 2VenetianBlindModeWith2 +set DEVICE configReportsType BlindPositionReportsSentToThe1 +set DEVICE configSetLamellasBackToPrevious13 0LamellasReturnToPreviouslySet0 +attr DEVICE userReadings dim:power..0.0.W {my $pos = ReadingsVal($name,"state",0) =~ m,dim, ? ReadingsNum($name,"state",0) : ReadingsNum($name,"dim",0);; my $pos1 = ReadingsNum($name,"position",0);; $pos = $pos1 if ($pos > $pos1 +3 || $pos < $pos1 -3);; return $pos }, positionSlat:power..0.0.W {ReadingsVal($name,"position",0) =~ m,Slat.([0-9]+),?$1:undef} +option:{ CALLSPEECHRECOGN } +set DEVICE attrTemplate speechcontrol_type_blind +#closing section +option:{ 1 } +get DEVICE configAll +get DEVICE associationAll +setreading DEVICE attrTemplateVersion FGRM222_Ventian_Blind_Mode_20200925 + +name:FGRM222_Choice_demo +filter:TYPE=ZWave +order:01Fibaro000008 desc:Applies to Fibaro FGRM222 devices. You can choose between normal shutter mode or venetian blind mode. For other modes use manual configuration. Note: additional code will be downloaded from svn. farewell:Things to be done manually: configure switch type (configSwitchType) and (for venetain mode only) turning time for lamellas (configInVenetianBlindModeTheParameter12). par:RADIO_ROLLER_MODE;Configure as normal shutter (no option to turn lamellas);{ undef } @@ -65,25 +115,22 @@ attr DEVICE eventMap { usr=>{'dim.100'=>'dim 99' } } attr DEVICE webCmd dim:stop attr DEVICE cmdIcon stop:fts_shutter_manual attr DEVICE widgetOverride dim:colorpicker,BRI,0,1,99 - option:{ RADIO_ROLLER_MODE } set DEVICE configRollerShutterOperatingModes 1RollerBlindModeWithPositioning set DEVICE configReportsType BlindPositionReportsSentToThe0 - option:{ RADIO_VENETIANBLIND_MODE } attr DEVICE devStateIcon { FHEM::attrT::ZWave::devStateIcon_venetian_shutter($name,"FGRM222") } set DEVICE configRollerShutterOperatingModes 2VenetianBlindModeWith2 set DEVICE configReportsType BlindPositionReportsSentToThe1 set DEVICE configSetLamellasBackToPrevious13 0LamellasReturnToPreviouslySet0 attr DEVICE userReadings dim:power..0.0.W {my $pos = ReadingsVal($name,"state",0) =~ m,dim, ? ReadingsNum($name,"state",0) : ReadingsNum($name,"dim",0);; my $pos1 = ReadingsNum($name,"position",0);; $pos = $pos1 if ($pos > $pos1 +3 || $pos < $pos1 -3);; return $pos }, positionSlat:power..0.0.W {ReadingsVal($name,"position",0) =~ m,Slat.([0-9]+),?$1:undef} - option:{ CALLSPEECHRECOGN } set DEVICE attrTemplate speechcontrol_type_blind #closing section option:{ 1 } get DEVICE configAll get DEVICE associationAll -setreading DEVICE attrTemplateVersion FGRM222_20200912 +setreading DEVICE attrTemplateVersion FGRM222_Choice_demo_20200912 diff --git a/fhem/contrib/AttrTemplate/99_attrT_ZWave_Utils.pm b/fhem/contrib/AttrTemplate/99_attrT_ZWave_Utils.pm index 415c018a1..88685f71f 100644 --- a/fhem/contrib/AttrTemplate/99_attrT_ZWave_Utils.pm +++ b/fhem/contrib/AttrTemplate/99_attrT_ZWave_Utils.pm @@ -3,7 +3,7 @@ # # packages #################################################################### -package FHEM::attrT::ZWave; ## no critic 'Package declaration' +package FHEM::attrT_ZWave_Utils; ## no critic 'Package declaration' use strict; use warnings; @@ -41,6 +41,7 @@ sub devStateIcon_venetian_shutter { my $ret =""; my $slatlevel = 0; my $slatcommand_string = "dim "; + my $moving = 0; if ($model eq "FGR223") { my ($def,$defnr) = split(" ", InternalVal($levelname,"DEF",$levelname)); @@ -48,10 +49,12 @@ sub devStateIcon_venetian_shutter { my @slatnames = devspec2array("DEF=$def".'.'.$defnr); $slatname = shift @slatnames; $slatlevel= ReadingsNum($slatname,"state",0); + $moving = 1 if ReadingsNum($slatname,"power",0) > 0; } if ($model eq "FGRM222") { $slatlevel= ReadingsNum($slatname,"positionSlat",0); - $slatcommand_string = "positionSlat " + $slatcommand_string = "positionSlat "; + $moving = 1 if ReadingsNum($slatname,"power",0) > 0; } #levelicon @@ -59,10 +62,8 @@ sub devStateIcon_venetian_shutter { my $command_string = "dim 99"; $command_string = "dim 0" if $dimlevel > 50; $symbol_string .= int ((109 - $dimlevel)/10)*10; - $ret .= "" . FW_makeImage($symbol_string,"fts_shutter_10") . " "; - - #stop - $ret .= "" . FW_makeImage("fts_shutter_shadding_stop","fts_shutter_shadding_stop") . " "; + $ret .= $moving ? "" . FW_makeImage("edit_settings","edit_settings") . " " + : "" . FW_makeImage($symbol_string,"fts_shutter_10") . " "; #slat $symbol_string = "fts_blade_arc_close_"; @@ -79,6 +80,7 @@ sub devStateIcon_venetian_shutter { 1; +__END__ =pod =begin html