WF UDP Broadcast Simulator

Release Announcement

Release v0.1 available on Github


While I sent my WF gear to new homes in the summer of 2020, I still wanted to be able to support my UDP Listener and Publisher Utility, so I cooked up a minimalist UDP Simulator utility to broadcast API-compliant UDP to the LAN.

This utility tracks to the current published Tempest UDP Reference and will emit many of the available UDP messages enough to develop/test third-party apps and dashboards against.

Currently it will emit the following at their expected periods, changing the temperature/wind/windDirection values slightly each observation period.

  • obs_st
  • device_status
  • hub_status
  • rapid_wind

How this is tested

This code is verified vs. my UDP listener ‘and’ vs. @vreihen’s weewx driver.

If you connect the dots into a full-up weewx configuration with the Belchertown skin and MQTT websockets enabled, you can see the Belchertown dashboard update in realtime based on what the Simulator is emitting. Pretty cool.

Possibly coming in the future (maybe)

  • more values that change over time rather than being straight-line
  • more of a sine-wave cycle of the various values
  • less likely - emitting any events, but the code can be hacked to do so if you want to do it yourself

Developer notes:

The script can be easily edited if you want to change the destination address or UDP port while you’re in a development mode. Consult the code, it’s obvious.


If you need a “litmus test” for your broadcaster, I wrote a simple linux Tempest UDP Relay to feed my Hubitat Ecowitt driver for automation.
It works correctly with Tempest firmware v160. Just run:

./tempest --trace

and it should start dumping UDP data on the terminal.

1 Like

ok, I have a rudimentary simulator working and broadcasting valid UDP to the LAN, and have verified that @vreihen’s weewx driver reads it fine. Also set up a MQTT broker and the Belchertown skin with realtime websockets so I can watch the wind speed and direction change every 3 sec period. Pretty cool.

Now I can support my UDP listener again without any actual physical gear needed. That ain’t bad.

I’ll work a bit more on getting the various data items to change values, package it up, and get it out on github in case others have interest. Stay tuned.


Release v0.1 is on github if you have any interest. Go appropriately wild.

(edit - updated the first message in this thread to be a release announcement)