Timer 24H – Visual 24-hour scheduling and automatic entity control for Home Assistant
Hi everyone,
I’d like to share Timer 24H, an open-source Home Assistant custom integration I built to make recurring daily schedules easier to manage visually.
GitHub:
Why I built it
Home Assistant automations are powerful, but for simple daily schedules I often wanted something faster and more visual.
Instead of editing automations every time, Timer 24H gives you a circular 24-hour timer with 48 half-hour segments.
Tap the segments you want active, and the integration automatically controls the selected entities.
No additional automation is required for the basic scheduling.
Main features
-
Visual 24-hour scheduling in 30-minute slots
-
Automatic control of lights, switches, fans, climate, covers, media players and more
-
Multiple entities per timer
-
Optional activation conditions
-
AND / OR logic between conditions
-
Multiple independent timers
-
Persistent state across Home Assistant restarts
-
Multi-language support, including Hebrew RTL
Activation conditions can be things like:
-
Someone is home
-
Shabbat mode is enabled
-
Vacation mode is disabled
-
Any binary sensor / input boolean / person / device tracker state
Installation
1. Install through HACS
Go to:
HACS → Integrations → Custom repositories
Add:
https://github.com/davidss20/home-assistant-24h-timer-integration
Type:
Integration
Install Timer 24H and restart Home Assistant.
2. Add the integration
Go to:
Settings → Devices & Services → Add Integration
Search for:
Timer 24H
Create a timer and select:
-
Timer name
-
One or more entities to control
-
Optional activation conditions
-
AND / OR condition logic
For example:
Timer: Outdoor Lights
Entities: light.garden, light.entrance
Condition: binary_sensor.someone_home
3. Add the card
After setup, the integration creates a sensor entity, for example:
sensor.timer_24h_outdoor_lights
Now go to:
Dashboard → Edit → Add Card
Search for:
Timer 24H Card
Select the Timer 24H sensor you just created.
The Lovelace card is installed automatically with the integration.
You can also add it through YAML:
type: custom:timer-24h-card
entity: sensor.timer_24h_outdoor_lights
show_title: true
How it works
The day is divided into 48 slots:
-
Outer ring — full hours
-
Inner ring — half hours
Tap the slots you want active.
When the current slot is active and the optional conditions are met, Timer 24H turns the selected entities on.
When the slot becomes inactive, it turns them off.
Schedule changes are saved automatically.
Technical details
The project combines:
-
Python for the Home Assistant integration
-
TypeScript + Lit for the Lovelace frontend
-
Config Flow
-
DataUpdateCoordinator
-
Home Assistant services
-
Persistent timer state
-
CI for linting and production builds
Architecture details:
Feedback
I originally built this for my own Home Assistant setup and decided to release it as open source.
I’d really appreciate feedback about:
-
UI / UX
-
Scheduling behavior
-
Additional entity types
-
Conditions
-
Feature ideas
-
Edge cases
GitHub:
If you find it useful, please consider giving the repository a
on GitHub. It helps other users discover the project and lets me know there’s interest in continuing to improve it.
Issues and pull requests are very welcome.
Thanks!

