mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
HMCCU: Minor improvements
git-svn-id: https://svn.fhem.de/fhem/trunk@26565 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
6079951016
commit
c5b1b9404b
@ -1,5 +1,6 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||||
# Do not insert empty lines here, update check depends on it.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- change: 88_HMCCU: Minor improvements
|
||||||
- feature: 70_ESCVP21net: added LS12000 (with POPLP, LENS, HLENS)
|
- feature: 70_ESCVP21net: added LS12000 (with POPLP, LENS, HLENS)
|
||||||
- bugfix: 76_SMAInverter:fix new ETOTAL/LOADTOTAL bug
|
- bugfix: 76_SMAInverter:fix new ETOTAL/LOADTOTAL bug
|
||||||
- change: 76_SMAInverter: add new hybrid inverters, STPxx.0SE
|
- change: 76_SMAInverter: add new hybrid inverters, STPxx.0SE
|
||||||
|
@ -57,7 +57,7 @@ my %HMCCU_CUST_CHN_DEFAULTS;
|
|||||||
my %HMCCU_CUST_DEV_DEFAULTS;
|
my %HMCCU_CUST_DEV_DEFAULTS;
|
||||||
|
|
||||||
# HMCCU version
|
# HMCCU version
|
||||||
my $HMCCU_VERSION = '5.0 222751518';
|
my $HMCCU_VERSION = '5.0 222930908';
|
||||||
|
|
||||||
# Timeout for CCU requests (seconds)
|
# Timeout for CCU requests (seconds)
|
||||||
my $HMCCU_TIMEOUT_REQUEST = 4;
|
my $HMCCU_TIMEOUT_REQUEST = 4;
|
||||||
@ -650,27 +650,29 @@ sub HMCCU_Attr ($@)
|
|||||||
elsif ($attrname eq 'ccuflags') {
|
elsif ($attrname eq 'ccuflags') {
|
||||||
my $ccuflags = AttrVal ($name, 'ccuflags', 'null');
|
my $ccuflags = AttrVal ($name, 'ccuflags', 'null');
|
||||||
if ($attrval =~ /(intrpc|extrpc)/) {
|
if ($attrval =~ /(intrpc|extrpc)/) {
|
||||||
HMCCU_Log ($hash, 1, "HMCCU: [$name] RPC server mode $1 no longer supported. Using procrpc instead");
|
HMCCU_Log ($hash, 1, "RPC server mode $1 no longer supported. Using procrpc instead");
|
||||||
$attrval =~ s/(extrpc|intrpc)/procrpc/;
|
$attrval =~ s/(extrpc|intrpc)/procrpc/;
|
||||||
$_[3] = $attrval;
|
$_[3] = $attrval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($attrname eq 'ccuGetVars') {
|
elsif ($attrname eq 'ccuGetVars') {
|
||||||
my ($interval, $pattern) = split /:/, $attrval;
|
my ($interval, $pattern) = split /:/, $attrval;
|
||||||
$pattern = '.*' if (!defined ($pattern));
|
$interval = 60 if (!defined($interval) || $interval eq '');
|
||||||
|
$pattern = '.*' if (!defined($pattern) || $pattern eq '');
|
||||||
|
return "HMCCU: [$name] Interval is not numeric for attribute ccuGetVars" if (!HMCCU_IsIntNum($interval));
|
||||||
$hash->{hmccu}{ccuvarspat} = $pattern;
|
$hash->{hmccu}{ccuvarspat} = $pattern;
|
||||||
$hash->{hmccu}{ccuvarsint} = $interval;
|
$hash->{hmccu}{ccuvarsint} = $interval;
|
||||||
RemoveInternalTimer ($hash, "HMCCU_UpdateVariables");
|
RemoveInternalTimer ($hash, 'HMCCU_UpdateVariables');
|
||||||
if ($interval > 0) {
|
if ($interval > 0) {
|
||||||
HMCCU_Log ($hash, 2, "HMCCU: [$name] Updating CCU system variables every $interval seconds");
|
HMCCU_Log ($hash, 2, "Updating CCU system variables matching $pattern every $interval seconds");
|
||||||
InternalTimer (gettimeofday()+$interval, "HMCCU_UpdateVariables", $hash);
|
InternalTimer (gettimeofday()+$interval, 'HMCCU_UpdateVariables', $hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($attrname eq 'eventMap') {
|
elsif ($attrname eq 'eventMap') {
|
||||||
my @av = map { $_ =~ /^rpcserver (on|off):(on|off)$/ || $_ eq '' ? () : $_ } split (/\//, $attrval);
|
my @av = map { $_ =~ /^rpcserver (on|off):(on|off)$/ || $_ eq '' ? () : $_ } split (/\//, $attrval);
|
||||||
if (scalar(@av) > 0) {
|
if (scalar(@av) > 0) {
|
||||||
$_[3] = '/'.join('/',@av).'/';
|
$_[3] = '/'.join('/',@av).'/';
|
||||||
HMCCU_Log ($hash, 2, "HMCCU: [$name] Removed rpcserver entries from attribute eventMap");
|
HMCCU_Log ($hash, 2, "Removed rpcserver entries from attribute eventMap");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# Workaround because FHEM is ignoring error values for attribute eventMap
|
# Workaround because FHEM is ignoring error values for attribute eventMap
|
||||||
@ -7813,8 +7815,8 @@ sub HMCCU_ExecuteGetDeviceInfoCommand ($@)
|
|||||||
"<br/>Unique control roles: $detect->{uniqueControlRoleCount}<br/>";
|
"<br/>Unique control roles: $detect->{uniqueControlRoleCount}<br/>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$devInfo .= "<br/>Current state datapoint = $sc.$sd<br/>";
|
$devInfo .= "<br/>Current state datapoint = $sc.$sd<br/>" if ($sc ne '' && $sd ne '');
|
||||||
$devInfo .= "<br/>Current control datapoint = $cc.$cd<br/>";
|
$devInfo .= "<br/>Current control datapoint = $cc.$cd<br/>" if ($cc ne '' && $cd ne '');
|
||||||
$devInfo .= '<br/><b>Device description</b><br/><br/><pre>';
|
$devInfo .= '<br/><b>Device description</b><br/><br/><pre>';
|
||||||
$result = HMCCU_DeviceDescToStr ($ioHash, $clHash->{TYPE} eq 'HMCCU' ? $address : $clHash);
|
$result = HMCCU_DeviceDescToStr ($ioHash, $clHash->{TYPE} eq 'HMCCU' ? $address : $clHash);
|
||||||
$devInfo .= '</pre>';
|
$devInfo .= '</pre>';
|
||||||
@ -8224,6 +8226,7 @@ sub HMCCU_GetSCDatapoints ($)
|
|||||||
my ($clHash) = @_;
|
my ($clHash) = @_;
|
||||||
|
|
||||||
my $type = $clHash->{TYPE};
|
my $type = $clHash->{TYPE};
|
||||||
|
return ('', '', '', '', 0, 0) if ($type ne 'HMCCUDEV' && $type ne 'HMCCUCHN');
|
||||||
|
|
||||||
my ($sc, $sd) = HMCCU_StateDatapoint ($clHash);
|
my ($sc, $sd) = HMCCU_StateDatapoint ($clHash);
|
||||||
my ($cc, $cd) = HMCCU_ControlDatapoint ($clHash);
|
my ($cc, $cd) = HMCCU_ControlDatapoint ($clHash);
|
||||||
@ -8233,10 +8236,6 @@ sub HMCCU_GetSCDatapoints ($)
|
|||||||
|
|
||||||
return ($sc, $sd, $cc, $cd, $rsdCnt, $rcdCnt) if ($rsdCnt > 0 || $rcdCnt > 0);
|
return ($sc, $sd, $cc, $cd, $rsdCnt, $rcdCnt) if ($rsdCnt > 0 || $rcdCnt > 0);
|
||||||
|
|
||||||
# Detect by attributes
|
|
||||||
# ($sc, $sd, $cc, $cd, $rsdCnt, $rcdCnt) = HMCCU_DetectSCAttr ($clHash, $sc, $sd, $cc, $cd);
|
|
||||||
# return ($sc, $sd, $cc, $cd, $rsdCnt, $rcdCnt) if ($rsdCnt);
|
|
||||||
|
|
||||||
my $ioHash = HMCCU_GetHash ($clHash);
|
my $ioHash = HMCCU_GetHash ($clHash);
|
||||||
return HMCCU_SetDefaultSCDatapoints ($ioHash, $clHash);
|
return HMCCU_SetDefaultSCDatapoints ($ioHash, $clHash);
|
||||||
}
|
}
|
||||||
@ -10973,7 +10972,8 @@ sub HMCCU_MaxHashEntries ($$)
|
|||||||
</li><br/>
|
</li><br/>
|
||||||
<li><b>ccuGetVars <interval>:[<pattern>]</b><br/>
|
<li><b>ccuGetVars <interval>:[<pattern>]</b><br/>
|
||||||
Read CCU system variables periodically and update readings. If pattern is specified
|
Read CCU system variables periodically and update readings. If pattern is specified
|
||||||
only variables matching this expression are stored as readings.
|
only variables matching this expression are stored as readings. Delete attribute or set
|
||||||
|
<i>interval</i> to 0 to deactivate the polling of system variables.
|
||||||
</li><br/>
|
</li><br/>
|
||||||
<li><b>ccuReqTimeout <Seconds></b><br/>
|
<li><b>ccuReqTimeout <Seconds></b><br/>
|
||||||
Set timeout for CCU request. Default is 4 seconds. This timeout affects several
|
Set timeout for CCU request. Default is 4 seconds. This timeout affects several
|
||||||
|
@ -30,7 +30,7 @@ sub HMCCUCHN_Set ($@);
|
|||||||
sub HMCCUCHN_Get ($@);
|
sub HMCCUCHN_Get ($@);
|
||||||
sub HMCCUCHN_Attr ($@);
|
sub HMCCUCHN_Attr ($@);
|
||||||
|
|
||||||
my $HMCCUCHN_VERSION = '5.0 222751518';
|
my $HMCCUCHN_VERSION = '5.0 222930908';
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Initialize module
|
# Initialize module
|
||||||
|
@ -31,7 +31,7 @@ sub HMCCUDEV_Set ($@);
|
|||||||
sub HMCCUDEV_Get ($@);
|
sub HMCCUDEV_Get ($@);
|
||||||
sub HMCCUDEV_Attr ($@);
|
sub HMCCUDEV_Attr ($@);
|
||||||
|
|
||||||
my $HMCCUDEV_VERSION = '5.0 222751518';
|
my $HMCCUDEV_VERSION = '5.0 222930908';
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Initialize module
|
# Initialize module
|
||||||
|
@ -39,7 +39,7 @@ use SetExtensions;
|
|||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
# HMCCURPC version
|
# HMCCURPC version
|
||||||
my $HMCCURPCPROC_VERSION = '5.0 222751518';
|
my $HMCCURPCPROC_VERSION = '5.0 222930908';
|
||||||
|
|
||||||
# Maximum number of events processed per call of Read()
|
# Maximum number of events processed per call of Read()
|
||||||
my $HMCCURPCPROC_MAX_EVENTS = 100;
|
my $HMCCURPCPROC_MAX_EVENTS = 100;
|
||||||
|
@ -140,7 +140,7 @@ $HMCCU_CONFIG_VERSION = '5.0';
|
|||||||
F => 3, S => 'LUX', C => '', V => '', P => 2
|
F => 3, S => 'LUX', C => '', V => '', P => 2
|
||||||
},
|
},
|
||||||
'MOTION_DETECTOR' => {
|
'MOTION_DETECTOR' => {
|
||||||
F => 3, S => 'MOTION', C => '', V => '', P => 1
|
F => 3, S => 'MOTION', C => '', V => '', P => 2
|
||||||
},
|
},
|
||||||
'MOTIONDETECTOR_TRANSCEIVER' => {
|
'MOTIONDETECTOR_TRANSCEIVER' => {
|
||||||
F => 3, S => 'MOTION', C => 'MOTION_DETECTION_ACTIVE', V => 'active:1,inactive:0', P => 2
|
F => 3, S => 'MOTION', C => 'MOTION_DETECTION_ACTIVE', V => 'active:1,inactive:0', P => 2
|
||||||
@ -237,7 +237,7 @@ $HMCCU_CONFIG_VERSION = '5.0';
|
|||||||
|
|
||||||
%HMCCU_READINGS = (
|
%HMCCU_READINGS = (
|
||||||
'ACCELERATION_TRANSCEIVER' =>
|
'ACCELERATION_TRANSCEIVER' =>
|
||||||
'^(C#\.)?MOTION:motion',
|
'^(C#\.)?MOTION:+motion',
|
||||||
'ARMING' =>
|
'ARMING' =>
|
||||||
'^(C#\.)?ARMSTATE$:+armState',
|
'^(C#\.)?ARMSTATE$:+armState',
|
||||||
'BLIND' =>
|
'BLIND' =>
|
||||||
@ -283,9 +283,9 @@ $HMCCU_CONFIG_VERSION = '5.0';
|
|||||||
'MOTION_DETECTOR' =>
|
'MOTION_DETECTOR' =>
|
||||||
'^(C#\.)?BRIGHTNESS$:brightness;(C#\.)?MOTION:motion',
|
'^(C#\.)?BRIGHTNESS$:brightness;(C#\.)?MOTION:motion',
|
||||||
'MOTIONDETECTOR_TRANSCEIVER' =>
|
'MOTIONDETECTOR_TRANSCEIVER' =>
|
||||||
'^(C#\.)?ILLUMINATION$:brightness;^(C#\.)?MOTION$:motion;(C#\.)?MOTION_DETECTION_ACTIVE$:detection',
|
'^(C#\.)?ILLUMINATION$:+brightness;^(C#\.)?MOTION$:+motion;(C#\.)?MOTION_DETECTION_ACTIVE$:+detection',
|
||||||
'PRESENCEDETECTOR_TRANSCEIVER' =>
|
'PRESENCEDETECTOR_TRANSCEIVER' =>
|
||||||
'^(C#\.)?ILLUMINATION$:brightness;(C#\.)?PRESENCE_DETECTION_STATE:presence;(C#\.)?PRESENCE_DETECTION_ACTIVE:detection',
|
'^(C#\.)?ILLUMINATION$:+brightness;(C#\.)?PRESENCE_DETECTION_STATE:+presence;(C#\.)?PRESENCE_DETECTION_ACTIVE:+detection',
|
||||||
'SHUTTER_TRANSMITTER' =>
|
'SHUTTER_TRANSMITTER' =>
|
||||||
'^(C#\.)?LEVEL$:+pct,+level',
|
'^(C#\.)?LEVEL$:+pct,+level',
|
||||||
'SHUTTER_VIRTUAL_RECEIVER' =>
|
'SHUTTER_VIRTUAL_RECEIVER' =>
|
||||||
|
Loading…
Reference in New Issue
Block a user