Fire uafhængige DMI-vejrvarsler i Home Assistant
Indbygget MeteoAlarm viser ét varsel ad gangen. cap_alerts giver én entitet pr. DMI-varsel: opsætning for storm, skybrud, snestorm og hedebølge.
Den aften, jeg byggede det her, havde DMI to gule varsler for mit område på samme tid: torden indtil kl. 20 og høj varme indtil kl. 18. Home Assistant har en indbygget MeteoAlarm-integration, som burde vise begge, men den kan kun vise ét varsel ad gangen. Det andet forsvinder bare.
Det er ikke en konfigurationsfejl. Det er core issue #131045: integrationen giver én binær sensor pr. region, og når der er flere aktive varsler, vinder ét af dem. Til et dashboard, der skal skelne mellem storm, skybrud, snestorm og hedebølge, er det ubrugeligt.
cap_alerts: én entitet pr. aktivt varsel
Løsningen er cap_alerts, en lille brugerdefineret integration fra HACS. Den bygger varslerne op efter CAP-standarden (Common Alerting Protocol) og opretter én sensor pr. aktivt varsel i stedet for at presse alt ind i én.
Installation: HACS → Custom repositories → seevee/cap_alerts, kategori Integration, og genstart. I opsætningen vælger du MeteoAlarm som kilde, land DK og derefter et filter for regionen.
Fælden med regionen: «Trekantområdet» findes ikke
Jeg bor i Kolding Kommune og var overbevist om, at min varslingsregion hed «Trekantområdet». Det gør den ikke, den findes slet ikke i MeteoAlarm. Danmark har præcis 8 regioner på land (plus cirka 20 farvandszoner):
| EMMA_ID | Region |
|---|---|
| DK001 | Nordjylland |
| DK002 | Midt- og Vestjylland |
| DK003 | Bornholm |
| DK004 | Østjylland |
| DK005 | Syd- og Sønderjylland |
| DK006 | Fyn |
| DK007 | Vest- og Sydsjælland samt Lolland-Falster |
| DK008 | København og Nordsjælland |
Tjek selv i det aktuelle feed på feeds.meteoalarm.org, og søg efter din egn i felterne areaDesc i stedet for at gætte. Kolding hører til DK005.
Pas på: DMI's grønne «ingen varsler» gælder alle regioner
Den første hentning gav mig 69 entiteter, og næsten alle var «green Rain», «green Fog» og «green High temperature». DMI sender faste beskeder om, at «There are currently no active warnings», for hver type varsel, og de er mærket med alle regionskoder. De slipper altså igennem ethvert filter for region.
Det betyder, at du ikke kan nøjes med at filtrere på region. Du skal filtrere på awareness_level: 1 er grøn (intet varsel), 2 er gul, 3 er orange og 4 er rød.
Fire typer fare som faste binære sensorer
Entiteterne fra cap_alerts kommer og går med tilfældige endelser (sensor.cap_alerts_meteoalarm_cap_alert_yellow_thunderstorm_8907cd01) og forsvinder, når varslet udløber. Dem kan man ikke skrive direkte ind i et kort. I stedet bruger jeg fire binære template-sensorer, én pr. type fare, som gennemgår alle cap_alerts-entiteter og læser awareness_type og awareness_level ud af parametrene:
{% set ns = namespace(hit=false) %}
{% for s in states.sensor if 'cap_alerts_meteoalarm_cap_alert' in s.entity_id %}
{% set p = s.attributes.get('parameters', {}) %}
{% set lvl = (p.get('awareness_level','0').split(';')[0] | trim | int(0)) %}
{% set typ = (p.get('awareness_type','0').split(';')[0] | trim | int(0)) %}
{% if lvl >= 2 and typ in [1, 3] and 'DK005' in (s.attributes.get('geocode_same') or []) %}
{% set ns.hit = true %}
{% endif %}
{% endfor %}
{{ ns.hit }}
Det er templaten for binary_sensor.jordrup_wind_warning (oprettet som template-hjælper i brugerfladen, ingen YAML-filer). Koderne for awareness_type: 1 vind, 2 sne og is, 3 torden, 5 varme og 10/12/13 regn og oversvømmelse. Jeg lod med vilje torden (3) tælle med under storm. DMI sender varsler om kraftige vindstød som «Thunderstorm», og et rent vindfilter ville have skjult det aktive varsel den aften.
De fire sensorer er jordrup_wind_warning (1 og 3), jordrup_rain_flood_warning (10, 12 og 13), jordrup_snow_ice_warning (2) og jordrup_heat_warning (5).
Kortet med de skiftende varsler
Med faste binære sensorer er dashboardet nemt. Jeg bruger AlertTicker-Card, som skifter mellem de aktive varsler:
type: custom:alert-ticker-card
cycle_interval: 6
alerts:
- entity: binary_sensor.jordrup_wind_warning
state: "on"
message: "⚠️ Storm / High Wind Warning"
priority: 1
theme: emergency
- entity: binary_sensor.jordrup_rain_flood_warning
state: "on"
message: "🌧️ Heavy Rain / Flash Flood Alert"
priority: 2
theme: warning
- entity: binary_sensor.jordrup_snow_ice_warning
state: "on"
message: "❄️ Severe Snow / Ice Warning"
priority: 2
theme: warning
- entity: binary_sensor.jordrup_heat_warning
state: "on"
message: "🌡️ Extreme Heat Warning"
priority: 3
theme: warning
Da jeg tog skærmbilledet øverst, skiftede den mellem varslerne om storm og varme: to uafhængige farer på samme tid, hver med sin prioritet. Det var hele pointen.
Begrænsningerne, ærligt talt
cap_alerts henter data hvert 5. minut (det kan ændres), så et helt nyt varsel kan komme et par minutter for sent. Regionerne er grove: DK005 dækker hele Syd- og Sønderjylland, ikke din grund (cap_alerts har også et filter med et GPS-område, hvis du vil være mere præcis). Og mine sensorer slår til fra gult niveau og op. Vil du kun have orange og rød, ændrer du lvl >= 2 til 3.
Nye indlæg direkte i din RSS-læser: følg med via RSS I Google-søgning: vælg szimnau.dk som foretrukken kilde