Skip to content
This repository was archived by the owner on Jun 24, 2026. It is now read-only.

Repository files navigation

SkyWatch for Home Assistant

hacs_badge

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.

Features

Image entities

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).

Interactive pan/zoom map

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.

Air-quality / dust hazard

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³

Installation

HACS (recommended)

  1. Open HACS in your Home Assistant instance.
  2. Go to IntegrationsCustom repositories.
  3. Add https://github.com/leonardpitzu/homeassistant_skywatch as an Integration.
  4. Search for SkyWatch and install it.
  5. Restart Home Assistant.

Manual

  1. Copy the custom_components/skywatch folder into your Home Assistant config/custom_components/ directory.
  2. Restart Home Assistant.

Configuration

  1. Go to SettingsDevices & ServicesAdd Integration.
  2. Search for SkyWatch.
  3. 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 SettingsDevices & ServicesSkyWatchConfigure.

Dashboard ideas

  • 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.

Example dashboard

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 viewEdit 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_hazard

The image entity ids follow the pattern image.skywatch_<region>_<layer> (e.g. image.skywatch_romania_natural_colour). Open Developer Tools → States and filter by skywatch to see the exact ids for your configuration.

License

This project is licensed under the MIT License — see the LICENSE file for details.

About

free European satellite imagery & CAMS air-quality for Home Assistant (EUMETSAT EUMETView, no token)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages