Skip to content

Protocol Wunderground

Manuel edited this page Aug 30, 2026 · 2 revisions

Weather Underground

Setting up Weather Underground hardware by hand, in weewx.conf.

Generated by tools/build_protocols.py. What each protocol needs is written in that tool; what it is called and what goes into the console comes from the code. Do not edit by hand.

There is a web interface for all of this. It is on by default, and the driver prints its address when WeeWX starts:

INFO user.ultimatepush.driver: The web interface is at
http://1.2.3.4:8080/?token=abcdefg12345

Everything on this page can be done there instead, and one thing is much easier: deciding which reading goes into which database column. See Web interface.

What it is

Fine Offset Observer and its rebadges (Ambient WS-1000 series, Sainlogic, Misol), any Ecowitt console set to protocol Wunderground, Meteobridge, and weather software generally

In protocols = auto yes
Named by its ID
Can be set up before it uploads Yes

The smallest configuration that works

[Station]
    station_type = UltimatePush

[UltimatePush]
    driver = user.ultimatepush.driver
    port = 8000

    [[stations]]
        [[[garden]]]
            id = up-abcde123
            password = abcdefg12345

Both are yours to choose and neither has to be looked up first. Make each with python -m user.ultimatepush --secret. The ID names the station and the password is checked on every upload it sends.

What to put into the console

Server 1.2.3.4
Port 8000
ID up-abcde123
PASSWORD abcdefg12345

What else it takes

Wherever your console or software sets its Weather Underground upload.

The path cannot be changed. It is burned into the firmware, and this driver answers on it. The ID is what tells this station from the next one, which is why it is worth letting this driver choose it.

The PASSWORD is checked on every upload and one that gets it wrong is refused. Like the ID it goes over plain HTTP, so it keeps a stranger out and not somebody who can watch the network.

Options of its own

These belong to this protocol alone and go in the [UltimatePush] section. Everything else that applies is in Configuration.

password

Refuse uploads that do not present this as PASSWORD. A station with a password of its own uses that instead; this covers the ones that have none. Default is none.

metric_wind

Whether the metric dialect's wind is kilometres per hour or metres per second, which cannot be told from a payload. One of kph or mps. Default is kph.

Worth knowing

Let the driver choose the ID and the PASSWORD rather than inventing them. The ID is what tells this console from the next one, and a console using its real Weather Underground station ID here would be identified by something that is public.

Set both in weewx.conf before pointing the console at this machine. A console that uploads with an ID nobody has heard of is refused and has to be let in by hand.

This is the only protocol here whose hardware can carry a secret, so it is the only one where an upload can be turned away for presenting the wrong one.

When nothing arrives

Uploads are refused with wrong PASSWORD: the console and the file disagree. The comparison is exact, and a trailing space in the app counts.

Readings arrive but the wind is wrong by a factor: the console is sending the metric dialect and metric_wind is set to the other unit. See below.

More than one station

This is one station among however many others. Which of them fills outTemp, and where the rest of their readings go, is in Several stations.

Clone this wiki locally