WH1080 Fine Offset Weather Station Reset

Summary

I have a low cost WH1080 USB Weather station, connected by USB to an intel NUC running docker (x86). These weather stations have a bug in that they occasionally lock up and stop sending data. I implemented an automated way to reset it.

With this version/model I may get one or two lockups per year, but it annoying to lose data when it happens. Earlier models it happened a lot more regularly.

The weatherstation receiver is connected and powered by USB. I had a couple of Sinilink USB XY-WFUSB (ESP8266) devices, flashed with Tasmota. I put one inline in the USB cable. Power is interrupted on command and the USB data passes though it fine.

Sinilink USB XY-WFUSB and Tasmota Flash:
https://zorruno.com/2020/sinilink-usb-xy-wfusb-tasmota-flash/

Weewx setup in docker, with MQTT
https://zorruno.com/w/WeatherStationDocker

MQTT Watchdog

I run a python setup for watching failures. I monitor one of the WeeWX MQTT topics (I watch weewx/dateTime, but it could easily be another parameter), which gives a status 0 if a regular MQTT update is given, then a 1 if the topic recovers.

Alternatively, the unix epoch time would be monitored and a failure would be if the time hadn’t updated in a valid period.

MQTT Watchdog
https://gitlab.com/kmwpub/mqtt-watchdog

I run this in docker, with this dockerfile

FROM python:3-alpine

RUN mkdir -p /app
RUN pip install --upgrade pip
RUN pip install requests paho-mqtt PyYAML
WORKDIR /app
COPY ./mqtt-watchdog/ /app/
COPY ./data/config.yaml /app/config.yaml
CMD ["python", "-u", "mqtt-watchdog.py"]

and this docker-compose.yaml file

version: '3.3'
services:
	mqtt-watchdog:
		build: .
		volumes:
			- "/etc/localtime:/etc/localtime:ro"
			- "/etc/timezone:/etc/timezone:ro"
		container_name: mqtt-watchdog
		hostname: mqtt-watchdog
		restart: unless-stopped

Node Red Reset and Notifications

I used Node Red to reset the USB device (turn the Sinilink off, then on again). If there was still no response from MQTT watchdog after 30 mins, it notifies me on my mobile phone via Pushover.

Node Red Weatherstation Reset

Weather Station Info
Fine Offset Models info https://wiki.trixology.com/index.php?title=Fine_Offset

Fineoffset Lockup Info
https://cumulus.hosiene.co.uk/viewtopic.php?t=16740
https://github-wiki-see.page/m/weewx/weewx/wiki/FineOffset-USB-lockup

USB reset tips
https://groups.google.com/forum/#!topic/weewx-user/owhSpmklNlc
https://www.mail-archive.com/weewx-user@googlegroups.com/msg18376.html

Eliminate the USB receiver/display for more reliability
Remove the USB Main display which may not be that reliable (hopefully my current model is more reliable than the last) and build a 433MHz receiver.
https://blog.mjwconsult.co.uk/wh1080-weatherstation-with-arduino-and-weewx/

This is my setup for using an SDR and getting the data directly (I didn’t need both methods, and am happy with using WeeWX.
https://zorruno.com/2020/using-an-sdr-and-rtl_433-in-docker-with-mqtt/

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment