From 5e9784bc5a3b09251d5040dbd902ec1672ebf694 Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sat, 12 Dec 2015 11:41:55 +0000 Subject: [PATCH] CUL_HM: minor bugs git-svn-id: https://svn.fhem.de/fhem/trunk@10158 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_HMLAN.pm | 1 + fhem/FHEM/10_CUL_HM.pm | 15 ++++++--------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/fhem/FHEM/00_HMLAN.pm b/fhem/FHEM/00_HMLAN.pm index d160077a8..fe9d00ca1 100755 --- a/fhem/FHEM/00_HMLAN.pm +++ b/fhem/FHEM/00_HMLAN.pm @@ -479,6 +479,7 @@ sub HMLAN_ReadAnswer($$$) {# This is a direct read for commands like get sub HMLAN_Write($$$) {######################################################### my ($hash,$fn,$msg) = @_; + return if(!defined $msg); if (defined($fn) && $fn eq "cmd"){ HMLAN_SimpleWrite($hash,$msg); return; diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index b7d4d02e8..bca99c86c 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -1280,7 +1280,7 @@ sub CUL_HM_Parse($$) {######################################################### my $parse = CUL_HM_parseCommon($iohash,\%mh); push @evtEt,[$mh{devH},1,"powerOn:$tn"] if($parse eq "powerOn"); push @evtEt,[$mh{devH},1,""] if($parse eq "parsed"); # msg is parsed but may - # be processed further + # be processed further $mh{devH}->{helper}{HM_CMDNR} = hex($mh{mNo}); if ($parse eq "ACK" || $parse eq "done" ){# remember - ACKinfo will be passed on @@ -2143,7 +2143,7 @@ sub CUL_HM_Parse($$) {######################################################### } $eo += $el; push @evtEt,[$mh{shash},1,"energyOffset:".$eo]; - $mh{shash}->{helper}{pon} = 1;# power on is detected - only ssend once + $mh{shash}->{helper}{pon} = 1;# power on is detected - only send once } elsif($el > 800000 && $el > $eCnt ){# handle overflow $eo += 838860.7; @@ -2644,7 +2644,8 @@ sub CUL_HM_parseCommon(@){##################################################### } } - $mhp->{devH}{helper}{PONtest} = 1 if($mhp->{mNo} eq "00"); + $mhp->{devH}{helper}{PONtest} = 1 if($mhp->{mNo} eq "00" && + $mhp->{devH}{helper}{HM_CMDNR} < 250);# this is power on my $repeat; if ($mhp->{mTp} eq "02"){# Ack/Nack/aesReq #################### my $reply; @@ -3027,9 +3028,8 @@ sub CUL_HM_parseCommon(@){##################################################### } else{ if ($mhp->{chn} == 0 - || ( $mhp->{mNo} eq "00" - && $mhp->{chn} == 1 - && $mhp->{devH}{helper}{HM_CMDNR} < 250)){# this is power on + || ( $mhp->{chn} == 1 + && $mhp->{devH}{helper}{PONtest})){# this is power on CUL_HM_qStateUpdatIfEnab($mhp->{devN}); CUL_HM_qAutoRead($mhp->{devN},2); $ret = "powerOn" ;# check dst eq "000000" as well? @@ -4409,9 +4409,6 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++ return "no more than 10 entries please" if ($itemCnt>10); return "repetition $repeat out of range [1..255]" if($repeat < 1 || $repeat > 255); - # - my $msgBytes = sprintf("%02X%02X",$itemCnt,$repeat); - return "volume $volume out of range [0..10]" if($volume < 0 || $volume > 10); #