v2.9.0 - Horizontal circle style and smart speaker timer discovery
Pre-releaseThis release adds a horizontal circle layout, optional discovery of Alexa and Google Home timers, and per-source icon and colour.
✨ Added
-
New
circle_horizontalstyle. The row is laid out with the icon, title and subtitle on the leading edge and the progress ring on the trailing edge, so it lines up with the other horizontal styles and flips correctly in right-to-left languages. Layout inspired by the compact style in TimeFlow Card by @Rishi8078. -
Alexa and Google Home auto-discovery. Both integrations expose one timer entity per speaker, which is tedious to list and needs editing every time a device is added. Two new options pick them up automatically:
type: custom:simple-timer-card auto_discover_alexa: true auto_discover_google: true
Both default to off. Discovered entities are added to anything already in
entities:, are never duplicated, and stay read-only: a ringing timer can be dismissed, but timers cannot be started or paused from the card. -
Per-source icon and colour. Discovered timers have no per-entity settings, so there was no way to tell Alexa, Google Home and Voice PE timers apart without listing every speaker by hand:
source_styles: alexa: icon: mdi:amazon-alexa color: "#00d4ff" google: icon: mdi:google-assistant color: "#4285f4"
Available for every source, and editable from the visual editor under Defaults. Per-entity config still takes precedence. Paused and finished timers keep their state icon and colour, matching how per-entity icons already behave.
🐛 Fixed
- Google Home timers were being parsed as Alexa timers. Any entity exposing a
timersattribute was routed down the Alexa path. That path does readtimers, so it looked wired up, but Google Home uses lower case status values and expressesfire_timein seconds where Alexa uses milliseconds. The result was wrong remaining times rather than an obvious failure. Google Home now has its own parser, and the two are told apart by thetimer_idthat Google entries carry and Alexa entries never do. - Voice PE guide entity ids. The guides told you to use
sensor.timer_1_state, but ESPHome prefixes entities with the device friendly name, so the real id issensor.home_assistant_voice_timer_1_state. They also listedtext_sensor.*entities, a domain that does not exist in Home Assistant. Following the mirror-only guide verbatim could not have worked, which is what the old "everything is unknown" troubleshooting entry was describing.
🔧 Behavior
style: circleis nowcircle_vertical. The old value keeps working and resolves to the same vertical tile, so no configuration changes are needed. Both appear in the visual editor.- Discovery is checked against entity id patterns before reading attributes and is cached briefly, so it does not walk every state on each render tick.
- Nothing changes unless you opt in. With discovery off and no
source_styles, the card behaves exactly as it did in v2.8.0.
🧪 Testing this
- Horizontal circle: set
style: circle_horizontaland confirm the ring sits opposite the icon and text, including on an RTL dashboard. - Discovery: turn on
auto_discover_alexaand/orauto_discover_googlewith noentities:listed, then start a timer on a speaker and confirm it appears with the correct remaining time. - Source styles: set an icon and colour per source and confirm active timers pick them up.
Notes
- Published as a pre-release. v2.8.0 remains the current stable release.
Full Changelog: v2.8.0...v2.9.0