From 0f10f1bb2315b2f1eecb19a8edce3eaacf14c032 Mon Sep 17 00:00:00 2001 From: martinp876 Date: Wed, 23 Nov 2016 06:39:35 +0000 Subject: [PATCH] CUL_HM:winmatic level change git-svn-id: https://svn.fhem.de/fhem/trunk@12634 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index 91a8bc0f7..e78ba82dd 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -2642,27 +2642,26 @@ sub CUL_HM_Parse($$) {######################################################### my($sType,$chn,$lvl,$stat) = @mI; if(($mh{mTp} eq "10" && $sType eq "06") || ($mh{mTp} eq "02" && $sType eq "01")){ - my $move = 0; $stat = hex($stat); $mh{shash} = $modules{CUL_HM}{defptr}{"$mh{src}$chn"} if($modules{CUL_HM}{defptr}{"$mh{src}$chn"}); + my $lvlS = $lvl eq "FF" ? 1:0; + $lvl = hex($lvl)/2; + my $dat4 = ($stat >> 4) & 0x03; if ($chn eq "01"){ my %err = (0=>"ok",1=>"TurnError",2=>"TiltError"); my %dir = (0=>"no",1=>"up",2=>"down",3=>"undefined"); - $move = ($stat >> 4) & 0x03; push @evtEt,[$mh{shash},1,"motorErr:" .$err{($stat >> 1) & 0x03}]; - push @evtEt,[$mh{shash},1,"direction:" .$dir{$move}]; + push @evtEt,[$mh{shash},1,"direction:" .$dir{$dat4}]; + push @evtEt,[$mh{shash},1,"level:" .($lvlS ? "0" : $lvl) ] if($dat4 == 0); + push @evtEt,[$mh{shash},1,"lock:" .($lvlS ? "locked" : "unlocked")]; } else{ #should be akku - my %statF = (0=>"trickleCharge",1=>"charge",2=>"dischange",3=>"unknown"); - push @evtEt,[$mh{shash},1,"charge:" .$statF{($stat >> 4) & 0x03}]; + my %statF = (0=>"trickleCharge",1=>"charge",2=>"discharge",3=>"unknown"); + push @evtEt,[$mh{shash},1,"charge:" .$statF{$dat4}]; } # stateflag meaning unknown - my $lvlS = $lvl eq "FF" ? 0:1; - $lvl = hex($lvl)/2; push @evtEt,[$mh{shash},1,"state:".($lvlS ? "locked" : $lvl) ]; - push @evtEt,[$mh{shash},1,"level:".($lvlS ? "0" : $lvl) ] if($move==0); - push @evtEt,[$mh{shash},1,"lock:" .($lvlS ? "locked" : "unlocked")]; } } elsif($mh{st} eq "keyMatic") { ############################################# @@ -2843,6 +2842,9 @@ sub CUL_HM_parseCommon(@){##################################################### # VD wakes up with 8202 # 9610 my $rxt = CUL_HM_getRxType($mhp->{shash}); + $devHlpr->{PONtest} = 1 if($mhp->{mNo} eq "00" && + $devHlpr->{HM_CMDNR} < 250);# this is power on + $devHlpr->{HM_CMDNR} = hex($mhp->{mNo});# sync msgNo prior to any sending if($rxt & 0x08){ #wakeup device if(($mhp->{mFlgH} & 0xA2) == 0x82){ #wakeup signal CUL_HM_appFromQ($mhp->{devN},"wu");# stack cmds if waiting @@ -2869,9 +2871,6 @@ sub CUL_HM_parseCommon(@){##################################################### } } - $devHlpr->{PONtest} = 1 if($mhp->{mNo} eq "00" && - $devHlpr->{HM_CMDNR} < 250);# this is power on - $devHlpr->{HM_CMDNR} = hex($mhp->{mNo});# sync msgNo my $repeat; if ($mhp->{mTp} eq "02"){# Ack/Nack/aesReq #################### my $reply;