v1.2.5
AlertTicker Card v1.2.5
☕ If this card saves you time, consider buying me a coffee — it keeps the updates coming!
✨ What's New
🔆 New theme: light
A warm incandescent bulb theme for smart home light entity alerts.
- Conical light beam fans out from the icon across the card
- Bulb flares with a warm-yellow drop-shadow pulse on each breath
- Card glow breathes in sync with the beam
- Category: Info — compatible with
ha_theme: true - Translated default message in all 10 supported languages
alerts:
- entity: light.living_room
operator: "="
state: "on"
message: "Living room light left on"
theme: light
priority: 3🇧🇷 Portuguese (pt-BR) translation
Brazilian Portuguese support, with core runtime strings contributed by @Bsector (#90) — no configuration needed, activates automatically when HA language is set to pt-BR or pt.
Covers:
- All runtime card strings (alerts, snooze labels & durations, history, weather states, timer, test mode)
- All 41 theme default messages
- Complete visual editor labels and help texts
- Theme category group names
🏷️ label_filter — filter alerts by HA label
New optional field for entity_filter-style alerts. Matches only entities that carry a specific HA label (reads from the entity registry):
alerts:
- device_class: battery
label_filter: controller # only entities labelled "controller"
operator: "<"
state: "20"
message: "{name} battery low ({state}%)"
theme: batteryAccepts a single string or an array (OR logic within the list, AND with other filters).
📍 area_filter — filter alerts by HA area
New optional field for entity_filter-style alerts. Matches only entities assigned to the selected HA area — checks entity area first, then falls back to device area:
alerts:
- device_class: motion
area_filter: [living_room, kitchen] # OR between areas
operator: "="
state: "on"
message: "Motion in {name}"
theme: motionBoth label_filter and area_filter are fully configurable in the visual editor via native HA selectors — no YAML required.
⏳ trigger_delay — condition must hold for N seconds before alert fires
Works like HA automation's for: field. The alert only becomes visible if the condition has been continuously true for at least N seconds:
alerts:
- entity: binary_sensor.door
operator: "="
state: "on"
trigger_delay: 300 # alert only if door open for 5+ minutes
message: "Door has been open for a while"
theme: doorIf the condition goes false before the delay elapses, the timer resets and the alert never fires.
🐛 Bug Fixes
| Fix | Details |
|---|---|
| Theme backgrounds and borders not rendering | All themed cards were rendered as <ha-card> custom elements whose shadow DOM overrode any external background, border, or box-shadow. Fixed by rendering all theme cards as <div> so CSS applies directly without shadow DOM interference. |
| Card corners not rounding correctly | Two nested CSS variable bugs caused --ha-card-border-radius to resolve to 0px and cascade to all children. Fixed by removing the conflicting variable redeclaration and propagating var(--ha-card-border-radius, 12px) correctly through the stack. |
| Snooze dropdown clipped after corner fix | overflow: hidden on :host (added in 1.2.4) was clipping the snooze menu. Clipping is now handled entirely by atc-inner-clip, so the host no longer needs it. |
| Overlay fires after editing and saving an alert | When a user edited an alert entity in the editor and saved, the card briefly unmounted. The overlay watcher saw an empty _bases set and re-fired already-seen alerts as new. Fixed by stamping all currently-active alerts as seen while the card is mounted. |
conditions_logic: or included primary condition as mandatory gate |
The primary operator/state always acted as a required pre-filter even when conditions_logic: or was set. Fixed so all conditions (primary + extra) participate in the OR pool. (#87) |
| History scoped per card instance | History was stored under a single shared localStorage key — multiple cards on the same page overwrote each other's logs. Each instance now gets its own key derived from its sorted entity IDs. (#86) |
Overlay fires immediately ignoring trigger_delay |
The overlay watcher is independent of the card instance, so it was bypassing trigger_delay. The overlay now maintains its own delay state and applies the same logic as the card. |
Overlay banner: secondary_text Jinja2 templates not resolved |
Complex {{ }} expressions in secondary_text fell back to …. Both message and secondary text are now resolved in parallel via the WebSocket render_template engine before the banner is shown. (#70) |
| Overlay keeps firing after an alert is deleted | Alerts shifted array positions after deletion, causing stale index tracking to re-fire already-notified alerts. register() now detects structural array changes and resets watcher state cleanly. |
| Chromecast / cast environment fails with "Configuration error" | On cast, ha-panel-lovelace and hui-view may not be registered yet when the card script executes. Added ha-card as a third fallback — reliably available even in the cast environment. (#89) |
| Split weather style divider line | Removed the vertical separator line between weather and clock panels in the split clear widget style. |
| Clear widget corners and card-mod compatibility | Removed hardcoded --ha-card-border-radius: 10px. All inner containers now use var(--ha-card-border-radius, 12px) so the correct value flows through and card-mod overrides work. (#84) |
📋 Theme count
41 themes across 6 categories (Critical · Warning · Info · OK · Style · Timer).
🌐 Languages
Italian · English · French · German · Dutch · Vietnamese · Russian · Danish · Czech · Portuguese (pt-BR) (new)
