Alerts & warnings
Show official weather warnings on your site, and get an email or a webhook when your own station crosses a threshold, moves too fast, or something happens.
Pro Weather can keep you and your visitors informed two ways: severe-weather warnings shown on your public site, and your own alerts, sent to you when your station reports something you asked to hear about.
Severe-weather warnings on your site
When enabled, your site shows official severe-weather warnings for your station's area, colour-coded by severity:
- Yellow: Be aware
- Orange: Be prepared
- Red: Take action
Warnings appear as a compact banner that visitors can expand for details or dismiss for their visit, and the banner is simply hidden when nothing is active. Warnings come from MeteoAlarm (the official European network, covering nearly every European country) or the US National Weather Service, depending on where your station is, and refresh about every 5 minutes. In the US, warnings are matched to your station's exact coordinates; in Europe, they cover your station's country.
Turn this on under Settings → Weather features → Severe-weather warnings. It needs your station's location, which comes from WeatherLink.
Your own alerts
Your alerts notify you (the site owner), not your visitors. They are checked on every data refresh, about every 5 minutes, and you get one notification per episode: an alert re-arms only once the condition clears (and waits at least 30 minutes between notifications), so a value hovering around your threshold won't flood your inbox.
Alerts are part of the Pro plan (and your free trial). You can add up to 25 alerts per site, toggle each one on or off, and delete the ones you no longer need.
Setting up an alert
- Open your site in the dashboard and go to Alerts.
- Under Alert me when, choose a condition.
- Enter a threshold, if that condition needs one.
- Choose how to be notified, and whether it should repeat while it lasts.
- Choose Add alert.
The three kinds of alert
Thresholds fire when a reading crosses a level you set. Thresholds use your site's unit system.
| Group | You can alert on |
|---|---|
| Temperature | Temperature above or below, feels-like above or below, dew point above, indoor temperature above or below |
| Humidity | Humidity above or below, indoor humidity above |
| Pressure | Pressure above or below |
| Wind | Gust above, average wind above |
| Rain | Rain today above, rain rate above |
| Sun | UV index above, solar radiation above |
| Air quality | PM2.5 above, PM10 above, CO₂ above |
| Accessory sensors | Soil moisture below, soil tension above, soil temperature below, leaf wetness above, any extra sensor above or below, any extra humidity above, lightning closer than, lightning strikes today above, a water leak detector went wet |
| Station health | Data older than, battery below, reception below |
Rate-of-change alerts fire when a reading moves by more than you allow inside a fixed window. These are the actual storm signals, and a plain threshold cannot express them:
- Pressure falling or rising faster than a set amount over 3 hours. A 3 hPa fall in 3 hours is the classic gale signal at sea.
- Temperature falling or rising faster than a set amount over 1 hour: a front arriving, or an evening the ground is about to freeze.
A rate-of-change alert needs its whole window of readings before it can fire, so give a new 3-hour alert about 3 hours before expecting anything from it.
Events fire when something happens. They have no threshold:
- It started raining. Re-arms when the rain stops, so one shower is one notification.
- An all-time record was broken. Checked against your almanac, which never counts today. A second record falling the same day notifies again.
- A reading was rejected as a spike. Needs spike limits set under Calibration. A failing sensor usually spikes before it dies for good.
- A weather-service upload is failing. Names the service and the error, so a rejected password at Weather Underground or anywhere else doesn't go unnoticed for a month.
Repeating while it lasts
By default an alert notifies once and then goes quiet until the condition clears. Set While it lasts to repeat every hour, 3, 6 or 12 hours, or once a day, for as long as it stays true. That is what you want for a station that has gone offline, or a frost that lasts all night.
Accessory sensor channels
Soil, leaf and extra-room alerts watch every channel at once and notify on the worst one, naming it. One "soil moisture below 20%" alert covers all eight probes, and the notification tells you it was channel 3.
Soil probes come in two flavours and never answer each other's alert. Percent probes (Ecowitt WH51 and the like) use soil moisture below. Davis centibar probes, where a higher number means drier ground, use soil tension above.
If your station goes quiet
When a data fetch fails or a push gateway falls silent, weather thresholds are not evaluated: a temperature read off an hour-old snapshot is not a measurement. The three station health alerts still are, which is exactly when they matter. That is why Data older than is worth setting on every site.
Delivery
The default. Notifications go to your account's email address.
Webhooks
A webhook has an alert call your server, so an alarm can do something: flip a smart plug, page a phone, close a greenhouse vent, post to a chat room.
Add one endpoint per site under Alerts → Webhook, then set any alert's Notify by to Webhook or Email + webhook. Use Send test to wire up your receiver before the weather does it for you.
Each notification is a POST with a JSON body:
{
"version": 1,
"event": "alert.triggered",
"firedAt": "2026-08-03T04:12:07.881Z",
"site": {
"subdomain": "ardooie",
"title": "Ardooie Meteo",
"url": "https://ardooie.pro-weather.com"
},
"alert": {
"id": "clx0alertruleid",
"metric": "tempLow",
"label": "Temperature below",
"kind": "threshold",
"reminder": false
},
"reading": { "value": -1.4, "text": "-1.4 °C", "unit": "°C", "detail": null },
"threshold": { "value": 0, "text": "0.0 °C" },
"observedAt": 1754194320
}reading.value and reading.text are null for an event alert, which reports
an occurrence rather than a number; reading.detail carries the specifics
(which channel, which record, which upload). alert.reminder is true when
the notification is a repeat of a condition already reported.
Verifying the signature. Every request carries three headers:
| Header | Meaning |
|---|---|
X-ProWeather-Event | alert.triggered or alert.test |
X-ProWeather-Timestamp | Unix seconds at which we signed the request |
X-ProWeather-Signature | sha256= followed by the hex HMAC-SHA256 of <timestamp>.<raw body>, keyed with your signing secret |
Compute the same HMAC over the raw body (before any JSON parsing) and compare it with a constant-time comparison. Reject anything whose timestamp is more than a few minutes old, so a captured request cannot be replayed at you.
import { createHmac, timingSafeEqual } from 'node:crypto';
function verify(rawBody, headers, secret) {
const ts = Number(headers['x-proweather-timestamp']);
if (!Number.isFinite(ts) || Math.abs(Date.now() / 1000 - ts) > 300) return false;
const expected = `sha256=${createHmac('sha256', secret)
.update(`${ts}.${rawBody}`)
.digest('hex')}`;
const a = Buffer.from(expected);
const b = Buffer.from(headers['x-proweather-signature'] ?? '');
return a.length === b.length && timingSafeEqual(a, b);
}The signing secret is generated for you and shown under Alerts → Webhook. Changing the URL keeps the same secret, so a receiver that already verifies signatures does not break.
Some limits worth knowing: the endpoint must be HTTPS, it cannot point at a private network address, redirects are not followed, and we wait 6 seconds for a response. There is no retry queue: a failed delivery leaves the alert unlatched, so the next refresh tries again while the condition still holds.
Monthly summary
Pro subscribers also receive an automatic monthly station summary by email in the first days of each month: the previous month's warmest day, average high, coldest night, total rain, rain days and strongest gust. It's sent once the month has at least a week of measured days.
Next steps
- Sensor calibration and spike limits
- Choose which tabs and tiles appear
- Troubleshooting if alert emails don't arrive
- Plans & billing
