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)$/
|
elsif($st =~ m /^(remote|pushButton|swi)$/
|
||||||
||$md eq "HM-SEN-EP") { #################################################
|
||$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 ($chn, $bno) = map{hex($_)} ($mI[0],$mI[1]);# button/event count
|
||||||
my $buttonID = $chn&0x3f;# only 6 bit are valid
|
my $buttonID = $chn&0x3f;# only 6 bit are valid
|
||||||
my $btnName;
|
my $btnName;
|
||||||
@@ -1796,6 +1796,36 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
push @evtEt,[$shash,1,"battery:". (($chn&0x80)?"low":"ok")];
|
push @evtEt,[$shash,1,"battery:". (($chn&0x80)?"low":"ok")];
|
||||||
push @evtEt,[$shash,1,"state:$btnName $state$target"];
|
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") {#################################################
|
elsif($st eq "powerMeter") {#################################################
|
||||||
if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status
|
if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status
|
||||||
|
|||||||
Reference in New Issue
Block a user