weewx version 4.2.0, WH2310 and raspian10.7

187 views
Skip to first unread message

Lo LL

unread,
Dec 14, 2020, 4:35:31 PM12/14/20
to weewx-user
Hi,

I use Weewx since 2017 with Excelvan WH2310 without problem.
Last week, I decided to update raspian up to buster and since this, I got problems with Weewx.

Daemon weewxd can not communicate with USB station after start or after some times... I unplugged/replugged the USB cable and after, data read seems to work again...

I used WH2310 add-on update for Python3 from git otherwise weewx does not start (I tried standard wh23xx driver in vain, even with last updates 0.41 from git).

Dec 14 16:54:54 pi3b weewx[1954] INFO weewx.engine: Main loop exiting. Shutting engine down.

Dec 14 16:54:54 pi3b weewx[1954] CRITICAL __main__: Caught WeeWxIOError: read failed: max retries (5) exceeded

Dec 14 16:54:54 pi3b weewx[1954] CRITICAL __main__:     ****  Waiting 60 seconds then retrying...

Dec 14 16:55:54 pi3b weewx[1954] INFO __main__: retrying...

Dec 14 16:55:54 pi3b weewx[1954] INFO __main__: Using configuration file /etc/weewx/weewx.conf

Dec 14 16:55:54 pi3b weewx[1954] INFO __main__: Debug is 0

Dec 14 16:55:54 pi3b weewx[1954] INFO weewx.engine: Loading station type WH23xx (user.wh23xx)

Dec 14 16:55:54 pi3b /weewxd: wh23xx: driver version is 0.14

Dec 14 16:55:54 pi3b /weewxd: wh23xx: usb info: pyusb_version=1.0.2

Dec 14 16:55:54 pi3b /weewxd: wh23xx: poll interval is 15

Dec 14 16:55:54 pi3b /weewxd: wh23xx: Found device on USB bus= device=

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.engine: StdConvert target unit is 0x1

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.engine: Archive will use data binding wx_binding

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.engine: Record generation will be attempted in 'software'

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.engine: Using archive interval of 300 seconds (software record generation)

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.restx: StationRegistry: Station will be registered.

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.restx: Wunderground-PWS: Data for station IMONTA110 will be posted

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.restx: PWSweather: Posting not enabled.

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.restx: CWOP: Posting not enabled.

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.restx: WOW: Posting not enabled.

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.restx: AWEKAS: Posting not enabled.

Dec 14 16:55:55 pi3b weewx[1954] INFO __main__: Starting up weewx version 4.2.0

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.manager: Starting backfill of daily summaries

Dec 14 16:55:55 pi3b weewx[1954] INFO weewx.engine: Starting main packet loop.

Dec 14 16:55:55 pi3b /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Dec 14 16:55:56 pi3b /weewxd: wh23xx: get_current: failed attempt 1 of 5: [Errno 110] Operation timed out

Dec 14 16:56:06 pi3b /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Dec 14 16:56:07 pi3b /weewxd: wh23xx: get_current: failed attempt 2 of 5: [Errno 110] Operation timed out

Dec 14 16:56:17 pi3b /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Dec 14 16:56:18 pi3b /weewxd: wh23xx: get_current: failed attempt 3 of 5: [Errno 110] Operation timed out

Dec 14 16:56:28 pi3b /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Dec 14 16:56:29 pi3b /weewxd: wh23xx: get_current: failed attempt 4 of 5: [Errno 110] Operation timed out

Dec 14 16:56:39 pi3b /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Dec 14 16:56:40 pi3b /weewxd: wh23xx: get_current: failed attempt 5 of 5: [Errno 110] Operation timed out

Dec 14 16:56:50 pi3b /weewxd: wh23xx: read failed: max retries (5) exceeded

Dec 14 16:56:50 pi3b weewx[1954] INFO weewx.engine: Main loop exiting. Shutting engine down.

Dec 14 16:56:50 pi3b weewx[1954] CRITICAL __main__: Caught WeeWxIOError: read failed: max retries (5) exceeded

Dec 14 16:56:50 pi3b weewx[1954] CRITICAL __main__:     ****  Waiting 60 seconds then retrying...


Weewx had crashed this morning at 3:05 and it missed data acquisition for several hours. I did an import yesterday for same problem (connect the usb on PC to retrieve 10 days of data via SmartWeather tool, export to CSV, import data on Pi ....).  I have to do it again :-(

At this time, nothing is stable. So I add weewx monitoring tool by cron which check time of last modification of daily pictures and if too old (6mins), I restart weewx after reseting USB device. :-/

Any idea with USB problem ?

Regards

Holger Megies

unread,
Feb 11, 2021, 3:24:21 PM2/11/21
to weewx-user

Hi,

similar problem here. My setup:

  • WH2315 (Renkforce from Conrad); indoor unit connected via USB to a
  • Raspberry Pi 3B running
  • weewx 4.3.0
  • weewx uses Python 3.7
  • driver is wh23xx (EdwinGH fork)

The log shows that it happens rather often that wh23xx needs 3 or 4 attempts to read data from the station. If it fails to read 5 times, the engine shuts down and doesn't start again. I have to reboot or unplug and reconnect the USB cable to make things work again.

I suspected all kinds of problems including RFI. This is what I did so far (without success though):

  • used different USB cables
  • shielded the USB cables with aluminum foil
  • put RF chokes on all cables to and from the raspi (snap ferrites and ferrite rings)
  • put new batteries into the outdoor station (rechargeable NiZn)
  • used a powered USB hub between indoor unit and raspis

I'd be grateful for any clues. I'm no programmer at all... Is there a way to make the driver try more than 5 times to read from the station to prevent the lockups?

Regards

Holger

Here's a part of the syslog:

Feb 11 21:05:22 raspberrypi weewx[627] DEBUG weewx.manager: Daily summary version is 3.0

Feb 11 21:05:22 raspberrypi /weewxd: historygenerator.py: No bootstrap specific labels found

Feb 11 21:05:22 raspberrypi /weewxd: historygenerator.py: Generated 8 tables in 0.07 seconds

Feb 11 21:05:24 raspberrypi weewx[627] INFO weewx.cheetahgenerator: Generated 10 files for report StandardReport in 1.59 seconds

Feb 11 21:05:24 raspberrypi weewx[627] DEBUG weewx.manager: Daily summary version is 3.0

Feb 11 21:05:25 raspberrypi weewx[627] INFO weewx.imagegenerator: Generated 11 images for report StandardReport in 1.44 seconds

Feb 11 21:05:25 raspberrypi weewx[627] INFO weewx.reportengine: Copied 0 files to /var/www/html

Feb 11 21:05:25 raspberrypi weewx[627] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.

Feb 11 21:05:25 raspberrypi weewx[627] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.

Feb 11 21:05:33 raspberrypi /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Feb 11 21:05:33 raspberrypi /weewxd: wh23xx: read_record: buf: 01 33 03 01 47 04 01 53 05 01 53 06 2f 07 5b 08 26 6c 09 28 30 0a 00 f8 0b 00 07 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:05:33 raspberrypi /weewxd: wh23xx: get_current: failed attempt 1 of 5: read_record: missing READ_RECORD: 0x03 != 0x04

Feb 11 21:05:43 raspberrypi /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Feb 11 21:05:43 raspberrypi /weewxd: wh23xx: read_record: buf: 01 12 02 82 14 00 00 02 82 15 00 00 00 00 16 00 00 17 00 ae 30 0a 00 f8 0b 00 07 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:05:43 raspberrypi /weewxd: wh23xx: get_current: failed attempt 2 of 5: read_record: missing READ_RECORD: 0x02 != 0x04

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: read_record: buf: 01 4d 04 4a 01 02 5e 02 01 53 03 01 47 04 01 53 05 01 53 06 2f 07 5b 08 26 6c 09 28 30 0a 00 f8 0b 00 07 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: read_record: record_size: 74

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: read_record: buf: 01 4d 04 4a 01 02 5e 02 01 53 03 01 47 04 01 53 05 01 53 06 2f 07 5b 08 26 6c 09 28 30 0a 00 f8 0b 00 07 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: read_record: rbuf: 01 02 5e 02 01 53 03 01 47 04 01 53 05 01 53 06 2f 07 5b 08 26 6c 09 28 30 0a 00 f8 0b 00 07 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 04 4a 01 02 5e 02 01 53 03 01 47 04 01 53 05 01 53 (len=74) chksum_pkt=06 chksum=0x51

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: read_record: checksum mismatch: 0x06 != 0x51 (01 02 5e 02 01 53 03 01 47 04 01 53 05 01 53 06 2f 07 5b 08 26 6c 09 28 30 0a 00 f8 0b 00 07 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 04 4a 01 02 5e 02 01 53 03 01 47 04 01 53 05 01 53 (len=74))

Feb 11 21:05:53 raspberrypi /weewxd: wh23xx: get_current: failed attempt 3 of 5: read_record: checksum mismatch: 06 != 51

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: read_record: buf: 01 3b 04 4a 01 02 5e 02 01 53 03 01 45 04 01 53 05 01 53 06 2f 07 5a 08 26 6c 09 28 30 0a 00 f8 0b 00 0a 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: read_record: record_size: 74

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: read_record: buf: 01 12 02 82 14 00 00 02 82 15 00 00 00 00 16 00 00 17 00 ae 2f 07 5a 08 26 6c 09 28 30 0a 00 f8 0b 00 0a 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: read_record: rbuf: 01 02 5e 02 01 53 03 01 45 04 01 53 05 01 53 06 2f 07 5a 08 26 6c 09 28 30 0a 00 f8 0b 00 0a 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 02 82 14 00 00 02 82 15 00 00 00 00 16 00 00 17 00 (len=74) chksum_pkt=ae chksum=0xae

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: raw data: [1, 2, 94, 2, 1, 83, 3, 1, 69, 4, 1, 83, 5, 1, 83, 6, 47, 7, 90, 8, 38, 108, 9, 40, 48, 10, 0, 248, 11, 0, 10, 12, 0, 10, 14, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 0, 0, 0, 42, 18, 0, 0, 1, 20, 19, 0, 0, 2, 130, 20, 0, 0, 2, 130, 21, 0, 0, 0, 0, 22, 0, 0, 23, 0]

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: in_temp: {'value': 20.6} (0x01 0x01)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: out_temp: {'value': -6.100000000000001} (0x02 0x02)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: dewpoint: {'value': -7.5} (0x03 0x03)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: windchill: {'value': -6.100000000000001} (0x04 0x04)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: heatindex: {'value': -6.100000000000001} (0x05 0x05)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: in_humidity: {'value': 47} (0x06 0x06)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: out_humidity: {'value': 90} (0x07 0x07)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: abs_baro: {'value': 983.6} (0x08 0x08)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rel_baro: {'value': 1028.8} (0x09 0x09)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: wind_dir: {'value': 248} (0x0a 0x0a)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: wind_speed: {'value': 1.0} (0x0b 0x0b)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: gust_speed: {'value': 1.0} (0x0c 0x0c)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rain_rate: {'value': 0.0} (0x0e 0x0e)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rain_day: {'value': 0.0} (0x10 0x10)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rain_week: {'value': 4.2} (0x11 0x11)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rain_month: {'value': 27.6} (0x12 0x12)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rain_year: {'value': 64.2} (0x13 0x13)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: rain_totals: {'value': 64.2} (0x14 0x14)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: light: {'value': 0.0} (0x15 0x15)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: uv: {'value': 0} (0x16 0x16)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: uvi: {'value': 0} (0x17 0x17)

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: decoded data: {'in_temp': {'value': 20.6}, 'out_temp': {'value': -6.100000000000001}, 'dewpoint': {'value': -7.5}, 'windchill': {'value': -6.100000000000001}, 'heatindex': {'value': -6.100000000000001}, 'in_humidity': {'value': 47}, 'out_humidity': {'value': 90}, 'abs_baro': {'value': 983.6}, 'rel_baro': {'value': 1028.8}, 'wind_dir': {'value': 248}, 'wind_speed': {'value': 1.0}, 'gust_speed': {'value': 1.0}, 'rain_rate': {'value': 0.0}, 'rain_day': {'value': 0.0}, 'rain_week': {'value': 4.2}, 'rain_month': {'value': 27.6}, 'rain_year': {'value': 64.2}, 'rain_totals': {'value': 64.2}, 'light': {'value': 0.0}, 'uv': {'value': 0}, 'uvi': {'value': 0}}

Feb 11 21:06:03 raspberrypi /weewxd: wh23xx: packet: {'dateTime': 1613073964, 'usUnits': 17, 'windDir': 248, 'windSpeed': 1.0, 'windGust': 1.0, 'inHumidity': 47, 'outHumidity': 90, 'inTemp': 20.6, 'outTemp': -6.100000000000001, 'pressure': 983.6, 'luminosity': 0.0, 'uv_raw': 0, 'UV': 0, 'rain': 0.0, 'radiation': 0.0}

Feb 11 21:06:18 raspberrypi /weewxd: wh23xx: read_record: write: 02 02 04 04 (len=4)

Feb 11 21:06:18 raspberrypi /weewxd: wh23xx: read_record: buf: 01 3b 04 4a 01 02 5e 02 01 53 03 01 45 04 01 53 05 01 53 06 2f 07 5a 08 26 6e 09 28 32 0a 00 f8 0b 00 0a 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:06:18 raspberrypi /weewxd: wh23xx: read_record: record_size: 74

Feb 11 21:06:18 raspberrypi /weewxd: wh23xx: read_record: buf: 01 12 02 82 14 00 00 02 82 15 00 00 00 00 16 00 00 17 00 b2 2f 07 5a 08 26 6e 09 28 32 0a 00 f8 0b 00 0a 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 (len=61)

Feb 11 21:06:18 raspberrypi /weewxd: wh23xx: read_record: rbuf: 01 02 5e 02 01 53 03 01 45 04 01 53 05 01 53 06 2f 07 5a 08 26 6e 09 28 32 0a 00 f8 0b 00 0a 0c 00 0a 0e 00 00 00 00 10 00 00 00 00 11 00 00 00 2a 12 00 00 01 14 13 00 00 02 82 14 00 00 02 82 15 00 00 00 00 16 00 00 17 00 (len=74) chksum_pkt=b2 chksum=0xb2

Feb 11 21:06:18 raspberrypi /weewxd: wh23xx: raw data: [1, 2, 94, 2, 1, 83, 3, 1, 69, 4, 1, 83, 5, 1, 83, 6, 47, 7, 90, 8, 38, 110, 9, 40, 50, 10, 0, 248, 11, 0, 10, 12, 0, 10, 14, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 0, 0, 0, 42, 18, 0, 0, 1, 20, 19, 0, 0, 2, 130, 20, 0, 0, 2, 130, 21, 0, 0, 0, 0, 22, 0, 0, 23, 0]

Günther Wrana

unread,
Feb 12, 2021, 1:57:45 AM2/12/21
to weewx-user
Hello

I also have this driver in operation on my Raspberry, but still with version 3.9.2
In the beginning, the weather station and the Raspberry always did the same thing. It tried up to 5 times to connect, but since I shared a fixed IP address in my network with the Raspberry, that's over.
I have no idea if that was it but precisely because of these things I don't dare to update my Raspberry with Python 3 and weewx to version 4.

Greetings Günther

Sorry the text was translated with google.

Holger Megies

unread,
Feb 12, 2021, 4:26:45 AM2/12/21
to weewx-user
Hallo Günther,

danke für den Tipp. Das mit der festen IP kann ich natürlich auch noch ausprobieren. Zuerst hatte ich auch ein Python-Problem im Verdacht, von denen es ja schon ein paar gibt. Dann natürlich auch die Elektrik (Schaltnetzteile, Störaussendungen, schlechte Kabel usw.). Aber mittlerweile glaube ich fast, dass es ein Kommunikationsproblem zwischen dem Treiber und der Basisstation ist. Und möglicherweise gar nichts mit Python selbst zu tun hat. Offenbar versucht der Treiber was zu lesen und bekommt nichts... Dass der Treiber 2-3 Versuche braucht, um korrekt zu lesen passiert laut log total häufig. Dass er 4 Versuche braucht so ca. 3-5 mal pro Tag. Und bei 5 ist halt Schluss und weewx steigt aus. Ein Notbehelf könnte evtl. sein, dass man dem Treiber sagt, er soll es einfach weiter probieren. Hab mir den Treiber auch schon in vim angeschaut. Aber kann nicht programmieren. Und für eine genaue Interpretation des logs reichen meine Kenntnisse auch nicht. Bin kompletter Amateur...

Schöne Grüße
Holger
Reply all
Reply to author
Forward
0 new messages