A Home Assistant integration for sun-based calendar systems: precise astronomical seasons, the Celtic Wheel of the Year, and the Chinese solar terms — with exact timestamps, countdowns and daylight-trend tracking.
Upgrading from "Solstice Season" (v1.x)? SolsticeHub is the renamed successor. The domain changed, so a manual migration is required — see Migrating from Solstice Season.
Home Assistant's built-in Season integration provides only the current astronomical/meteorological season. SolsticeHub adds detail and more calendar systems, all calculated locally with PyEphem — no internet connection required.
When you add the integration you pick a device type. Each instance creates one device with its own sensors; you can add several (e.g. one Four Seasons and one Chinese Solar Terms device).
| Device type | What you get |
|---|---|
| Four Seasons | Current season + timestamps for each equinox/solstice + next season change |
| Cross-Quarter / Celtic | The Wheel of the Year (Imbolc, Ostara, Beltane, Litha, Lughnasadh, Mabon, Samhain, Yule) |
| Chinese Solar Terms | The 24 solar terms (or the 8 major ones) |
Every device additionally exposes the shared sun-data sensors: a daylight trend (are the days getting longer or shorter?), the timestamp of the next trend change (the next solstice), and a diagnostic solar-longitude sensor (disabled by default).
- Click the button above, or search for SolsticeHub in HACS
- Install the integration and restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for SolsticeHub and follow the setup wizard
- Download the latest release from GitHub Releases
- Copy
custom_components/solsticehubinto yourconfig/custom_components/directory - Restart Home Assistant and add the integration via the UI
Configuration is done entirely through the UI. Step 1 asks for the device type; step 2 collects type-specific options. You name the device (and assign an area) in Home Assistant's standard final step.
| Device type | Options |
|---|---|
| Four Seasons | Hemisphere (auto-filled from your Home location), Mode (astronomical / meteorological) |
| Cross-Quarter | Mode (astronomical midpoints / traditional fixed dates), Naming (system language / Celtic) |
| Chinese Solar Terms | Scope (all 24 / 8 major), Naming (system language / Pinyin / Hanzi) |
- Astronomical – seasons begin at the exact equinoxes and solstices (dates shift slightly each year). Calculated with PyEphem.
- Meteorological – seasons begin on fixed calendar dates (Mar/Jun/Sep/Dec 1st, offset by six months in the southern hemisphere).
Hemisphere mapping is handled automatically. For the full reasoning and the hemisphere/daylight-trend details, see TECHNICAL_REFERENCE.md.
These three sensors describe the sun itself, independent of any calendar, so every device you add includes its own copy — whether it's a Four Seasons, Cross-Quarter or Chinese device. That way a single device gives you both the calendar and "is the day getting longer", with no extra setup.
I deliberately chose to let these sensors appear more than once if you add several devices, because it's a simpler and — in my view — more user-friendly approach than introducing a separate device just for them or applying other "tricks". If it bothers you, the duplicates are harmless and you can disable the extra ones per entity. I'm always open to suggestions for improvement.
| Entity | Type | Description |
|---|---|---|
daylight_trend |
enum | days_getting_longer / days_getting_shorter / solstice_today |
next_daylight_trend_change |
timestamp | The next solstice (turning point of the trend) |
solar_longitude |
measurement (°) | Ecliptic longitude of the Sun (diagnostic, disabled by default) |
| Entity | Type | Notable attributes |
|---|---|---|
current_season |
enum (spring/summer/autumn/winter) |
mode, hemisphere, season_age, season_progress |
spring_equinox, summer_solstice, autumn_equinox, winter_solstice |
timestamp | days_until, last_start |
next_season_change |
timestamp | days_until, event_type |
| Entity | Type | Notable attributes |
|---|---|---|
current_period |
enum (the eight festivals) | mode, period_age, events |
next_period_change |
timestamp | days_until, event_type |
| Entity | Type | Notable attributes |
|---|---|---|
current_term |
enum (24 or 8 terms) | scope, term_age, events |
next_term_change |
timestamp | days_until, event_type |
All timestamps are stored in UTC; Home Assistant displays them in your local timezone.
SolsticeHub is the renamed successor of the Solstice Season integration. The
Home Assistant domain changed from solstice_season to solsticehub, so Home
Assistant treats it as a new integration and cannot migrate your configuration
automatically. A one-time manual switch is required:
- (Optional) Note your current device type and options, and which automations or dashboards use the old entities.
- Update to v2.0.0 (HACS shows it as an update of the same repository).
- Remove the old Solstice Season integration: Settings → Devices & Services → Solstice Season → ⋮ → Delete.
- Restart Home Assistant.
- Add SolsticeHub: Settings → Devices & Services → Add Integration → SolsticeHub, then choose your device type and options.
- Repoint your automations and dashboards to the new entities.
Your old entities' long-term statistics / history are not carried over. The previous v1.x behaviour corresponds to the Four Seasons device type.
Sensor display names and states are translated via Home Assistant's translation system, following your user language. Currently supported: English (fallback), German, Dutch. The default device name suggested on setup follows your Home Assistant system language.
Entity IDs are always English (e.g. sensor.four_seasons_astronomical_current_season),
regardless of the language — so automations and dashboards keep working if you
change the language.
- Technical reference: TECHNICAL_REFERENCE.md
- Release history: RELEASENOTES.md (v1.x: RELEASENOTES_v1.md)
MIT — see LICENSE.
- Inspired by the Home Assistant Season integration
- Astronomical calculations powered by PyEphem