[cul_hm] patch: fehlendes battery parsing beim weather event des HM-CC-TC

Begonnen von frank, 08 November 2022, 10:24:24

Vorheriges Thema - Nächstes Thema

frank

hallo martin,

scheinbar ist bisher noch niemandem aufgefallen, dass der HM-CC-TC alle 3 min im weather event den bat status sendet.
das aller erste bit im payload ist der bat status.
mit den 2 zuzsätzlichen zeilen in CUL_HM_Parse(), die mit "frank" gekennzeichnet sind, ist der bat status nun immer aktuell, auch wenn der tc nur als T-H-sensor genutzt wird.

  elsif($mh{md} =~ m/^(HM-CC-TC|ROTO_ZEL-STG-RM-FWT)/) { ######################
    my $chn = $mI[1];
    if(    $mh{mTp} eq "70") { # weather event
      $chn = '01'; # fix definition
      my ($t,$h) = (hex($mI[0].$mI[1]), hex($mI[2]));# temp is 15 bit signed
      my $b = ($t & 0x8000)? 'low': 'ok';#frank bit 16 from temp is battery
      $t &= 0x7fff;
      $t = -1 - ($t ^ 0x7FFF) if ($t & 0x4000);
      $t /= 10;
      my $chnHash = $modules{CUL_HM}{defptr}{$mh{src}.$chn};
      if ($chnHash){
        push @evtEt,[$chnHash,1,"state:T: $t H: $h"];
        push @evtEt,[$chnHash,1,"measured-temp:$t"];
        push @evtEt,[$chnHash,1,"humidity:$h"];
      }
      push @evtEt,[$mh{shash},1,"state:T: $t H: $h"];
      push @evtEt,[$mh{shash},1,"measured-temp:$t"];
      push @evtEt,[$mh{shash},1,"humidity:$h"];
      push @evtEt,[$mh{shash},1,"battery:$b"];#frank
    }


2022.08.22 14:17:43.289 0: HMLAN_Parse: hmlan1 R:E206487   stat:0000 t:B53B2A70 d:FF r:FFA8     m:29 8670 206487 000000 00DE3B
2022.08.22 14:20:27.694 0: HMLAN_Parse: hmlan1 R:E206487   stat:0000 t:B53DAD1C d:FF r:FFAE     m:2A 8670 206487 000000 80DE3B
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html