WeatherFlow Tempest Weather Station  

Developer: Glenn's Plugins     Like this plugin? Show your appreciation!
Category: Weather and Environmental Sensors
Github: Github Repo
Assistance: Get help!    Check the online documentation
Plugin ID: com.GlennNZ.indigoplugin.weatherflowtempest
Latest release: v2.5.3 released on May 26, 2026
Release downloaded: 5 times
Requires: Indigo v2023.2.0 or higher
(Check the Releases tab below for older releases that may have different requirements)
  Download latest release

WeatherFlow Tempest Weather Station — Indigo Plugin

Receives live weather data from WeatherFlow Tempest stations via local UDP broadcast and maps all sensor observations to Indigo device states. No cloud account is required for basic operation. An optional WeatherFlow Web API token unlocks authoritative rain totals, rain duration, conditions text, hourly lightning counts, and a web-only mode that works even when the hub is on a different network.

New in v2.5.0: Public Tempest Station — monitor any publicly-shared WeatherFlow station without an account or token. Add as many as you like to build a network of weather reference points around your Indigo location, each with precise distance and direction states.

See Wiki: https://github.com/Ghawken/WeatherFlowTempest/wiki

Screenshot

WeatherFlow Device States

Indigo device states for a Tempest Weather Station showing live sensor readings, web-sourced rain totals, and unit labels.

Features

Category What you get
Temperature Ambient, feels-like, dew point, wet bulb, wind chill, heat index, delta-T
Atmospheric Station pressure, sea-level pressure, relative humidity, vapour pressure, air density
Wind Instantaneous speed/direction (rapid-wind, ~3 s), 1-minute average, gust, lull, cardinal, sample interval
Rain Per-minute accumulation, rain rate, intensity label, daily total, yesterday's total, Rain Check status
Rain (web) Authoritative rain-check-corrected totals, last-1-hour rain, daily/yesterday rain duration in minutes
Lightning Strike count, average distance, last-strike distance, energy and timestamp
Lightning (web) Hourly and 3-hour strike counts
Conditions (web) Weather conditions text and icon name from WeatherFlow forecast engine
Light Illuminance (lux), solar radiation (W/m²), UV index
Battery Voltage and percentage; power-save mode label; report interval
Derived Cloud base, freezing level (both require altitude to be set)
Diagnostics RSSI, firmware version, sensor fault flags, silence detection
Hub Firmware, Wi-Fi RSSI, uptime, reset reasons
Public Stations Monitor any public tempestwx.com station — full weather dataset plus distance and bearing from your Indigo server

Page Contents
Installation Requirements and install steps
Plugin Configuration UDP port, Web API token, log levels, device auto-generation
Web API Web API setup, web-only mode, extra states
Tempest Device Configuration Unit selection, altitude, device picker, web-only mode
Public Tempest Station Monitor public stations, distance and direction states, building a weather network
Device States Every state — what it means, units, notes
Triggers Lightning, rain-start, and rapid-wind triggers
Rain Data How daily rain is sourced and why power-save mode matters
Troubleshooting Common problems and fixes
Architecture Internal design: UDP → asyncio → Indigo

Requirements

Requirement Version
Indigo 2025.2 or later (ServerApiVersion 3.4)
WeatherFlow hub Any — must be on the same subnet as the Indigo Mac (or use web-only mode)

Quick Start

  1. Install the plugin (double-click WeatherFlowTempest.indigoPlugin).
  2. Go to Plugins → WeatherFlow Tempest → Configure → Generate Devices.
  3. Done — states populate within 60 seconds of the first UDP broadcast.

For web API features, see Plugin Configuration below.

See the Installation wiki page for full details.

Plugin Configuration

Open Plugins → WeatherFlow Tempest Weather Station → Configure.

Plugin Configuration

Device Generation

Click Generate Devices to auto-create Indigo devices for every Tempest and Hub currently broadcasting on the network. Re-press whenever new hardware is added.

UDP Listener Settings

Setting Description
UDP Port Port the hub broadcasts on (default: 50222)
Listen Address Network interface to listen on (default: 0.0.0.0 = all interfaces)

Saving the preferences automatically restarts the UDP listener.

WeatherFlow Web API (Optional)

Setting Description
Enable Web API Tick to activate web-based data polling
API Token Your Personal Use Token from tempestwx.com → Settings → Data Authorizations

When enabled the plugin polls the WeatherFlow REST API to supplement UDP data with:

  • Authoritative rain totals — rain-check corrected daily and yesterday rain
  • Rain last 1 hour — rolling 1-hour rainfall total
  • Rain duration — minutes of measurable rain today and yesterday
  • Conditions & icon — current weather description and icon name from WeatherFlow's forecast engine
  • Hourly lightning counts — strikes in the last 1 hour and last 3 hours

The web API is polled every 5 minutes when UDP data is active (slow-changing supplemental data only), or every 60 seconds in web-only mode (all states come from web).

Getting a token: Log in to tempestwx.com, go to Settings → Data Authorizations, and generate a Personal Use Token. It is free and tied to your WeatherFlow account.

Note: The personal Web API authenticates by account — it only serves stations registered to the token's owner. To monitor other people's public stations, use the Public Tempest Station device type instead — no token required.

Debugging Options

Setting Description
Indigo Log Level Verbosity of messages in the Indigo Event Log
File Log Level Verbosity of messages written to the plugin log file

Device Setup

  1. Open Plugins → WeatherFlow Tempest Weather Station → Configure.
  2. Click Generate Devices.
  3. The plugin creates one Indigo device for every Tempest and Hub currently broadcasting on the network. Devices are placed in the main Indigo device folder and can be moved afterward.
  4. Re-click the button whenever new hardware is added.

Manual device creation

  1. Go to Devices → New Device → Type: WeatherFlow Tempest Weather Station.
  2. Choose Tempest Weather Station or WeatherFlow Hub.
  3. Select your unit from the dropdown — devices are listed as soon as the hub broadcasts.
  4. Click Save.

Tip: If the device dropdown is empty, the hub has not yet sent a broadcast. Wait 30–60 seconds and use the Reload button in the dialog to refresh the list.

Tempest Device Configuration

Device Configuration

Field Description
Tempest Device Serial number of the Tempest (ST-xxxxxxxx), discovered automatically from UDP
Web-only (hub on different network) Tick to bypass UDP and use the web API exclusively — see below
Altitude (m) Station elevation in metres above sea level. Used to calculate sea-level pressure, cloud base, and freezing level. Set to 0 to omit those derived states.
Temperature °C or °F
Pressure hPa (mbar), mmHg, or inHg
Wind Speed m/s, km/h, mph, or knots
Rainfall mm or inches
Altitude unit Metres or feet (for cloud base and freezing level)

Unit selections are independent — mix and match as needed. Changes take effect on the next sensor observation. Active unit labels are stored in the unit_temperature, unit_pressure, unit_wind, and unit_rain device states.

Web-only Mode

Enable Web-only (hub on different network) when the Tempest hub is on a separate network from the Indigo Mac (e.g. a remote property, a neighbour's setup with shared access, or a different VLAN where UDP broadcast doesn't reach).

When web-only is ticked, one additional field appears:

Field Description
Station ID Numeric WeatherFlow station ID — found in the WeatherFlow app under station Settings

The Web API must be enabled and a valid token entered in Plugin Preferences. The device is polled every 60 seconds and all sensor states (temperature, pressure, wind, rain, UV, lightning, conditions) are populated from the web. The deviceStatus state shows Active (web) when data is flowing.

Station ID: Open the WeatherFlow app, tap your station name, then tap Settings. The station ID is the number shown in the Station Information section.

Public Tempest Station

The Public Tempest Station device type lets you monitor any publicly-shared WeatherFlow station on tempestwx.com — no personal API token and no WeatherFlow account required.

Setup

  1. Go to Devices → New Device → WeatherFlow Tempest Weather Station.
  2. Choose Public Tempest Station.
  3. Enter the station ID from its tempestwx.com URL (e.g. tempestwx.com/station/130809/130809).
  4. Select your preferred units and click Save.

The device polls every 120 seconds and populates a full weather dataset including temperature, wind, rain, lightning, UV, and pressure — identical in breadth to a locally-connected Tempest.

Public Tempest Station Configuration

Distance and Direction States

Each device automatically calculates the station's position relative to your Indigo server (requires latitude and longitude set in Indigo → Preferences → Location):

State Example Description
distance_km 14.32 Distance in kilometres
distance_mi 8.90 Distance in miles
bearing 22.5 Bearing from Indigo to station in degrees (0 = North, clockwise)
bearing_cardinal NNE 16-point compass — N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW
distance_description 14.3 km NNE Human-readable combined label; auto-scales to metres / feet at short range

The bearing is measured from your Indigo server toward the stationNNE means the station lies to your north-north-east. The distance_description state can be placed directly in Control Pages or notification messages.

Public Tempest Station States

Building a Weather Network

You can add as many Public Tempest Station devices as you like — there is no limit. Each polls independently on its own 120-second cycle. Common uses:

  • Monitor upwind stations to anticipate incoming rain or wind changes before they reach your location
  • Compare microclimates — coastal vs. inland, valley vs. ridge, urban vs. rural
  • Track lightning at distance using the lightning_count_last_1hr and lightning_count_last_3hr states across multiple stations to gauge storm approach direction
  • Rich Control Pages — display a ring of surrounding stations each labelled by their distance_description

See the Public Tempest Station wiki page for the full state reference, failure handling, and detailed examples.

Device States

Tempest Weather Station

Temperature

State Description
air_temperature Ambient temperature
temperature Alias for air_temperature
feels_like_temperature Apparent / feels-like temperature
dew_point_temperature Dew point
wet_bulb_temperature Wet bulb temperature
wind_chill_temperature Wind chill
heat_index Heat index
delta_t Delta-T (dry bulb minus wet bulb)

Atmospheric

State Description
relative_humidity Relative humidity (%)
station_pressure Raw station pressure
sea_level_pressure Sea-level corrected pressure (requires altitude > 0)
vapor_pressure Vapour pressure
air_density Air density (kg/m³, always metric)

Derived (require altitude > 0)

State Description
cloud_base Estimated cloud base height above station
freezing_level Estimated freezing level height above station

Light & UV

State Description
illuminance Illuminance (lux)
solar_radiation Solar irradiance (W/m²)
uv UV index

Rain

State Source Description
rain_accumulation_previous_minute UDP Rain accumulated in the previous minute
rain_rate UDP Current rain rate (mm/h or in/h)
rain_intensity UDP None / Very Light / Light / Moderate / Heavy / Violent
rain_today UDP + Web Total rain since local midnight (web value is rain-check corrected)
rain_yesterday UDP + Web Yesterday's total rain
rain_check UDP WeatherFlow Rain Check verification status (none / on / off)
precipitation_type UDP none, rain, hail, or rain_hail
last_rain_start UDP Timestamp of the most recent rain-start event (UTC)
rain_last_1hr Web only Rain accumulated in the last 60 minutes
rain_duration_today Web only Minutes of measurable rain today
rain_duration_yesterday Web only Minutes of measurable rain yesterday

Lightning

State Source Description
lightning_strike_count UDP Strikes detected in the last 3 minutes
lightning_strike_average_distance UDP Average distance of recent strikes
last_strike_distance UDP Distance of the most recent strike
last_strike_energy UDP Energy of the most recent strike
last_strike_time UDP Timestamp of the most recent strike (UTC)
lightning_count_last_1hr Web only Strikes in the last 60 minutes
lightning_count_last_3hr Web only Strikes in the last 3 hours

Conditions (Web API only)

State Description
conditions Current weather description (e.g. "Partly Cloudy")
weather_icon Icon name from WeatherFlow's forecast engine (e.g. partly-cloudy-day)

Wind

State Description
wind_speed Instantaneous wind speed (rapid-wind, ~3 s interval)
wind_average 1-minute average wind speed
wind_gust 1-minute wind gust
wind_lull 1-minute wind lull
wind_direction Instantaneous wind direction (°)
wind_direction_average 1-minute average wind direction (°)
wind_direction_cardinal Instantaneous cardinal direction (N, NE, …)
wind_direction_average_cardinal Average cardinal direction
wind_sample_interval Wind measurement window (seconds)

Unit labels

State Description
unit_temperature Active temperature unit label (e.g. °C)
unit_pressure Active pressure unit label (e.g. hPa)
unit_wind Active wind speed unit label (e.g. km/h)
unit_rain Active rain unit label (e.g. mm)

Battery & power

State Description
battery Battery voltage (V)
battery_percent Battery level (%)
power_save_mode Active power-save mode name
report_interval Observation reporting frequency (minutes)

Diagnostics

State Description
rssi Tempest RF signal strength (dBm)
hub_rssi Hub RF signal strength (dBm)
firmware_revision Tempest firmware version
hub_sn Hub serial number
up_since Device power-on timestamp (UTC)
last_report Timestamp of the most recent observation (UTC)
sensor_status Sensor fault flags, or OK
deviceStatus Active (UDP), Active (web) (web-only), Waiting for data on startup, No data — last seen N min ago if silent

WeatherFlow Hub

State Description
firmware_revision Hub firmware version
rssi Hub Wi-Fi signal strength (dBm)
up_since Hub power-on timestamp (UTC)
uptime Seconds since last boot
reset_flags Reason(s) for the last reset (comma-separated)
deviceStatus Connection status

Public Tempest Station

Distance and Direction

State Description
distance_km Distance from Indigo server to station (km)
distance_mi Distance from Indigo server to station (miles)
bearing Bearing from Indigo to station (degrees, 0 = North)
bearing_cardinal Cardinal abbreviation: N, NNE, NE, ENE … NNW
distance_description Human-readable combined label, e.g. 14.3 km NNE

Station Identity

State Description
station_name Station display name
latitude Station latitude
longitude Station longitude
elevation Station elevation (metres)

Weather States

All temperature, atmospheric, light, wind, rain, and lightning states mirror the Tempest Weather Station state set above. Rain totals are rain-check corrected. Full details on the Public Tempest Station wiki page.

Triggers

Three custom trigger types are available under Triggers → New Trigger → WeatherFlow Tempest Weather Station.

Each trigger includes a Tempest Device picker so it can be scoped to a specific station when you have more than one.

Lightning Strike Detected

Fires whenever the selected Tempest detects a lightning strike.

Field Description
Tempest Device The Tempest station to watch. Leave blank to fire for any station.

The last_strike_distance, last_strike_energy, and last_strike_time device states are updated before the trigger fires.

Use cases: push notification with distance and energy; flash a light; log strikes to a variable.

Rain Started

Fires when the Tempest detects the onset of precipitation (the first rain-start event after a dry period).

Note: This trigger fires from the Tempest's dedicated rain-start event, which is sent immediately when the sensor detects rain — independent of the 1-minute observation cycle. It fires once per rain onset, not repeatedly while rain continues.

The last_rain_start device state is updated when this trigger fires.

Use cases: close roof vents; retract a pergola awning; send a notification.

Rapid Wind Exceeds Threshold

Fires when an instantaneous wind reading meets or exceeds a configurable speed. Rapid-wind readings arrive approximately every 3 seconds.

Field Description
Tempest Device The Tempest station to watch.
Threshold (m/s) Minimum wind speed (in m/s) required to fire the trigger.

The threshold is always compared against the raw m/s magnitude regardless of the display unit. Convert if needed: 1 m/s = 3.6 km/h = 2.237 mph = 1.944 kn.

Use cases: close greenhouse vents above 10 m/s; retract a sail shade above 15 m/s.

Trigger Limitations

  • In power-save MODE_2 and above, rapid-wind events are not sent by the Tempest. The Rapid Wind Exceeds Threshold trigger will not fire in those modes.
  • Lightning and rain-start triggers fire from discrete UDP events and are not affected by power-save mode.

Station Silence Detection

The plugin monitors each Tempest station for data dropouts. If no observation is received for more than 5 minutes:

  • The deviceStatus state is updated to "No data — last seen N min ago".
  • A warning is written to the Indigo Event Log.
  • The warning repeats every 30 minutes with an updated elapsed time.

When data resumes, deviceStatus returns to "Active" automatically and a recovery notice is logged.

The plugin also monitors the UDP listener itself — if the background socket task crashes, the listener is restarted automatically within 60 seconds. The web API poller is similarly monitored and restarted if it exits unexpectedly.

Plugin Menu

Plugins → WeatherFlow Tempest Weather Station exposes two menu commands:

  • List Discovered WeatherFlow Devices — logs all currently-discovered serial numbers, models, and firmware versions to the Event Log.
  • Restart UDP Listener — stops and restarts the listener without reloading the plugin (useful after network changes).

Troubleshooting

Device dropdown is empty / "No devices discovered yet" - Confirm the WeatherFlow hub is on the same subnet as the Indigo Mac. UDP broadcast does not cross router boundaries. - Check that nothing is blocking UDP port 50222 (macOS firewall, managed switch, VLAN separation). - Wait 60 seconds — hubs broadcast a status packet roughly once per minute — then use the Reload button in the device dialog. - If the hub is on a different network, use Web-only mode in the device configuration instead.

deviceStatus shows "No data — last seen N min ago" - The station has not sent an observation in over 5 minutes. Check the hub's power and Wi-Fi connection, and confirm the Tempest is within RF range. - Use Plugins → WeatherFlow → Restart UDP Listener to retry without reloading the plugin.

Web API returns 401 Unauthorized - Verify the API token is correct in Plugin Preferences (Plugins → Configure). - Ensure the Station ID in the device config matches a station registered to the token's account. Find your station ID in the WeatherFlow app under station Settings. - After 3 consecutive 401 errors for a station, polling is suspended. Correct the station ID and save the device to resume.

rain_last_1hr, conditions, weather_icon are always empty - These states require the Web API to be enabled. Tick Enable Web API in Plugin Preferences and enter a valid token.

sea_level_pressure, cloud_base, freezing_level are missing - Set Altitude (m) to a non-zero value in the Tempest device configuration.

sensor_status shows all sensors failed - This is a known firmware quirk (seen in firmware 181) where the hardware register is read before sensor self-test completes. The plugin detects this pattern and displays OK instead. A subset of sensors listed as failed is a genuine fault.

Debug logging - Set Indigo Log Level to Debugging Messages in Plugin Preferences for verbose output. - The plugin log file is at ~/Library/Application Support/Perceptive Automation/Indigo 2025.x/Logs/. Set File Log Level to Detailed Debugging Messages for maximum detail.

Libraries & Acknowledgements

pyweatherflowudp — v1.5.2

by Nathan Spencer (@natekspencer)

The core UDP library that handles all communication with the WeatherFlow hub. Provides an event-based async interface, parses every WeatherFlow message type, and exposes sensor values as typed properties with full unit support. All derived meteorological calculations (dew point, wet bulb, heat index, feels-like, vapour pressure, air density, sea-level pressure, cloud base, freezing level) are provided by this library.

Licensed under MIT. Consider supporting Nathan on Ko-fi.

Pint — v0.25.3

Physical quantity handling with units. All sensor values carry their native unit and are converted to the user's chosen display unit using Pint's unit registry.

PsychroLib — v2.5.0

Psychrometric calculations used by pyweatherflowudp to derive wet bulb temperature and related humidity metrics.

License

MIT — see LICENSE for details.

Developed by GlennNZ.

Release details
Released on: May 26, 2026
Requires: Indigo v2023.2.0+
Downloaded: 5 times 
Changes in this release

Release 2.5.3

Released: 2026-05-26 Minimum Indigo version: 2025.2

Back to Changelog

Highlights

Two improvements to how the plugin handles an offline personal Tempest station:

  1. Offline detection rewritten — the 2.5.1 implementation used a better_forecast field that proved unreliable; a correct documented API endpoint is now used instead.
  2. Device error state — when a station goes stale or offline, the Indigo device turns red in the UI with a status string. Clears automatically when the station recovers.

Changes

Personal Station Offline Detection Rewritten

Problem (2.5.1 regression): The 2.5.1 fix for stale web data worked correctly for Public Tempest Station devices but not for personal stations. The personal web poller used better_forecast.current_conditions.time as the observation timestamp — a field that always reflects the time WeatherFlow generated the API response (2–3 seconds ago), not when the Tempest device last transmitted. Additionally, better_forecast.station.is_station_online returns True even when the device has a completely flat battery.

The result: the 10-minute age gate in 2.5.1 never fired for personal stations, and stale cached data continued to be written to Indigo states when a station was offline.

Investigation: A complete audit of available WeatherFlow REST API endpoints was performed against a live flat-battery device:

Endpoint / Field Value when offline Reliable?
better_forecastcurrent_conditions.time Always 2–3 s ❌ API generation time
better_forecaststation.is_station_online True ❌ Always true
better_forecaststation.state 1 ❌ Static config value
/stations/{id} → device fields No status fields ❌ Config metadata only
/diagnostics/{id} Accurate ❌ Requires partner API key
/observations/stn/{id}obs [] (empty list) ✅ Definitive offline signal

Fix: Every web poll cycle now makes two API calls:

  1. better_forecast — unchanged, provides current conditions data for device states.
  2. /observations/stn/{station_id}?api_key={token}&bucket=1 — the documented personal station observations endpoint. bucket=1 returns the latest 1-minute record only. When the station is offline, obs: [] is returned.

Offline detection logic:

  • obs: [] → station has no recent observations — update is rejected.
  • obs[-1][0] → timestamp of the most recent observation record. If more than 10 minutes old, update is also rejected (secondary age gate).
  • Normal operation — observation age is logged at Debug level: station 183063: /observations/stn status={'status_code': 0, 'status_message': 'SUCCESS'} obs count=1 My Tempest: web observation age 47 s (0.8 min)

Note on endpoint naming: /observations/stn is the documented personal station endpoint in the WeatherFlow API reference. /observations/station (used for public stations) also returns obs: [] when offline, but is the public-facing endpoint. Using the correct personal endpoint avoids any reliance on undocumented behaviour.

Device Error State When Station is Offline

When a personal station's data is stale or absent, the plugin now marks the Indigo device with an error state so it is immediately visible in the Indigo client UI (device row turns red, status column shows the error string).

Two thresholds:

Stale duration deviceStatus state Indigo error state
< 10 minutes unchanged none
10 – 30 minutes Stale data Stale data (device turns red)
> 30 minutes Offline Offline (device turns red)

Recovery is automatic — on the next successful poll after the station comes back online, the error state is cleared and all device states resume updating normally. No manual action required.

Cleared at startup — if the plugin is reloaded or Indigo restarts while a station is offline, any lingering error state from the previous session is cleared immediately on deviceStartComm and set fresh once the first poll completes.

Log output during an offline event:

Warning: My Tempest: station offline — no recent observations (stale 0 min)
Warning: My Tempest: station offline — no recent observations (stale 12 min)   ← device now shows "Stale data"
Warning: My Tempest: station offline — no recent observations (stale 31 min)   ← device now shows "Offline"
My Tempest: web observation age 43 s (0.7 min)                                 ← station recovered, error cleared

Upgrade Notes

  • No configuration changes required. Both fixes are automatic.
  • Reload the plugin after updating to clear any stale error state from prior versions.
  • The Public Tempest Station offline detection from 2.5.1 is unchanged and unaffected.

Release 2.5.2

Released: 2026-05-26 Minimum Indigo version: 2025.2

Back to Changelog

Highlights

Two improvements to how the plugin handles an offline personal Tempest station:

  1. Offline detection rewritten — the 2.5.1 implementation used a better_forecast field that proved unreliable; a correct documented API endpoint is now used instead.
  2. Device error state — when a station goes stale or offline, the Indigo device turns red in the UI with a status string. Clears automatically when the station recovers.

Changes

Personal Station Offline Detection Rewritten

Problem (2.5.1 regression): The 2.5.1 fix for stale web data worked correctly for Public Tempest Station devices but not for personal stations. The personal web poller used better_forecast.current_conditions.time as the observation timestamp — a field that always reflects the time WeatherFlow generated the API response (2–3 seconds ago), not when the Tempest device last transmitted. Additionally, better_forecast.station.is_station_online returns True even when the device has a completely flat battery.

The result: the 10-minute age gate in 2.5.1 never fired for personal stations, and stale cached data continued to be written to Indigo states when a station was offline.

Investigation: A complete audit of available WeatherFlow REST API endpoints was performed against a live flat-battery device:

Endpoint / Field Value when offline Reliable?
better_forecastcurrent_conditions.time Always 2–3 s ❌ API generation time
better_forecaststation.is_station_online True ❌ Always true
better_forecaststation.state 1 ❌ Static config value
/stations/{id} → device fields No status fields ❌ Config metadata only
/diagnostics/{id} Accurate ❌ Requires partner API key
/observations/stn/{id}obs [] (empty list) ✅ Definitive offline signal

Fix: Every web poll cycle now makes two API calls:

  1. better_forecast — unchanged, provides current conditions data for device states.
  2. /observations/stn/{station_id}?api_key={token}&bucket=1 — the documented personal station observations endpoint. bucket=1 returns the latest 1-minute record only. When the station is offline, obs: [] is returned.

Offline detection logic:

  • obs: [] → station has no recent observations — update is rejected.
  • obs[-1][0] → timestamp of the most recent observation record. If more than 10 minutes old, update is also rejected (secondary age gate).
  • Normal operation — observation age is logged at Debug level: station 183063: /observations/stn status={'status_code': 0, 'status_message': 'SUCCESS'} obs count=1 My Tempest: web observation age 47 s (0.8 min)

Note on endpoint naming: /observations/stn is the documented personal station endpoint in the WeatherFlow API reference. /observations/station (used for public stations) also returns obs: [] when offline, but is the public-facing endpoint. Using the correct personal endpoint avoids any reliance on undocumented behaviour.

Device Error State When Station is Offline

When a personal station's data is stale or absent, the plugin now marks the Indigo device with an error state so it is immediately visible in the Indigo client UI (device row turns red, status column shows the error string).

Two thresholds:

Stale duration deviceStatus state Indigo error state
< 10 minutes unchanged none
10 – 30 minutes Stale data Stale data (device turns red)
> 30 minutes Offline Offline (device turns red)

Recovery is automatic — on the next successful poll after the station comes back online, the error state is cleared and all device states resume updating normally. No manual action required.

Cleared at startup — if the plugin is reloaded or Indigo restarts while a station is offline, any lingering error state from the previous session is cleared immediately on deviceStartComm and set fresh once the first poll completes.

Log output during an offline event:

Warning: My Tempest: station offline — no recent observations (stale 0 min)
Warning: My Tempest: station offline — no recent observations (stale 12 min)   ← device now shows "Stale data"
Warning: My Tempest: station offline — no recent observations (stale 31 min)   ← device now shows "Offline"
My Tempest: web observation age 43 s (0.7 min)                                 ← station recovered, error cleared

Upgrade Notes

  • No configuration changes required. Both fixes are automatic.
  • Reload the plugin after updating to clear any stale error state from prior versions.
  • The Public Tempest Station offline detection from 2.5.1 is unchanged and unaffected.
Release details
Released on: May 24, 2026
Requires: Indigo v2023.2.0+
Downloaded: 6 times 
Changes in this release

Release 2.5.1

Released: 2026-05-24 Minimum Indigo version: 2025.2

Back to Changelog

Highlights

This is a bug-fix release addressing three issues: stale web data being written to device states when a station goes offline, Indigo state errors on older Air and Sky devices, and duplicate polling on plugin startup.

Bug Fixes

Web Backup No Longer Updates States with Stale Data

Problem: When UDP communication to a local Tempest went down, the web backup poller would take over and push all sensor states from the WeatherFlow cloud API. If the station itself was also offline, WeatherFlow's API returns its last cached observation indefinitely — meaning the plugin would keep writing hour-old (or older) temperature, wind, pressure, and rain values to Indigo device states on every poll cycle.

The same issue affected Public Tempest Station devices: if a public station went offline, its last cached data would keep refreshing in Indigo as though it were live.

Fix: Both the personal web API poller and the public station poller now check the age of the observation timestamp before committing any states:

  • Personal stationscurrent_conditions.time from the better_forecast endpoint is the actual observation timestamp (confirmed from WeatherFlow's own REST API library). If the observation is more than 10 minutes old, the update is skipped entirely.
  • Public stationsobs[0].timestamp from the /observations/station/{id} endpoint. Same 10-minute threshold.

When data is rejected, a warning is written to the Indigo log:

My Tempest: web observation is 47.2 min old (obs_time=1748030400) — skipping update
My Public Station: public observation is 23.8 min old (timestamp=1748031600) — skipping update

Observation Age Now Logged at Debug Level

On every successful web poll, the observation age is now written to the plugin log at Debug level. This makes it straightforward to confirm data freshness and to spot a station going stale before it crosses the rejection threshold:

My Tempest: web observation age 3 s (0.1 min)
My Public Station: public observation age 47 s (0.8 min)

Air Device State Errors Fixed

Problem: Users with older WeatherFlow Air (AR-) devices saw a stream of Indigo state errors on every observation:

Error device "WeatherFlow Air AR-XXXXXXXX" state key rain_intensity not defined (ignoring update request)
Error device "WeatherFlow Air AR-XXXXXXXX" state key rain_today not defined (ignoring update request)
Error device "WeatherFlow Air AR-XXXXXXXX" state key rain_today_raw_mm not defined (ignoring update request)
Error device "WeatherFlow Air AR-XXXXXXXX" state key rain_today_date not defined (ignoring update request)

The Air sensor has no rain hardware, so its device type does not define rain states. However the observation state builder was writing rain states unconditionally for all device types. A secondary issue caused the daily rain accumulator to compute a spurious 0.0 mm value for Air (because both rain properties return None, summing to 0.0), which passed a not None check and attempted to write rain_today and rain_today_raw_mm.

Fix: All rain-related states (rain_intensity, rain_today, rain_today_raw_mm, rain_today_date, rain_yesterday, rain_rate, rain_accumulation_previous_minute, precipitation_type) are now guarded by a SkySensorType check. Sky and Tempest devices both satisfy this check and are unaffected. The daily rain accumulation calculation is also skipped entirely for Air, so no spurious 0.0 value is computed.

Duplicate Polling on Startup Fixed

Problem: On plugin startup, the public station poller and web API poller could each spawn two concurrent polling tasks, resulting in every API call and every log line being doubled:

Fix: A second guard check was added inside the scheduled callback, which runs on the event loop and is therefore strictly serial. By the time the second callback executes, the first has already assigned the task, so the duplicate creation is suppressed. The same fix was applied to the web API poller. The "poller started" log message was also moved inside the callback so it only appears when a task is actually created.

Upgrade Notes

  • No configuration changes required. All fixes are automatic for existing devices.
  • The 10-minute staleness threshold is intentionally conservative — a healthy station updates every 60 seconds, so any age above 10 minutes indicates the station or its cloud connection is genuinely offline.
  • Air (AR-) and Sky (SK-) device users should reload the plugin after updating to clear any accumulated state errors from prior versions.
Release details
Released on: May 23, 2026
Requires: Indigo v2023.2.0+
Downloaded: 4 times 
Changes in this release

Release 2.5.0

Released: 2026-05-23 Minimum Indigo version: 2025.2

Back to Changelog

Highlights

This release introduces the Public Tempest Station — a new device type that lets you monitor any publicly-shared WeatherFlow station without a personal API token or WeatherFlow account. Add as many as you like to build a network of weather reference points surrounding your Indigo location. Each device includes distance and direction states that tell you precisely where the station sits relative to your Indigo server.

New Features

Public Tempest Station Device Type

A new Public Tempest Station device type is now available alongside the existing Tempest Weather Station and WeatherFlow Hub.

To add one: 1. Go to Devices → New Device → WeatherFlow Tempest Weather Station. 2. Choose Public Tempest Station. 3. Enter the station ID from its tempestwx.com URL (e.g. tempestwx.com/station/130809/130809). 4. Select your preferred units and click Save.

No API token is required. Any station marked as public on tempestwx.com can be monitored. The device polls every 120 seconds.

Public Tempest Station Configuration

Distance and Direction States

Each Public Tempest Station device automatically calculates where the station sits relative to your Indigo server (uses the latitude and longitude set in Indigo → Preferences → Location):

State Example Description
distance_km 14.32 Great-circle distance to the station in kilometres
distance_mi 8.90 Same distance in miles
bearing 22.5 Bearing from Indigo to the station (0° = North, clockwise)
bearing_cardinal NNE 16-point compass: N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW
distance_description 14.3 km NNE Human-readable label — auto-scales (metres below 1 km, feet below 0.1 miles)

The bearing_cardinal represents the direction from your Indigo server toward the stationNNE means the station is to your north-north-east.

The distance_description state is designed for direct use in Control Pages and notifications without any scripting.

Public Tempest Station States

Full Weather Dataset

Public Tempest Station devices expose the same comprehensive weather data as a local Tempest device:

  • All temperature variants: ambient, feels-like, dew point, wet bulb, wind chill, heat index, delta-T
  • Atmospheric: humidity, station pressure, sea-level pressure, pressure trend, air density
  • Wind: average, gust, lull, direction (degrees and cardinal)
  • Rain: today's total, yesterday's total, last-1-hour rolling total, rain duration today and yesterday
  • Lightning: total count, last-1-hour and last-3-hour counts, last strike distance
  • Light: UV index, solar radiation, illuminance
  • Station identity: name, latitude, longitude, elevation

All values are rain-check corrected where applicable and arrive already in the user's chosen units.

Unlimited Stations — Build a Weather Network

Because each Public Tempest Station is a standalone Indigo device, you can add as many as needed. Suggested uses:

  • Monitor upwind stations to anticipate incoming rain or temperature changes
  • Compare coastal vs. inland temperatures or UV across different microclimates
  • Track lightning at multiple distances to gauge storm approach direction
  • Display a ring of surrounding stations on a Control Page, each labelled by its distance_description

Improvements

  • Independent polling loop: the public station poller runs in a dedicated asyncio task completely separate from the existing UDP and Web API pollers — no interference with existing device polling
  • Consecutive failure tracking: warns after 1–2 failures, suspends polling after 3; edit and save the device to reset
  • Auto-restart: runConcurrentThread detects if the public poller exits unexpectedly and restarts it automatically, consistent with the existing web poller pattern

Documentation

  • New wiki page: Public Tempest Station
  • README updated with Public Tempest Station section, updated features table, and navigation links
  • Wiki sidebar updated with new Public Tempest Stations section

Upgrade Notes

  • Existing Tempest Weather Station and Hub devices are unaffected — no configuration changes needed.
  • Public Tempest Station devices must be created manually (there is no auto-generate button for public stations, as discovery of public stations is not automated).
  • Indigo's location must be configured (Indigo → Preferences → Location) for the distance and direction states to populate.
Release details
Released on: May 23, 2026
Requires: Indigo v2023.2.0+
Downloaded: 4 times 
Changes in this release

Release 2.0.2

Released: 2026-05-23 Minimum Indigo version: 2022.1

Back to Changelog

Highlights

This release adds an optional WeatherFlow Web API integration that unlocks nine new device states unavailable from UDP, including rain-check corrected totals, rolling rain and lightning counts, and current weather conditions. It also introduces web-only mode — a way to monitor a Tempest hub on a different network by sourcing all data from the cloud API.

New Features

WeatherFlow Web API (Optional)

Enable in Plugin Preferences → Enable Web API with a free Personal Use Token from your WeatherFlow account. When active, the plugin polls the WeatherFlow REST API every 5 minutes to supplement local UDP data.

Nine new device states are added:

State Source Description
rain_today Web API Authoritative daily total — rain-check corrected by WeatherFlow servers
rain_yesterday Web API Authoritative yesterday total, rain-check corrected
rain_last_1hr Web API Rolling 60-minute rainfall total
rain_duration_today Web API Minutes of measurable rain today
rain_duration_yesterday Web API Minutes of measurable rain yesterday
conditions Web API Current weather description, e.g. "Partly Cloudy"
weather_icon Web API Icon name from WeatherFlow's forecast engine
lightning_count_last_1hr Web API Strikes in the last 60 minutes
lightning_count_last_3hr Web API Strikes in the last 3 hours

When UDP and the Web API are both active, real-time sensor readings (temperature, wind, pressure, etc.) continue to come from UDP. Web API updates rain totals and provides the web-exclusive states above.

Web-only Mode

Devices can now be configured for web-only mode — tick Web-only (hub on different network) in the device configuration and enter your Station ID. Use this when:

  • The Tempest hub is on a different network, subnet, or VLAN from the Indigo Mac
  • UDP broadcast cannot reach the Indigo Mac
  • You want a fully cloud-sourced device with no dependency on local networking

In web-only mode, all sensor readings come from the REST API, polled every 60 seconds. deviceStatus displays Active (web) when data is flowing.

Web-only devices require only a Station ID — no serial number entry is needed.

Automatic UDP Fallback

If a UDP station goes silent for more than 5 minutes, the web API automatically provides all standard sensor readings (including temperature, wind, pressure, etc.) until UDP resumes. This ensures states remain current even during temporary network interruptions.

Improvements

  • Plugin Preferences now includes a Web API section with enable toggle and API token field
  • Device configuration simplified — web-only devices no longer require a serial number to be entered manually
  • Web poller auto-restart: runConcurrentThread detects if the web poll task exits unexpectedly and restarts it automatically
  • Consecutive failure tracking: the web poller warns after 1–2 consecutive failures per station and silently suspends polling after 3. Edit and save the device to reset the counter and resume
  • Wind direction stored as cardinal abbreviation (N, NNE, NE … NNW) via an internal _degrees_to_cardinal helper
  • Plugin Menu: new List Discovered WeatherFlow Devices item — logs all currently-discovered serial numbers, models, and firmware versions to the Event Log

Documentation

  • New wiki pages: Plugin Configuration, Tempest Device Configuration, Web API
  • GitHub Actions workflow to automatically sync wiki/ from the main repo to the GitHub wiki on every push
  • README.md updated with new device states, configuration screenshots, and full wiki links
  • README.bbcode updated for the Indigo plugin forum

Upgrade Notes

  • The Web API is opt-in — the plugin continues to work without it. No configuration changes are needed for existing UDP-only setups.
  • To enable the Web API, get a free Personal Use Token from tempestwx.com → Settings → Data Authorizations and enter it in Plugin Preferences.
  • A 401 Unauthorized error from the web API means either the token is invalid or the Station ID belongs to a different account. The WeatherFlow REST API only serves stations registered to the token's account.
Release details
Released on: May 23, 2026
Requires: Indigo v2023.2.0+
Downloaded: 4 times 
Changes in this release

WeatherFlow Tempest Weather Station — Indigo Plugin

Receives live weather data from WeatherFlow Tempest stations via local UDP broadcast and maps all sensor observations to Indigo device states. No cloud account or API key is required. Everything runs on your local network.

See Wiki https://github.com/Ghawken/WeatherFlowTempest/wiki

Screenshot

WeatherFlow Device States

Indigo device states for a Tempest Weather Station showing live sensor readings and unit labels.

Features

Category What you get
Temperature Ambient, feels-like, dew point, wet bulb, wind chill, heat index, delta-T
Atmospheric Station pressure, sea-level pressure, relative humidity, vapour pressure, air density
Wind Instantaneous speed/direction (rapid-wind, ~3 s), 1-minute average, gust, lull, cardinal, sample interval
Rain Per-minute accumulation, rain rate, intensity label, daily total, yesterday's total, Rain Check status
Lightning Strike count, average distance, last-strike distance, energy and timestamp
Light Illuminance (lux), solar radiation (W/m²), UV index
Battery Voltage and percentage; power-save mode label; report interval
Derived Cloud base, freezing level (both require altitude to be set)
Diagnostics RSSI, firmware version, sensor fault flags, silence detection
Hub Firmware, Wi-Fi RSSI, uptime, reset reasons

Page Contents
[[Installation]] Requirements and install steps
[[Plugin-Configuration]] UDP port, log levels, device auto-generation
[[Tempest-Device-Configuration]] Unit selection, altitude, device picker
[[Device-States]] Every state — what it means, units, notes
[[Triggers]] Lightning, rain-start, and rapid-wind triggers
[[Rain-Data]] How daily rain is sourced and why power-save mode matters
[[Troubleshooting]] Common problems and fixes
[[Architecture]] Internal design: UDP → asyncio → Indigo

Requirements

Requirement Version
Indigo 2025.2 or later (ServerApiVersion 3.4)
WeatherFlow hub Any — must be on the same subnet as the Indigo Mac

Quick Start

  1. Install the plugin (double-click WeatherFlowTempest.indigoPlugin).
  2. Go to Plugins → WeatherFlow Tempest → Configure → Generate Devices.
  3. Done — states populate within 60 seconds of the first UDP broadcast.

See [[Installation]] for full details.

Screenshot

WeatherFlow Device States

Indigo device states for a Tempest Weather Station, showing live sensor readings and unit labels.


Requirements

Requirement Version
Indigo 2025.2 or later (ServerApiVersion 3.4)
WeatherFlow hub Any — must be on the same subnet as the Indigo Mac

Installation

  1. Download WeatherFlowTempest.indigoPlugin and double-click it to install.
  2. Indigo will prompt to enable the plugin — click Enable.
  3. The plugin begins listening on UDP port 50222 immediately. No further configuration is required to start receiving data.

Device Setup

  1. Open Plugins → WeatherFlow Tempest Weather Station → Configure.
  2. Click Generate Devices.
  3. The plugin creates one Indigo device for every Tempest and Hub currently broadcasting on the network. Devices are placed in the main Indigo device folder and can be moved afterward.
  4. Re-click the button whenever new hardware is added.

Manual device creation

  1. Go to Devices → New Device → Type: WeatherFlow Tempest Weather Station.
  2. Choose Tempest Weather Station or WeatherFlow Hub.
  3. Select your unit from the dropdown — devices are listed as soon as the hub broadcasts.
  4. Click Save.

Tip: If the device dropdown is empty, the hub has not yet sent a broadcast. Wait 30–60 seconds and use the Reload button in the dialog to refresh the list.


Tempest Device Configuration

Field Description
Tempest Device Serial number of the Tempest (ST-xxxxxxxx), discovered automatically
Altitude (m) Station elevation in metres above sea level. Used to calculate sea-level pressure, cloud base, and freezing level. Set to 0 to omit those derived states.
Units — Temperature °C or °F
Units — Pressure hPa (mbar), mmHg, or inHg
Units — Wind Speed m/s, km/h, mph, or knots
Units — Rain mm or inches

Unit selections are independent — mix and match as needed. Changes take effect on the next sensor observation (within ~1 minute). Active unit labels are reflected in the unit_temperature, unit_pressure, unit_wind, and unit_rain device states.


Device States

Tempest Weather Station

Temperature

State Description
air_temperature Ambient temperature
feels_like_temperature Apparent / feels-like temperature
dew_point_temperature Dew point
wet_bulb_temperature Wet bulb temperature
wind_chill_temperature Wind chill
heat_index Heat index
delta_t Delta-T (dry bulb minus wet bulb)

Atmospheric

State Description
relative_humidity Relative humidity (%)
station_pressure Raw station pressure
sea_level_pressure Sea-level corrected pressure (requires altitude > 0)
vapor_pressure Vapour pressure
air_density Air density (kg/m³, always metric)

Derived (require altitude > 0)

State Description
cloud_base Estimated cloud base height above station
freezing_level Estimated freezing level height above station

Light & UV

State Description
illuminance Illuminance (lux)
solar_radiation Solar irradiance (W/m²)
uv UV index

Rain

State Description
rain_accumulation_previous_minute Rain accumulated in the previous minute
rain_rate Current rain rate (mm/h or in/h)
precipitation_type none, rain, hail, or rain_hail
last_rain_start Timestamp of the most recent rain-start event (UTC)

Lightning

State Description
lightning_strike_count Strikes detected in the last 3 minutes
lightning_strike_average_distance Average distance of recent strikes
last_strike_distance Distance of the most recent strike
last_strike_energy Energy of the most recent strike

Wind

State Description
wind_speed Instantaneous wind speed (rapid-wind, ~3 s interval)
wind_average 1-minute average wind speed
wind_gust 1-minute wind gust
wind_lull 1-minute wind lull
wind_direction Instantaneous wind direction (°)
wind_direction_average 1-minute average wind direction (°)
wind_direction_cardinal Instantaneous cardinal direction (N, NE, …)
wind_direction_average_cardinal Average cardinal direction

Unit labels

State Description
unit_temperature Active temperature unit label (e.g. °C)
unit_pressure Active pressure unit label (e.g. hPa)
unit_wind Active wind speed unit label (e.g. km/h)
unit_rain Active rain unit label (e.g. mm)

Battery & power

State Description
battery Battery voltage (V)
battery_percent Battery level (%)
power_save_mode Active power-save mode name

Diagnostics

State Description
rssi Tempest RF signal strength (dBm)
hub_rssi Hub RF signal strength (dBm)
firmware_revision Tempest firmware version
hub_sn Hub serial number
up_since Device power-on timestamp (UTC)
last_report Timestamp of the most recent observation (UTC)
sensor_status Sensor fault flags, or OK
deviceStatus Active when data is flowing; Waiting for data on startup; No data — last seen N min ago if the station goes silent

WeatherFlow Hub

State Description
firmware_revision Hub firmware version
rssi Hub Wi-Fi signal strength (dBm)
up_since Hub power-on timestamp (UTC)
uptime Seconds since last boot
reset_flags Reason(s) for the last reset (comma-separated)
deviceStatus Connection status

Triggers

Three custom trigger types are available under Triggers → New Trigger → WeatherFlow Tempest Weather Station.

Each trigger includes a Tempest Device picker so it can be scoped to a specific station when you have more than one.

Lightning Strike Detected

Fires whenever the selected Tempest detects a lightning strike.

Configuration:

Field Description
Tempest Device The Tempest station to watch. Leave blank to fire for any station.

Use cases: - Send a push notification with distance and energy. - Flash a light or sound an alert. - Log strikes to a variable for counting.

Available at trigger time: The last_strike_distance, last_strike_energy, and last_strike_time device states are updated before the trigger fires, so you can read them in trigger actions.

Rain Started

Fires when the Tempest detects the onset of precipitation (the first rain-start event after a dry period).

Configuration:

Field Description
Tempest Device The Tempest station to watch.

Use cases: - Close roof vents or skylights. - Retract a pergola awning. - Send a "rain started" notification.

Note: This trigger fires from the Tempest's dedicated rain-start event, which is sent immediately when the sensor detects rain — independent of the 1-minute observation cycle. It fires once per rain onset, not repeatedly while rain continues.

The last_rain_start device state is updated when this trigger fires.

Rapid Wind Exceeds Threshold

Fires when an instantaneous wind reading meets or exceeds a configurable speed.

Rapid-wind readings arrive approximately every 3 seconds, giving near-real-time wind monitoring.

Configuration:

Field Description
Tempest Device The Tempest station to watch.
Threshold (m/s) Minimum wind speed (in m/s) required to fire the trigger.

Use cases: - Close greenhouse vents above 10 m/s. - Retract a sail shade above 15 m/s. - Log wind gusts to a time-stamped variable.

The threshold is always compared against the raw m/s magnitude regardless of the display unit set in the device configuration. Convert your target speed if needed: 1 m/s = 3.6 km/h = 2.237 mph = 1.944 kn.

Trigger Limitations

  • In power-save MODE_2 and above, rapid-wind events are not sent by the Tempest. The Rapid Wind Exceeds Threshold trigger will not fire in those modes. The wind_speed state still updates from the 1-minute observation, but at a lower frequency.
  • Lightning and rain-start triggers fire from discrete UDP events and are not affected by power-save mode.

Station Silence Detection

The plugin monitors each Tempest station for data dropouts. If no observation is received for more than 5 minutes:

  • The deviceStatus state is updated to "No data — last seen N min ago", making the outage visible in the Indigo device list without checking logs.
  • A warning is written to the Indigo Event Log.
  • The warning repeats every 30 minutes for as long as the silence continues, with an updated elapsed time.

When data resumes, deviceStatus returns to "Active" automatically on the next observation, and a recovery notice is logged.

The plugin also monitors the UDP listener itself. If the background socket task crashes for any reason, the listener is restarted automatically within 60 seconds.


Plugin Preferences

Open Plugins → WeatherFlow Tempest Weather Station → Configure.

Setting Description
Generate Devices Auto-create Indigo devices for all discovered WeatherFlow hardware
UDP Port Port the hub broadcasts on (default: 50222)
Listen Address Network interface to listen on (default: 0.0.0.0 = all interfaces)
Indigo Log Level Verbosity of messages in the Indigo Event Log
File Log Level Verbosity of messages written to the plugin log file

Saving the preferences automatically restarts the UDP listener.


Plugin Menu

Plugins → WeatherFlow Tempest Weather Station exposes two menu commands:

  • List Discovered WeatherFlow Devices — logs all currently-discovered serial numbers, models, and firmware versions to the Event Log.
  • Restart UDP Listener — stops and restarts the listener without reloading the plugin (useful after network changes).

Troubleshooting

Device dropdown is empty / "No devices discovered yet" - Confirm the WeatherFlow hub is on the same subnet as the Indigo Mac. UDP broadcast does not cross router boundaries. - Check that nothing is blocking UDP port 50222 (macOS firewall, managed switch, VLAN separation). - Wait 60 seconds — hubs broadcast a status packet roughly once per minute — then use the Reload button in the device dialog.

deviceStatus shows "No data — last seen N min ago" - The station has not sent an observation in over 5 minutes. Check the hub's power and Wi-Fi connection, and confirm the Tempest is within RF range. - Check the Indigo Event Log for listener errors. Use Plugins → WeatherFlow → Restart UDP Listener to retry without reloading the plugin.

sea_level_pressure, cloud_base, freezing_level are missing - Set Altitude (m) to a non-zero value in the Tempest device configuration.

sensor_status shows all sensors failed - This is a known reporting quirk in some Tempest firmware versions where the raw hardware register value is broadcast before the sensor self-test completes. The plugin detects this pattern and displays OK instead. If only a subset of sensors are listed as failed, that is a genuine fault.

Debug logging - Set Indigo Log Level to Debugging Messages in Plugin Preferences for verbose output in the Event Log. - The plugin log file is written independently to ~/Library/Application Support/Perceptive Automation/Indigo 2025.x/Logs/. Set File Log Level to Detailed Debugging Messages for maximum detail.


Libraries & Acknowledgements

This plugin is built on several excellent open-source libraries bundled within the plugin package:

pyweatherflowudp — v1.5.2

by Nathan Spencer (@natekspencer)

The core UDP library that handles all communication with the WeatherFlow hub. It provides an event-based asynchronous interface, parses every WeatherFlow message type (observations, rapid wind, lightning strikes, rain events, device status), and exposes sensor values as typed properties with full unit support.

All derived meteorological calculations in the plugin — dew point, wet bulb temperature, heat index, feels-like temperature, vapour pressure, air density, sea-level pressure, cloud base, and freezing level — are provided by this library.

Licensed under MIT. If you find it useful, consider supporting Nathan on Ko-fi.

Pint — v0.25.3

Physical quantity handling with units. All sensor values from pyweatherflowudp carry their native unit (e.g. metres per second, millibars) and are converted to the user's chosen display unit using Pint's unit registry. This ensures unit conversions are numerically correct and the original precision is preserved.

PsychroLib — v2.5.0

Psychrometric calculations used by pyweatherflowudp to derive wet bulb temperature and related humidity metrics from the raw sensor readings.


License

MIT — see LICENSE for details.

Developed by GlennNZ.