Simple Timer Card - a clean way to track timers in Home Assistant

Thank you! That is what I was looking for. I’m brand new to HA so hopefully I can figure it out. I may have some basic questions about that guide. Is this a good place to post my questions?

The best place to ask questions is here, where the whole community can jump in and help. If you run into bugs or have feature requests, please open an issue on the GitHub repo.

I added language support in this morning’s v1.4.0 release (currently German and Spanish). Let me know if it works well for you!

Cards look nice, but too bad it can’t control Home Assistant’s timer helpers. I use those for automations.

If it could then I would also be handy it would support 1s for seconds, 1m for minutes, 1h for hours, 1d for days.

I use timers for for example I’m off for x days.
Or when having an outdoor party… disable motion activation for outdoor lights for x hours.

It actually does work with Home Assistant timer helpers.

You can bind the card directly to a timer.* entity and use it both for visibility and control. Here’s a simple example:

type: custom:simple-timer-card
entities:
  - mode: timer
    entity: timer.test_timer
    keep_timer_visible_when_idle: true
show_timer_presets: false
show_active_header: false

This uses a native HA timer helper, so it integrates cleanly with automations like “disable motion for X hours” or “I’m away for X days”.

I can pause or cancel timers via simple timer card when I started them outside of simple timer card, But I cannot start or adjust the time.

type: custom:simple-timer-card
entities:
  - mode: timer
    entity: timer.pause_outdoor_lights_automation
    keep_timer_visible_when_idle: true
show_timer_presets: false

(edit) I see, when I give the timer a default value in the helper config, I can start it with simple timer card. But I cannot edit/adjust the time (add time, subtract time etc…)

I looked into this a bit, and this is unfortunately a limitation of Home Assistant timer helpers.

Timer helpers do not expose any service to change their default duration after creation. That duration is defined in the helper config and is effectively static. Because of that, the card can pause, resume, or cancel an existing timer, but it cannot edit the duration (add or subtract time) once the timer is running.

Technically, it is possible to start a timer helper with a custom duration using the timer.start service. However, once the timer finishes or is canceled, it immediately reverts back to its configured default duration. Supporting this would require non standard behavior and additional state tracking.

Since the card already supports fully editable timers that are not tied to HA timer helpers (including custom durations and adjustments, with events exposed via MQTT for automations), I chose not to implement a workaround for helper timers.

I’ve opened a Home Assistant core enhancement discussion to request a native service for this, for example timer.set_duration.

If Home Assistant adds a native service to change a timer helper’s duration, I’ll be happy to add support for it in the card.

Hope that clarifies it.

1 Like

Well, I see a timer.change

As far as I understand it, timer.change only affects running timers and it doesn’t change the timer helper’s configured default duration.

There is not a native service, but another integration named spook that alerady implemented a timer.set_duration service, aside from tons of other things.

Since the AMP issues a few weeks ago, my timer cards show the countdown animation but the text shows “No Timers” set. Any deas?

Great card, but I can’t get the persistent timer to work.

I’ve created an input_text helper and configured the card with
default_timer_entity: input_text.timer.

When default_timer_entity is set, the timer does not start at all.
If I remove default_timer_entity, the timer works as expected (non-persistent).

Am I misunderstanding how the persistent timer is supposed to work, or am I missing a required configuration?

Hi,
I don’t think you need to change the timer configured default duration. Using timer.start with the “duration” data field set in the card would work, I guess

That’s a different card. You’re in the wrong thread.

Starting a timer entity with a different duration isn’t the issue. I haven’t implemented it yet because I don’t really see the value if the timer’s configured duration doesn’t actually change after you start it with a different duration.

default_timer_entity isn’t a “store my timer in any HA helper” setting. The card expects that entity to already behave like its persistent backend (usually MQTT, with a specific value format). When you point it at an input_text, the card can’t read/write the timer state, so it basically never starts.

So you’re not misunderstanding the idea of persistence - just the supported storage.

If you want persistence:

  • use the method the card documents (MQTT), or
  • don’t set default_timer_entity and instead persist an end-time in HA helpers (input_datetime/input_number) via an automation (but that’s a different pattern than what this option does).

Thank you for the thorough explanation. It really helped clarify how the card works.
I think adding a more detailed explanation like this to the GitHub documentation would be very helpful for others as well, especially around the different storage modes and their limitations.

Hi,
I just stumbled over this card, and try to use it with an existing timer helper. The timer is set to a specific time with an automation. If the timer runs out, a switch is turned off by an automation. I wanted to use this card, to give the user a hint, say 10 minutes before the timer runs off, and give the user the chance to enhance the timer for another time period (so not to turn the switch off in 10 minutes but in 50 minutes or similar). So like „snooze“ but not when timer is „off“ but „n“ minutes ealier.
In my personal usage it would help me a lot, if I could add time to a running timer. (Simple +N minutes), if this is also of value for others.
It could all be done with automations (and homeassistant directly) somehow, but your user interface is sooooo much better, than anything I could do.

Other „problem“: I (think) I once had a timer issue, where the timer started all over again, if it had a default time. So my helper timer does not have a default start time. It is shown in the UI, as if it is „fully loaded“ (but technically only with „0“ time) so if it is started, it stops immediately. It could somehow be avoided if I disable „0“ timers, but IMHO my management would „search“ in the UI for the timer, and not find it. So maybe not starting a zero timer is an option.

Please just tell me if you would consider any suggestion, so I could avoid double work. (Enhanced HA with this timer yesterday, but as always: my quick jump was to short for the management)

Thanks for reading and many thanks for the card.
Jürgen

loving this and WAF to the max so thanks, I was wondering if there is a way to open TTS when the timer goes off so we can say “STOP!” as an automation I guess and it will stop that alarm? I can’t see anything I can use as a trigger.
Any entities exposed? could also us them to start a timer?

Hi @NobbyJ69,

Jumping in to confirm what @eyalgal said, that screenshot looks like it is actually from my project, the TimeFlow Card.

Since this isn’t the right thread for it, please open a ticket on my repository so I can help you fix that error: Time-Flow Card