WH1080 USB Weather Station Add-on for Home Assistant

Hi everyone!

I recently developed a Home Assistant add-on for Fine Offset WH1080 / WH1081 USB weather stations.

The goal was to make it possible to connect the weather station directly to a Home Assistant OS machine via USB, without requiring an additional Raspberry Pi, SDR receiver, or external computer.

What it does

The add-on reads the weather station directly through USB using pywws and publishes the data to Home Assistant through MQTT Discovery.

It currently provides:

  • :thermometer: Outdoor temperature
  • :droplet: Outdoor humidity
  • :thermometer: Indoor temperature
  • :droplet: Indoor humidity
  • :wind_face: Wind speed
  • :dashing_away: Wind gusts
  • :compass: Wind direction
  • :cloud_with_rain: Rainfall
  • :chart_increasing: Atmospheric pressure
  • :droplet: Dew point
  • :snowflake: Wind chill
  • :bar_chart: Maximum wind gust
  • :satellite_antenna: Connection/availability status

It can also optionally send the data to Weather Underground.

Why I made it

I found that there are several ways to use these weather stations with Home Assistant, especially through RF receivers and rtl_433.

However, if you already have the original WH1080 console connected to a computer through USB, I wanted a simpler solution:

WH1080 console → USB → Home Assistant OS → MQTT Discovery

No SDR receiver is required.

GitHub

The project is available here:

The repository can be added as a custom add-on repository in Home Assistant.

Go to:

Settings → Add-ons → Add-on Store → ⋮ → Repositories

and add the GitHub repository.

Technical details

The add-on is based on pywws, which already supports the WH1080 family of weather stations.

The add-on provides the Home Assistant/Docker layer around it, including USB device access, configuration, MQTT Discovery and availability handling.

One detail that took me a while to track down was the wind direction.

The WH1080 does not provide the wind direction as a normal 0–360° value. It provides a 16-position value from 0 to 15, which corresponds to:

0  = N
1  = NNE
2  = NE
3  = ENE
4  = E
5  = ESE
6  = SE
7  = SSE
8  = S
9  = SSW
10 = SW
11 = WSW
12 = W
13 = WNW
14 = NW
15 = NNW

The add-on converts this to degrees using:

direction × 22.5°

So, for example:

8 → 180° → South

Hardware

So far I have tested this with a Fine Offset WH1080 connected directly through USB.

I would be very interested in hearing from anyone using:

  • WH1080
  • WH1081
  • WH1090
  • WH1091
  • Other Fine Offset / compatible stations using the same USB protocol

If you have one of these stations and can test it, please let me know the exact model and whether it works.

Feedback / testing

This is still a relatively new project, so feedback and testing on different Home Assistant OS hardware would be very welcome.

If anyone has a WH1080 that they have been trying to connect directly to Home Assistant, I’d especially like to hear from you.

GitHub:

Thanks!

The term Add-on has been deprecated quite a while back and new software should now all refer to them as an App.
That said you also have to test and change things like install instructions here and in your Git so users will be able to use your stuff. This will not work, for instance:

Also if you used an AI to write some of this code for you, you should really credit it and any other contributions.

1 Like

Hi Walter, don’t be so easily offended!

I would think that sharing a project is meant as a way to inspire others and not only to show off.
By using the right terminology and making sure that your installation instructions do work, you make it easier on yourself so you (or anybody else) don’t have to help in case the installation doesn’t go as planned.

That addition about AI is about just sharing how this came to life.

I understand your point, and I have no problem with constructive feedback or corrections.

What I wanted to clarify is that I didn’t share the project to show off or to “brag”. I shared it because I had this problem myself, couldn’t find a simple solution, and ended up developing and testing one that worked for me.

Once I had it working, I thought it might be useful to other people with the same WH1080/Home Assistant problem, so I shared it.

That’s really all there was behind the post. There was no intention to show off or claim that the project was perfect.

I didn’t imply that you did this to show off and since your intention was to share it with other people, why not adjust your write-up so it becomes fool proof?