Timer 24H – Visual 24-hour scheduling and automatic entity control for Home Assistant

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 :star: 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!

Hi,

thank you so much for your module—I really like it. Would you consider making it possible to select intervals as short as every 15 minutes?

best regards

Thanks for the suggestion! However, implementing it this way would make the segments way too small and practically impossible to tap reliably, especially on mobile. That said, I do see the value in it, so I’ll try to think of a more elegant solution to handle this without hurting usability.

What are the differences between this and the custom scheduler in HACS?

(de)select on tap, show smaller timespans on long press

v1.3.0 is out (stable).

What’s new

  • 15-minute and 30-minute views, selectable from the card editor or timer Configure
  • 15-minute mode: tap an hour to select it, then tap a quarter (:00 / :15 / :30 / :45)
  • Tapping the outer ring fills the whole hour; turning a quarter off affects only that cube
  • 30-minute mode stays the classic two-ring view
  • Hover shows the exact slot time
  • The Add Card picker now shows a clock preview

Upgrade: HACS → Timer 24H → Redownload → v1.3.0 → restart HA → Ctrl+Shift+R
Release notes: Release v1.3.0 · davidss20/home-assistant-24h-timer-integration · GitHub

@lorbi — 15-minute intervals are in this release. Switch the card to “15 minutes”.

@ShadowFist — vs Scheduler: Scheduler is a general replacement for time/sun automations (sunrise, weekdays, custom actions). Timer 24H is a visual daily clock for one recurring 24h pattern, with optional home/Shabbat-style conditions, and it turns the selected entities on/off from that clock. They solve different jobs; some people use both.

2 Likes