mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 03:06:37 +00:00
10_CUL_HM:mdir wm55 improve
git-svn-id: https://svn.fhem.de/fhem/trunk@8388 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7fae1953ad
commit
dafcff0d61
@ -230,8 +230,8 @@ sub CUL_HM_updateConfig($){
|
||||
delete $attr{$name}{$_}
|
||||
foreach ( "autoReadReg","actCycle","actStatus","burstAccess","serialNr"
|
||||
,"IODev","IOList","IOgrp","hmProtocolEvents","rssiLog");
|
||||
$hash->{helper}{role}{vrt} = 1;
|
||||
$hash->{helper}{role}{dev} = 1;
|
||||
#$hash->{helper}{role}{vrt} = 1;
|
||||
#$hash->{helper}{role}{dev} = 1;
|
||||
next;
|
||||
}
|
||||
CUL_HM_ID2PeerList($name,"",1); # update peerList out of peerIDs
|
||||
@ -3014,7 +3014,7 @@ sub CUL_HM_Get($@) {#+++++++++++++++++ get command+++++++++++++++++++++++++++++
|
||||
my ($dst,$chn) = unpack 'A6A2',$hash->{DEF}.($roleC?'01':'00');
|
||||
|
||||
my $h = undef;
|
||||
$h = $culHmGlobalGets->{$cmd} if(!$roleV);
|
||||
$h = $culHmGlobalGets->{$cmd} if(!$roleV &&($roleD || $roleC));
|
||||
$h = $culHmVrtGets->{$cmd} if(!defined($h) && $roleV);
|
||||
$h = $culHmSubTypeGets->{$st}{$cmd} if(!defined($h) && $culHmSubTypeGets->{$st});
|
||||
$h = $culHmModelGets->{$md}{$cmd} if(!defined($h) && $culHmModelGets->{$md});
|
||||
@ -3023,10 +3023,10 @@ sub CUL_HM_Get($@) {#+++++++++++++++++ get command+++++++++++++++++++++++++++++
|
||||
|
||||
if(!defined($h)) {
|
||||
my @arr = ();
|
||||
if(!$roleV) {foreach(keys %{$culHmGlobalGets} ){push @arr,"$_:".$culHmGlobalGets->{$_} }};
|
||||
if($roleV) {foreach(keys %{$culHmVrtGets} ){push @arr,"$_:".$culHmVrtGets->{$_} }};
|
||||
if($culHmSubTypeGets->{$st}){foreach(keys %{$culHmSubTypeGets->{$st}}){push @arr,"$_:".${$culHmSubTypeGets->{$st}}{$_} }};
|
||||
if($culHmModelGets->{$md}) {foreach(keys %{$culHmModelGets->{$md}} ){push @arr,"$_:".${$culHmModelGets->{$md}}{$_} }};
|
||||
if(!$roleV &&($roleD || $roleC)){foreach(keys %{$culHmGlobalGets} ){push @arr,"$_:".$culHmGlobalGets->{$_} }};
|
||||
if($roleV) {foreach(keys %{$culHmVrtGets} ){push @arr,"$_:".$culHmVrtGets->{$_} }};
|
||||
if($culHmSubTypeGets->{$st}) {foreach(keys %{$culHmSubTypeGets->{$st}}){push @arr,"$_:".${$culHmSubTypeGets->{$st}}{$_} }};
|
||||
if($culHmModelGets->{$md}) {foreach(keys %{$culHmModelGets->{$md}} ){push @arr,"$_:".${$culHmModelGets->{$md}}{$_} }};
|
||||
|
||||
foreach(@arr){
|
||||
my ($cmd,$val) = split(":",$_,2);
|
||||
@ -3281,7 +3281,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
||||
my $fkt = $hash->{helper}{fkt}?$hash->{helper}{fkt}:"";
|
||||
|
||||
my $h = undef;
|
||||
$h = $culHmGlobalSets->{$cmd} if( !$roleV);
|
||||
$h = $culHmGlobalSets->{$cmd} if( !$roleV &&($roleD || $roleC));
|
||||
$h = $culHmGlobalSetsVrtDev->{$cmd} if(!defined($h) &&( $roleV || !$st) && $roleD);
|
||||
$h = $culHmGlobalSetsDevice->{$cmd} if(!defined($h) && !$roleV && $roleD);
|
||||
$h = $culHmSubTypeDevSets->{$st}{$cmd}if(!defined($h) && !$roleV && $roleD);
|
||||
@ -3299,13 +3299,13 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
||||
if(!defined($h) && defined($culHmSubTypeSets->{$st}{pct}) && $cmd =~ m/^\d+/) {
|
||||
splice @a, 1, 0,"pct";#insert the actual command
|
||||
}
|
||||
elsif(!defined($h)) {
|
||||
elsif(!defined($h)) { ### unknown - return the commandlist
|
||||
my @arr1 = ();
|
||||
if( $st ne "virtual") {foreach(keys %{$culHmGlobalSets} ){push @arr1,"$_:".$culHmGlobalSets->{$_} }};
|
||||
if(($st eq "virtual"||!$st) && $roleD){foreach(keys %{$culHmGlobalSetsVrtDev} ){push @arr1,"$_:".$culHmGlobalSetsVrtDev->{$_} }};
|
||||
if( $st ne "virtual" && $roleD){foreach(keys %{$culHmGlobalSetsDevice} ){push @arr1,"$_:".$culHmGlobalSetsDevice->{$_} }};
|
||||
if( $st ne "virtual" && $roleD){foreach(keys %{$culHmSubTypeDevSets->{$st}}){push @arr1,"$_:".${$culHmSubTypeDevSets->{$st}}{$_}}};
|
||||
if( $st ne "virtual" && $roleC){foreach(keys %{$culHmGlobalSetsChn} ){push @arr1,"$_:".$culHmGlobalSetsChn->{$_} }};
|
||||
if( !$roleV &&($roleD || $roleC) ){foreach(keys %{$culHmGlobalSets} ){push @arr1,"$_:".$culHmGlobalSets->{$_} }};
|
||||
if(( $roleV||!$st) && $roleD){foreach(keys %{$culHmGlobalSetsVrtDev} ){push @arr1,"$_:".$culHmGlobalSetsVrtDev->{$_} }};
|
||||
if( !$roleV && $roleD){foreach(keys %{$culHmGlobalSetsDevice} ){push @arr1,"$_:".$culHmGlobalSetsDevice->{$_} }};
|
||||
if( !$roleV && $roleD){foreach(keys %{$culHmSubTypeDevSets->{$st}}){push @arr1,"$_:".${$culHmSubTypeDevSets->{$st}}{$_}}};
|
||||
if( !$roleV && $roleC){foreach(keys %{$culHmGlobalSetsChn} ){push @arr1,"$_:".$culHmGlobalSetsChn->{$_} }};
|
||||
if( $culHmSubTypeSets->{$st} && $roleC){foreach(keys %{$culHmSubTypeSets->{$st}} ){push @arr1,"$_:".${$culHmSubTypeSets->{$st}}{$_} }};
|
||||
if( $culHmModelSets->{$md}) {foreach(keys %{$culHmModelSets->{$md}} ){push @arr1,"$_:".${$culHmModelSets->{$md}}{$_} }};
|
||||
if( $culHmChanSets->{$md."00"} && $roleD){foreach(keys %{$culHmChanSets->{$md."00"}} ){push @arr1,"$_:".${$culHmChanSets->{$md."00"}}{$_} }};
|
||||
@ -8667,18 +8667,19 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
||||
restore will not delete any peered channels, it will just add peer channels.<br>
|
||||
</li>
|
||||
<li><B>listDevice</B><br>
|
||||
<li>when used with ccu it returns a list of Devices using the ccu service to assign an IO.<br>
|
||||
</li>
|
||||
<li>when used with ActionDetector user will get a comma separated list of entities being assigned to the action detector<br>
|
||||
get ActionDetector listDevice # returns all assigned entities<br>
|
||||
get ActionDetector listDevice notActive# returns entities which habe not status alive<br>
|
||||
get ActionDetector listDevice alive # returns entities with status alive<br>
|
||||
get ActionDetector listDevice unknown # returns entities with status unknown<br>
|
||||
get ActionDetector listDevice dead # returns entities with status dead<br>
|
||||
</li>
|
||||
</li>
|
||||
<br>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>when used with ccu it returns a list of Devices using the ccu service to assign an IO.<br>
|
||||
</li>
|
||||
<li>when used with ActionDetector user will get a comma separated list of entities being assigned to the action detector<br>
|
||||
get ActionDetector listDevice # returns all assigned entities<br>
|
||||
get ActionDetector listDevice notActive# returns entities which habe not status alive<br>
|
||||
get ActionDetector listDevice alive # returns entities with status alive<br>
|
||||
get ActionDetector listDevice unknown # returns entities with status unknown<br>
|
||||
get ActionDetector listDevice dead # returns entities with status dead<br>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul><br>
|
||||
|
||||
<a name="CUL_HMattr"></a><b>Attributes</b>
|
||||
<ul>
|
||||
@ -8691,12 +8692,12 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
||||
<li><a name="CUL_HMaesCommReq">aesCommReq</a>
|
||||
if set HMLAN/USB is forced to request AES signature before sending ACK to the device.<br>
|
||||
This funktion strictly works with HMLAN/USB - it doesn't work for CUL type IOs.<br>
|
||||
</li>
|
||||
</li>
|
||||
<li><a name="#CUL_HMactAutoTry">actAutoTry</a>
|
||||
actAutoTry 0_off,1_on<br>
|
||||
setting this option enables Action Detector to send a statusrequest in case of a device is going to be marked dead.
|
||||
The attribut may be useful in case a device is being checked that does not send messages regularely - e.g. an ordinary switch.
|
||||
</li>
|
||||
</li>
|
||||
<li><a name="#CUL_HMactCycle">actCycle</a>
|
||||
actCycle <[hhh:mm]|off><br>
|
||||
Supports 'alive' or better 'not alive' detection for devices. [hhh:mm] is the maximum silent time for the device.
|
||||
@ -8713,7 +8714,7 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
||||
</ul>
|
||||
The overall function can be viewed checking out the "ActionDetector" entity. The status of all entities is present in the READING section.<br>
|
||||
Note: This function can be enabled for devices with non-cyclic messages as well. It is up to the user to enter a reasonable cycletime.
|
||||
</li>
|
||||
</li>
|
||||
<li><a name="#CUL_HMautoReadReg">autoReadReg</a><br>
|
||||
'0' autoReadReg will be ignored.<br>
|
||||
'1' will execute a getConfig for the device automatically after each reboot of FHEM. <br>
|
||||
@ -8727,14 +8728,14 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
||||
of the readings and the display will be delayed depending on the size of the database.<br>
|
||||
Recommendations and constrains upon usage:<br>
|
||||
<ul>
|
||||
use this attribute on the device or channel 01. Do not use it separate on each channel
|
||||
of a multi-channel device to avoid duplicate execution<br>
|
||||
usage on devices which only react to 'config' mode is not recommended since executen will
|
||||
not start until config is triggered by the user<br>
|
||||
usage on devices which support wakeup-mode is usefull. But consider that execution is delayed
|
||||
until the device "wakes up".<br>
|
||||
</ul>
|
||||
</li>
|
||||
use this attribute on the device or channel 01. Do not use it separate on each channel
|
||||
of a multi-channel device to avoid duplicate execution<br>
|
||||
usage on devices which only react to 'config' mode is not recommended since executen will
|
||||
not start until config is triggered by the user<br>
|
||||
usage on devices which support wakeup-mode is usefull. But consider that execution is delayed
|
||||
until the device "wakes up".<br>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a name="#CUL_HMburstAccess">burstAccess</a><br>
|
||||
can be set for the device entity if the model allowes conditionalBurst.
|
||||
The attribut will switch off burst operations (0_off) which causes less message load
|
||||
@ -9944,17 +9945,18 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
||||
"restore" löscht keine verknüpften Kanäle, es fügt nur neue Peers hinzu.<br>
|
||||
</li>
|
||||
<li><B>listDevice</B><br>
|
||||
<li>bei einer CCU gibt es eine Liste der Devices, welche den ccu service zum zuweisen der IOs zurück<br>
|
||||
</li>
|
||||
<li>beim ActionDetector wird eine Komma geteilte Liste der Entities zurückgegeben<br>
|
||||
get ActionDetector listDevice # returns alle assigned entities<br>
|
||||
get ActionDetector listDevice notActive# returns entities ohne status alive<br>
|
||||
get ActionDetector listDevice alive # returns entities mit status alive<br>
|
||||
get ActionDetector listDevice unknown # returns entities mit status unknown<br>
|
||||
get ActionDetector listDevice dead # returns entities mit status dead<br>
|
||||
</li>
|
||||
</li>
|
||||
|
||||
<ul>
|
||||
<li>bei einer CCU gibt es eine Liste der Devices, welche den ccu service zum zuweisen der IOs zurück<br>
|
||||
</li>
|
||||
<li>beim ActionDetector wird eine Komma geteilte Liste der Entities zurückgegeben<br>
|
||||
get ActionDetector listDevice # returns alle assigned entities<br>
|
||||
get ActionDetector listDevice notActive# returns entities ohne status alive<br>
|
||||
get ActionDetector listDevice alive # returns entities mit status alive<br>
|
||||
get ActionDetector listDevice unknown # returns entities mit status unknown<br>
|
||||
get ActionDetector listDevice dead # returns entities mit status dead<br>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul><br>
|
||||
<a name="CUL_HMattr"></a><b>Attribute</b>
|
||||
<ul>
|
||||
|
@ -302,9 +302,6 @@ my $K_actDetID = '000000'; # id of actionDetector
|
||||
|
||||
# "HM-LGW-O-TW-W-EU" #Funk LAN Gateway
|
||||
#################open:---------------------------
|
||||
|
||||
# rf_s list 1 ist neu
|
||||
# rf_s_644 list 1 ist neu
|
||||
);
|
||||
|
||||
##----------definitions for register settings-----------------
|
||||
@ -447,7 +444,7 @@ my $K_actDetID = '000000'; # id of actionDetector
|
||||
signalTone =>{a=> 3.6,s=>0.2,l=>0,min=>0 ,max=>3 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"" ,lit=>{low=>0,mid=>1,high=>2,veryHigh=>3}},
|
||||
|
||||
brightness =>{a=> 4.0,s=>0.4,l=>0,min=>0 ,max=>15 ,c=>'' ,f=>'' ,u=>'' ,d=>1,t=>"Display brightness"},
|
||||
energyOpt =>{a=> 8.0,s=>1.0,l=>0,min=>0 ,max=>127 ,c=>'' ,f=>2 ,u=>'s' ,d=>1,t=>"energy Option: Duration of ilumination"},
|
||||
energyOpt =>{a=> 8.0,s=>1.0,l=>0,min=>0 ,max=>127 ,c=>'' ,f=>1 ,u=>'s' ,d=>1,t=>"energy Option: Duration of ilumination",lit=>{permanent=>0}},
|
||||
# sec_mdir
|
||||
cyclicInfoMsg =>{a=> 9.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"cyclic message" ,lit=>{off=>0,on=>1,on_100=>200}},
|
||||
sabotageMsg =>{a=> 16.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"enable sabotage message" ,lit=>{off=>0,on=>1}},# sc needs 1 - others?
|
||||
@ -1340,24 +1337,24 @@ $culHmRegChan{"ROTO_ZEL-STG-RM-FWT03"}= $culHmRegChan{"HM-CC-TC03"};
|
||||
##############################---get---########################################
|
||||
#define gets - try use same names as for set
|
||||
%culHmGlobalGets = (
|
||||
param => "<param>",
|
||||
reg => "<addr> ... <list> <peer>",
|
||||
regVal => "<addr> ... <list> <peer>",
|
||||
regList => "",
|
||||
cmdList => "",
|
||||
saveConfig => "<filename> ...",
|
||||
param => "<param>",
|
||||
reg => "<addr> ... <list> <peer>",
|
||||
regVal => "<addr> ... <list> <peer>",
|
||||
regList => "",
|
||||
cmdList => "",
|
||||
saveConfig => "<filename> ...",
|
||||
);
|
||||
%culHmVrtGets = (
|
||||
param => "<param>",
|
||||
cmdList => "",
|
||||
saveConfig => "<filename> ...",
|
||||
param => "<param>",
|
||||
cmdList => "",
|
||||
saveConfig => "<filename> ...",
|
||||
);
|
||||
%culHmSubTypeGets = (
|
||||
none4Type =>{ "test"=>"" },
|
||||
none4Type =>{ "test"=>"" },
|
||||
);
|
||||
%culHmModelGets = (
|
||||
"CCU-FHEM" =>{ "listDevice"=>"" },
|
||||
"ActionDetector" =>{ "listDevice"=>"[all|alive|unknown|dead|notAlive] ..." },
|
||||
"CCU-FHEM" =>{ "listDevice"=>"" },
|
||||
ActionDetector =>{ "listDevice"=>"[all|alive|unknown|dead|notAlive] ..." },
|
||||
);
|
||||
|
||||
##############################---set---########################################
|
||||
@ -1380,86 +1377,83 @@ $culHmRegChan{"ROTO_ZEL-STG-RM-FWT03"}= $culHmRegChan{"HM-CC-TC03"};
|
||||
);
|
||||
|
||||
%culHmSubTypeDevSets = (# device of this subtype
|
||||
switch =>{ getSerial => ""
|
||||
,pair => ""
|
||||
,getVersion => ""
|
||||
},
|
||||
# remote =>{ },
|
||||
# threeStateSensor =>{ statusRequest =>""},
|
||||
# THSensor =>{ statusRequest =>""}, at least OT/OT2 do not support this
|
||||
# virtual =>{ },
|
||||
# smokeDetector =>{ statusRequest => ""},#not SCD
|
||||
winMatic =>{ statusRequest => ""},
|
||||
keyMatic =>{ statusRequest => ""},
|
||||
repeater =>{ statusRequest => "",
|
||||
getSerial => ""},
|
||||
outputUnit =>{ statusRequest => ""},
|
||||
switch =>{ getSerial => ""
|
||||
,pair => ""
|
||||
,getVersion => ""
|
||||
}
|
||||
,winMatic =>{ statusRequest => ""}
|
||||
,keyMatic =>{ statusRequest => ""}
|
||||
,repeater =>{ statusRequest => ""
|
||||
,getSerial => ""
|
||||
}
|
||||
,outputUnit =>{ statusRequest => ""}
|
||||
);
|
||||
$culHmSubTypeDevSets{dimmer} = $culHmSubTypeDevSets{switch};
|
||||
$culHmSubTypeDevSets{blindActuator} = $culHmSubTypeDevSets{switch};
|
||||
|
||||
|
||||
%culHmGlobalSetsChn = (# all channels but virtuals
|
||||
sign => "[on|off]",
|
||||
peerBulk => "<peer1,peer2,...> [set|unset]",
|
||||
sign => "[on|off]"
|
||||
,peerBulk => "<peer1,peer2,...> [set|unset]"
|
||||
);
|
||||
%culHmSubTypeSets = (# channels of this subtype
|
||||
switch =>{ "on-for-timer" =>"<ontime>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
},
|
||||
dimmer =>{ "on-for-timer" =>"<ontime> [<ramptime>]..."
|
||||
,"on-till" =>"<time> [<ramptime>]..."
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,pct =>"<value> ... [<ontime>] [<ramptime>]"
|
||||
,stop =>""
|
||||
,press =>"[long|short] [on|off|<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,up =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,down =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
},
|
||||
blindActuator =>{ on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,toggleDir =>""
|
||||
,pct =>"[<value>] ... [<ontime>]"
|
||||
,stop =>""
|
||||
,press =>"[long|short] [on|off|<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,up =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,down =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
},
|
||||
remote =>{ peerChan =>"<btnNumber> <actChn> ... [single|dual|reverse] [set|unset] [actor|remote|both]"},
|
||||
threeStateSensor =>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"
|
||||
# ,statusRequest =>""
|
||||
},
|
||||
THSensor =>{ peerChan =>"0 <actChn> ... single [set|unset] [actor|remote|both]"},
|
||||
virtual =>{ peerChan =>"<btnNumber> <actChn> ... [single|dual|reverse] [set|unset] [actor|remote|both]"
|
||||
,press =>"[long|short] [noBurst] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,postEvent =>"<condition>"},
|
||||
smokeDetector =>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] actor"},
|
||||
winMatic =>{ statusRequest =>""},
|
||||
keyMatic =>{ lock =>""
|
||||
,unlock =>"[<sec>] ..."
|
||||
,open =>"[<sec>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""},
|
||||
repeater =>{ setRepeat => "[no1..36] <sendName> <recName> [bdcast-yes|no]"
|
||||
,inhibit => "[on|off]"
|
||||
,statusRequest =>""},
|
||||
outputUnit =>{ statusRequest =>""},
|
||||
switch =>{ "on-for-timer" =>"<ontime>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
}
|
||||
,dimmer =>{ "on-for-timer" =>"<ontime> [<ramptime>]..."
|
||||
,"on-till" =>"<time> [<ramptime>]..."
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,pct =>"<value> ... [<ontime>] [<ramptime>]"
|
||||
,stop =>""
|
||||
,press =>"[long|short] [on|off|<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,up =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,down =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
}
|
||||
,blindActuator =>{ on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,toggleDir =>""
|
||||
,pct =>"[<value>] ... [<ontime>]"
|
||||
,stop =>""
|
||||
,press =>"[long|short] [on|off|<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,up =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,down =>"[<changeValue>] [<ontime>] [<ramptime>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
}
|
||||
,remote =>{ peerChan =>"<btnNumber> <actChn> ... [single|dual|reverse] [set|unset] [actor|remote|both]"}
|
||||
,threeStateSensor =>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"}
|
||||
,THSensor =>{ peerChan =>"0 <actChn> ... single [set|unset] [actor|remote|both]"}
|
||||
,virtual =>{ peerChan =>"<btnNumber> <actChn> ... [single|dual|reverse] [set|unset] [actor|remote|both]"
|
||||
,press =>"[long|short] [noBurst] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,postEvent =>"<condition>"
|
||||
}
|
||||
,smokeDetector =>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] actor"}
|
||||
,winMatic =>{ statusRequest =>""}
|
||||
,keyMatic =>{ lock =>""
|
||||
,unlock =>"[<sec>] ..."
|
||||
,open =>"[<sec>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
}
|
||||
,repeater =>{ setRepeat => "[no1..36] <sendName> <recName> [bdcast-yes|no]"
|
||||
,inhibit => "[on|off]"
|
||||
,statusRequest =>""
|
||||
}
|
||||
,outputUnit =>{ statusRequest =>""}
|
||||
);
|
||||
# clones- - - - - - - - - - - - - - - - -
|
||||
$culHmSubTypeSets{pushButton} = $culHmSubTypeSets{remote};
|
||||
@ -1473,27 +1467,32 @@ $culHmSubTypeSets{powerMeter} = $culHmSubTypeSets{outputUnit};
|
||||
$culHmSubTypeSets{motionDetector} = $culHmSubTypeSets{threeStateSensor};
|
||||
|
||||
%culHmModelSets = (# channels of this subtype-------------
|
||||
"HM-CC-VD" =>{ valvePos =>"[off|0.0..99.0]"},
|
||||
"HM-RC-19" =>{ service => "<count>"
|
||||
,alarm => "<count>"
|
||||
,display => "<text> [comma|no] [unit] [off|1|2|3] [off|on|slow|fast] <symbol>"},
|
||||
"HM-PB-4DIS-WM" =>{ text => "<txt1> <txt2>..."
|
||||
#text => "<btn> [on|off] <txt1> <txt2>...", old style will not be offered anymore
|
||||
},
|
||||
"HM-OU-LED16" =>{ led => "[off|red|green|orange]"
|
||||
,ilum => "[0-15] [0-127]"},
|
||||
"HM-OU-CFM-PL" =>{ "on-for-timer" =>"<sec>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,press =>"[long|short] [<peer>] ..."
|
||||
,inhibit =>"[on|off]"},
|
||||
"HM-CC-TC" =>{ burstXmit =>""},
|
||||
"HM-CC-RT-DN" =>{ burstXmit =>""
|
||||
,inhibit =>"[on|off]"},
|
||||
"HM-TC-IT-WM-W-EU" =>{ inhibit =>"[on|off]"},
|
||||
"HM-SEC-SD" =>{ statusRequest =>""},
|
||||
"HM-CC-VD" =>{ valvePos =>"[off|0.0..99.0]"}
|
||||
,"HM-RC-19" =>{ service => "<count>"
|
||||
,alarm => "<count>"
|
||||
,display => "<text> [comma|no] [unit] [off|1|2|3] [off|on|slow|fast] <symbol>"
|
||||
}
|
||||
,"HM-PB-4DIS-WM" =>{ text => "<txt1> <txt2>..."
|
||||
#text => "<btn> [on|off] <txt1> <txt2>...", old style will not be offered anymore
|
||||
}
|
||||
,"HM-OU-LED16" =>{ led => "[off|red|green|orange]"
|
||||
,ilum => "[0-15] [0-127]"
|
||||
}
|
||||
,"HM-OU-CFM-PL" =>{ "on-for-timer" =>"<sec>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,press =>"[long|short] [<peer>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
}
|
||||
,"HM-CC-TC" =>{ burstXmit =>""}
|
||||
,"HM-CC-RT-DN" =>{ burstXmit =>""
|
||||
,inhibit =>"[on|off]"
|
||||
}
|
||||
,"HM-TC-IT-WM-W-EU" =>{ inhibit =>"[on|off]"}
|
||||
,"HM-SEC-SD" =>{ statusRequest =>""}
|
||||
,"ActionDetector" =>{ clear => "[readings|all]"}
|
||||
);
|
||||
# clones- - - - - - - - - - - - - - - - -
|
||||
$culHmModelSets{"HM-CC-RT-DN-BoM"} = $culHmModelSets{"HM-CC-RT-DN"};
|
||||
@ -1512,94 +1511,96 @@ $culHmModelSets{"HM-RC-Dis-H-x-EU"} = $culHmModelSets{"HM-PB-4DIS-WM"};
|
||||
#%{$culHmModelSets{"HM-RC-19-SW"}} = %{$culHmModelSets{"HM-RC-19"}}; copy
|
||||
|
||||
%culHmChanSets = (
|
||||
"HM-CC-TC00" =>{ "desired-temp" =>"[on|off|6.0..30.0]"
|
||||
,statusRequest =>""
|
||||
,sysTime =>""
|
||||
,getSerial => ""},
|
||||
"HM-CC-TC02" =>{ peerChan =>" 0 <actChn> ... single [set|unset] [actor|remote|both]"
|
||||
,"desired-temp" =>"[on|off|6.0..30.0]"
|
||||
,tempListSat =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListSun =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListMon =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTue =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListThu =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListWed =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListFri =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTmpl =>"[verify|restore] [[<file>:]templateName] ..."
|
||||
,partyMode =>"[prep|exec] HH:MM durationDays ..."
|
||||
,displayMode =>"[temp-only|temp-hum]"
|
||||
,displayTemp =>"[actual|setpoint]"
|
||||
,displayTempUnit=>"[celsius|fahrenheit]"
|
||||
,controlMode =>"[auto|manual|central|party]"
|
||||
,statusRequest =>""
|
||||
,sysTime =>""},
|
||||
"HM-OU-CFM-PL01" =>{ led =>"[redL|greenL|orangeL|redS|greenS|orangeS|pause][,<color2>...] [<repeat>]"},
|
||||
"HM-OU-CFM-PL02" =>{ playTone =>"[replay|<MP3No>[,<MP3No>...]] [<repeat>]"},
|
||||
"HM-SEC-WIN01" =>{ stop =>"",
|
||||
,level =>"<level> <relockDly> <speed>..."
|
||||
,keydef =>"<btn> <txt1> <txt2>"
|
||||
,inhibit =>"[on|off]"
|
||||
,press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>]..."
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
},
|
||||
"HM-Sen-RD-O02" =>{ "on-for-timer" =>"<sec>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""},
|
||||
"HM-CC-RT-DN00" =>{ sysTime =>""
|
||||
,fwUpdate =>"<filename> <bootTime> ..."
|
||||
},
|
||||
"HM-LC-Bl1PBU-FM00" =>{ fwUpdate =>"<filename> <bootTime> ..."
|
||||
},
|
||||
"HM-CC-RT-DN04" =>{ controlMode =>"[auto|manual|boost|day|night]"
|
||||
,controlManu =>"[on|off|5.0..30.0]"
|
||||
,controlParty =>"<temp> <startDate> <startTime> <enddate> <endTime>"
|
||||
,tempListSat =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListSun =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListMon =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTue =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListThu =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListWed =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListFri =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTmpl =>"[verify|restore] [[<file>:]templateName] ..."
|
||||
,"desired-temp" =>"[on|off|5.0..30.0]"
|
||||
,sysTime =>""
|
||||
},
|
||||
"HM-TC-IT-WM-W-EU02"=>{ controlMode =>"[auto|manual|boost|day|night]"
|
||||
,controlManu =>"[on|off|5.0..30.0]"
|
||||
,controlParty =>"<temp> <startDate> <startTime> <enddate> <endTime>"
|
||||
,tempListSat =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListSun =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListMon =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListTue =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListThu =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListWed =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListFri =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,"desired-temp" =>"[on|off|5.0..30.0]"
|
||||
,tempListTmpl =>"[verify|restore] [[<file>:]templateName] ..."
|
||||
,peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"
|
||||
},
|
||||
"HM-TC-IT-WM-W-EU01"=>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"},
|
||||
"HM-TC-IT-WM-W-EU07"=>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"},
|
||||
"HM-ES-PMSw1-Pl01" =>{ "on-for-timer" =>"<sec>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""},
|
||||
"HM-ES-PMSw1-Pl00" =>{ fwUpdate =>"<filename> <bootTime> ..."
|
||||
,getSerial => ""},
|
||||
"HM-CC-RT-DN06" =>{ press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
},
|
||||
"HM-Dis-WM5501" =>{ displayWM =>"[long|short|help] <lineX> <textNo1> <color1> <icon1> [<textNo2> <color2> <icon2>] ...[<textNo6> <color6> <icon6>] "},
|
||||
"CCU-FHEM00" =>{ update =>"",
|
||||
hmPairForSec =>"<sec>",
|
||||
hmPairSerial =>"<serial>",
|
||||
defIgnUnknown=>"",
|
||||
},
|
||||
"HM-CC-TC00" =>{ "desired-temp" =>"[on|off|6.0..30.0]"
|
||||
,statusRequest =>""
|
||||
,sysTime =>""
|
||||
,getSerial => ""
|
||||
}
|
||||
,"HM-CC-TC02" =>{ peerChan =>" 0 <actChn> ... single [set|unset] [actor|remote|both]"
|
||||
,"desired-temp" =>"[on|off|6.0..30.0]"
|
||||
,tempListSat =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListSun =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListMon =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTue =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListThu =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListWed =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListFri =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTmpl =>"[verify|restore] [[<file>:]templateName] ..."
|
||||
,partyMode =>"[prep|exec] HH:MM durationDays ..."
|
||||
,displayMode =>"[temp-only|temp-hum]"
|
||||
,displayTemp =>"[actual|setpoint]"
|
||||
,displayTempUnit=>"[celsius|fahrenheit]"
|
||||
,controlMode =>"[auto|manual|central|party]"
|
||||
,statusRequest =>""
|
||||
,sysTime =>""
|
||||
}
|
||||
,"HM-OU-CFM-PL01" =>{ led =>"[redL|greenL|orangeL|redS|greenS|orangeS|pause][,<color2>...] [<repeat>]"}
|
||||
,"HM-OU-CFM-PL02" =>{ playTone =>"[replay|<MP3No>[,<MP3No>...]] [<repeat>]"}
|
||||
,"HM-SEC-WIN01" =>{ stop =>"",
|
||||
,level =>"<level> <relockDly> <speed>..."
|
||||
,keydef =>"<btn> <txt1> <txt2>"
|
||||
,inhibit =>"[on|off]"
|
||||
,press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>]..."
|
||||
,peerIODev =>"[IO] <btn> [set|unset]... not for future use"
|
||||
}
|
||||
,"HM-Sen-RD-O02" =>{ "on-for-timer" =>"<sec>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
}
|
||||
,"HM-CC-RT-DN00" =>{ sysTime =>""
|
||||
,fwUpdate =>"<filename> <bootTime> ..."}
|
||||
,"HM-LC-Bl1PBU-FM00" =>{ fwUpdate =>"<filename> <bootTime> ..."}
|
||||
,"HM-CC-RT-DN04" =>{ controlMode =>"[auto|manual|boost|day|night]"
|
||||
,controlManu =>"[on|off|5.0..30.0]"
|
||||
,controlParty =>"<temp> <startDate> <startTime> <enddate> <endTime>"
|
||||
,tempListSat =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListSun =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListMon =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTue =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListThu =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListWed =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListFri =>"[prep|exec] HH:MM temp ..."
|
||||
,tempListTmpl =>"[verify|restore] [[<file>:]templateName] ..."
|
||||
,"desired-temp" =>"[on|off|5.0..30.0]"
|
||||
,sysTime =>""
|
||||
}
|
||||
,"HM-TC-IT-WM-W-EU02"=>{ controlMode =>"[auto|manual|boost|day|night]"
|
||||
,controlManu =>"[on|off|5.0..30.0]"
|
||||
,controlParty =>"<temp> <startDate> <startTime> <enddate> <endTime>"
|
||||
,tempListSat =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListSun =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListMon =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListTue =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListThu =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListWed =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,tempListFri =>"[prep|exec] [p1|p2|p3] HH:MM temp ..."
|
||||
,"desired-temp" =>"[on|off|5.0..30.0]"
|
||||
,tempListTmpl =>"[verify|restore] [[<file>:]templateName] ..."
|
||||
,peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"
|
||||
}
|
||||
,"HM-TC-IT-WM-W-EU01"=>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"}
|
||||
,"HM-TC-IT-WM-W-EU07"=>{ peerChan =>"<btnNumber> <actChn> ... single [set|unset] [actor|remote|both]"}
|
||||
,"HM-ES-PMSw1-Pl01" =>{ "on-for-timer" =>"<sec>"
|
||||
,"on-till" =>"<time>"
|
||||
,on =>""
|
||||
,off =>""
|
||||
,toggle =>""
|
||||
,press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>] ..."
|
||||
,inhibit =>"[on|off]"
|
||||
,statusRequest =>""
|
||||
}
|
||||
,"HM-ES-PMSw1-Pl00" =>{ fwUpdate =>"<filename> <bootTime> ..."
|
||||
,getSerial => ""
|
||||
}
|
||||
,"HM-CC-RT-DN06" =>{ press =>"[long|short] [<peer>] [<repCount(long only)>] [<repDelay>] ..."}
|
||||
,"HM-Dis-WM5501" =>{ displayWM =>"[long|short|help] <lineX> <textNo1> <color1> <icon1> [<textNo2> <color2> <icon2>] ...[<textNo6> <color6> <icon6>] "}
|
||||
,"CCU-FHEM00" =>{ update =>""
|
||||
,hmPairForSec =>"<sec>"
|
||||
,hmPairSerial =>"<serial>"
|
||||
,defIgnUnknown=>""
|
||||
}
|
||||
);
|
||||
# clones- - - - - - - - - - - - - - - - -
|
||||
$culHmChanSets{"HM-Dis-WM5502"} = $culHmChanSets{"HM-Dis-WM5501"};
|
||||
|
Loading…
x
Reference in New Issue
Block a user