CUL_HM: EM8 status report
git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@6856 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -1755,7 +1755,7 @@ sub CUL_HM_Parse($$) {#########################################################
|
||||
}
|
||||
elsif($st =~ m /^(remote|pushButton|swi)$/
|
||||
||$md eq "HM-SEN-EP") { #################################################
|
||||
if($mTp =~ m/^4./) {
|
||||
if($mTp eq "40") {
|
||||
my ($chn, $bno) = map{hex($_)} ($mI[0],$mI[1]);# button/event count
|
||||
my $buttonID = $chn&0x3f;# only 6 bit are valid
|
||||
my $btnName;
|
||||
@@ -1796,6 +1796,36 @@ sub CUL_HM_Parse($$) {#########################################################
|
||||
push @evtEt,[$shash,1,"battery:". (($chn&0x80)?"low":"ok")];
|
||||
push @evtEt,[$shash,1,"state:$btnName $state$target"];
|
||||
}
|
||||
else{# could be an Em8
|
||||
my($chn,$cnt,$state,$err);
|
||||
if($mTp eq "41"){
|
||||
($chn,$cnt,$state)=(hex($mI[0]),$mI[1],$mI[2]);
|
||||
my $err = $chn & 0x80;
|
||||
$chn = sprintf("%02X",$chn & 0x3f);
|
||||
$shash = $modules{CUL_HM}{defptr}{"$src$chn"}
|
||||
if($modules{CUL_HM}{defptr}{"$src$chn"});
|
||||
push @evtEt,[$shash,1,"battery:". ($err?"low" :"ok" )];
|
||||
}
|
||||
elsif(($mTp eq "10" && $mI[0] eq "06") ||
|
||||
($mTp eq "02" && $mI[0] eq "01")) {
|
||||
($chn,$state,$err) = (hex($mI[1]), $mI[2], hex($mI[3]));
|
||||
$chn = sprintf("%02X",$chn&0x3f);
|
||||
$shash = $modules{CUL_HM}{defptr}{"$src$chn"}
|
||||
if($modules{CUL_HM}{defptr}{"$src$chn"});
|
||||
push @evtEt,[$shash,1,"alive:yes"];
|
||||
push @evtEt,[$shash,1,"battery:". (($err&0x80)?"low" :"ok" )];
|
||||
}
|
||||
if (defined($state)){# if state was detected post events
|
||||
my $txt;
|
||||
if ($shash->{helper}{lm} && $shash->{helper}{lm}{hex($state)}){$txt = $shash->{helper}{lm}{hex($state)}}
|
||||
elsif ($lvlStr{md}{$md}){$txt = $lvlStr{md}{$md}{$state}}
|
||||
elsif ($lvlStr{st}{$st}){$txt = $lvlStr{st}{$st}{$state}}
|
||||
else {$txt = "unknown:$state"}
|
||||
|
||||
push @evtEt,[$shash,1,"state:$txt"];
|
||||
push @evtEt,[$shash,1,"contact:$txt$target"];
|
||||
}
|
||||
}
|
||||
}
|
||||
elsif($st eq "powerMeter") {#################################################
|
||||
if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status
|
||||
|
||||
Reference in New Issue
Block a user