Weather Severe Watch
Daily forecast check that fires tiered alerts based on temperature extremes and dangerous weather wording.
What it does
Every day (default 08:00 — edit the schedule when you install), the monitor
calls weather-forecast for the configured location. The when: block has
three tiered arms that run top-to-bottom; the first one that matches wins:
- Extreme cold —
temperature ≤ 32°F(freezing) - Extreme heat —
temperature ≥ 95°F - Storm wording —
conditions contains "storm"(case-sensitive substring match against the forecast's condition string) - Else — quiet (
nothing:— no notification noise on normal days)
This is the canonical "multi-arm tiered alert" pattern. Only ONE arm fires per fire, so a heat-stricken stormy day will notify on the heat arm (first match) and skip the storm arm.
Edit before installing
In monitor.yaml:
check.args.latitude/longitude— set to your coordinates.40.7128, -74.0060is New York.check.args.location— friendly name shown in subjects/bodies.- Adjust the three thresholds to your climate. The
weather-forecasttool reports °F (temperature_unit=fahrenheit), so thresholds are °F:≤ 32(freezing) and≥ 95(severe heat). For a temperate climate you might prefer≤ 10and≥ 100. - The
stormsubstring match is loose — tighten withtornado,hurricane,blizzard, etc. for narrower alerts.
Bindings used
{{check.temperature}}— current temperature in °F (number).{{check.conditions}}— short conditions string (e.g. "clear sky", "moderate rain").{{check.forecast}}— formatted multi-line forecast.{{monitor.firedAt}}— fire timestamp.
The weather-forecast tool publishes these three fields; see the tool's README
for full output detail.
Tool used
weather-forecast — hub-installed YAML tool
backed by Open-Meteo. No API key required.
Pattern showcase
This monitor demonstrates the multi-arm tiered alert shape — useful any time you want different severities to produce different notifications. The ordering matters: put the most severe / specific arms first so they win over broader fallbacks.