Modul CUL_TCM97001 Sensor wird nicht sauber ausgelesen

Begonnen von Rpsverni, 08 Oktober 2021, 06:50:26

Vorheriges Thema - Nächstes Thema

Rpsverni

Hallo Zusammen ich habe einen

Mebus Sensor der von Autocreate angelernt wird.

Laut RTL_433 kann der den Kanal die Temp Hum Batt und od übermitteln


Manual
https://cdn-reichelt.de/documents/datenblatt/X100/40283FU-WETT.pdf

Modell Number HQ7312-2
art Nr 40283TX


Protocol definition
https://github.com/merbanan/rtl_433/blob/master/src/devices/nexus.c
###################################
The data is grouped in 9 nibbles:

[id0] [id1] [flags] [temp0] [temp1] [temp2] [const] [humi0] [humi1]
The 8-bit id changes when the battery is changed in the sensor.
flags are 4 bits B 0 C C, where B is the battery status: 1=OK, 0=LOW
and CC is the channel: 0=CH1, 1=CH2, 2=CH3
temp is 12 bit signed scaled by 10
const is always 1111 (0x0F)
humidity is 8 bits
The sensors can be bought at Clas Ohlsen (Nexus) and Pearl (infactory/FreeTec).
*/
##################################################
Autocreate result#############
AURIOL_77 | T: 24.5

CODE | CUL_TCM97001_77
DEF | CUL_TCM97001_77

FUUID | 615d80da-f33f-5fa0-ffa9-b88881df0b9af4d6
LASTInputDev | sdESP
MSGCNT | 40
NAME | AURIOL_77
NR | 706
STATE | T: 24.5
TYPE | CUL_TCM97001
lastH | 0
lastT | 1633520867
sdESP_DMSG | s4DA0F5F0A000
sdESP_MSGCNT | 40
sdESP_Protocol_ID | 0
sdESP_RAWMSG | MS;P0=-2128;P1=320;P5=-1159;P6=-4084;D=16151015151010151010151015151515151010101015101510101010101515151510151015;CP=1;SP=6;R=66;O;m2;
sdESP_RSSI | -41
sdESP_TIME | 2021-10-06 13:47:47

Autocreate result#############

Defintion auriol######
# Implementation from Femduino
# AURIOL (Lidl Version: 09/2013)
# /--------------------------------- Channel, changes after every battery change
# / / ------------------------ Battery state 1 == Ok
# / / /------------------------ Battery changed, Sync startet
# / / / ----------------------- Unknown
# / / / / /--------------------- neg Temp: if 1 then temp = temp - 4096
# / / / / /---------------------- 12 Bit Temperature
# / / / / / /---------- ??? CRC
# / / / / / / /---- Trend 10 == rising, 01 == falling
# 0101 0101 1 0 00 0001 0000 1011 1100 01 00
# Bit

Defintion auriol######

Definition######## NC_WS




Als Model"W044_9"
kann Hum angezeit werden.

Als Model Auriol kann die Temp angezeigt werden.

Wenn ich mir die Modelle in 14_CUL_tcm97001 angucke fehlt der Sensor aber.


###################################
The data is grouped in 9 nibbles:

[id0] [id1] [flags] [temp0] [temp1] [temp2] [const] [humi0] [humi1]
The 8-bit id changes when the battery is changed in the sensor.
flags are 4 bits B 0 C C, where B is the battery status: 1=OK, 0=LOW
and CC is the channel: 0=CH1, 1=CH2, 2=CH3
temp is 12 bit signed scaled by 10
const is always 1111 (0x0F)
humidity is 8 bits
The sensors can be bought at Clas Ohlsen (Nexus) and Pearl (infactory/FreeTec).
*/
##################################################


Autocreate result#############
AURIOL_77 | T: 24.5

CODE | CUL_TCM97001_77
DEF | CUL_TCM97001_77

FUUID | 615d80da-f33f-5fa0-ffa9-b88881df0b9af4d6
LASTInputDev | sdESP
MSGCNT | 40
NAME | AURIOL_77
NR | 706
STATE | T: 24.5
TYPE | CUL_TCM97001
lastH | 0
lastT | 1633520867
sdESP_DMSG | s4DA0F5F0A000
sdESP_MSGCNT | 40
sdESP_Protocol_ID | 0
sdESP_RAWMSG | MS;P0=-2128;P1=320;P5=-1159;P6=-4084;D=16151015151010151010151015151515151010101015101510101010101515151510151015;CP=1;SP=6;R=66;O;m2;
sdESP_RSSI | -41
sdESP_TIME | 2021-10-06 13:47:47

Autocreate result#############

Ralf9

Ja, da ist im CUL_TCM97001 ein neues Model notwendig

Dies müsste hier am besten reinpassen
https://github.com/Ralf9/14_CUL_TCM97001/blob/5b4c2b6ae4958070da3fb4a434e367e34bddbf2e/fhem/FHEM/14_CUL_TCM97001.pm#L1698

    if ($readedModel eq "Mebus7312" || (hex($a[6]) == 0xF && $readedModel eq "Unknown")) {
      #
      # 0    4    8    12   16   20   24   28   32
      # iiii iiii b0cc tttt tttt tttt 1111 hhhh hhhh
      # i = ID
      # s = sendmode (1=manual, 0=auto)
      # b = battery indicator (1=low, 0=ok)
      # c = channel
      # t = Temperature
      # h = humidity
      if($def) {
        $name = $def->{NAME};
      }
      $temp = hex($a[3].$a[4].$a[5]);
      if ($temp >= 3840) {
        $temp -= 4096;
      }
      $temp /= 10;
     
      $humidity = hex($a[7].$a[8]);
     
      if (checkValues($hash,"Mebus7312", $temp, $humidity)) {
        $channel = ((hex($a[2])) & 0x3) + 1;
        $batbit = (hex($a[2]) & 0x8) >> 3;
        $model="Mebus7312";
       
        if (!defined($modules{CUL_TCM97001}{defptr}{$idType1}))
        {
          if ( $enableLongIDs == TRUE || (($longids ne "0") && ($longids eq "1" || $longids eq "ALL" || (",$longids," =~ m/,$model,/))))
          {
            $deviceCode="CUL_TCM97001_".$idType1;
            Log3 $hash,4, "$iodev: CUL_TCM97001 using longid: $longids model: $model, deviceCode: $deviceCode"; # deviceCode nur zum debuggen
          } else {
            $deviceCode="CUL_TCM97001_" . $model . "_" . $channel;
          }
        } else  {  # Fallback for already defined devices use old naming convention
          $deviceCode=$idType1;
        }
       
        $def = $modules{CUL_TCM97001}{defptr}{$deviceCode};
        if($def) {
          $name = $def->{NAME};
        }
       
        if(!$def) {
          Log3 $name, 2, "$iodev: CUL_TCM97001 Unknown device $deviceCode model:$model msg:s$msg, please define it";
          return "UNDEFINED $model" . substr($deviceCode, rindex($deviceCode,"_")) . " CUL_TCM97001 $deviceCode";
        }

        if ($humidity > 0) {
          $hashumidity = TRUE;
        }
        $hasbatcheck = TRUE;
        $haschannel = TRUE;
        #$hastrend = TRUE;     
        $packageOK = TRUE;
        #$hasmode = TRUE;
       
        $readedModel=$model;
      } else {
          $name = $nameUnknown;
      }
    }


Ob die Formel für die Temperatur so passt habe ich noch nicht überprüft.

Die Hum von 10 ist aber sehr niedrig, wo hats bei Dir so eine niedrige Luftfeuchtigkeit.

Wenn Du die Taste Reset drückst, ändert sich dann bei der gesendeten Nachricht ein Flag?
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7