Vaisala WXT520 automatic mode

143 views
Skip to first unread message

Sven Gloor

unread,
Apr 2, 2021, 4:43:02 AM4/2/21
to weewx-user

Hello everybody

I'm using weewx on a Raspi 3B together with the Vaisala WXT520. The WXT is sending automatic messages (ASCII, 0R1: 3s, 0R2: 15s, 0R3: 60s, 0R0: 60s).
After starting weewx everthing looks OK but after sometimes houres, sometimes days, weewx stop working. In the syslog I can see the following entries:
Apr  2 02:55:25 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Rc' (b'0.00R0'):could not convert string to float: b'0.00R'
Apr  2 02:55:35 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Sn' (b'0.4N0R0'):could not convert string to float: b'0.4N0R'
Apr  2 02:55:39 raspberrypi weewx[27403] INFO user.wxt5x0: unknown unit 'b'D'' for rain
Apr  2 02:55:45 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Hp' (b'0.00R0'):could not convert string to float: b'0.00R'
Apr  2 02:55:53 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Hp' (b'0.00R0'):could not convert string to float: b'0.00R'
Apr  2 02:55:55 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Hp' (b'0.00R0'):could not convert string to float: b'0.00R'
Apr  2 02:56:00 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Hp' (b'0.00R0'):could not convert string to float: b'0.00R'
Apr  2 02:56:02 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Hp' (b'0.00R0'):could not convert string to float: b'0.00R'
Apr  2 02:56:09 raspberrypi weewx[27403] ERROR user.wxt5x0: parse failed for b'Rc' (b'0.0.9N'):could not convert string to float: b'0.0.9'
Apr  2 02:56:09 raspberrypi weewx[27403] INFO weewx.engine: Main loop exiting. Shutting engine down.
Apr  2 02:56:09 raspberrypi weewx[27403] INFO weewx.engine: Shutting down StdReport thread
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__: Caught unrecoverable exception:
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****  '<' not supported between instances of 'NoneType' and 'float'
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****  Traceback (most recent call last):
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****    File "/usr/share/weewx/weewxd", line 157, in main
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****      engine.run()
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 208, in run
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****      for packet in self.console.genLoopPackets():
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****    File "/usr/share/weewx/user/wxt5x0.py", line 501, in genLoopPackets
Apr  2 02:56:09 raspberrypi weewx[27403] CRITICAL __main__:     ****      packet = self._data_to_packet(data)
Apr  2 02:56:10 raspberrypi weewx[27403] CRITICAL __main__:     ****    File "/usr/share/weewx/user/wxt5x0.py", line 533, in _data_to_packet
Apr  2 02:56:10 raspberrypi weewx[27403] CRITICAL __main__:     ****      packet['rain_total'], self.last_rain_total)
Apr  2 02:56:10 raspberrypi weewx[27403] CRITICAL __main__:     ****    File "/usr/share/weewx/user/wxt5x0.py", line 542, in _delta_rain
Apr  2 02:56:10 raspberrypi weewx[27403] CRITICAL __main__:     ****      if rain < last_rain:
Apr  2 02:56:10 raspberrypi weewx[27403] CRITICAL __main__:     ****  TypeError: '<' not supported between instances of 'NoneType' and 'float'
Apr  2 02:56:10 raspberrypi weewx[27403] CRITICAL __main__:     ****  Exiting.


After restarting weewx everthing is working again.
So for me it looks like there are "collisions" between the automatic messages and the polled messages.
Can I reconfigure weewx to not poll the WXT and only use the automatic messages?

Kind regards
Sven

awe

unread,
Feb 21, 2024, 4:17:58 AMFeb 21
to weewx-user
I got the same issue with the wxt5x0 running on a Raspberry with the latest everything..... 

Did you find a fix? 



Feb 21 06:31:56 hpii weewxd[427]: DEBUG user.wxt5x0: raw: 30 52 30 2C 44 6D 3D 30 38 38 44 2C 44 78 3D 31 30 36 44 2C 53 6D 3D 32 2E 31 53 2C 53 78 3D 32 2E 37 53 2C 54 61 3D 33 35 2E 36 46 2C 55 61 3D 36 38 2E 38 50 2C 50 61 3D 32 39 2E 33 32 49 2C 52 63 3D 30 52 32 2C 54 61 3D 33 35 2E 36 46 2C 55 61 3D 36 38 2E 38 50 2C 50 61 3D 32 39 2E 33 32 49 0D 0A
Feb 21 06:31:57 hpii weewxd[427]: ERROR user.wxt5x0: parse failed for b'Rc' (b'0R2'):could not convert string to float: b'0R'
Feb 21 06:31:57 hpii weewxd[427]: DEBUG user.wxt5x0: parsed: {'wind_dir_avg': 88.0, 'wind_dir_max': 106.0, 'wind_speed_avg': 0.9387840000000001, 'wind_speed_max': 1.207008, 'temperature': 2.000000000000001, 'humidity': 68.8, 'pressure': 992.889548, 'rain': None}
Feb 21 06:31:57 hpii weewxd[427]: INFO weewx.engine: Main loop exiting. Shutting engine down.
Feb 21 06:31:57 hpii weewxd[427]: INFO weewx.engine: Shutting down StdReport thread
Feb 21 06:31:57 hpii weewxd[427]: DEBUG weewx.engine: StdReport thread has been terminated
Feb 21 06:31:57 hpii weewxd[427]: DEBUG user.wxt5x0: close serial port /dev/ttyAMA0
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__: Caught unrecoverable exception:
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****  '<' not supported between instances of 'NoneType' and 'float'
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****  Traceback (most recent call last):
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****    File "/usr/share/weewx/weewxd.py", line 166, in main
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****      engine.run()
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 204, in run
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****      for packet in self.console.genLoopPackets():
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****    File "/etc/weewx/bin/user/wxt5x0.py", line 501, in genLoopPackets
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****      packet = self._data_to_packet(data)
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****    File "/etc/weewx/bin/user/wxt5x0.py", line 532, in _data_to_packet
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****      packet['rain'] = self._delta_rain(
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****    File "/etc/weewx/bin/user/wxt5x0.py", line 542, in _delta_rain
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****      if rain < last_rain:
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****  TypeError: '<' not supported between instances of 'NoneType' and 'float'
Feb 21 06:31:57 hpii weewxd[427]: Traceback (most recent call last):
Feb 21 06:31:57 hpii weewxd[427]:   File "/usr/share/weewx/weewxd.py", line 265, in <module>
Feb 21 06:31:57 hpii weewxd[427]:     main()
Feb 21 06:31:57 hpii weewxd[427]:   File "/usr/share/weewx/weewxd.py", line 166, in main
Feb 21 06:31:57 hpii weewxd[427]: CRITICAL __main__:     ****  Exiting.
Feb 21 06:31:57 hpii weewxd[427]:     engine.run()
Feb 21 06:31:57 hpii weewxd[427]:   File "/usr/share/weewx/weewx/engine.py", line 204, in run
Feb 21 06:31:57 hpii weewxd[427]:     for packet in self.console.genLoopPackets():
Feb 21 06:31:57 hpii weewxd[427]:   File "/etc/weewx/bin/user/wxt5x0.py", line 501, in genLoopPackets
Feb 21 06:31:57 hpii weewxd[427]:     packet = self._data_to_packet(data)
Feb 21 06:31:57 hpii weewxd[427]:   File "/etc/weewx/bin/user/wxt5x0.py", line 532, in _data_to_packet
Feb 21 06:31:57 hpii weewxd[427]:     packet['rain'] = self._delta_rain(
Feb 21 06:31:57 hpii weewxd[427]:   File "/etc/weewx/bin/user/wxt5x0.py", line 542, in _delta_rain
Feb 21 06:31:57 hpii weewxd[427]:     if rain < last_rain:
Feb 21 06:31:57 hpii weewxd[427]: TypeError: '<' not supported between instances of 'NoneType' and 'float'
Feb 21 06:31:58 hpii systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE
Feb 21 06:31:58 hpii systemd[1]: weewx.service: Failed with result 'exit-code'.
Feb 21 06:31:58 hpii systemd[1]: weewx.service: Consumed 1h 20min 28.253s CPU time.

Tom Keffer

unread,
Feb 21, 2024, 10:36:37 AMFeb 21
to weewx...@googlegroups.com
Looks like the author of the extension forgot to check whether the value of "rain" could be None. This appears to be a known issue, but hasn't been fixed. See https://github.com/matthewwall/weewx-wxt5x0/issues/8



--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/f3120ead-3dac-4491-838d-c24a66bcfd35n%40googlegroups.com.

awe

unread,
Feb 21, 2024, 2:34:15 PMFeb 21
to weewx-user
Yes, seems to be an old problem.
I wonder how people using a Vaisala WXT520 has made it work without crashing.

The code, in the driver, that I think is an issue, is probably this, however I am not a python programmer, so I have no idea how to fix it:
    537     @staticmethod
    538     def _delta_rain(rain, last_rain):
    539         if last_rain is None:
    540             loginf("skipping rain measurement of %s: no last rain" % rain)
    541             return None
    542         if rain < last_rain:
    543             loginf("rain counter wraparound detected: new=%s last=%s" %
    544                    (rain, last_rain))
    545             return rain
    546         return rain - last_rain

matthew wall

unread,
Feb 21, 2024, 3:28:35 PMFeb 21
to weewx-user
the failure in delta_rain has been fixed as of commit d64d397 and release 0.7 of the wxt5x0 driver

awe

unread,
Feb 24, 2024, 6:51:20 AMFeb 24
to weewx-user
Thank you Matthew, that was a big help!  :)

Now, what I don't understand is why I get intermittently very high readings on wind and temperature.
Capture2.PNG

And, also what settings I should have on the sensor (Imperal or Metric):
Capture.PNG
Reply all
Reply to author
Forward
0 new messages