2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-18 05:56:03 +00:00

CUL_HM: imlement dis-wm55

git-svn-id: https://svn.fhem.de/fhem/trunk@7695 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2015-01-24 17:00:03 +00:00
parent 7fdd194895
commit 291eaf8746
3 changed files with 19 additions and 10 deletions

View File

@ -606,6 +606,9 @@ sub HMLAN_Parse($$) {##########################################################
if ($HMcnd == 0x01 && $mFld[3] ne "FF"){#HMLAN responded to AES request
$CULinfo = "AESKey-".$mFld[3];
}
# config message: reset timer handling
$hash->{helper}{ids}{$src}{flg} = 0 if ($type eq "00");
if ($stat){# message with status information
HMLAN_condUpdate($hash,$HMcnd)if ($hash->{helper}{q}{HMcndN} != $HMcnd);

View File

@ -681,8 +681,6 @@ sub CUL_HM_Attr(@) {#################################
if ($cmd eq "set"){
return "$attrName not usable for channels" if(!$hash->{helper}{role}{dev});#only for device
return "value $attrVal ignored, must be an integer" if ($attrVal !~ m/^(\d+)$/);
return "$attrName not supported for model" if(!(CUL_HM_getRxType($hash) & 0xEB)
&& $attrVal != 1);# no repeat for confign only devices
}
return;
}
@ -2508,7 +2506,15 @@ sub CUL_HM_parseCommon(@){#####################################################
my $chnhash = $modules{CUL_HM}{defptr}{$src.$chn};
$chnhash = $shash if (!$chnhash);
my $chnName = $chnhash->{NAME};
my (undef,@peers) = unpack 'A2(A8)*',$p;
my @peers;
if($attr{$shash->{NAME}}{model} eq "HM-Dis-WM55"){
#how ugly - this device adds one byte at begin - remove it.
(undef,@peers) = unpack 'A4(A8)*',$p;
}
else{
(undef,@peers) = unpack 'A2(A8)*',$p;
}
$_ = '00000000' foreach (grep /^000000/,@peers);#correct bad term(6 chars) from rain sens)
$chnhash->{helper}{peerIDsRaw}.= ",".join",",@peers;
@ -2964,7 +2970,7 @@ sub CUL_HM_Get($@) {#+++++++++++++++++ get command+++++++++++++++++++++++++++++
if ($md =~ m/(HM-CC-TC|ROTO_ZEL-STG-RM-FWT)/ && $chn eq "02"){$addInfo = CUL_HM_TCtempReadings($hash)}
elsif ($md =~ m/HM-CC-RT-DN/ && $chn eq "04"){$addInfo = CUL_HM_TCITRTtempReadings($hash,$md,7)}
elsif ($md =~ m/HM-TC-IT/ && $chn eq "02"){$addInfo = CUL_HM_TCITRTtempReadings($hash,$md,7,8,9)}
elsif ($md =~ m/^HM-PB-4DIS-WM/) {$addInfo = CUL_HM_4DisText($hash)}
elsif ($md =~ m/(^HM-PB-4DIS-WM|HM-Dis-WM55)/){$addInfo = CUL_HM_4DisText($hash)}
elsif ($md eq "HM-Sys-sRP-Pl") {$addInfo = CUL_HM_repReadings($hash)}
return $name." type:".$st." - \n".
@ -3632,7 +3638,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
my (undef,undef,$duration,$ramp) = @a; #date prepared extention to entdate
if ($cmd eq "on-till"){
# to be extended to handle end date as well
my ($eH,$eM,$eSec) = split(':',$duration);
my ($eH,$eM,$eSec) = split(':',$duration.":00:00");
return "please enter time informat hh:mm:ss" if (!$eSec);
$eSec += $eH*3600 + $eM*60;
my @lt = localtime;
@ -5369,8 +5375,8 @@ sub CUL_HM_respPendTout($) {
CUL_HM_eventP($hash,"IOdly");
CUL_HM_ProcessCmdStack($hash) if($rxt & 0x03);#burst/all
}
elsif ($pHash->{rspWait}{reSent} > AttrVal($name,"msgRepeat",3)#too many
||(!($rxt & 0x9B))){#config cannot retry
elsif ($pHash->{rspWait}{reSent} > AttrVal($name,"msgRepeat",($rxt & 0x9B)?3:0)#too many
){#config cannot retry
my $pendCmd = "MISSING ACK";
if ($pHash->{rspWait}{Pending}){
@ -6138,7 +6144,7 @@ sub CUL_HM_updtRegDisp($$$) {
elsif ($md =~ m/HM-TC-IT-WM-W-EU/){#handle temperature readings
CUL_HM_TCITRTtempReadings($hash,$md,$list) if ($list >= 7 && $chn eq "02");
}
elsif ($md =~ m/^HM-PB-4DIS-WM/){#add text
elsif ($md =~ m/(^HM-PB-4DIS-WM|HM-Dis-WM55)/){#add text
CUL_HM_4DisText($hash) if ($list == 1) ;
}
elsif ($st eq "repeater"){
@ -6700,7 +6706,7 @@ sub CUL_HM_ActCheck($) {# perform supervision
}
}
elsif ($tSince gt $tLast){ #no message received in window
if ($actHash->{helper}{$devId}{start} lt $tLast){
if ($actHash->{helper}{$devId}{start} lt $tSince){
$cntDead++; $state = "dead";
}
else{

View File

@ -273,7 +273,7 @@ my $K_actDetID = '000000'; # id of actionDetector
,"00D1" => {name=>"HM-LC-Bl1-SM-2" ,st=>'blindActuator' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",} # radio-controlled blind actuator 1-channel (flush-mount)
,"00D2" => {name=>"HM-LC-Bl1-FM-2" ,st=>'blindActuator' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",} # radio-controlled blind actuator 1-channel (flush-mount)
#General ,"00D3" => {name=>"HM-Dis-WM55" ,st=>'pushButton' ,cyc=>'' ,rxt=>'c:w:l' ,lst=>'1' ,chn=>"Dis:1:10",}
,"00D3" => {name=>"HM-Dis-WM55" ,st=>'pushButton' ,cyc=>'' ,rxt=>'c' ,lst=>'1' ,chn=>"Dis:1:10",}
,"00D3" => {name=>"HM-Dis-WM55" ,st=>'pushButton' ,cyc=>'' ,rxt=>'c' ,lst=>'1,p' ,chn=>"Dis:1:10",}
,"00D7" => {name=>"HM-ES-PMSw1-Pl-DN-R1" ,st=>'powerMeter' ,cyc=>'00:10' ,rxt=>'' ,lst=>'1:2.3.4.5.6,3:1p,4:3p.4p.5p.6p'
,chn=>"Sw:1:1,Pwr:2:2,SenPwr:3:3,SenI:4:4,SenU:5:5,SenF:6:6"}
,"00D8" => {name=>"HM-LC-Sw1-Pl-DN-R1" ,st=>'switch' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",}