Astronomy Space Suite — I pointed Home Assistant at the solar system

Some people put a weather station on the roof. I pointed Home Assistant at the solar system.

Astronomy Space Suite is a custom Home Assistant integration I built to bring live space data into my house: 258+ entities, 7 cameras and 15 custom Lovelace cards YES 15 :slight_smile: — from coronal mass ejections to which galaxies are actually above my roof tonight.

And yes, I know what the acronym spells. No, I’m not changing it.

What it tracks

  • 17+ NASA sensors — Astronomy Picture of the Day, Near Earth Objects, coronal mass ejections, solar flares, geomagnetic storms and Earth events
  • 120+ ephemeris sensors — the Sun, the Moon, and every planet from Mercury to Neptune
  • 121 deep-sky sensors — 30 deep-sky objects, each with altitude, azimuth, transit time and a visibility score
  • 7 live cameras — EPIC, GOES-16, GOES-18, Himawari-8, SDO and SOHO

The part I’m most pleased with

241 of those 258 entities need no API at all.

The ephemeris and deep-sky engines calculate everything locally: orbital positions, transit times, illumination and visibility scoring. No API key, no rate limit, no third party to go down. If the internet drops, the sky map still knows exactly where Andromeda is.

Only the NASA feeds need a key, and that key is free.

It doesn’t touch your setup

This was a hard rule for me.

Every entity is namespaced. Every card renders inside its own Shadow DOM, so there is no global CSS bleeding into your dashboards. It does not modify your existing dashboards, resources or integrations.

Install it, and if you hate it, remove it. Nothing else changes.

A tour, with real data

Every screenshot is from my own live Home Assistant instance. Nothing is mocked, nothing is a design comp — the asteroid really is 649 metres across, and the Sun really did throw an M3.0 flare the day before I took these.

Solar Activity — CMEs, solar flares, geomagnetic storms, KP index and live solar imagery in one dashboard view.

Near Earth Objects — seven asteroids on approach. 337075 (1998 QC1) is flagged hazardous: 649 metres across, travelling at 84,000 km/h, passing at 50.66 million km.

Sky Map — a polar projection of what is actually overhead right now. Twenty-one objects above the horizon tonight, including Andromeda, the Pleiades and the North America Nebula.

Solar System — a real-time heliocentric orrery. Every planet’s position comes from orbital mechanics calculated locally, with live distances in astronomical units.

Earth & Sun Observation — full-disk natural colour Earth from NASA’s EPIC camera aboard DSCOVR, with GOES-16, GOES-18, Himawari-8, SDO and SOHO all one tap away.

It also includes lunar phase, ISS tracking, horizon arc, rocket launches, APOD, deep-sky tables, a 3D sky dome and more custom Lovelace cards.

Install

HACS → custom repository → snfx-johaver/home-assistant-astronomy-suite → category Integration → Download → restart Home Assistant → add a free NASA API key from https://api.nasa.gov.

Repository, docs and card configuration examples:

Built for my own roof, in the Netherlands.

Clear skies.

9 Likes

241 astronomical entities being calculated fully locally and displayed onto up to 15 custom cards, what are the hardware requirements for that?

Pretty cool stuff, I’ll give it a try soon enough

…

Forgive me. I’m a child :rofl:

5 Likes

:+1: Nice :+1:
works like a charm so far, the only thing that doesn´t work for me is the ISS Position entity.

couldn´t see a difference in cpu or ram usage :sweat_smile:

Does the ISS entity itself not work or the card? the sensor sometimes misses an update but thats a downstream issue. its why I made the card show the last known position :slight_smile:
But I also know the card needs some improvement, I was trying to get it to draw the line of the path of the ISS on the card but so far no luck showing that well, the ISS sensor works but it updates less frequent than i’d liked.

Okay but exept for looking i do not what, it it useful? Like are that data reliable or just so it looks nice? beacause the screenshot looks like an AI Slop…

yes the data is reliable and the sensors accurate.

1 Like

And what it is useful for?

Heres a full view, If your interested in space , anything from where the ISS is, what you can see over your home in the night sky right now. which rockets launching when and where. position of the planets in the solar system . sun , moon elevation etc. and what ever automation you can think of coming from these sensors.
and yes I used some AI assisted coding, but who cares :slight_smile:

2 Likes

Oh, looks good.
But i rather do real astronomy things that looking where is ISS, i am now working on: GitHub - jan-tdy/ha-indi-client: An Home Assistant client for INDI · GitHub

1 Like

the card works now.
the sensor is unavailable sometimes and the card don’t show the image while its unavailable.

Earth Observation Can you add or provide option to change to cameras that cover UK and Europe ?

if you can give me the earth observation urls ofcourse :slight_smile:

This is what Perplexity tells me !
Add a new Earth Observation source and tab, for example: METEOSAT-12

Display a single full Earth disc, with black surround, from EUMETSAT’s Meteosat-12 geostationary viewpoint at 0 degrees longitude. This naturally centres Europe, the Mediterranean and North Africa—equivalent in presentation to the existing NASA EPIC image, but from the European satellite perspective.

The selected imagery product is:

Provider: EUMETSAT

Satellite: Meteosat-12 / MTG-I

Product: GeoColour RGB — MTG — 0 degree

WMS layer: mtg_fd:rgb_geocolour

GeoColour is a day/night composite: it uses natural-looking RGB imagery in daylight and thermal infrared-derived cloud imagery over a static NASA Black Marble background at night. When displayed outside EUMETView, EUMETSAT asks that both EUMETSAT and NASA are credited.

Confirmed live image URL

This is the tested browser-ready request that returns a complete square globe PNG:

Parameters that must be retained:
Parameter
Required value
Purpose
layers
mtg_fd:rgb_geocolour
Meteosat-12 GeoColour full-disc layer.
bbox
-6500000,-6500000,6500000,6500000
Square full-disc extent in the native geostationary coordinate system.
width, height
Equal square dimensions, e.g. 1800 x 1800
Preserves the circular Earth limb.
srs / SRS
AUTO:97004,9001,0,0
Geostationary satellite projection centred at longitude 0 degrees.
format
image/png
Supports clean black/transparent off-disc background.
bgcolor
0x000000
Black background outside the Earth disc.

Do not substitute EPSG:4326, Web Mercator or a normal world-map projection: those reproject the satellite image onto a flat map and cause the repeating/distorted view seen in EUMETView.

Recommended URL in integration

For a Home Assistant camera, I suggest the following directly in the camera update logic:

python

METEOSAT_12_GEOCOLOR_URL = (

"https://view.eumetsat.int/geoserver/wms?"

"service=WMS&version=1.3.0&request=GetMap"

"&layers=mtg_fd:rgb_geocolour"

"&bbox=-6500000,-6500000,6500000,6500000"

"&width=1800&height=1800"

"&srs=AUTO:97004,9001,0,0"

"&styles=&format=image/png&bgcolor=0x000000"

)

A 1200 x 1200 or 1800 x 1800 PNG is appropriate for a Lovelace camera card. Avoid requesting an unnecessarily large source image on every update, because it increases EUMETSAT and Home Assistant bandwidth/memory use without visible dashboard benefit.

Refresh and caching

Meteosat-12 full-disc imagery is produced on a 10-minute cadence. Poll it every 10 minutes, cache the downloaded bytes locally, and continue to serve the most recent valid image if a request temporarily fails. EUMETSAT’s WMS fixed-URL guidance specifically supports automatic downloads of the latest image using scheduled tasks at the source product’s update interval.

Recommended behaviour:

Update interval: 10 minutes

Timeout: 20–30 seconds

On fetch error: keep last successful PNG

Camera image served: cached image bytes, not a browser redirect

No TIME parameter is needed for “latest”; EUMETSAT returns the latest available image when it is omitted. To retrieve an archived image, append, for example:

                &time=2026-09-08T10:40:00.000Z

using UTC ISO-8601 format.

Entity and card changes

Expose the source as a standard camera entity:

                camera.astronomy_space_suite_meteosat_12_earth

Suggested display name:

                Meteosat-12 — Europe & Africa

Add this tab beside the existing EPIC, GOES-16, GOES-18 and Himawari choices:

text

type: custom:earth-observation-card

epic_entity: camera.astronomy_space_suite_epic_earth

goes_entity: camera.astronomy_space_suite_goes_16_earth

goes18_entity: camera.astronomy_space_suite_goes_18_earth

himawari_entity: camera.astronomy_space_suite_himawari_8_earth

meteosat_entity: camera.astronomy_space_suite_meteosat_12_earth

The card should render it with:

css

object-fit: contain;

background: #000;

It must not apply object-fit: cover, a forced 16:9/4:3 frame, or crop the top/bottom/edges. The image is deliberately square and its Earth limb needs to remain fully visible.

Attribution

Under the image, use:

                Source: EUMETSAT Meteosat-12 GeoColour; NASA Black Marble background

Or a compact alternative:

                © EUMETSAT / NASA

The imagery’s product information explicitly requests credit to both EUMETSAT and NASA for external use of GeoColour imagery or animation.

Developer verification

Before committing, open this exact URL in a normal browser:

Expected result:

  • One complete circular Earth disc—not a repeated flat world map.
  • Europe, North Africa and the Mediterranean broadly central.
  • Black surrounding area outside the limb.
  • Natural colours in daylit areas; night representation on the dark side.
  • A fresh image becoming available approximately every 10 minutes.

playing around with the cards, noticed a map issue that HA itself also had until september release:


the api key required message and no map. Not major, but maybe fixable for you

and request for deep skey objects, can ‘magnitude’ and ‘angular diameter’ be added somehow? would like sorting on those metrics (or even filter)

@snfx

Hi! I’m using your Astronomy Space Suite integration in Home Assistant, and I really like the functionality and layout.

Would it be possible to add an option to customize the card appearance, especially a transparent “glass mode” with translucent backgrounds, rounded borders, subtle glow, and no solid gray background?

This would make the cards fit better with modern dark dashboards and glassmorphism-style themes.
Ideally, the option could be enabled globally or individually for each card, while preserving the current functionality and layout.

Thank you for creating and maintaining this excellent project.

Just installed your integration, thank you & well done!!

I was just wondering, @snfx, could you please share the dashboard YAML with us?
It looks very cool!

It’s in the repo. Easy copy.paste

1 Like

@hotsauce yes i’ll fix this in next release