A custom Home Assistant integration that brings free European Earth-observation data into Home Assistant — starting with live satellite imagery from EUMETSAT's EUMETView WMS service: Geo Colour, Natural Colour, Dust, Airmass, and more, framed to your region and refreshed automatically. No account, API key, or token required.
One image entity per selected region × layer combination (e.g. image.europe_geo_colour, image.romania_dust). A region is any continent or country you enable, so you can frame the view at whatever scale you like. Each entity caches the latest PNG locally and serves it to your dashboard — these are real images, not cameras.
| Continent | Country |
|---|---|
| Europe | Romania |
| Africa | Italy |
| Middle East | Spain |
| Mediterranean | France |
| North Atlantic | Germany |
| Full Disc | United Kingdom |
| Greece | |
| Turkey | |
| Poland | |
| Portugal |
Pick any combination of continents and countries — at least one of either is required.
| Layer | EUMETView product |
|---|---|
| Geo Colour | mtg_fd:rgb_geocolour |
| Natural Colour | msg_fes:rgb_natural |
| Natural Colour Enhanced | msg_fes:rgb_naturalenhncd |
| Dust | msg_fes:rgb_dust |
| Airmass | msg_fes:rgb_airmass |
| Convection | msg_fes:rgb_convection |
| Volcanic Ash | msg_fes:rgb_ash |
| Fog / Low Clouds | msg_fes:rgb_fog |
Imagery is polled every 3 hours by default (configurable, 1–24 h).
The integration serves a self-contained Leaflet viewer that tiles EUMETView's WMS directly, so you can pan and zoom the live imagery. Add it to a dashboard with an iframe card:
type: iframe
url: /api/skywatch/map
aspect_ratio: 75%The layer switcher in the top-right lets you flip between your enabled layers.
CAMS-backed (via the free, no-token Open-Meteo Air Quality API), sampled at your Home Assistant location:
| Entity | Description |
|---|---|
sensor.skywatch_air_quality_pm10 |
PM10 (µg/m³) |
sensor.skywatch_air_quality_pm2_5 |
PM2.5 (µg/m³) |
sensor.skywatch_air_quality_dust |
Mineral dust (µg/m³) |
sensor.skywatch_air_quality_aerosol_optical_depth |
Aerosol optical depth |
binary_sensor.skywatch_air_quality_dust_hazard |
On when dust ≥ 50 µg/m³ |
- Open HACS in your Home Assistant instance.
- Go to Integrations → ⋮ → Custom repositories.
- Add
https://github.com/leonardpitzu/homeassistant_skywatchas an Integration. - Search for SkyWatch and install it.
- Restart Home Assistant.
- Copy the
custom_components/skywatchfolder into your Home Assistantconfig/custom_components/directory. - Restart Home Assistant.
- Go to Settings → Devices & Services → Add Integration.
- Search for SkyWatch.
- Select the continents and/or countries, the imagery layers you want, and a refresh interval — no credentials are needed (EUMETView data is public).
Only a single instance of the integration is allowed.
You can change continents, countries, layers, and the refresh interval at any time via Settings → Devices & Services → SkyWatch → Configure.
- Display each view with a Picture Entity card for a clean continent or regional snapshot.
- Pair a wide Europe Geo Colour image with a tighter Romania Dust image side by side for context plus detail.
- Use a conditional card to surface the Dust or Convection view only when a companion hazard sensor (planned, Copernicus CAMS) reports an incoming event.
- Trigger automations (e.g. a mobile notification) off those hazard sensors once available.
A complete sections view that combines the interactive map, a couple of image entities, and the air-quality tiles. Add it as a new view (Edit dashboard → + Add view → Edit in YAML) and adjust the entity ids to the regions and layers you enabled:
type: sections
title: Satellite
path: satellite
icon: mdi:satellite-variant
max_columns: 4
sections:
- title: Interactive map
type: grid
cards:
- type: iframe
url: /api/skywatch/map
aspect_ratio: 75%
grid_options:
columns: full
- title: Europe
type: grid
cards:
- type: picture-entity
entity: image.skywatch_europe_geo_colour
name: Geo Colour
show_state: false
- type: picture-entity
entity: image.skywatch_europe_dust
name: Dust
show_state: false
- title: Air quality
type: grid
cards:
- type: tile
entity: sensor.skywatch_air_quality_dust
- type: tile
entity: sensor.skywatch_air_quality_pm10
- type: tile
entity: binary_sensor.skywatch_air_quality_dust_hazardThe
imageentity ids follow the patternimage.skywatch_<region>_<layer>(e.g.image.skywatch_romania_natural_colour). Open Developer Tools → States and filter byskywatchto see the exact ids for your configuration.
This project is licensed under the MIT License — see the LICENSE file for details.