CUL_TCM97001 liefert für W132 "falsche Werte

Begonnen von Harst, 09 März 2019, 20:25:39

Vorheriges Thema - Nächstes Thema

JensS

Laut DWD weht in meiner Nähe gerade SO-Wind mit 13 km/h.
aktuelle Messwerte CUL_TCM97001 (nacheinander gemessen)
Wert Originalmodul: 1,4 m/s bzw. 5,04 km/h
Wert Harst *10: 8 m/s bzw. 28,8 km/h
Wert FrankL: 0,8 m/s bzw. 2.88 km/h
Der Wert vom Wetterdienst scheint zu passen - es weht eine leichte Brise.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

HomeAuto_User

Zitat von: dirigent am 01 November 2019, 16:06:52
Laut DWD weht in meiner Nähe gerade SO-Wind mit 13 km/h.
aktuelle Messwerte CUL_TCM97001 (nacheinander gemessen)
Wert Originalmodul: 1,4 m/s bzw. 5,04 km/h
Wert Harst *10: 8 m/s bzw. 28,8 km/h
Wert FrankL: 0,8 m/s bzw. 2.88 km/h
Der Wert vom Wetterdienst scheint zu passen - es weht eine leichte Brise.

Gruß Jens

Hallo Jens,
ich denke solch einen Vergleich kann man nur machen, wenn man ein geeichtes Messgerät bei sich an die Stelle vom Sensor hält.
Das ganze so zu vergleichen wäre auch wieder nur die halbe Wahrheit.

Mir fehlt leider die Hardware des Sensors, so könnte ich dies vergleichen mit einem geeichten Messgerät.

MfG
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

JensS

Du hast Recht, ein geeichtes Messgerät wäre notwendig. Was mich wundert ist, dass die Werte so verschieden sind. Im Originalmodul wird es nicht mehr als 3m/s. Mit der Änderung von Harst springt der Wert bei normalen Wind schon mal auf 72km/h. Die Änderung von FrankL scheint es auch nicht zu sein. Dort sind die Werte bei starkem Wind immer unter 10km/h. Eventuell stimmt die Referenzquelle zur Berechnung nicht.?

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralf9

Falls dies hier stimmt
http://www.tfd.hu/tfdhu/files/wsprotocol/auriol_protocol_v20.pdf
dann ist
hex($aReverse[6] -> Bit 3-0
hex($aReverse[7]  -> Bit 7-4
also
$windSpeed = (hex($aReverse[6]) + hex($aReverse[7]) * 16) * 0.2;

Nach dem auriol_protocol_v20.pdf passt beim Modul im SVN die Windrichtung nicht.
Ich habe es bei mir mal angepasst, dies müsste mit einem Kompass recht einfach nachgeprüft werden können:
@@ -425,9 +425,10 @@
   my $channel = undef;
   # für zusätzliche Sensoren
   #my @winddir_name=("N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW");
-  my @winddir_name=("N","N","NE","E","SE","S","SW","W","NW");  #W132 Only these values were seen:0 (N), 45 (NE), 90 (E), 135 (SE), 180 (S), 225 (SW), 270 (W), 315 (NW).
+  my @winddir_name=("N","NE","E","SE","S","SW","W","NW","N");  #W132 Only these values were seen:0 (N), 45 (NE), 90 (E), 135 (SE), 180 (S), 225 (SW), 270 (W), 315 (NW).
   my $windSpeed = 0;
-  my $windDirection = 0  ;
+  my $windDirection = 0;
+  my $windDirectionDegree = 0;
   my $windDirectionText = "N";
   my $windgrad = 0  ;
   my $windGuest = 0;
@@ -1035,11 +1036,12 @@
           # *   F = Checksum
             if ((hex($amsg[3])== 0xE)|| (hex($amsg[3])== 0xF)) { # Windguest
               $windGuest = (hex($aReverse[6]) + hex($aReverse[7])) * 0.2;
-              $windDirection =  (hex($a[5]) >> 1) | (hex($a[4]) & 0x1);
+              $windDirectionDegree = (hex($a[3]) & 0x1)+ ((hex($aReverse[4])*2) + (hex($aReverse[5]))*32);
+              $windDirection = int($windDirectionDegree/45);
               $windDirectionText = $winddir_name[$windDirection];
               $haswind = TRUE;
               $model="W132";
-              Log3 $hash,4, "$iodev: CUL_TCM97001_04: $model windGuest: $windGuest aR: $aReverse[6] $aReverse[7]  winddir:$windDirection aR:$aReverse[4] $aReverse[5] txt:$windDirectionText";
+              Log3 $hash,4, "$iodev: CUL_TCM97001_04: $model windGuest: $windGuest aR: $aReverse[6] $aReverse[7] winddirDegree:$windDirectionDegree winddir:$windDirection:$windDirectionText";
             }
           # * Format for Rain
           # *   AAAAAAAA BBBB CCCC DDDD DDDD DDDD DDDD EEEE
@@ -1677,7 +1679,7 @@
     if ($haswind == TRUE) {
           readingsBulkUpdate($def, "windGust", $windGuest );
           readingsBulkUpdate($def, "windDirection", $windDirection );
-          #readingsBulkUpdate($def, "windDirectionDegree", $windDirection * 360 / 16);     
+          readingsBulkUpdate($def, "windDirectionDegree", $windDirectionDegree );
           readingsBulkUpdate($def, "windDirectionText", $windDirectionText );
           $state = "Wg: $windGuest "." Wd: $windDirectionText ";
           $haswind = FALSE;


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

Harst

Hallo Ralf,

ich hatte das *10 hergeleitet, aber Deine Version scheint zu stimmen. Ich habe bei mir einen Datensatz gefunden in den Logs, dort ich genau der Grenzbereich drin
DMSG: s856800083000
DMSG: s856800F07000
DMSG: s85680088D000
Die Werte sind in kurzem zeitlichen Abstand.
Die falsche Richtungsangabe könnte daher kommen, dass man den Sensor unten oder oben montieren kann.

Kannst Du die windSpeed-Änderungen auch für WindGust machen? Dort ist dasselbe Problem

Horst

Ralf9

ZitatKannst Du die windSpeed-Änderungen auch für WindGust machen?
Ja ich mache die Änderungen für WindSpeed und  WindGust.

ZitatDie falsche Richtungsangabe könnte daher kommen, dass man den Sensor unten oder oben montieren kann.
Dann macht es evtl Sinn für diejenigen, die den Sensor falsch rum montiert haben, es konfigurierbar zu machen.
              if (AttrVal($name, "windDirectionInverse", 0)) {
                 $windDirectionDegree = 360 - $windDirectionDegree;
              }


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

Ralf9

Ich habe die Anpassungen für Ventus W132/W044 Wind und Rain bei mir eingebaut

https://github.com/Ralf9/14_CUL_TCM97001/commit/456be178e27a353b62a388bfa3a9cb10d53df004
https://github.com/Ralf9/14_CUL_TCM97001/blob/dev/fhem/FHEM/14_CUL_TCM97001.pm



Zitat von: andies am 16 März 2019, 15:37:17
         Log3 "Unknown", 2, "$iodev: CUL_TCM97001 Unknown device Unknown, please define it";

und ich würde
      Log3 "global", 2, "$iodev: CUL_TCM97001 Unknown device Unknown, please define it";

vorschlagen.

alternativ wäre auch möglich:
Log3 $iodev, 2, "$iodev: CUL_TCM97001 Unknown device Unknown msg:s$msg, please define it";

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