mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
get desired-temp 4 tc in central mode, prepare conditional burst
git-svn-id: https://svn.fhem.de/fhem/trunk@3945 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
3875f25340
commit
b5aafc93f3
@ -634,8 +634,13 @@ sub CUL_HM_Parse($$) {##############################
|
||||
( $1, hex($2));
|
||||
$vp = int($vp/2.56+0.5); # valve position in %
|
||||
my $chnHash = $modules{CUL_HM}{defptr}{$src.$chn};
|
||||
push @entities,CUL_HM_UpdtReadSingle($chnHash,"state","$vp %",1)
|
||||
if($chnHash);
|
||||
if($chnHash){
|
||||
push @entities,CUL_HM_UpdtReadSingle($chnHash,"state","$vp %",1);
|
||||
if ($chnHash->{helper}{needUpdate}){
|
||||
CUL_HM_stateUpdat(":".$chnHash->{NAME});
|
||||
delete $chnHash->{helper}{needUpdate};
|
||||
}
|
||||
}
|
||||
push @event, "actuator:$vp %";
|
||||
|
||||
# Set the valve state too, without an extra trigger
|
||||
@ -661,6 +666,7 @@ sub CUL_HM_Parse($$) {##############################
|
||||
# readingsSingleUpdate($chnHash,"desired-temp-cent",$dTemp,1) if($mode =~ m /central/ && $mTp eq '02');
|
||||
# removed - shall not be changed automatically - change is only temporary
|
||||
# CUL_HM_Set($chnHash,$chnName,"desired-temp",$dTemp) if($mode =~ m /central/ && $mTp eq '10');
|
||||
$chnHash->{helper}{needUpdate} = 1 if($mode =~ m /central/ && $mTp eq '10');
|
||||
}
|
||||
push @event, "desired-temp:" .$dTemp;
|
||||
push @event, "battery:".($err&0x80?"low":"ok");
|
||||
@ -2034,7 +2040,7 @@ sub CUL_HM_Get($@) {
|
||||
|
||||
Log GetLogLevel($name,4), "CUL_HM get $name " . join(" ", @a[1..$#a]);
|
||||
|
||||
CUL_HM_ProcessCmdStack($devHash) if ($rxType & 0x83);#burst/all/pre
|
||||
CUL_HM_ProcessCmdStack($devHash) if ($rxType & 0x03);#burst/all
|
||||
return "";
|
||||
}
|
||||
|
||||
@ -2048,7 +2054,6 @@ sub CUL_HM_Set($@) {
|
||||
my $devName = $hash->{device}?$hash->{device}:$name;
|
||||
my $st = AttrVal($devName, "subType", "");
|
||||
my $md = AttrVal($devName, "model" , "");
|
||||
my $rxType = CUL_HM_getRxType($hash);
|
||||
my $flag = CUL_HM_getFlag($hash); #set burst flag
|
||||
my $cmd = $a[1];
|
||||
my $dst = $hash->{DEF};
|
||||
@ -3040,9 +3045,9 @@ sub CUL_HM_Set($@) {
|
||||
|
||||
readingsSingleUpdate($hash,"state",$state,1) if($state);
|
||||
|
||||
$rxType = CUL_HM_getRxType($devHash);
|
||||
my $rxType = CUL_HM_getRxType($devHash);
|
||||
Log GetLogLevel($name,2), "CUL_HM set $name $act";
|
||||
CUL_HM_ProcessCmdStack($devHash) if($rxType & 0x83);#all/burst/pre
|
||||
CUL_HM_ProcessCmdStack($devHash) if($rxType & 0x03);#all/burst
|
||||
return ("",1);# no not generate trigger outof command
|
||||
}
|
||||
|
||||
@ -3655,7 +3660,7 @@ sub CUL_HM_getRxType($) { #in:hash(chn or dev) out:binary coded Rx type
|
||||
$rxtEntity |= ($rxtOfModel =~ m/c/)?0x04:0;#config
|
||||
$rxtEntity |= ($rxtOfModel =~ m/w/)?0x08:0;#wakeup
|
||||
$rxtEntity |= ($rxtOfModel =~ m/l/)?0x10:0;#lazyConfig
|
||||
$rxtEntity |= ($rxtOfModel =~ m/p/)?0x80:0;#pre-burst-wakeup (works for rt - others?)
|
||||
$rxtEntity |= ($rxtOfModel =~ m/f/)?0x80:0;#burstOptional
|
||||
}
|
||||
$rxtEntity = 1 if (!$rxtEntity);#always
|
||||
$hash->{helper}{rxType} = $rxtEntity;
|
||||
|
@ -289,6 +289,9 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
$ret .= "\n autoRegRead pending:".
|
||||
join(",",@{$modules{CUL_HM}{helper}{autoRdCfgLst}})
|
||||
if ($modules{CUL_HM}{helper}{autoRdCfgLst});
|
||||
$ret .= "\n status request pending:".
|
||||
join(",",@{$modules{CUL_HM}{helper}{reqStatus}})
|
||||
if ($modules{CUL_HM}{helper}{reqStatus});
|
||||
@IOlist = HMinfo_noDup(@IOlist);
|
||||
foreach(@IOlist){
|
||||
$_ .= ":".$defs{$_}{STATE}.
|
||||
@ -420,7 +423,8 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
$mode =~ s/w/wakeup/;
|
||||
$mode =~ s/b/burst/;
|
||||
$mode =~ s/l/lazyConf/;
|
||||
$mode =~ s/:/,/;
|
||||
$mode =~ s/\bf\b/burstCond/;
|
||||
$mode =~ s/:/,/g;
|
||||
$mode = "normal" if (!$mode);
|
||||
my $list = $th{$_}{lst};
|
||||
$list =~ s/.://g;
|
||||
@ -430,7 +434,7 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
my ($n,$s,$e) = split(":",$_);
|
||||
$chan .= $s.(($s eq $e)?"":("-".$e))." ".$n.", ";
|
||||
}
|
||||
push @model,sprintf("%-16s %-24s %4s %-15s %-5s %-5s %s"
|
||||
push @model,sprintf("%-16s %-24s %4s %-24s %-5s %-5s %s"
|
||||
,$th{$_}{st}
|
||||
,$th{$_}{name}
|
||||
,$_
|
||||
@ -441,7 +445,7 @@ sub HMinfo_SetFn($@) {#########################################################
|
||||
);
|
||||
}
|
||||
$ret = $cmd.($filter?" filtered":"").":$filter\n "
|
||||
.sprintf("%-16s %-24s %4s %-15s %-5s %-5s %s\n "
|
||||
.sprintf("%-16s %-24s %4s %-24s %-5s %-5s %s\n "
|
||||
,"subType"
|
||||
,"name"
|
||||
,"ID"
|
||||
|
@ -64,8 +64,8 @@ my %culHmModel=(
|
||||
"0009" => {name=>"HM-LC-SW2-FM" ,st=>'switch' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"Sw:1:2",},
|
||||
"000A" => {name=>"HM-LC-SW2-SM" ,st=>'switch' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"Sw:1:2",},
|
||||
"000B" => {name=>"HM-WS550" ,st=>'THSensor' ,cyc=>'' ,rxt=>'' ,lst=>'p' ,chn=>"",},
|
||||
"000D" => {name=>"ASH550" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"000E" => {name=>"ASH550I" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"000D" => {name=>"ASH550" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",},
|
||||
"000E" => {name=>"ASH550I" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",},
|
||||
"000F" => {name=>"S550IA" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"0011" => {name=>"HM-LC-SW1-PL" ,st=>'switch' ,cyc=>'' ,rxt=>'' ,lst=>'3' ,chn=>"",},
|
||||
"0012" => {name=>"HM-LC-DIM1L-CV" ,st=>'dimmer' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
|
||||
@ -107,10 +107,10 @@ my %culHmModel=(
|
||||
"0039" => {name=>"HM-CC-TC" ,st=>'thermostat' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p:2p,5:2.3p,6:2',chn=>"Weather:1:1,Climate:2:2,WindowRec:3:3",},
|
||||
"003A" => {name=>"HM-CC-VD" ,st=>'thermostat' ,cyc=>'28:00' ,rxt=>'c:w' ,lst=>'p,5' ,chn=>"",},
|
||||
"003B" => {name=>"HM-RC-4-B" ,st=>'remote' ,cyc=>'' ,rxt=>'c' ,lst=>'1,4' ,chn=>"Btn:1:4",},
|
||||
"003C" => {name=>"HM-WDS20-TH-O" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"003D" => {name=>"HM-WDS10-TH-O" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"003C" => {name=>"HM-WDS20-TH-O" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",},
|
||||
"003D" => {name=>"HM-WDS10-TH-O" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",},
|
||||
"003E" => {name=>"HM-WDS30-T-O" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"003F" => {name=>"HM-WDS40-TH-I" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"003F" => {name=>"HM-WDS40-TH-I" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",},
|
||||
"0040" => {name=>"HM-WDS100-C6-O" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p,1' ,chn=>"",},
|
||||
"0041" => {name=>"HM-WDC7000" ,st=>'THSensor' ,cyc=>'' ,rxt=>'' ,lst=>'1,4' ,chn=>"",},
|
||||
"0042" => {name=>"HM-SEC-SD" ,st=>'smokeDetector' ,cyc=>'99:00' ,rxt=>'b' ,lst=>'p' ,chn=>"",},
|
||||
@ -119,7 +119,7 @@ my %culHmModel=(
|
||||
"0045" => {name=>"HM-SEC-WDS" ,st=>'threeStateSensor' ,cyc=>'28:00' ,rxt=>'c:w' ,lst=>'1,4' ,chn=>"",},
|
||||
"0046" => {name=>"HM-SWI-3-FM" ,st=>'swi' ,cyc=>'' ,rxt=>'c' ,lst=>'4' ,chn=>"Sw:1:3",},
|
||||
"0047" => {name=>"KFM-Sensor" ,st=>'KFM100' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
|
||||
"0048" => {name=>"IS-WDS-TH-OD-S-R3" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",},
|
||||
"0048" => {name=>"IS-WDS-TH-OD-S-R3" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",},
|
||||
"0049" => {name=>"KFM-Display" ,st=>'KFM100' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
|
||||
"004A" => {name=>"HM-SEC-MDIR" ,st=>'motionDetector' ,cyc=>'00:10' ,rxt=>'c:w:l' ,lst=>'1,4' ,chn=>"",},
|
||||
"004B" => {name=>"HM-Sec-Cen" ,st=>'AlarmControl' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
|
||||
@ -188,9 +188,9 @@ my %culHmModel=(
|
||||
"008F" => {name=>"Schueco_263-145" ,st=>'pushButton' ,cyc=>'' ,rxt=>'c' ,lst=>'1,4' ,chn=>"",}, # HM Push Button Interface
|
||||
"0090" => {name=>"Schueco_263-162" ,st=>'motionDetector' ,cyc=>'00:30' ,rxt=>'c:w:l' ,lst=>'1,3' ,chn=>"",}, # HM radio-controlled motion detector
|
||||
"0092" => {name=>"Schueco_263-144" ,st=>'switch' ,cyc=>'' ,rxt=>'c' ,lst=>'4' ,chn=>"",}, # HM Switch Interface 3 switches
|
||||
"0093" => {name=>"Schueco_263-158" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",}, #
|
||||
"0093" => {name=>"Schueco_263-158" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",}, #
|
||||
"0094" => {name=>"IS-WDS-TH-OD-S-R3" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",}, #
|
||||
"0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'' ,rxt=>'c:w' ,lst=>'p:1p.2p.5p.6p,3:3p.6p,7:4'
|
||||
"0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'' ,rxt=>'c:w:f' ,lst=>'p:1p.2p.5p.6p,3:3p.6p,7:4'
|
||||
,chn=>"Weather:1:1,Climate:2:2,WindowRec:3:3,ClimRT_tr:4:4,ClimaTeam:5:5,remote:6:6"}, #
|
||||
"0096" => {name=>"WDF-solar" ,st=>'blindActuatorSol' ,cyc=>'' ,rxt=>'b' ,lst=>'1,3' ,chn=>"win:1:1,blind_2:3",}, #
|
||||
"009B" => {name=>"Schueco_263-xxx" ,st=>'tipTronic' ,cyc=>'28:00' ,rxt=>'c:w' ,lst=>'1:1.2,3:1p.3p',chn=>"act:1:1,sen:2:2,sec:3:3",}, #
|
||||
@ -203,7 +203,7 @@ my %culHmModel=(
|
||||
"00A5" => {name=>"HM-RC-Sec4-2" ,st=>'remote' ,cyc=>'' ,rxt=>'c:l' ,lst=>'1,4' ,chn=>"Btn:1:2,BTN_T:3:1,BTN_A:4:1",},#only 1 and 2 canbe peered???
|
||||
"00A6" => {name=>"HM-RC-Key4-2" ,st=>'remote' ,cyc=>'' ,rxt=>'c:l' ,lst=>'1,4' ,chn=>"Btn:1:2,BTN_T:3:1,BTN_A:4:1",},#only 1 and 2 canbe peered???
|
||||
"00A7" => {name=>"HM-Sen-RD-O" ,st=>'sensRain' ,cyc=>'' ,rxt=>'' ,lst=>'1:1,4:1p' ,chn=>"Rain:1:1,Heating:2:2",},#stc:70 THSensor
|
||||
"00A8" => {name=>"HM-WDS30-OT2-SM" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"Th:1:4,Weather:5:5",},
|
||||
"00A8" => {name=>"HM-WDS30-OT2-SM" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"Th:1:4,Weather:5:5",},
|
||||
"00A9" => {name=>"HM-PB-6-WM55" ,st=>'remote' ,cyc=>'' ,rxt=>'c' ,lst=>'1,4' ,chn=>"Btn:1:6",},
|
||||
"00AB" => {name=>"HM-LC-SW4-BA-PCB" ,st=>'switch' ,cyc=>'' ,rxt=>'b' ,lst=>'1,3' ,chn=>"Sw:1:4",},
|
||||
"00AF" => {name=>"HM-OU-CM-PCB" ,st=>'outputUnit' ,cyc=>'' ,rxt=>'' ,lst=>'3' ,chn=>"",},
|
||||
@ -335,11 +335,11 @@ my %culHmRegDefShLg = (# register that are available for short AND long button p
|
||||
|
||||
my %culHmRegDefine = (
|
||||
#--- list 0, device and protocol level-----------------
|
||||
burstRx =>{a=> 1.0,s=>1.0,l=>0,min=>0 ,max=>255 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>'device reacts on Burst' ,lit=>{off=>0,on=>200}},# not sure what 'on' is. Also change Tx mode TODO!!
|
||||
burstRx =>{a=> 1.0,s=>1.0,l=>0,min=>0 ,max=>255 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>'device reacts on Burst' ,lit=>{off=>0,on=>1}},
|
||||
intKeyVisib =>{a=> 2.7,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>'visibility of internal channel',lit=>{invisib=>0,visib=>1}},
|
||||
pairCentral =>{a=> 10.0,s=>3.0,l=>0,min=>0 ,max=>16777215,c=>'hex' ,f=>'' ,u=>'' ,d=>1,t=>'pairing to central'},
|
||||
#remote mainly
|
||||
backlOnTime =>{a=> 5.0,s=>0.6,l=>0,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Backlight ontime[s]" ,lit=>{0=>0,5=>1,10=>2,15=>3,20=>4,25=>5}},
|
||||
backlOnTime =>{a=> 5.0,s=>0.6,l=>0,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Backlight ontime[s]" ,lit=>{0=>0,5=>1,10=>2,15=>3,20=>4,25=>5}},
|
||||
backlOnMode =>{a=> 5.6,s=>0.2,l=>0,min=>0 ,max=>2 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Backlight mode" ,lit=>{off=>0,auto=>2}},
|
||||
ledMode =>{a=> 5.6,s=>0.2,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"LED mode" ,lit=>{off=>0,on=>1}},
|
||||
language =>{a=> 7.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"Language" ,lit=>{English=>0,German=>1}},
|
||||
|
Loading…
Reference in New Issue
Block a user