mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
change devicepair to peerChan
git-svn-id: https://svn.fhem.de/fhem/trunk@2962 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
53c37808b3
commit
bba364df2b
@ -1,4 +1,5 @@
|
||||
##############################################
|
||||
##############################################
|
||||
# CUL HomeMatic handler
|
||||
# $Id$
|
||||
|
||||
@ -941,7 +942,7 @@ sub CUL_HM_Parse($$) {##############################
|
||||
my %colorTable=("00"=>"off","01"=>"red","02"=>"green","03"=>"orange");
|
||||
my $actColor = $colorTable{$msgState};
|
||||
$actColor = "unknown" if(!$actColor);
|
||||
push @event, "color:$actColor"; #todo duplicate
|
||||
push @event, "color:$actColor";
|
||||
push @event, "state:$actColor";
|
||||
}
|
||||
}
|
||||
@ -1683,7 +1684,7 @@ sub CUL_HM_Get($@) {
|
||||
#+++++++++++++++++ set command+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
sub CUL_HM_Set($@) {
|
||||
my ($hash, @a) = @_;
|
||||
my ($ret, $tval, $rval); #added rval for ramptime by unimatrix
|
||||
my $ret;
|
||||
return "no set value specified" if(@a < 2);
|
||||
|
||||
my $name = $hash->{NAME};
|
||||
@ -1817,14 +1818,6 @@ sub CUL_HM_Set($@) {
|
||||
}
|
||||
$state = "";
|
||||
}
|
||||
elsif($cmd eq "getpair") { ##################################################
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'01'.$id.$dst.'00040000000000');
|
||||
$state = "";
|
||||
}
|
||||
elsif($cmd eq "getdevicepair") { ############################################
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'01'.$id.$dst.$chn.'03');
|
||||
$state = "";
|
||||
}
|
||||
elsif($cmd eq "getSerial") { ################################################
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'01'.$id.$dst.'0009');
|
||||
$state = "";
|
||||
@ -1849,16 +1842,16 @@ sub CUL_HM_Set($@) {
|
||||
return "unknown peer".$peer if (length($pID) != 8);# peer only to channel
|
||||
my $pCh1 = substr($pID,6,2);
|
||||
my $pCh2 = $pCh1;
|
||||
if($culHmSubTypeSets{$st}{devicepair}||
|
||||
$culHmModelSets{$md}{devicepair}||
|
||||
$culHmChanSets{$mdCh}{devicepair}){
|
||||
if($culHmSubTypeSets{$st}{peerChan}||
|
||||
$culHmModelSets{$md}{peerChan}||
|
||||
$culHmChanSets{$mdCh}{peerChan}){
|
||||
$pCh2 = "00"; # button behavior
|
||||
}
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'01'.$id.$dst.$chn.'01'.
|
||||
substr($pID,0,6).$pCh1.$pCh2);
|
||||
}
|
||||
}
|
||||
elsif($cmd eq "regBulk"||$cmd eq "getRegRaw") { ######################### reg
|
||||
elsif($cmd =~ m/^(regBulk|getRegRaw)$/) { ############################### reg
|
||||
my ($list,$addr,$data,$peerID);
|
||||
$state = "";
|
||||
if ($cmd eq "regBulk"){
|
||||
@ -2019,7 +2012,7 @@ sub CUL_HM_Set($@) {
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.'02'.$chn.'000000');
|
||||
$hash = $chnHash; # report to channel if defined
|
||||
}
|
||||
elsif($cmd eq "on-for-timer"||$cmd eq "on-till") { ##########################
|
||||
elsif($cmd =~ m/^(on-for-timer|on-till)$/) { ################################
|
||||
my (undef,undef,$duration,$edate) = @a; #date prepared extention to entdate
|
||||
if ($cmd eq "on-till"){
|
||||
# to be extended to handle end date as well
|
||||
@ -2031,7 +2024,7 @@ sub CUL_HM_Set($@) {
|
||||
$duration = $eSec - $ltSec;
|
||||
}
|
||||
return "please enter the duration in seconds" if (!defined ($duration));
|
||||
$tval = CUL_HM_encodeTime16($duration);# onTime 0.0..85825945.6, 0=forever
|
||||
my $tval = CUL_HM_encodeTime16($duration);# onTime 0.0..85825945.6, 0=forever
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.'02'.$chn.'C80000'.$tval);
|
||||
$hash = $chnHash; # report to channel if defined
|
||||
}
|
||||
@ -2044,36 +2037,34 @@ sub CUL_HM_Set($@) {
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.'800100FF'); # LEVEL_SET
|
||||
}
|
||||
elsif($cmd eq "unlock") { ###################################################
|
||||
$tval = (@a > 2) ? int($a[2]) : 0;
|
||||
my $tval = (@a > 2) ? int($a[2]) : 0;
|
||||
my $delay = ($tval > 0) ? CUL_HM_encodeTime8($tval) : "FF"; # RELOCK_DELAY (FF=never)
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.'800101'.$delay);# LEVEL_SET
|
||||
}
|
||||
elsif($cmd eq "open") { #####################################################
|
||||
$tval = (@a > 2) ? int($a[2]) : 0;
|
||||
my $tval = (@a > 2) ? int($a[2]) : 0;
|
||||
my $delay = ($tval > 0) ? CUL_HM_encodeTime8($tval) : "FF"; # RELOCK_DELAY (FF=never)
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.'8001C8'.$delay);# OPEN
|
||||
$state = "";
|
||||
}
|
||||
elsif($cmd eq "inhibit") { ##################################################
|
||||
return "$a[2] is not on or off" if($a[2] !~ m/^(on|off)$/);
|
||||
my $val = ($a[2] eq "on") ? "01" : "00";
|
||||
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.$val.'01'); # SET_LOCK
|
||||
$state = "";
|
||||
}
|
||||
elsif($cmd =~ m/^(up|down|pct)$/) { #########################################
|
||||
my $lvl;
|
||||
if ($cmd eq "pct"){
|
||||
$lvl = $a[1];
|
||||
}
|
||||
else{#dim [<changeValue>|up|down] ... [ontime] [ramptime]
|
||||
my ($lvl,$tval,$rval) = ($a[1],"","");
|
||||
if ($cmd ne "pct"){#dim [<changeValue>|up|down] ... [ontime] [ramptime]
|
||||
shift @a; # align array with 'pct'
|
||||
$lvl = (defined $a[1])?$a[1]:10;
|
||||
$lvl = -1*$lvl if ($cmd eq "down");
|
||||
$lvl += CUL_HM_getChnLvl($name);
|
||||
}
|
||||
$lvl = ($lvl > 100)?100:(($lvl < 0)?0:$lvl);
|
||||
$tval = $a[2]?CUL_HM_encodeTime16($a[2]):"FFFF";# onTime 0.0..6709248, 0=forever
|
||||
$rval = CUL_HM_encodeTime16((@a > 3)?$a[3]:2.5); # rampTime 0.0..6709248, 0=immediate
|
||||
if ($st eq "dimmer"){# at least blind cannot stand ramp time...
|
||||
$tval = $a[2]?CUL_HM_encodeTime16($a[2]):"FFFF";# onTime 0.05..85825945.6, 0=forever
|
||||
$rval = CUL_HM_encodeTime16((@a > 3)?$a[3]:2.5);# rampTime 0.0..85825945.6, 0=immediate
|
||||
}
|
||||
Log 1,"General test blind: $st time:$tval ramp:$rval";
|
||||
CUL_HM_PushCmdStack($hash,sprintf("++%s11%s%s02%s%02X%s%s",
|
||||
$flag,$id,$dst,$chn,$lvl*2,$rval,$tval));
|
||||
if (defined $hash->{READINGS}{"virtLevel"}{VAL}){
|
||||
@ -2192,7 +2183,7 @@ sub CUL_HM_Set($@) {
|
||||
CUL_HM_PushCmdStack($hash,sprintf("++%s11%s%s8012%s%04X%02X",
|
||||
$flag,$id,$dst,$text,$symbAdd,$beepBack));
|
||||
}
|
||||
elsif($cmd eq "alarm"||$cmd eq "service") { #################################
|
||||
elsif($cmd =~ m/^(alarm|service)$/) { #######################################
|
||||
return "$a[2] must be below 255" if ($a[2] >255 );
|
||||
$chn = 18 if ($chn eq "01");
|
||||
my $subtype = ($cmd eq "alarm")?"81":"82";
|
||||
@ -2406,8 +2397,8 @@ sub CUL_HM_Set($@) {
|
||||
$pressCnt));
|
||||
}
|
||||
}
|
||||
elsif($cmd eq "devicepair") { ###############################################
|
||||
#devicepair <btnN> device ... [single|dual] [set|unset] [actor|remote|both]
|
||||
elsif($cmd =~ m/^(devicepair|peerChan)$/) { #################################
|
||||
#peerChan <btnN> device ... [single|dual] [set|unset] [actor|remote|both]
|
||||
my ($bNo,$peerN,$single,$set,$target) = ($a[2],$a[3],$a[4],$a[5],$a[6]);
|
||||
$state = "";
|
||||
return "$bNo is not a button number" if(($bNo < 1) && !$chn);
|
||||
@ -2760,10 +2751,8 @@ sub CUL_HM_eventP($$) {#handle protocol events
|
||||
my $delMsgSum;
|
||||
$nAttr->{protCmdDel} = 0 if(!$nAttr->{protCmdDel});
|
||||
$nAttr->{protCmdDel} += scalar @{$hash->{cmdStack}} if ($hash->{cmdStack});
|
||||
my $burstEvt = ($hash->{helper}{burstEvtCnt})?
|
||||
$hash->{helper}{burstEvtCnt}:0;
|
||||
$hash->{protState} = "CMDs_done".
|
||||
(($burstEvt)?("_events:".$burstEvt):"");
|
||||
$hash->{protState} = "CMDs_done".($hash->{helper}{burstEvtCnt}?
|
||||
("_events:".$hash->{helper}{burstEvtCnt}):"");
|
||||
}
|
||||
}
|
||||
sub CUL_HM_respPendRm($) {#del response related entries in messageing entity
|
||||
@ -2795,9 +2784,8 @@ sub CUL_HM_respPendTout($) {
|
||||
if ((CUL_HM_getRxType($hash) & 0x03) == 0){#to slow for wakeup and config
|
||||
delete($hash->{cmdStack});
|
||||
delete($hash->{protCmdPend});
|
||||
my $burstEvt = $hash->{helper}{burstEvtCnt}?
|
||||
("_events:".$hash->{helper}{burstEvtCnt}):"";
|
||||
$hash->{protState} = "CMDs_done".$burstEvt;
|
||||
$hash->{protState} = "CMDs_done".($hash->{helper}{burstEvtCnt}?
|
||||
("_events:".$hash->{helper}{burstEvtCnt}):"");
|
||||
}
|
||||
CUL_HM_respPendRm($hash);
|
||||
CUL_HM_ProcessCmdStack($hash); # continue processing commands
|
||||
@ -2844,10 +2832,8 @@ sub CUL_HM_ProcessCmdStack($) {
|
||||
delete($hash->{cmdStack});
|
||||
delete($hash->{protCmdPend});
|
||||
#-- update info ---
|
||||
my $burstEvt = ($hash->{helper}{burstEvtCnt})?
|
||||
$hash->{helper}{burstEvtCnt}:0;
|
||||
$hash->{protState} = "CMDs_done".
|
||||
(($burstEvt)?("_events:".$burstEvt):"");
|
||||
$hash->{protState} = "CMDs_done".($hash->{helper}{burstEvtCnt}?
|
||||
("_events:".$hash->{helper}{burstEvtCnt}):"");
|
||||
}
|
||||
}
|
||||
return $sent;
|
||||
@ -2906,9 +2892,8 @@ sub CUL_HM_Resend($) {#resend a message if there is no answer
|
||||
delete($hash->{cmdStack});
|
||||
delete($hash->{protCmdPend});
|
||||
CUL_HM_respPendRm($hash);
|
||||
my $burstEvt = $hash->{helper}{burstEvtCnt}?
|
||||
("_events:".$hash->{helper}{burstEvtCnt}):"";
|
||||
$hash->{protState} = "CMDs_done".$burstEvt;
|
||||
$hash->{protState} = "CMDs_done".($hash->{helper}{burstEvtCnt}?
|
||||
("_events:".$hash->{helper}{burstEvtCnt}):"");
|
||||
readingsSingleUpdate($hash,"state","MISSING ACK",1);
|
||||
}
|
||||
else {
|
||||
@ -3888,17 +3873,6 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
configuration for additional peers. <br> The command is a shortcut
|
||||
for a selection of other commands.
|
||||
</li>
|
||||
<li><B>getdevicepair</B><a name="CUL_HMgetdevicepair"></a><br>
|
||||
will read the peers (see devicepair) that are assigned to a channel.
|
||||
This command needs to be executed per channel. Information will be
|
||||
stored in the field Peers of the channel (see devicepair for specials
|
||||
about single-channel deivces). <br> For sender the same procedure as
|
||||
described in devicepair is necessary to get a reading. Also note that
|
||||
a proper diaplay will only be possible if define per channel (button)
|
||||
was done - see define. </li>
|
||||
<li><B>getpair</B><a name="CUL_HMgetpair"></a><br>
|
||||
read pair information of the device. See also <a
|
||||
href="#CUL_HMpair">pair</a></li>
|
||||
<li><B>getRegRaw [List0|List1|List2|List3|List4|List5|List6]
|
||||
<peerChannel> </B><a name="CUL_HMgetRegRaw"></a><br>
|
||||
|
||||
@ -3966,13 +3940,13 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
See also <a href="#CUL_HMgetpair">getPair</a> and
|
||||
<a href="#CUL_HMunpair">unpair</a>.</li><br>
|
||||
Don't confuse pair (to a central) with peer (channel to channel) with
|
||||
<a href="#CUL_HMdevicepair">devicepair</a>.<br>
|
||||
<a href="#CUL_HMpeerChan">peerChan</a>.<br>
|
||||
<li><B>peerBulk</B> <peerch1,peerch2,...<a name="CUL_HMpeerBulk"></a><br>
|
||||
peerBulk will add peer channels to the channel. All channels in the
|
||||
list will be added. This includes that the parameter and behavior
|
||||
defined for this 'link' will return to the defaults. peerBulk is only
|
||||
meant to add peers. More suffisticated funktionality as provided by
|
||||
<a href="#CUL_HMdevicepair">devicepair</a> is not supported. peerBulk
|
||||
<a href="#CUL_HMpeerChan">peerChan</a> is not supported. peerBulk
|
||||
will only add channels in 'single' button mode.<br>
|
||||
Also note that peerBulk will not delete any existing peers, just add
|
||||
and re-add given peers.<br>
|
||||
@ -4017,7 +3991,7 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
<value> is the data in human readable manner that will be written
|
||||
to the register.<br>
|
||||
<peerChannel> is required if this register is defined on a per
|
||||
'devicepair' base. It can be set to '0' other wise.See <a
|
||||
'peerChan' base. It can be set to '0' other wise.See <a
|
||||
href="CUL_HMgetRegRaw">getRegRaw</a> for full description<br>
|
||||
Supported register for a device can be explored using<br>
|
||||
<ul><code>set regSet ? 0 0</code></ul>
|
||||
@ -4050,7 +4024,7 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
<ul><code>
|
||||
define vRemote CUL_HM 100000 # the selected HMid must not be in use<br>
|
||||
set vRemote virtual 20 # define 20 button remote controll<br>
|
||||
set vRemote_Btn4 devicepair 0 <actorchannel> # pairs Button 4 and 5 to the given channel<br>
|
||||
set vRemote_Btn4 peerChan 0 <actorchannel> # peers Button 4 and 5 to the given channel<br>
|
||||
set vRemote_Btn4 press<br>
|
||||
set vRemote_Btn5 press long<br>
|
||||
</code></ul>
|
||||
@ -4118,34 +4092,41 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
activate learn mode. Whether commands are pending is reported on
|
||||
device level with parameter 'protCmdPend'.
|
||||
<ul>
|
||||
<li><B>devicepair <btn_no> <hmDevice> [single|dual]
|
||||
[set|unset] [actor|remote]</B><a name="CUL_HMdevicepair"></a><br>
|
||||
|
||||
Devicepair will establish a connection between a sender-channel and
|
||||
an actuator-channel called link in HM nomenclatur. Trigger from
|
||||
sender-channel, e.g. button press, will be processed by the
|
||||
actuator-channel without CCU interaction. Sender-channel waits for an
|
||||
acknowledge of each actuator paired to it. Positive indication will be
|
||||
given once all actuator responded. <br>
|
||||
|
||||
Sender must be set into learning mode after command execution. FHEM
|
||||
postpones the commands until then.<br>
|
||||
|
||||
devicepair can be repeated for an existing devicepair. This will cause
|
||||
parameter reset to HM defaults for this link.<br>
|
||||
<li><B>peerChan <btn_no> <hmDevice> [single|dual]
|
||||
[set|unset] [actor|remote]</B><a name="CUL_HMpeerChan"></a><br>
|
||||
|
||||
peerChan will establish a connection between a sender-<B>channel</B> and
|
||||
an actuator-<B>channel</B> called link in HM nomenclatur. Peering must not be
|
||||
confused with pairing.<br>
|
||||
<B>Pairing</B> refers to assign a <B>device</B> to the central.<br>
|
||||
<B>Peering</B> refers to virtally connect two <B>channels</B>.<br>
|
||||
Peering allowes direkt interaction between sender and aktor without
|
||||
the necessity of a CCU<br>
|
||||
Peering a sender-channel causes the sender to expect an ack from -each-
|
||||
of its peers after sending a trigger. It will give positive feedback (e.g. LED green)
|
||||
only if all peers acknowledged.<br>
|
||||
Peering an aktor-channel will setup a parameter set which defines the action to be
|
||||
taken once a trigger from -this- peer arrived. In other words an aktor will <br>
|
||||
- process trigger from peers only<br>
|
||||
- define the action to be taken dedicated for each peer's trigger<br>
|
||||
An actor channel will setup a default action upon peering - which is actor dependant.
|
||||
It may also depend whether one or 2 buttons are peered <B>in one command</B>.
|
||||
A swich may setup oen button for 'on' and the other for 'off' if 2 button are
|
||||
peered. If only one button is peered the funktion will likely be 'toggle'.<br>
|
||||
The funtion can be modified by programming the register (aktor dependant).<br>
|
||||
|
||||
Even though the command is executed on a remote or push-button it will
|
||||
as well take effect on the actuator directly. Both sides' pairing is
|
||||
as well take effect on the actuator directly. Both sides' peering is
|
||||
virtually independant and has different impact on sender and receiver
|
||||
side.<br>
|
||||
|
||||
Devicepairing of one actuator-channel to multiple sender-channel as
|
||||
Peering of one actuator-channel to multiple sender-channel as
|
||||
well as one sender-channel to multiple Actuator-channel is
|
||||
possible.<br>
|
||||
|
||||
<hmDevice> is the actuator-channel to be paired.<br>
|
||||
<hmDevice> is the actuator-channel to be peered.<br>
|
||||
|
||||
<btn_no> is the sender-channel (button) to be paired. If
|
||||
<btn_no> is the sender-channel (button) to be peered. If
|
||||
'single' is choosen buttons are counted from 1. For 'dual' btn_no is
|
||||
the number of the Button-pair to be used. I.e. '3' in dual is the
|
||||
3rd button pair correcponding to button 5 and 6 in single mode.<br>
|
||||
@ -4163,23 +4144,23 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
simple switch actuator to toggle on/off. Nevertheless also dimmer can
|
||||
be learned to only one button. <br>
|
||||
|
||||
'set' will setup pairing for the channels<br>
|
||||
'set' will setup peering for the channels<br>
|
||||
|
||||
'unset' will remove the pairing for the channels<br>
|
||||
'unset' will remove the peering for the channels<br>
|
||||
|
||||
[actor|remote|both] limits the execution to only actor or only remote.
|
||||
This gives the user the option to redo the pairing on the remote
|
||||
This gives the user the option to redo the peering on the remote
|
||||
channel while the settings in the actor will not be removed.<br>
|
||||
|
||||
Example:
|
||||
<ul>
|
||||
<code>
|
||||
set myRemote devicepair 2 mySwActChn single set # pair second button to an actuator channel<br>
|
||||
set myRmtBtn devicepair 0 mySwActChn single set #myRmtBtn is a button of the remote. '0' is not processed here<br>
|
||||
set myRemote devicepair 2 mySwActChn dual set #pair button 3 and 4<br>
|
||||
set myRemote devicepair 3 mySwActChn dual unset #remove pairing for button 5 and 6<br>
|
||||
set myRemote devicepair 3 mySwActChn dual unset aktor #remove pairing for button 5 and 6 in actor only<br>
|
||||
set myRemote devicepair 3 mySwActChn dual set remote #pair button 5 and 6 on remote only. Link settings il mySwActChn will be maintained<br>
|
||||
set myRemote peerChan 2 mySwActChn single set #peer second button to an actuator channel<br>
|
||||
set myRmtBtn peerChan 0 mySwActChn single set #myRmtBtn is a button of the remote. '0' is not processed here<br>
|
||||
set myRemote peerChan 2 mySwActChn dual set #peer button 3 and 4<br>
|
||||
set myRemote peerChan 3 mySwActChn dual unset #remove peering for button 5 and 6<br>
|
||||
set myRemote peerChan 3 mySwActChn dual unset aktor #remove peering for button 5 and 6 in actor only<br>
|
||||
set myRemote peerChan 3 mySwActChn dual set remote #peer button 5 and 6 on remote only. Link settings il mySwActChn will be maintained<br>
|
||||
</code>
|
||||
</ul>
|
||||
</li>
|
||||
@ -4188,7 +4169,7 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
</li>
|
||||
<li>virtual<a name="CUL_HMvirtual"></a><br>
|
||||
<ul>
|
||||
<li><B><a href="#CUL_HMdevicepair">devicepair</a></B> see remote</li>
|
||||
<li><B><a href="#CUL_HMpeerChan">peerChan</a></B> see remote</li>
|
||||
<li><B>press [long|short]<a name="CUL_HMpress"></a></B>
|
||||
simulates a button press short (default) or long. Note that the current
|
||||
implementation will not specify the duration for long. Only one trigger
|
||||
@ -4198,13 +4179,13 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
</li>
|
||||
<li>smokeDetector<br>
|
||||
Note: All these commands work right now only if you have more then one
|
||||
smoekDetector, and you paired them to form a group. For issuing the
|
||||
smoekDetector, and you peered them to form a group. For issuing the
|
||||
commands you have to use the master of this group, and currently you
|
||||
have to guess which of the detectors is the master.<br>
|
||||
smokeDetector can be setup to teams using
|
||||
<a href="#CUL_HMdevicepair">devicepair</a>. You need to pair all
|
||||
team-members to the master. Don't forget to also devicepair the master
|
||||
itself to the team - i.e. pair it to itself! doing that you have full
|
||||
<a href="#CUL_HMpeerChan">peerChan</a>. You need to peer all
|
||||
team-members to the master. Don't forget to also peerChan the master
|
||||
itself to the team - i.e. peer it to itself! doing that you have full
|
||||
controll over the team and don't need to guess.<br>
|
||||
<ul>
|
||||
<li><B>test</B> - execute a network test</li>
|
||||
@ -4339,7 +4320,7 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
[sec]: Sets the delay in seconds after the lock automatically locked
|
||||
again.<br>0 - 65535 seconds</li>
|
||||
<li><B>inhibit [on|off]</B><br>
|
||||
Block / unblock all directly paired remotes and the hardware buttons of the
|
||||
Block / unblock all directly peered remotes and the hardware buttons of the
|
||||
keyMatic. If inhibit set on, the door lock drive can be controlled only by
|
||||
FHEM.<br><br>
|
||||
Examples:
|
||||
@ -4416,7 +4397,7 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
||||
entity.<br>
|
||||
Target of the data is ONLY the HM-device information which is located
|
||||
IN the HM device. Explicitely this is the peer-list and the register.
|
||||
With the register also the pairing is included.<br>
|
||||
With the register also the peering is included.<br>
|
||||
The file is readable and editable by the user. Additionaly timestamps
|
||||
are stored to help user to validate.<br>
|
||||
Restrictions:<br>
|
||||
|
@ -324,6 +324,11 @@ my %culHmRegDefine = (
|
||||
batDefectLimit =>{a=> 19.0,s=>1.0,l=>0,min=>0.1,max=>2 ,c=>'factor' ,f=>100 ,u=>'Ohm' ,d=>1,t=>"batterie defect detection"},
|
||||
transmDevTryMax =>{a=> 20.0,s=>1.0,l=>0,min=>1 ,max=>10 ,c=>'' ,f=>'' ,u=>'' ,d=>0,t=>"max message re-transmit"},
|
||||
localResDis =>{a=> 24.0,s=>1.0,l=>0,min=>1 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"local reset disable" ,lit=>{off=>0,on=>1}},
|
||||
#un-identified List0
|
||||
# SEC-WM55 02:01 (AES on?)
|
||||
# SEC-WDS 02:01 16:01(sabotage) ?
|
||||
# SEC-SC 02:00 ?
|
||||
|
||||
#--- list 1, Channel level------------------
|
||||
#blindActuator mainly
|
||||
driveDown =>{a=> 11.0,s=>2.0,l=>1,min=>0 ,max=>6000.0 ,c=>'factor' ,f=>10 ,u=>'s' ,d=>1,t=>"drive time up"},
|
||||
@ -410,6 +415,10 @@ my %culHmRegDefine = (
|
||||
stormLowThresh =>{a=> 7 ,s=>1 ,l=>1,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"Storm lower threshold"},
|
||||
# others
|
||||
localResetDis =>{a=> 7 ,s=>1 ,l=>1,min=>0 ,max=>255 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"LocalReset disable",lit=>{off=>0,on=>1}},
|
||||
#un-identified List1
|
||||
# SEC-WM55 8:01 (AES on?)
|
||||
# SEC-WDS 34:0x64 ?
|
||||
# SEC-SC 8:00 ?
|
||||
|
||||
# logicCombination=>{a=> 89.0,s=>0.5,l=>1,min=>0 ,max=>16 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"".
|
||||
# "inactive=>unused\n".
|
||||
@ -657,7 +666,6 @@ my %culHmGlobalSetsDevice = (
|
||||
reset => "",
|
||||
pair => "",
|
||||
unpair => "",
|
||||
getpair => "",
|
||||
getSerial => "",
|
||||
virtual =>"<noButtons>",
|
||||
);
|
||||
@ -666,7 +674,6 @@ my %culHmGlobalSets = (
|
||||
regBulk => "<list>:<peer> <addr1:data1> <addr2:data2> ...",
|
||||
peerBulk => "<peer1,peer2,...>",
|
||||
statusRequest => "",
|
||||
getdevicepair => "",
|
||||
getRegRaw =>"[List0|List1|List2|List3|List4|List5|List6] ... <PeerChannel>",
|
||||
getConfig => "",
|
||||
regSet =>"<regName> <value> ... <peerChannel>",
|
||||
@ -687,17 +694,23 @@ my %culHmSubTypeSets = (
|
||||
up => "[<changeValue>] [ontime] [ramptime]...",
|
||||
down => "[<changeValue>] [ontime] [ramptime]..."
|
||||
},
|
||||
remote =>{ devicepair => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",},
|
||||
pushButton =>{ devicepair => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",},
|
||||
threeStateSensor =>{ devicepair => "<btnNumber> device ... single [set|unset] [actor|remote|both]",},
|
||||
motionDetector =>{ devicepair => "<btnNumber> device ... single [set|unset] [actor|remote|both]",},
|
||||
remote =>{ devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",},
|
||||
pushButton =>{ devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",},
|
||||
threeStateSensor =>{ devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... single [set|unset] [actor|remote|both]",},
|
||||
motionDetector =>{ devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... single [set|unset] [actor|remote|both]",},
|
||||
virtual =>{ raw => "data ...",
|
||||
devicepair => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",
|
||||
devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",
|
||||
press => "[long|short]...",
|
||||
valvePos => "position",#acting as TC
|
||||
virtual =>"<noButtons>",}, #redef necessary for virtual
|
||||
smokeDetector =>{ test => "", alarmOn=>"", alarmOff=>"",
|
||||
devicepair => "<btnNumber> device ... single [set|unset] actor",},
|
||||
devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... single [set|unset] actor",},
|
||||
winMatic =>{ matic => "<btn>",
|
||||
keydef => "<btn> <txt1> <txt2>",
|
||||
create => "<txt>" },
|
||||
@ -735,7 +748,8 @@ my %culHmModelSets = (
|
||||
|
||||
my %culHmChanSets = (
|
||||
"HM-CC-TC00"=>{
|
||||
devicepair => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",
|
||||
devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... single [set|unset] [actor|remote|both]",
|
||||
"day-temp" => "[on,off,6.0..30.0]",
|
||||
"night-temp" => "[on,off,6.0..30.0]",
|
||||
"party-temp" => "[on,off,6.0..30.0]",
|
||||
@ -753,7 +767,8 @@ my %culHmChanSets = (
|
||||
controlMode => "[manual|auto|central|party]",
|
||||
decalcDay => "day", },
|
||||
"HM-CC-TC02"=>{
|
||||
devicepair => "<btnNumber> device ... [single|dual] [set|unset] [actor|remote|both]",
|
||||
devicepair => "... outdated, use peerChan",
|
||||
peerChan => "<btnNumber> device ... single [set|unset] [actor|remote|both]",
|
||||
"day-temp" => "[on,off,6.0..30.0]",
|
||||
"night-temp" => "[on,off,6.0..30.0]",
|
||||
"party-temp" => "[on,off,6.0..30.0]",
|
||||
|
Loading…
x
Reference in New Issue
Block a user