* Allow showing/hiding welcome message on home overview
Add a toggle in the edit overview dialog to show or hide the
"Welcome, [user]" greeting header on the home overview page,
following the same pattern as the existing summary enable/disable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Move welcome message toggle into its own section in home editor
The welcome message is a greeting header, not a summary card, so it
now lives in a separate "Greeting" section above the "Summaries" section.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* rename hidden_welcome_message to hide_welcome_message
* Use ha-form boolean selector for welcome message toggle
Replace manual label/ha-switch markup with ha-form using a boolean
selector for better accessibility and consistency with the rest of
the codebase.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add helper text to welcome message toggle in home editor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Remove greeting section header
* Allow enabling/disabling suggested entities on home overview
Add a toggle in the Overview edit dialog to show or hide the
usage-predicted entities that fill remaining slots alongside favorites.
When disabled, the usage prediction fetch is skipped entirely.
The favorites entities helper text is updated to no longer reference
suggestions, which now have their own dedicated toggle and description.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Use ha-input-helper-text for suggested entities description
Replace the raw <p class="section-description"> with ha-input-helper-text
for the suggested entities toggle description, using the proper HA
component for helper text styling instead of custom CSS.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Rename show_suggested_entities to hide_suggested_entities
Aligns with the hidden_summaries naming convention used elsewhere.
Logic is inverted accordingly: undefined means shown (default),
true means hidden.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Use ha-form boolean selector for suggested entities toggle
Replace the manual label+switch+helper-text with ha-form using a boolean
selector.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Refine suggested entities toggle label and callback signatures
Drop unused schema parameter from computeLabel/computeHelper callbacks
and shorten the label from "Show suggested entities" to "Suggested entities"
since the boolean checkbox already conveys the enabled/disabled intent.
* Group favorite entities picker and suggested toggle in expandable panel
Wrap ha-entities-picker and the suggested entities boolean in an outlined
ha-expansion-panel with a star-outline icon. Move the welcome message
toggle above the panel. Use "Favorite entities" as the panel header and
remove the redundant picker label.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Update entities description to use "include" instead of "show"
* Fix expansion panel content leaking when collapsed
Move inner padding from --expansion-panel-content-padding to a wrapper
div, matching the ha-form-expandable pattern, so no content is visible
when the panel is collapsed.
* Add spacing between alert and expansion panel in home editor dialog
* Move favorites description above picker, update helper text
- Add description paragraph above ha-entities-picker explaining the feature
- Update helper text to concise behavioral note: "Entities in your favorites always appear first."
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add daily forecast card feature
* Address review feedback: validate forecast type, refresh on state change
* Use statesContext for current temp state
* Use internationalizationContext for localize
* Narrow support/resolve helpers to accept stateObj
* Use connection instead of hass for subscribeForecast
* Reduce opacity of current temp line
* Type states context consumer
* Use consumeEntityState decorator
* Add activity log sidebar to security dashboard
Add a sidebar with a logbook card to the security domain dashboard,
filtered by security entities (cameras, locks, alarm panels, covers,
binary sensors) and person entities. The sidebar uses the sections view
sidebar layout with mobile tab support for switching between devices
and activity views on narrow screens.
https://claude.ai/code/session_01MCjuARQfuyowAbJ9fwiEnH
* Update src/panels/security/strategies/security-view-strategy.ts
* remove import
* Set max column to 3 and fix title margin
* Type fix
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
* Auto-refresh serial ports every 5s in serial selector
Schedules the next fetch via setTimeout once the previous response
resolves, so slow responses don't stack requests. Refreshing is
stopped when the element is disconnected and restarted on reconnect.
* Refresh serial ports only while picker dropdown is open
Emit a picker-opened event from ha-generic-picker and use it in the
serial selector to drive a 5s refresh loop that only runs while the
dropdown is open. The initial load still happens on firstUpdated so
the dropdown has data when the user opens it.
* Allow refreshing picker items while dropdown is open
ha-picker-combo-box caches its items on first update, so the serial
selector's auto-refresh had no effect while the dropdown was open.
Add a public refreshItems() method to re-run getItems and update the
visible list, expose it through ha-generic-picker, and call it from
the serial selector after each refresh.
* Format with prettier
* Categorize serial ports and improve item display
Group ports by type in the serial selector dropdown — integration-provided
(URI-schemed like esphome://), USB (vid/pid), built-in, and unnamed local
ports — with a section header and filter chip for each. Within each section
items are sorted by product name, and unnamed ports (no description or
manufacturer) fall to the last section so they only appear when they
actually exist, which is mostly in dev environments.
Item display now leads with the product description and manufacturer; the
device path, vid:pid, and serial number move to a less prominent secondary
line. ESPHome entries show the ESPHome logo, other integration-provided
ports get a generic connection icon, USB ports a USB icon, and embedded
ports a memory chip icon.
* Rename Unnamed serial port category to Other
* Rename serial selector to serial_port selector
Updated the selector key from `serial` to `serial_port`, renamed the
class to HaSerialPortSelector / SerialPortSelector and the custom
element to `ha-selector-serial_port`, moved translations under
`ui.components.selectors.serial_port`, and renamed the file to
`ha-selector-serial-port.ts`.
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Add use_entity_picture option to picture-entity card
Allow picture-entity cards to display the entity's entity_picture attribute instead of requiring a manually configured image URL. This is particularly useful for entities that dynamically set their entity_picture (e.g., update entities showing component logos, custom integrations, etc.).
The static image configuration remains as a fallback when the entity_picture attribute is not present or when use_entity_picture is not enabled.
Changes:
- Add use_entity_picture boolean option to PictureEntityCardConfig
- Implement logic to check entity_picture attribute when enabled
- Update validation to accept use_entity_picture as valid image source
- Add editor toggle with helper text
- Add translation strings for the new option
* Rename use_entity_picture to show_entity_picture and add entity_picture_local support
Address review feedback:
- Rename use_entity_picture to show_entity_picture to match tile card and badge naming
- Check entity_picture_local first before entity_picture, following tile card pattern
- Update all references in types, card implementation, editor, and translations
* Fix TypeScript error for entity_picture_local access
* Address review feedback - less technical formulation
* Drop unnecessary cast in picture-entity card
Widen stateObj to HassEntity so entity_picture_local is accessible
without an inline cast, matching the tile-card pattern.
---------
Co-authored-by: Petar Petrov <MindFreeze@users.noreply.github.com>
The supervisor_* My redirects (supervisor_store, supervisor_addons,
supervisor_app, supervisor_addon, supervisor_add_addon_repository) had
no component gate, so on Container installations they silently
navigated to broken pages. Gate them on the hassio component and route
the missing-hassio case through the existing no_supervisor error
message, which now links directly to the installation docs.
Also remove the unreachable /hassio/_my_redirect/ fallback that was
left behind by the standalone hassio panel removal (#29132), and
update the no_supervisor string: Home Assistant Supervised is no
longer a supported installation method (see architecture discussion
home-assistant/architecture#1198), only Home Assistant OS.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The standalone hassio panel at /hassio was removed in #29132 and
replaced by the apps panel under /config/apps in #28245. A couple of
references to the old URL path were missed: a dead branch in the
quick-bar My-link builder and a /hassio/ startsWith check that kept
the configuration sidebar item highlighted.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Clean
* Scrollable option
* Refactor
* Remove wrap
* Restore
* Show grab cursor when dragging
* Overflow handling
* Remove extra space on start and end item
* Shrink title
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
* Increase min width of title, set var
* More specific
* Use 120px min on small layouts
* Try to fix sizing
* No unnessasary vars
* Format
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
* Add apps navigation group with ingress add-on panels
Add an "Apps" section to the navigation picker that shows all add-ons
with ingress support. Uses the /ingress/panels supervisor endpoint via
a cached collection to fetch add-on titles and icons in a single call.
https://claude.ai/code/session_01F8dUzfSWj8ZwDByVZ45BNj
* Fix no-shadow lint error for panels variable
Rename subscribe callback parameter from `panels` to `data` to avoid
shadowing the outer `panels` variable in _loadNavigationItems.
https://claude.ai/code/session_01F8dUzfSWj8ZwDByVZ45BNj
* Use subscribeOne helper for ingress panels collection
Replace hand-rolled Promise/subscribe/unsub pattern with the existing
subscribeOne utility for cleaner one-shot collection consumption.
https://claude.ai/code/session_01F8dUzfSWj8ZwDByVZ45BNj
* Add explicit type parameter to subscribeOne call
TypeScript cannot infer the generic type through the collection
subscribe chain, resulting in unknown type for panel entries.
https://claude.ai/code/session_01F8dUzfSWj8ZwDByVZ45BNj
* Add subscribeOneCollection helper for collection one-shot reads
Add a new subscribeOneCollection utility that takes a collection
directly instead of requiring the (conn, onChange) function pattern.
Use it in the navigation picker for cleaner ingress panel fetching.
https://claude.ai/code/session_01F8dUzfSWj8ZwDByVZ45BNj
* Use Collection type instead of custom Subscribable interface
https://claude.ai/code/session_01F8dUzfSWj8ZwDByVZ45BNj
* Add ingress panel support to subscribeNavigationPathInfo
* Use app panel variable
* Add tests
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Add Automations, Scenes, Scripts, Developer Tools, Integrations,
Devices, and Entities to the "Other routes" section of the navigation
picker. Also resolve these paths with proper labels and icons in
computeNavigationPathInfo so they display correctly everywhere
(shortcut cards, edit overview, etc.).
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Add per-section theme support
* Fix linting errors: rename property parameter and use dot notation
* Fix TypeScript error: cast to any for __themes property
* Refactor theme application logic for race condition on first load, missing reconnect handling, and the fragile _applyTheme internals https://github.com/home-assistant/frontend/pull/29745
* correct formatting with prettier --write
* Fix theme application logic on reconnect by checking for theme configuration
* Pass section theme to background component for theme variable access
Section backgrounds now receive the section's theme and hass properties,
allowing them to apply the theme via applyThemesOnElement(). This enables
background components to access CSS variables from the section's theme,
particularly --ha-section-background-color when using the 'Default' color option.
Previously, the background component was rendered as a sibling to the section
element and couldn't access theme variables from the section's applied theme.
Now the theme is explicitly passed from hui-sections-view and applied to the
background component itself, making theme cascading work correctly.
* Reorder section settings: theme before background
* Add helper text support to theme selector
Theme selectors can now display helper text below the dropdown. Added helper property to ha-selector-theme and ha-theme-picker components, which is passed through to ha-select. Updated section theme label and added helper text to explain its purpose.
* Address PR review feedback: move theme to end and simplify label
- Move theme selector to end of form (after background section)
- Change label from 'Section theme' to 'Theme' as context is already clear
* Handle theme removal for background
---------
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>