2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 12:49:34 +00:00

CC-RT first test results

git-svn-id: https://svn.fhem.de/fhem/trunk@3928 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2013-09-19 18:26:59 +00:00
parent c6b3834fe5
commit c495e33d18
2 changed files with 56 additions and 24 deletions

View File

@ -817,6 +817,35 @@ sub CUL_HM_Parse($$) {##############################
}
}
}
elsif($md eq "HM-CC-RT-DN") { ###############################################
if($mTp eq "10" && $p =~ m/^0A(....)(..)(..)(..)/) {#info-level
my ($chn,$setTemp,$actTemp,$err,$bat,$vp,$ctrlMode) =
("04",hex($1),hex($1),hex($2),hex($2),hex($3), hex($4));
$setTemp =(($setTemp >>10) & 0x3f )/2;
$actTemp =(($actTemp ) & 0x3ff)/10;
$err = ($err >> 5) & 0x7 ;
$bat =(($bat ) & 0x1f)/10+1.5;
$vp = ($vp ) & 0x7f ;
$ctrlMode = ($ctrlMode >> 6) & 0x3 ;
$shash = $modules{CUL_HM}{defptr}{"$src$chn"}
if($modules{CUL_HM}{defptr}{"$src$chn"});
my %ctlTbl=( 0=>"auto", 1=>"manu", 2=>"party",3=>"boost");
my %errTbl=( 0=>"ok", 1=>"ValveTight", 2=>"adjustRangeTooLarge"
,3=>"adjustRangeTooSmall" , 4=>"communicationERR"
,5=>"unknown" , 6=>"lowBat" , 7=>"ValveErrorPosition" );
push @event, "motorErr:$errTbl{$err}";
push @event, "battery:".($err&0x80?"low":"ok");
push @event, "batteryLevel:$bat V";
push @event, "measured-temp:$actTemp";
push @event, "desired-temp:$setTemp";
push @event, "ValvePosition:$vp %";
push @event, "mode:$ctlTbl{$ctrlMode}";
push @event, "state:$actTemp C, $vp %";
}
}
elsif($md =~ m/^(HM-Sen-Wa-Od|HM-CC-SCD)$/){ ################################
if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status
($mTp eq "10" && $p =~ m/^06/) || #or Info_Status message here
@ -2638,9 +2667,11 @@ sub CUL_HM_Set($@) {
elsif($a[2] eq "party"){
return "temperatur for manu 5 to 30 C"
if (!$a[3] || $a[3] < 5 || $a[3] > 30);
return "enter date like party 3 03.8.13 11:30 5.8.13 12:00"
if (!$a[7] );
$temp = $a[3]*2;
# party format 03.8.2013 11:30 5.8.2013 12:00
my ($sd,$sm,$sy) = split('.',$a[4]);
# party format 03.8.13 11:30 5.8.13 12:00
my ($sd,$sm,$sy) = split('\.',$a[4]);
return "wrong start day $sd" if ($sd < 0 || $sd > 31);
return "wrong start month $sm" if ($sm < 0 || $sm > 12);
return "wrong start year $sy" if ($sy < 0 || $sy > 99);
@ -2650,7 +2681,7 @@ sub CUL_HM_Set($@) {
return "wrong start minute $smin, ony 00 or 30" if ($smin != 0 && $smin != 30);
$sh = $sh * 2 + $smin/30;
my ($ed,$em,$ey) = split('.',$a[6]);
my ($ed,$em,$ey) = split('\.',$a[6]);
return "wrong end day $ed" if ($ed < 0 || $ed > 31);
return "wrong end month $em" if ($em < 0 || $em > 12);
return "wrong end year $ey" if ($ey < 0 || $ey > 99);

View File

@ -190,7 +190,7 @@ my %culHmModel=(
"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=>"",}, #
"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=>'3:3p.6p,7:0.3.4',chn=>"Weather:1:1,Climate:2:2,WindowRec:3:3,ClimRT_tr:4:4,ClimRT_r:5:5,rCtrl:6:6"}, #
"0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'' ,rxt=>'c:w' ,lst=>'3:3p.6p,7:4' ,chn=>"Weather:1:1,Climate:2:2,WindowRec:3:3,ClimRT_tr:4:4,ClimRT_r:5:5,rCtrl: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",}, #
"009F" => {name=>"HM-Sen-Wa-Od" ,st=>'sensor' ,cyc=>'28:00' ,rxt=>'c:w' ,lst=>'1,4' ,chn=>"",}, #capacitive filling level sensor
@ -337,8 +337,6 @@ my %culHmRegDefine = (
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!!
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'},
#repeater
compMode =>{a=> 23.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"compatibility moden" ,lit=>{off=>0,on=>1}},
#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}},
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}},
@ -351,7 +349,6 @@ my %culHmRegDefine = (
backOnTime =>{a=> 14.0,s=>1.0,l=>0,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'s' ,d=>1,t=>"Backlight On Time"},
btnLock =>{a=> 15.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Button Lock" ,lit=>{unlock=>0,lock=>1}},
confBtnTime =>{a=> 21.0,s=>1.0,l=>0,min=>1 ,max=>255 ,c=>'' ,f=>'' ,u=>'min' ,d=>0,t=>"255=permanent"},
# keymatic/winmatic secific register
keypressSignal =>{a=> 3.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Keypress beep" ,lit=>{off=>0,on=>1}},
signal =>{a=> 3.4,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Confirmation beep" ,lit=>{off=>0,on=>1}},
@ -369,14 +366,18 @@ my %culHmRegDefine = (
lowBatLimitRT =>{a=> 18.0,s=>1.0,l=>0,min=>2 ,max=>2.5 ,c=>'' ,f=>10 ,u=>'V' ,d=>0,t=>"low batterie limit, step .1V"},
batDefectLimit =>{a=> 19.0,s=>1.0,l=>0,min=>0.1,max=>2 ,c=>'' ,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"},
confBtnTime =>{a=> 21.0,s=>1.0,l=>0,min=>1 ,max=>255 ,c=>'' ,f=>'' ,u=>'min' ,d=>0,t=>"255=permanent"},
#repeater
compMode =>{a=> 23.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"compatibility moden" ,lit=>{off=>0,on=>1}},
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}},
globalBtnLock =>{a=> 25.0,s=>1.0,l=>0,min=>1 ,max=>255 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"global button lock" ,lit=>{off=>0,on=>200}},
modusBtnLock =>{a=> 25.0,s=>1.0,l=>0,min=>1 ,max=>255 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"mode button lock" ,lit=>{off=>0,on=>200}},
modusBtnLock =>{a=> 26.0,s=>1.0,l=>0,min=>1 ,max=>255 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"mode button lock" ,lit=>{off=>0,on=>200}},
paramSel =>{a=> 27.0,s=>1.0,l=>0,min=>0 ,max=>4 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"data transfered to peer" ,lit=>{off=>0,T1=>1,T2=>2,T1_T2=>3,T2_T1=>4}},
RS485IdleTime =>{a=> 29.0,s=>1.0,l=>0,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'s' ,d=>0,t=>"Idle Time"},
#un-identified List0
# addr Dec!!
# SEC-WM55 02:01 (AES on?)
# CC-RT 02:01 16:00
# SEC-WDS 02:01 16:01(sabotage) ?
# HM-SEC-MDIR 02:01 ?
# SEC-SC 02:00 ?
@ -536,7 +537,6 @@ my %culHmRegDefine = (
valveOffset =>{a=> 9 ,s=>0.5,l=>5,min=>0 ,max=>25 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"Valve offset"}, # size actually 0.5
valveErrorPos =>{a=> 10 ,s=>1 ,l=>5,min=>0 ,max=>99 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"Valve position when error"},# size actually 0.7
btnNoBckLight =>{a=> 9.4,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"button response without backlight",lit=>{off=>0,on=>1}},
tempComfort =>{a=> 1 ,s=>0.6,l=>7,min=>15 ,max=>30 ,c=>'' ,f=>'2' ,u=>'' ,d=>1,t=>"comfort temperatur"},
tempLowering =>{a=> 2 ,s=>0.6,l=>7,min=>5 ,max=>25 ,c=>'' ,f=>'2' ,u=>'' ,d=>1,t=>"lowering temperatur"},
tempMin =>{a=> 3 ,s=>0.6,l=>7,min=>4.5,max=>25 ,c=>'' ,f=>'2' ,u=>'' ,d=>1,t=>"minimum temperatur"},
@ -547,8 +547,12 @@ my %culHmRegDefine = (
decalcTime =>{a=> 8 ,s=>0.6,l=>7,min=>0 ,max=>1410 ,c=>'' ,f=>'0.033' ,u=>'' ,d=>1,t=>"decalcification time"},
tempOffset =>{a=> 9 ,s=>0.4,l=>7,min=>0 ,max=>15 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"temperature offset",lit=>{"-3.5K"=>0,"-3.0K"=>1,"-2.5K"=>2,"-2.0K"=>3,"-1.5K"=>4,"-1.0K"=>5,"-0.5K"=>6,
"0.0K"=>7, "0.5K"=>8, "1.0K"=>10, "1.5K"=>11, "2.0K"=>12, "2.5K"=>13, "3.0K"=>14, "3.5K"=>15}},
btnNoBckLight =>{a=> 9.4,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"button response without backlight",lit=>{off=>0,on=>1}},
boostPos =>{a=> 10.0,s=>0.5,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'0.2' ,u=>'%' ,d=>1,t=>"boost period [min]"},
boostPeriod =>{a=> 10.5,s=>0.3,l=>7,min=>0 ,max=>6 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"boost position" ,lit=>{0=>0,5=>1,10=>2,15=>3,20=>4,25=>5,30=>6}},
valveOffset =>{a=> 11 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"offset for valve"},
valveMaxPos =>{a=> 12 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"valve maximum position"},
valveErrPos =>{a=> 13 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"valve error position"},
boostAftWinOpen =>{a=> 14.5,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"boost after window opened",lit=>{off=>0,on=>1}},
daylightSaveTime=>{a=> 14 ,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"set daylight saving time",lit=>{off=>0,on=>1}},
@ -556,9 +560,6 @@ my %culHmRegDefine = (
showInfo =>{a=> 14.3,s=>0.2,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"show date or time" ,lit=>{time=>0,date=>1}},
noMinMan4Manu =>{a=> 14.6,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"min/max is irrelevant for manual mode" ,lit=>{off=>0,on=>1}},
showWeekday =>{a=> 14.7,s=>0.1,l=>7,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"show weekday" ,lit=>{off=>0,on=>1}},
valveOffset =>{a=> 11 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"offset for valve"},
valveMaxPos =>{a=> 12 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"valve maximum position"},
valveErrPos =>{a=> 13 ,s=>0.7,l=>7,min=>0 ,max=>100 ,c=>'' ,f=>'' ,u=>'%' ,d=>1,t=>"valve error position"},
modePrioManu =>{a=> 18.3,s=>0.3,l=>7,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"allow tempChange for manual by...",lit=>{RT_SC=>0,all=>1,RT_CCU=>3,CCU=>4,self=>5}},
modePrioParty =>{a=> 18.0,s=>0.3,l=>7,min=>0 ,max=>5 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"allow tempChange for party by..." ,lit=>{RT_SC=>0,all=>1,RT_CCU=>3,CCU=>4,self=>5}},
@ -688,18 +689,6 @@ my %culHmRegModel = (
"HM-CC-RT-DN" =>{btnLock =>1,localResDis =>1,globalBtnLock =>1,modusBtnLock =>1,
cyclicInfoMsg =>1,cyclicInfoMsgDis=>1,
burstRx =>1,lowBatLimitRT =>1,backOnTime =>1,
btnNoBckLight =>1,
tempComfort =>1,tempLowering =>1,tempMin =>1,tempMax =>1,
tempFallWinOpen =>1,tempFallWinPerio=>1,tempOffset =>1,
decalcWeekday =>1,decalcTime =>1,
boostPos =>1,boostPeriod =>1,boostAftWinOpen =>1,
daylightSaveTime=>1,regAdaptive =>1,
showInfo =>1,noMinMan4Manu =>1,showWeekday =>1,
valveOffset =>1,valveMaxPos =>1,valveErrPos =>1,
modePrioManu =>1,modePrioParty =>1,
reguIntI =>1,reguIntP =>1,reguIntPstart =>1,
reguExtI =>1,reguExtP =>1,reguExtPstart =>1
},
"HM-PB-4DIS-WM" =>{peerNeedsBurst =>1,expectAES =>1,language =>1,stbyTime =>1},
@ -835,6 +824,18 @@ my %culHmRegChan = (# if channelspecific then enter them here
"Schueco_263-xxx03" =>{ttJtOn =>1,ttJtOff =>1},
"HM-Sen-RD-O01" =>{eventFilterTimeB=>1,transmitTryMax =>1,peerNeedsBurst =>1,expectAES =>1},
"HM-CC-RT-DN03" =>{tempFallWinOpen =>1,shCtValLo =>1},
"HM-CC-RT-DN04" =>{btnNoBckLight =>1,
tempComfort =>1,tempLowering =>1,tempMin =>1,tempMax =>1,
tempFallWinOpen =>1,tempFallWinPerio=>1,tempOffset =>1,
decalcWeekday =>1,decalcTime =>1,
boostPos =>1,boostPeriod =>1,boostAftWinOpen =>1,
daylightSaveTime=>1,regAdaptive =>1,
showInfo =>1,noMinMan4Manu =>1,showWeekday =>1,
valveOffset =>1,valveMaxPos =>1,valveErrPos =>1,
modePrioManu =>1,modePrioParty =>1,
reguIntI =>1,reguIntP =>1,reguIntPstart =>1,
reguExtI =>1,reguExtP =>1,reguExtPstart =>1
},
"HM-CC-RT-DN06" =>{CtrlRc =>1,TempRC =>1},
);
#clones - - - - - - - - - - - - - - -