From e80df122e2d7351fcd12cbb8ddac2fd9fe2e61dd Mon Sep 17 00:00:00 2001 From: zap Date: Mon, 11 Mar 2024 18:00:38 +0000 Subject: [PATCH] HMCCU: Bugfixes git-svn-id: https://svn.fhem.de/fhem/trunk@28635 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/88_HMCCU.pm | 15 +++++++++------ fhem/FHEM/HMCCUConf.pm | 28 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/fhem/FHEM/88_HMCCU.pm b/fhem/FHEM/88_HMCCU.pm index 5bc776649..2b27ec744 100755 --- a/fhem/FHEM/88_HMCCU.pm +++ b/fhem/FHEM/88_HMCCU.pm @@ -4351,8 +4351,8 @@ sub HMCCU_GetEnumValues ($$$$;$$) # If a list of conversions exists, use values/conversions from HMCCU_CONVERSIONS foreach my $cv (split(',', $argList)) { if (exists($HMCCU_CONVERSIONS->{$role}{$dpt}{$cv})) { - $valList{$HMCCU_CONVERSIONS->{$role}{$dpt}{$cv}} = $cv; - $valIndex{$cv} = $HMCCU_CONVERSIONS->{$role}{$dpt}{$cv}; + $valList{$cv} = $HMCCU_CONVERSIONS->{$role}{$dpt}{$cv}; + $valIndex{$HMCCU_CONVERSIONS->{$role}{$dpt}{$cv}} = $cv; } else { $valList{$cv} = $cv; @@ -6628,6 +6628,9 @@ sub HMCCU_UpdateRoleCommands ($$) my $chnNo //= ''; my ($cc, $cd) = HMCCU_ControlDatapoint ($clHash); + my $devName = $clHash->{NAME}; + my $devType = $clHash->{TYPE}; + # Delete existing role commands delete $clHash->{hmccu}{roleCmds} if (exists($clHash->{hmccu}{roleCmds})); @@ -6665,7 +6668,7 @@ sub HMCCU_UpdateRoleCommands ($$) $combDpt = $1; $cmdSyntax =~ s/^(COMBINED_PARAMETER|SUBMIT) //; if (!HMCCU_IsValidParameter ($clHash, "$addr:$cmdChn", 'VALUES', $combDpt, $parAccess)) { - HMCCU_Log ($clHash, 4, "HMCCUConf: Invalid parameter $addr:$cmdChn VALUES $combDpt $parAccess in role $role, command $cmd"); + HMCCU_Log ($clHash, 4, "HMCCUConf: Invalid parameter $addr:$cmdChn VALUES $combDpt $parAccess. Ignoring command $cmd in role $role for $devType device $devName"); next URCCMD; } } @@ -6693,7 +6696,7 @@ sub HMCCU_UpdateRoleCommands ($$) my ($ps, $dptList, $par, $fnc) = @subCmdList; my $psName = $ps eq 'I' ? 'VALUES' : $pset{$ps}; if (!defined($psName)) { - HMCCU_Log ($clHash, 2, "HMCCUConf: Invalid or undefined parameter set in role $role, command $cmd $subCmd"); + HMCCU_Log ($clHash, 4, "HMCCUConf: Invalid or undefined parameter set. Ignoring command $cmd in role $role for $devType device $devName"); next URCSUB; } $clHash->{hmccu}{roleCmds}{$cmdType}{$cmd}{ps} //= $psName; @@ -6724,13 +6727,13 @@ sub HMCCU_UpdateRoleCommands ($$) } } if (!$dptValid) { - HMCCU_Log ($clHash, 2, "HMCCUConf: Invalid parameter $addr:$cmdChn $psName $dpt $parAccess in role $role, command $cmd $subCmd"); + HMCCU_Log ($clHash, 4, "HMCCUConf: Invalid parameter $addr:$cmdChn $psName $dpt $parAccess. Ignoring command $cmd in role $role for $devType device $devName"); next URCSUB; } my $paramDef = HMCCU_GetParamDef ($ioHash, "$addr:$cmdChn", $psName, $dpt); if (!defined($paramDef)) { - HMCCU_Log ($ioHash, 2, "HMCCUConf: Can't get definition of datapoint $addr:$cmdChn.$dpt. Ignoring command $cmd in role $role for device $clHash->{NAME}"); + HMCCU_Log ($ioHash, 4, "HMCCUConf: Can't get definition of datapoint $addr:$cmdChn.$dpt. Ignoring command $cmd in role $role for $devType device $devName"); next URCCMD; } $clHash->{hmccu}{roleCmds}{$cmdType}{$cmd}{subcmd}{$scn}{scn} = sprintf("%03d", $subCmdNo); diff --git a/fhem/FHEM/HMCCUConf.pm b/fhem/FHEM/HMCCUConf.pm index 8f48ce486..dd8f6282c 100644 --- a/fhem/FHEM/HMCCUConf.pm +++ b/fhem/FHEM/HMCCUConf.pm @@ -254,8 +254,8 @@ $HMCCU_CONFIG_VERSION = '5.0'; '^(C#\.)?LEVEL$:+pct,+level', 'BLIND_TRANSMITTER' => '^(C#\.)?LEVEL$:+pct,+level;^(C#\.)?LEVEL_2$:+pctSlats', - 'BLIND_VIRTUAL_RECEIVER' => - '^(C#\.)?LEVEL$:+pct,+level', +# 'BLIND_VIRTUAL_RECEIVER' => +# '^(C#\.)?LEVEL$:+pct,+level', 'CAPACITIVE_FILLING_LEVEL_SENSOR' => '^(C#\.)?FILLING_LEVEL$:+level', 'CLIMATECONTROL_REGULATOR' => @@ -274,8 +274,8 @@ $HMCCU_CONFIG_VERSION = '5.0'; '^(C#\.)?LEVEL$:+pct,+level', 'DIMMER_TRANSMITTER' => '^(C#\.)?LEVEL$:+pct,+level;(C#\.)?COLOR$:+color', - 'DIMMER_VIRTUAL_RECEIVER' => - '^(C#\.)?LEVEL$:+pct,+level;(C#\.)?COLOR$:+color', +# 'DIMMER_VIRTUAL_RECEIVER' => +# '^(C#\.)?LEVEL$:+pct,+level;(C#\.)?COLOR$:+color', 'DIMMER_WEEK_PROFILE' => '^(C#\.)?WEEK_PROGRAM_CHANNEL_LOCKS$:+progMode', 'HB_GENERIC_DIST' => @@ -301,8 +301,8 @@ $HMCCU_CONFIG_VERSION = '5.0'; '^(C#\.)?ILLUMINATION$:+brightness;(C#\.)?PRESENCE_DETECTION_STATE:+presence;(C#\.)?PRESENCE_DETECTION_ACTIVE:+detection', 'SHUTTER_TRANSMITTER' => '^(C#\.)?LEVEL$:+pct,+level', - 'SHUTTER_VIRTUAL_RECEIVER' => - '^(C#\.)?LEVEL$:+pct,+level', +# 'SHUTTER_VIRTUAL_RECEIVER' => +# '^(C#\.)?LEVEL$:+pct,+level', 'SWITCH_PANIC' => '^(C#\.)?STATE$:+panic', 'SWITCH_SENSOR' => @@ -321,7 +321,7 @@ $HMCCU_CONFIG_VERSION = '5.0'; '^(C#\.)?TEMPERATURE$:+measured-temp;'. '^(C#\.)?HUMIDITY$:+humidity', 'DEFAULT' => - '^([0-9]{1,2}\.)?LEVEL$:+pct,+level;'. +# '^([0-9]{1,2}\.)?LEVEL$:+pct,+level;'. '^([0-9]{1,2}\.)?SET_TEMPERATURE$:+desired-temp;'. '^([0-9]{1,2}\.)?(ACTUAL_TEMPERATURE|TEMPERATURE)$:+measured-temp;'. '^([0-9]{1,2}\.)?SET_POINT_TEMPERATURE$:+desired-temp;'. @@ -429,7 +429,7 @@ $HMCCU_CONFIG_VERSION = '5.0'; 'on' => 'V:MANU_MODE:30.5', 'off' => 'V:MANU_MODE:4.5', 'auto' => 'V:AUTO_MODE:1', - 'boost' => 'V:BOOST_MODE:#boost=0,1', + 'boost' => 'V:BOOST_MODE:#boost=on,off', 'week-program:VirtualDevices' => 'D:WEEK_PROGRAM_POINTER:#program', 'get week-program:VirtualDevices' => 'D:WEEK_PROGRAM_POINTER:#program:HMCCU_DisplayWeekProgram' }, @@ -481,7 +481,7 @@ $HMCCU_CONFIG_VERSION = '5.0'; 'manu' => 'V:CONTROL_MODE:1 V:SET_POINT_TEMPERATURE:?temperature=20', 'rpcset holiday' => 'V:SET_POINT_MODE:2 V:SET_POINT_TEMPERATURE:?temperature V:PARTY_TIME_START:?timeStart V:PARTY_TIME_END:?timeEnd', 'rpcset party' => 'V:SET_POINT_MODE:2 V:SET_POINT_TEMPERATURE:?temperature V:PARTY_TIME_START:?timeStart V:PARTY_TIME_END:?timeEnd', - 'boost' => 'V:BOOST_MODE:#boost=0,1', + 'boost' => 'V:BOOST_MODE:#boost=on,off', 'on' => 'V:CONTROL_MODE:1 V:SET_POINT_TEMPERATURE:30.5', 'off' => 'V:CONTROL_MODE:1 V:SET_POINT_TEMPERATURE:4.5', 'week-program' => 'V:ACTIVE_PROFILE:#profile=1,2,3' @@ -572,7 +572,7 @@ $HMCCU_CONFIG_VERSION = '5.0'; }, 'on' => 'V:STATE:1', 'off' => 'V:STATE:0', - 'on-for-timer' => 'COMBINED_PARAMETER V:OT:?duration V:S:1', + 'on-for-timer' => 'COMBINED_PARAMETER V:OT:?duration V:S:true', 'on-till' => 'V:ON_TIME:?time V:STATE:1', 'toggle' => 'V:STATE:0,1' }, @@ -582,7 +582,7 @@ $HMCCU_CONFIG_VERSION = '5.0'; 'on' => 'V:MANU_MODE:30.5', 'off' => 'V:MANU_MODE:4.5', 'auto' => 'V:AUTO_MODE:1', - 'boost' => 'V:BOOST_MODE:#boost=0,1', + 'boost' => 'V:BOOST_MODE:#boost=on,off', 'week-program' => 'D:WEEK_PROGRAM_POINTER:#program', 'get week-program' => 'D:WEEK_PROGRAM_POINTER:#program:HMCCU_DisplayWeekProgram' }, @@ -872,17 +872,17 @@ $HMCCU_CONFIG_VERSION = '5.0'; 'THERMALCONTROL_TRANSMIT' => { 'SET_TEMPERATURE' => { '4.5' => 'off', '30.5' => 'on' }, 'WINDOW_OPEN_REPORTING' => { '0' => 'closed', '1' => 'open', 'false' => 'closed', 'true' => 'open' }, - 'BOOST_MODE' => { '0' => 'boostOff', '1' => 'boostOn', 'false' => 'boostOff', 'true' => 'boostOn' } + 'BOOST_MODE' => { '0' => 'off', '1' => 'on', 'false' => 'off', 'true' => 'on', 'off' => 0, 'on' => 1 } }, 'CLIMATECONTROL_RT_TRANSCEIVER' => { 'SET_TEMPERATURE' => { '4.5' => 'off', '30.5' => 'on' }, - 'BOOST_MODE' => { '0' => 'boostOff', '1' => 'boostOn', 'false' => 'boostOff', 'true' => 'boostOn' } + 'BOOST_MODE' => { '0' => 'off', '1' => 'on', 'false' => 'off', 'true' => 'on', 'off' => 0, 'on' => 1 } }, 'HEATING_CLIMATECONTROL_TRANSCEIVER' => { 'SET_POINT_TEMPERATURE' => { '4.5' => 'off', '30.5' => 'on' }, 'SET_POINT_MODE' => { '0' => 'auto', '1' => 'manual', '2' => 'party/holiday', '3' => 'off' }, 'WINDOW_STATE' => { '0' => 'closed', '1' => 'open', 'false' => 'closed', 'true' => 'open' }, - 'BOOST_MODE' => { '0' => 'boostOff', '1' => 'boostOn', 'false' => 'boostOff', 'true' => 'boostOn' } + 'BOOST_MODE' => { '0' => 'off', '1' => 'on', 'false' => 'off', 'true' => 'on', 'off' => 0, 'on' => 1 } }, 'CLIMATECONTROL_REGULATOR' => { 'SETPOINT' => { '4.5' => 'off', '30.5' => 'on' }