Some UDP Messages not being received

I can pickup the UDP broadcast from my Tempest. However the only message types that I receive are:
rapid_wind, hub_status, device_status and obs_st
I don’t get any of the other message types. Why is that?

Here is a capture of the messages:

{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308927,0.01,357]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308930,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308933,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738698,“rssi”:-47,“timestamp”:1631308935,“reset_flags”:“PIN,SFT”,“seq”:73823,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308936,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308939,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308942,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308945,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738708,“rssi”:-47,“timestamp”:1631308945,“reset_flags”:“PIN,SFT”,“seq”:73824,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308948,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308951,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308954,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738718,“rssi”:-47,“timestamp”:1631308955,“reset_flags”:“PIN,SFT”,“seq”:73825,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308957,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308960,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308963,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738728,“rssi”:-47,“timestamp”:1631308965,“reset_flags”:“PIN,SFT”,“seq”:73826,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308966,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308969,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308972,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308975,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738738,“rssi”:-48,“timestamp”:1631308975,“reset_flags”:“PIN,SFT”,“seq”:73827,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308978,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308981,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308984,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“device_status”,“hub_sn”:“HB-00045861”,“timestamp”:1631308984,“uptime”:2853664,“voltage”:2.767,“firmware_revision”:156,“rssi”:-73,“hub_rssi”:-70,“sensor_status”:131076,“debug”:0}
{“serial_number”:“ST-00051518”,“type”:“obs_st”,“hub_sn”:“HB-00045861”,“obs”:[[1631308984,0.00,0.00,0.01,358,3,1010.52,24.41,95.08,8707,0.34,73,0.000000,0,0,0,2.767,1]],“firmware_revision”:156}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738748,“rssi”:-47,“timestamp”:1631308985,“reset_flags”:“PIN,SFT”,“seq”:73828,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308987,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308990,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308993,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738758,“rssi”:-48,“timestamp”:1631308995,“reset_flags”:“PIN,SFT”,“seq”:73829,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308996,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631308999,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631309002,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631309005,0.00,0]}
{“serial_number”:“HB-00045861”,“type”:“hub_status”,“firmware_revision”:“171”,“uptime”:738768,“rssi”:-47,“timestamp”:1631309005,“reset_flags”:“PIN,SFT”,“seq”:73830,“fs”:[1,0,15675411,524288],“radio_stats”:[25,1,0,3,54153],“mqtt_stats”:[63,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631309008,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631309011,0.00,0]}
{“serial_number”:“ST-00051518”,“type”:“rapid_wind”,“hub_sn”:“HB-00045861”,“ob”:[1631309014,0.00,0]}

What other message types do you think you should be receiving ?

Well, one message type I’d like to have is “obs_sky” so that I can get the daily rainfall. The documentation lists several more messages that do not appear such as obs_sky, obs_air, etc. However obs_sky is the one that is important.

You have a Tempest. Its obs are comma seperated in this lot, each minute.
A sky is an earlier model of a tempest as is an Air device.
The documentation describes which observation is in eash json csv field.
It is described here WeatherFlow Tempest API & Developer Platform
Cheers Ian :slight_smile:

1 Like

in addition to what Ian just mentioned, the AIR is also an older unit. But all the relevant data is available in you current UDP messages that you do get in obs_st

Thank you all for the feedback. I did not realize that there was another “sky” model and was expecting another message for “sky” observations. The “obs-st” type message for the Tempest has all the information I need except daily precip and hence I was looking for it in “obs_sky”. I do realize that “obs-st” does provide the precip during the last minute, however this would require our software to run continuously over a 24 hour period to get the daily total which may not be practical in our case. It would have been ideal if they also included the daily precip in “obs_st” as they do in “obs_sky”.

isn’t field #18 the one you are looking for?

In the sky flow there is this field implemented but it is not used
see below from documentation that the field is set as null
In the flow there is no data, always zero, just checked my surviving sky UDP (last 12 months no values while it did detect rain no later then yesterday
‘’’

"serial_number": "SK-00008453",
	  "type":"obs_sky",
	  "hub_sn": "HB-00000001",
	  "obs":[[1493321340,9000,10,0.0,2.6,4.6,7.4,187,3.12,1,130,null,0,3]],
	  "firmware_revision": 29

‘’’

1 Like

Do you mean in “obs_st”? There is no field number 18

here is de definition:
Tempest (type=“obs_st”)
Observation Layout
0 - Epoch (Seconds UTC)
1 - Wind Lull (m/s)
2 - Wind Avg (m/s)
3 - Wind Gust (m/s)
4 - Wind Direction (degrees)
5 - Wind Sample Interval (seconds)
6 - Pressure (MB)
7 - Air Temperature (C)
8 - Relative Humidity (%)
9 - Illuminance (lux)
10 - UV (index)
11 - Solar Radiation (W/m^2)
12 - Rain Accumulation (mm)
13 - Precipitation Type (0 = none, 1 = rain, 2 = hail, 3 = rain + hail (experimental))
14 - Average Strike Distance (km)
15 - Strike Count
16 - Battery (volts)
17 - Report Interval (minutes)
18 - Local Day Rain Accumulation (mm)
19 - Rain Accumulation Final (Rain Check) (mm)
20 - Local Day Rain Accumulation Final (Rain Check) (mm)
21 - Precipitation Aanalysis Type (0 = none, 1 = Rain Check with user display on, 2 = Rain Check with user display off)

field #18 is “local day rain accumulation”. It grows during the day. If you take the last value of the day, it should be the final value (assuming you don’t want the raincheck version)

(but I’m not 100% sure the last values are even reported through UDP)

Sunny that’s websocket not UDP :wink:

1 Like

(yeah I just realized that, sorry)

my recollection is daily precipitation is not calculated/captured by the hub, so you will not see any values there for sky or tempest. You can only get that info from the web sockets query of the WF servers.

:sweat_smile: Yeah … I wish they had those additional fields in the UDP message. Thanks!

That’s what I figured. Unfortunately we will be running this on a Linux box in a closed private network (no internet) so websockets and REST are out of the question. I guess we have no other option but to continuously run the application and add the 1-minute precip counts in order to get daily precip.

You could run weewx and let it do the heavy lifting for you. It can optionally feed MQTT or influxdb etc. depending on how you plan to display the data. Alternately use one of the third party integrations that can listen for the UDP and generate a variety of outputs.

5 Likes