Wetterstation WH3080 dekodieren für Signalduino 433Mhz

Begonnen von killah78, 21 Februar 2017, 15:19:02

Vorheriges Thema - Nächstes Thema

pejonp

Hallo Ralf,

Wenn CRCAUS=0 wird nichts verschoben, da ich dann davon ausgehe das eine ctw600 erkannt werden soll.
wenn CRCAUS=2 dann wir im Modul eine Verschiebung vorgenommen und eine WH1080 wird erkannt.


...
  if ($rr2 == 0 || (($rr2 == 49) && ($crcwh1080 == 2)) ) {
      # 1. OK
          $model = "WH1080";
          Log3 $iohash, 4, "$name: SD_WS09_SHIFT_0 OK rwa:$rawData" ;
      } else {
      # 1. nok
          $rawData = SD_WS09_SHIFT($rawData);
          Log3 $iohash, 4, "$name: SD_WS09_SHIFT_1 NOK  rwa:$rawData" ;
          $rr2 = SD_WS09_CRCCHECK($rawData);
          if ($rr2 == 0 || (($rr2 == 49) && ($crcwh1080 == 2)) ) {
          # 2.ok
              $msg = $msg_vor.$rawData;
              $model = "WH1080";
              Log3 $iohash, 4, "$name: SD_WS09_SHIFT_2 OK rwa:$rawData msg:$msg" ;
          } else {
              # 2. nok
              $rawData = SD_WS09_SHIFT($rawData);
              Log3 $iohash, 4, "$name: SD_WS09_SHIFT_3 NOK rwa:$rawData" ;
              $rr2 = SD_WS09_CRCCHECK($rawData);
              if ($rr2 == 0 || (($rr2 == 49) && ($crcwh1080 == 2)) ) {
                # 3. ok
                $msg = $msg_vor.$rawData;
                $model = "WH1080";
                Log3 $iohash, 4, "$name: SD_WS09_SHIFT_4 OK rwa:$rawData msg:$msg" ;
              }else{
               # 3. nok
                $rawData = $rawData_merk;
                $msg = $msg_vor.$rawData;
                Log3 $iohash, 4, "$name: SD_WS09_SHIFT_5 NOK rwa:$rawData msg:$msg" ;
             }
         }
      }
     }else {
...


Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

rob

Hallo zusammen.

Schuld ist ja imho nicht das Modul, sondern meine olle WS. Die hält sich wohl nicht genau ans Protokoll und spricht quasi einen Dialekt (korrekt?), sodass es auf eine Sonderlocke hinausliefe.
Bevor Ihr am bewährten Konzept zu CRCAUS rüttelt - Was spräche gegen eine Unterscheidung via attr model? Ließe sich damit ggf. leichter etwas drehen?

Sorry, falls die Frage doof ist  ;)

Viele Grüße
rob

pejonp

@rob,

empfängs du den jetzt etwas und bist erst einmal zufrieden damit ?
Dann müste man im Nachgang einmal Nachrichten vom Protokoll 9 mit den beiden verschieden Versionen sammeln.

Hast du bei der neueren Version auch das reconstructBit => 1 in der .../FHEM/lib/SD_ProtocolData.pm gesetzt ?

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

rob

Hallo Jörg.

Außer Lux+UV empfange ich die Wetterdaten mit der Dev so alle 10-30min. So ganz wärs das für mich noch nicht, ich würde halt vorerst auf stable zurück gehen. Es sei denn ich kann testend etwas zur Dev beitragen  ;)

ReconstructBit hab ich nicht explizit gesetzt. Ich nehme an, das wäre zum jeweiligen zu Protokoll ändern - in dem Fall 09.
Hab grad im Modul geschaut: ist bereits aktiv.

                "9"     =>      ## Funk Wetterstation CTW600
                        {
                          ...
                                reconstructBit  => '1',
                        },


Viele Grüße
rob

pejonp

@rob,

mit der stable Version empfängst du die Lux+UV Werte öfter ?!

Hast du auf dem Signalduino dann auch eine andere Firmeware ?

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

rob

Mit der stable bekomme ich Lux+UV überhaupt erst rein mit CRCAUS=2 (unregelmäßig ca. alle 10-30min). Mit Dev leider garnicht (weder CRCAUS=0 noch 2).

Die FW vom sduino ist dabei stets unverändert (auch d. neueste Dev).

Viele Grüße
rob

Ralf9

ZitatWenn CRCAUS=0 wird nichts verschoben, da ich dann davon ausgehe das eine ctw600 erkannt werden soll.
wenn CRCAUS=2 dann wir im Modul eine Verschiebung vorgenommen und eine WH1080 wird erkannt.

Laut der Device specific help sollten CRCAUS 0 und 2 zur WH1080 gehören.

In der Device specific help  von der 00_SIGNALduino.pm steht folgendes:
WS09_CRCAUS
0: CRC-Check WH1080 CRC = 0 on, Standard
2: CRC = 49 (x031) WH1080, set OK


In der Device specific help  vom SD_WS09 Modul steht folgendes:
WS09_CRCAUS
Wird im Signalduino-Modul (00_SIGNALduino.pm) gesetzt
0: CRC-Prüfung bei WH1080 CRC-Summe = 0 
2: CRC-Summe = 49 (x031) bei WH1080 wird als OK verarbeitet


Gruß Ralf
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

pejonp

Hi Ralf,

bei  CRCAUS 0 kann eine ctw600 oder WH1080 erkannt werden.
Wenn  CRCAUS 2 gesetzt ist und CRC = 49 auftritt, wird davon ausgegangen das es eine WH1080 ist die nicht sauber sendet oder empfangen wird. Und zum gegenprüfen werden dan noch die bits verschoben.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Ralf9

Auch bei CRCAUS 0 kann es bei der WH1080 bei nicht so gutem Empfang vorkommen, daß am Anfang einige Einsen fehlen, deshalb sollte auch bei CRCAUS 0 das Verschieben funktionieren.

Gruß Ralf
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

pejonp

Zitat von: Ralf9 am 30 September 2019, 22:49:56
Auch bei CRCAUS 0 kann es bei der WH1080 bei nicht so gutem Empfang vorkommen, daß am Anfang einige Einsen fehlen, deshalb sollte auch bei CRCAUS 0 das Verschieben funktionieren.

Gruß Ralf

geht nicht weil dann keine ctw600 mehr erkannt wird.

jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Ralf9

Demnach wird bei der jetztigen Version des Moduls bei der WH1080 nur Nachrichten erkannt, wenn  CRC = 0 und keine Einsen am Anfang fehlen oder CRCAUS 2 und die CRC = 49

Eine Möglichkeit wäre, das Verschieben der Nachrichten bei CRCAUS 0 nur bei den UV/Solar Nachrichten einzubauen.
Die UV/Solar Nachrichten lassen sich einfach von den anderen Nachrichten unterscheiden, da sie deutlich kürzer sind. 

Gruß Ralf
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

pejonp

Morgen Ralf,

Bringt meiner Meinung nach nicht unbedingt etwas weil ja die anderen Nachrichten bei crc=49 auch unvollständig sind nicht nur die lux+uv Nachrichten.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Ralf9

Hallo Jörg,

ich habe es mir mal etwas genauer angeschaut. Ich habe dazu 2 zusätzliche log Ausgaben eingebaut.
Das Verschieben bei den UV/Solar Nachrichten funktioniert nicht, da bei dem crccheck am Anfang crc=0 rauskommt, obwohl am Anfang eine 1 fehlt. whid müsste 0111 sein.

2019.10.01 18:22:23.650 5 : sduinoD: dispatch P9#FEE7E2AA0198E5BA
2019.10.01 18:22:23.651 4 : sduinoD: SD_WS09_Parse0 msg=FEE7E2AA0198E5BA Bin=1111111011100111111000101010101000000001100110001110010110111010 syncp=0 length:64
2019.10.01 18:22:23.651 4 : sduinoD: SD_WS09_Parse CRC_AUS:0
2019.10.01 18:22:23.651 1 : DEBUG>SD_WS09_CRCCHECK: raw:FEE7E2AA0198E5BA CRC=0
2019.10.01 18:22:23.651 4 : sduinoD: SD_WS09_SHIFT_0 OK rwa:FEE7E2AA0198E5BA
2019.10.01 18:22:23.651 1 : DEBUG>SD_WS09_CRCCHECK: raw:FEE7E2AA0198E5BA CRC=0
2019.10.01 18:22:23.651 4 : sduinoD: SD_WS09_CRC_test2 rwa:FEE7E2AA0198E5BA msg:P9#FEE7E2AA0198E5BA CRC:0
2019.10.01 18:22:23.651 5 : sduinoD: SD_WS09_Parse_0 whid=1110
2019.10.01 18:22:23.651 4 : sduinoD: SD_WS09_Parse_Ex Exit: msg=FEE7E2AA0198E5BA length:56


Wenn ich am Anfang eine 1 zufüge, dann passt es
2019.10.01 18:35:04.808 5 : sduinoD: dispatch P9#FF73F15500CC72DD
2019.10.01 18:35:04.808 4 : sduinoD: SD_WS09_Parse0 msg=FF73F15500CC72DD Bin=1111111101110011111100010101010100000000110011000111001011011101 syncp=1 length:64
2019.10.01 18:35:04.808 4 : sduinoD: SD_WS09_Parse CRC_AUS:0
2019.10.01 18:35:04.808 1 : DEBUG>SD_WS09_CRCCHECK: raw:FF73F15500CC72DD CRC=0
2019.10.01 18:35:04.808 4 : sduinoD: SD_WS09_SHIFT_0 OK rwa:FF73F15500CC72DD
2019.10.01 18:35:04.808 1 : DEBUG>SD_WS09_CRCCHECK: raw:FF73F15500CC72DD CRC=0
2019.10.01 18:35:04.808 4 : sduinoD: SD_WS09_CRC_test2 rwa:FF73F15500CC72DD msg:P9#FF73F15500CC72DD CRC:0
2019.10.01 18:35:04.808 5 : sduinoD: SD_WS09_Parse_0 whid=0111
2019.10.01 18:35:04.808 4 : sduinoD: SD_WS09_Parse_10 UV-Solar1: id:63, UV:1 Lux:5233.8


Gruß Ralf
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

pejonp

Hallo Ralf,

wahrscheinlich müsste noch der CRC-Check auf die Länge der Nachricht angepasst werden. Habe ich mir nicht angesehen. Vielleicht wird es am WE etwas.
Kann ja nicht immer CRC = 0 rauskommen ;-).

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Ralf9

Da die UV/Solar Nachrichten kürzer sind, ist dort zum Verschieben kein CRC-Check notwendig.
Ich habe es mal in das SD_WS09 Modul von der dev-r34 eingebaut (siehe Anlage) aber noch nicht komplett durchgetestet.

Hier sind msg zum Testen:
UV: 2 Lux: 45350.4
P9#FF73F25506EB80AE
P9#FEE7E4AA0DD7015C am Anfang fehlt eine 1
P9#FDCFC9541BAE02B8 am Anfang fehlen 2 Einsen

UV: 1 Lux: 5233.8
P9#FF73F15500CC72DD
P9#FEE7E2AA0198E5BA am Anfang fehlt eine 1

UV: 1 Lux: 12871
P9#FF7FF15501F6C60B
P9#FEFFE2AA03ED8C16 am Anfang fehlt eine 1


Gruß Ralf
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