A comprehensive Home Assistant integration providing 30+ alternative time systems from science, science fiction, fantasy, history, religion, and various cultures. Transform your Home Assistant into a universal time machine!
Transform your Home Assistant into a multiversal clock supporting:
- 🪐 Solar System Tracker (Real-time planetary positions with visual maps)
- 🚀 Science Fiction (Star Trek, Star Wars, EVE Online, Warhammer 40K)
- 🧙 Fantasy Worlds (Tolkien, Elder Scrolls, Discworld, Warcraft)
- 🛏️ Historical Calendars (Maya, Egyptian, Attic, Roman, French Revolutionary)
- 🔴 Mars Colonization (Darian Calendar, Mars Time Zones)
- 🌏 Cultural Calendars (Islamic, Thai, Taiwanese, Chinese, Japanese, Hindu, Ethiopian)
- 💻 Technical Formats (Unix, Hexadecimal, Julian Date, Swatch, TAI, UT1)
- 🎖️ Military Systems (NATO DTG in multiple formats)
- Continuous atomic timescale: No leap seconds
- Related time systems: GPS Time, Terrestrial Time (TT)
- Leap second history: Complete since 1972
- Options: UTC offset display, GPS time, time format
- Example:
2026-01-05T00:36:52 TAI
- Earth rotation time: Based on actual Earth rotation
- IERS REST API integration: Real-time DUT1 values
- Intelligent caching: Configurable 5 min to 24 hours
- Fallback values: Works offline
- Earth Rotation Angle (ERA): Calculated in real-time
- Options: DUT1 display, UTC comparison, cache duration
- Example:
2026-01-05T00:43:31.767 UT1
- 13-month calendar: 12 × 30 days + Pagume (5-6 days)
- Native script support: Ge'ez/Amharic month and weekday names
- Ge'ez numerals: Ethiopian number system (፩፪፫...)
- Multiple formats: Full, Short, Ge'ez Full
- Holiday support: Major holidays included
- Example:
15 መስከረም 2017or፲፭ መስከረም ፳፻፲፯
- "You are here" marker: Earth position clearly marked
- Corrected month orientation: January now at top
- Improved planet positions: More accurate calculations
- Streamlined visualization: Cleaner display
- Open HACS in your Home Assistant
- Click the three dots menu → Custom repositories
- Add URL:
https://github.com/Lexorius/alternative_time - Category: Integration
- Click Add
- Search for Alternative Time Systems and install
- Restart Home Assistant
- Download the
alternative_timefolder - Copy to
/config/custom_components/ - Restart Home Assistant
- Go to Settings → Devices & Services
- Click Add Integration
- Search for Alternative Time Systems
- Follow the configuration wizard:
- Step 1: Name your instance
- Step 2: Select calendar categories
- Step 3: Choose specific calendars
- Step 4: Configure individual calendar options
- Step 5: Review disclaimer
- Click Submit
- Go to Settings → Devices & Services
- Find your Alternative Time Systems instance
- Click Configure
- Select the calendar you want to modify
- Adjust the settings
- Click Submit - changes apply immediately!
- Real-time tracking: All planets, Pluto, Voyager probes
- Visual maps: SVG and PNG generation with orbits
- "You are here": Earth position marker
- Options:
- Coordinate system (heliocentric/geocentric)
- Individual planet tracking or all objects
- Visibility times from your location
- Distance in AU and kilometers
- Zodiac constellation positions
- Retrograde motion indicators
- Visualization scales: Logarithmic, linear, or compressed
- Updates: Every 5 minutes
- Formats: TNG, TOS, Discovery, Kelvin Timeline
- Options: Precision (0-2 decimals), Stardate format selection
- Example:
47634.44
- Format:
35:3:21 GrS | Taungsday - Options: Era selection (BBY/ABY/GrS), Date format
- Format:
YC 127.03.15 14:30:45 NEST - Options: Empire rotation, Trade hub display
- Format:
0.523.025.M42 - Options: Check number precision, Imperial prayers
- Shire Calendar: Hobbit meal times, special days
- Rivendell Calendar: Elvish seasons, multiple languages
- Options: Language (Quenya/Sindarin/English), Display format
- Features: Moon phases, Daedric days
- Options: Khajiit forms, Guild activities
- Features: 8-day weeks, Death quotes
- Options: L-Space detection, Quote frequency
- Features: Azeroth calendar with events
- Options: Moon phase display, PvP seasons
- Long Count:
13.0.12.1.15 - Options: Display format, Venus cycle
- Format: Dynasty and hieroglyphs
- Options: Hieroglyph display, Flood predictions
- Features: Lunar months, Festival days
- Options: Archon years, Democracy events
- Format: Kalends/Nones/Ides
- Options: Consular dating, Latin numerals
- 13-month solar calendar: 12 × 30 days + Pagume
- Native script: Amharic/Tigrinya names
- Ge'ez numerals: ፩፪፫፬፭...
- Options: Show Ge'ez names, Date format (Full/Short/Ge'ez)
- Example:
15 መስከረም 2017
- Five elements: Tithi, Nakshatra, Yoga, Karana, Rashi
- Era systems: Shaka, Vikram Samvat, Kali Yuga
- Options: Language (Sanskrit/Hindi/English), Festival display
- Example:
शुक्ल पक्ष द्वितीया, आषाढ़ 1946 (शक)
- Lunar calendar: 354/355 days
- Options: Prayer times display, Arabic names
- Era system: Reiwa, Heisei, Shōwa, Taishō, Meiji
- Display formats: Kanji, Romaji, Numeric
- Options: Timezone, Gregorian date, Time display, Weekdays, Holidays, Rokuyō
- Example:
令和6年12月15日(日)15:30 JST
- Lunisolar calendar: Traditional festival dates
- Moon phases: 14 traditional names
- Options: Language, Solar terms, Traditional events, Zodiac
- Example:
旧暦 睦月十五日(満月)子年
- Buddhist Era: BE = CE + 543
- Options: Thai numerals, Zodiac display
- Features: Zodiac animals, Solar terms
- Options: Festival display
- Continuous timescale: No leap seconds
- Related systems: GPS Time, TT
- Options: UTC offset, GPS time display, time format
- Example:
2026-01-05T00:36:52 TAI
- Earth rotation time: IERS API integration
- DUT1 tracking: Real-time correction values
- Options: DUT1 display, UTC comparison, cache duration
- Example:
2026-01-05T00:43:31 UT1
- Updates: Every second
- Options: Milliseconds display
- Format:
@750.00 - Options: Precision
- Format:
.8000 - Options: Display format
- NATO DTG Formats: Basic, Full, Rescue
- Options: Time zone selection, Format style
TAI (Atomic Time, continuous)
│
│ -37s (leap seconds)
▼
UTC (Coordinated Universal Time)
│
│ +DUT1 (±0.9s, variable)
▼
UT1 (Earth Rotation Time)
TAI ────┬──── +32.184s ────► TT (Terrestrial Time)
│
└──── -19s ────────► GPS (GPS Time)
type: picture-entity
entity: sensor.alternative_time_solar_system
name: Solar System Live Map
show_state: true
show_name: truetype: entities
title: Alternative Time Systems
entities:
- entity: sensor.alternative_time_solar_system
name: Solar System
- entity: sensor.alternative_time_tai
name: International Atomic Time
- entity: sensor.alternative_time_ut1
name: Universal Time 1
- entity: sensor.alternative_time_stardate
name: Stardate
- entity: sensor.alternative_time_geez
name: Ethiopian Calendar
- entity: sensor.alternative_time_shire
name: Shire Calendartype: entities
title: ⏱️ Precision Time Systems
entities:
- entity: sensor.alternative_time_tai
name: TAI (Atomic)
- entity: sensor.alternative_time_ut1
name: UT1 (Earth Rotation)
- entity: sensor.alternative_time_unix
name: Unix Timestampautomation:
- alias: "Captain's Log"
trigger:
- platform: time
at: "09:00:00"
action:
- service: notify.persistent_notification
data:
title: "Captain's Log"
message: "Stardate {{ states('sensor.alternative_time_stardate') }}"Full UI and calendar translations in:
- 🇬🇧 English
- 🇩🇪 Deutsch
- 🇪🇸 Español
- 🇫🇷 Français
- 🇮🇹 Italiano
- 🇳🇱 Nederlands
- 🇵🇱 Polski
- 🇵🇹 Português
- 🇷🇺 Русский
- 🇯🇵 日本語
- 🇨🇳 中文
- 🇰🇷 한국어
| Calendar Type | Update Interval | CPU Impact |
|---|---|---|
| Real-time | 1 second | Minimal |
| Dynamic | 10-60 seconds | Low |
| Solar System | 5 minutes | Low (with visualization) |
| Daily | 1 hour | Negligible |
- Create file:
custom_components/alternative_time/calendars/your_calendar.py - Define
CALENDAR_INFOdictionary with metadata - Implement
YourCalendarSensor(AlternativeTimeSensorBase) - Add
config_optionsfor user configuration - Include translations for all 12+ languages
CALENDAR_INFO = {
"id": "your_calendar",
"version": "1.0.0",
"icon": "mdi:calendar",
"category": "technical",
"update_interval": 3600,
"name": {
"en": "Your Calendar",
"de": "Dein Kalender",
# ... other languages
},
"description": {
"en": "Calendar description",
"de": "Kalenderbeschreibung",
# ... other languages
},
"config_options": {
"option_key": {
"type": "boolean",
"default": True,
"label": {
"en": "Option Label",
"de": "Optionsbeschriftung",
# ... other languages
},
"description": {
"en": "Option description",
"de": "Optionsbeschreibung",
# ... other languages
}
}
}
}- Check Home Assistant logs for errors
- Verify the calendar file is in the correct directory
- Ensure
CALENDAR_INFO['id']matches the filename
- Check that your calendar has
config_optionsdefined - Verify the option types are supported (text, number, boolean, select)
- Review logs for configuration errors
- Check Home Assistant language settings
- Verify translations exist for your language
- Fallback to English if translation missing
- Check network connectivity to IERS servers
- Verify
datacenter.iers.orgis accessible - Plugin uses fallback values if API unavailable
MIT License - See LICENSE file for details
- Home Assistant Community for feedback and testing
- Calendar system creators and maintainers
- IERS for UT1 data services
- All contributors to the project
- Bug Reports: GitHub Issues
- Feature Requests: Open a GitHub issue with [Enhancement] tag
- Questions: Use GitHub Discussions
Version 2.5.2.165 - Made with ❤️ for the Home Assistant Community