Releases: richkershaw/HA-LightDash
Release v0.17.0 - What's on the agenda?
This release has a user-requested feature: agenda cards. Using the same YAML as the popular today-card, you can now include calendar events on your LightDash dashboards!
Use the custom:today-card card type for a lightweight day-agenda card for calendar.* entities with past/current/future/all-day/multi-day event states, per-calendar colors, auto-palette fallback, configurable advance offset, time format, event limit, and fallback_color to specify defaults. The card updates every 5 minutes, and generates realistic dummy events for card previews in the YAML editor. You can also force a card height regardless of how many calendar entries there are.
Release v0.16.2
Weather forecast cards are now powered by the Home Assistant WebSocket API, bringing live forecast data to your dashboards with automatic background refreshes and a handful of stability fixes.
- Live weather forecast via WebSocket: Weather-forecast cards now fetch forecast data directly from Home Assistant's weather.get_forecasts service using the WebSocket API, instead of relying on entity attributes. That means that up-to-date weather integrations without forecasts held as attributes will now work seamlessly, so forecast data is always fresh and works with all weather integrations — no more empty forecast sections.
- Lazy-loaded forecasts: On page load, the current weather appears instantly while the forecast section loads in the background. No delay in seeing the current conditions.
- Auto-refreshing forecast cards: When the weather entity updates (e.g. new forecast data arrives), the card re-renders itself automatically. No page refresh needed.
- 30-minute forecast cache: Forecast data is cached for 30 minutes so repeated page loads or multi-dashboard setups don't hammer the WebSocket API. Cache is invalidated automatically on weather entity state changes.
- Smart fallback: If the WebSocket call fails or the addon is offline, the card falls back to reading forecast data from the entity's attributes.forecast — existing dashboards keep working with no config changes.
- Forecast polling loop fixed: The weather forecast card no longer re-fetches forecast data in an infinite loop. On the initial page load, the forecast fetches once in the background, then stays stable until a weather state change triggers a refresh.
- Long-press dimmer crash fixed: Opening a dashboard with any light tile or light entity row no longer crashes the server with a KeyError. The dimmer popup now works as expected.
- Cover popup crash fixed: The long-press cover position modal no longer crashes with a KeyError when auto-close is enabled.
- Full-page swap on state update fixed: When an entity (like a cover) changes state, the live update no longer replaces the entire page body with just the state string (e.g. "open" or "opening").
- Internal rendering engine refactored: The HTML and JavaScript that makes up every page is now kept in separate template files instead of being built with inline Python string concatenation. You won't notice any difference as a user - response times are unchanged - but future development will be much faster and less error-prone.
- Clock updates moved to a shared script: The JavaScript that updates the clock on-screen is now loaded from a static file rather than inserted into every page, making pages slightly smaller and clock behaviour easier to tweak.
Release v0.14.0 - header badges, popup slider favourites, clock support for date display and fit-to-width
Badges add compact context-aware controls to the top of any view — entity state at a glance, quick navigation, and conditional pills that appear and disappear based on what's happening in your home.
- Entity badges: Add
type: entitybadges to any view and see the entity icon, name, and live state in a compact pill. Tap a light, switch, or binary sensor badge to toggle it on or off — state updates arrive in real time. - Shortcut badges:
type: shortcutbadges let you navigate to another view or open an external URL with a single tap. Perfect for quick links between dashboards or jumping to your Home Assistant frontend. - Entity-filter badges:
type: entity-filterbadges only show when their conditions are met — for example, a "Roof open" badge that appears only whencover.kitchen_roofis in theopenstate. The badge re-evaluates via SSE so it appears and disappears dynamically. - Badges in example configs:
living_room.yamlnow has entity badges for the porch and entryway lights plus a shortcut to "Other Rooms".kitchen.yamlhas entity badges for kitchen lights and a filter badge for the roof.
Favourite brightness shortcuts let you tap preset values in the dimmer and cover modals, so you don't always have to drag the slider.
- Favourite values for light and cover: You can now set
favourite_valuesunderlightdash:on any light tile, cover tile, or entity row — for example[25, 50, 75, 100]. Up to 4 values, each between 0 and 100. When you long-press to open the dimmer or cover modal, your presets appear as tap-able buttons on the left side. Tap one and the brightness or position is set immediately. - Browser JS syntax error fixed: The generated JavaScript had a brace/paren ordering issue in the favourite-buttons code, causing
Uncaught SyntaxError: Unexpected token ')'in the browser console and preventing the modals from working. Closing brackets are now in the correct order.
Light and cover long-press modals now work with mouse clicks, making them testable on desktop browsers without touch emulation.
- Mouse support for long-press modals: The light dimmer and cover position modals now respond to
mousedown/mousemove/mouseupevents alongside the existing touch events. Hold-click on any light tile or cover tile to open the modal, then drag the slider with your mouse. This makes testing possible with browser automation tools like Playwright without enabling touch emulation.
Clock auto-sizing gets more precise with percentage control and keeps text fitted as time ticks.
- Fit-text with fine-tuning:
clock_size: fitanddate_fontsize: fitnow accept a percentage suffix like"fit 75%"— auto-sizes text to fill the card width, then scales down to the specified percentage. Perfect when full-width is too wide. - Text stays fitted as clock ticks: The auto-sizing recalibrates every time the clock updates, so the time and date always fill the available width — even when the text length changes (e.g., seconds appearing).
- Date line on clock cards: Set
date_show: trueunder alightdashsubsection to show the current date below the time. Choose betweendefault(long date),iso(YYYY-MM-DD), orlocale(localised short date). The date has its owndate_fontsizeoption, so the time and date can size independently. - Button cards for service calls: The
buttoncard works without anentityfield — perfect for triggering arbitrary HA services withtap_action,target, anddata.
Previous Release Notes for v0.12.4 (2026-06-06)
Lots of new features landed in the last release! Here's what was new:
- Weather forecast card: Add a
type: weather-forecastcard to any dashboard and see current conditions plus upcoming weather. Choose daily (shows weekday, icon, and high/low range), hourly (shows time, icon, and temperature), or twice-daily. You can pick what shows under the current temperature — high/low, precipitation, or humidity — and limit how many forecast items appear. - Forecast from a separate sensor: Some weather integrations (like Pirate Weather) don't put forecast data in the entity itself. You can point
forecast_entityat a template sensor that does have forecast data, while the mainentitystill drives current conditions. - Light dimmer on long-press: Hold your finger on any light tile or light entity row and a brightness slider pops up. Drag up or down to set brightness — your finger lifts and it's sent to Home Assistant. Tap the light icon to switch on or off (turning back on remembers your last brightness).
- Cover position on long-press: Hold your finger on any cover tile or cover entity row and a position slider appears, alongside dedicated open, stop, and close buttons. Drag to any position, or tap the arrow buttons for full open or close.
- Auto-revert to home screen: Set
auto_revert_secondsunder thelightdash:section and your dashboard will automatically return to the first view after a period of inactivity — perfect for wall-mounted tablets that should always show the main screen. - Auto-close popups: Set
auto_close_modal_secondsand the dimmer and cover modals will dismiss themselves after a few seconds of inactivity, keeping your display clean. - Pick a theme: Add
theme: nameunderlightdash:to choose from 10 visual styles —ha-dark,daylight,glass,hearth,ink,sage,soft,bauhaus,terminal, or the basestyle. Everything changes together: colours, fonts, spacing, and control styles. - Hide entity icons: Set
icon: noneon any entity row in an entities card and the icon disappears — the name and state shift left for a clean, compact, text-only look. - Accessibility improvements: Weather condition names and cover control buttons now have proper
aria-labelattributes for screen readers.
Release v0.12.4 - weather forecasts, cover control popups, auto-close views and popups
Lots of new features have landed - thanks to @ jwheeler91 for the great suggestions!
Here's what's new:
- Weather forecast card: Add a
type: weather-forecastcard to any dashboard and see current conditions plus upcoming weather. Choose daily (shows weekday, icon, and high/low range), hourly (shows time, icon, and temperature), or twice-daily. You can pick what shows under the current temperature — high/low, precipitation, or humidity — and limit how many forecast items appear. - Forecast from a separate sensor: Some weather integrations (like Pirate Weather) don't put forecast data in the entity itself. You can point
forecast_entityat a template sensor that does have forecast data, while the mainentitystill drives current conditions. - Cover position on long-press: Hold your finger on any cover tile or cover entity row and a position slider appears, alongside dedicated open, stop, and close buttons. Drag to any position, or tap the arrow buttons for full open or close.
- Auto-revert to home screen: Set
auto_revert_secondsunder thelightdash:section and your dashboard will automatically return to the first view after a period of inactivity — perfect for wall-mounted tablets that should always show the main screen. - Auto-close popups: Set
auto_close_modal_secondsand the dimmer and cover modals will dismiss themselves after a few seconds of inactivity, keeping your display clean. - Accessibility improvements: Weather condition names and cover control buttons now have proper
aria-labelattributes for screen readers.
Release v0.10.17 - themes, entity icon options, better logging and more stable, lower memory performance
Release Notes for v0.10.17 (2026-06-04)
This release adds beautiful new themes you can assign in dashboard YAML, the ability to hide entity icons in entities cards for a cleaner, more compact look, plus improvements to reliability, fix bugs that could cause the addon to restart for no apparent reason, and adds privacy-first logging and diagnostic options to help with troubleshooting.
- Hide entity icons: Set
icon: noneon any entity item in an entities card and the icon disappears. The entity name and state naturally shift to the left edge for a compact, text-only row. - Light dimmer: Long-press any light tile or entity row to open a brightness slider. Drag your finger up and down to adjust brightness — the value is sent to Home Assistant when you let go. Tap the light icon to toggle on/off (turning on restores the last brightness).
- Dashboard themes: You can now pick a visual style for each dashboard. Add
theme: nameunder thelightdash:key in your dashboard YAML, wherenameis one of:ha-dark(default),daylight,glass,hearth,ink,sage,soft,bauhaus, orterminal. Each theme is a complete redesign — colours, fonts, spacing, and control styles all change together. - Added global exception handlers that catch crashes which previously went completely silent — if Python hits an unhandled exception anywhere, it will now be logged at CRITICAL level with full details.
- Added signal handlers for SIGTERM and SIGINT so the logs will show when the addon receives a shutdown signal from Home Assistant.
- The heartbeat now fires after 60 seconds (instead of 5 minutes) to capture an early memory and client-count snapshot before the potential death window.
0.10.4
Since v0.8.1, LightDash has gotten substantially leaner and more reliable. The app footprint is smaller (fewer dependencies, less memory), dashboards load dramatically faster by baking entity states directly into the page instead of fetching them one-by-one, and the icon SVGs now glow amber when lights are on and dim grey when off with smooth brightness transitions. On the reliability side, if Home Assistant restarts or the WebSocket drops, LightDash reconnects with smart backoff instead of spinning forever, and it stops retrying entirely if authentication fails. Lights toggled from outside LightDash (the HA app, automations, voice assistants) now correctly update the dashboard in real-time, and hidden-state tile cards more reliably show visual feedback when toggled.