⚠️⚠️⚠️ BREAKING CHANGE ⚠️⚠️⚠️
This release is a major refactoring of the plugin and it changes radically the way of setting kiosk-mode options through entities state changes.
1. Removal of entity_settings
The entity_settings and ignore_entity_settings options have been removed.
2. All the options can be booleans or JavaScript / Jinja templates
Excluding ignore_mobile_settings and ignore_disable_km, all the options can be set as a JavaScript or a Jinja template that returns a boolean. If you set the option as a string but it is not a valid template, the library will throw an error. If you set a template and it doesn't return a boolean, the option will be set as false and a warning will be thrown.
JavaScript template example:
kiosk_mode:
hide_header: '[[[ user_name === "ElChiniNet" ]]]'
hide_sidebar: '[[[ is_state("input_boolean.hide_sidebar", "on") ]]]'Jinja template example:
kiosk_mode:
hide_header: '{{ user_name == "ElChiniNet" }}'
hide_sidebar: '{{ is_state("input_boolean.hide_sidebar", "on") }}'This solves one of the biggest issues that the plugin has: If one wants to configure entity changes for different users or for admins and non-admins the current configuration is not enough because there is a single place to configure entitites changes and it doesn't take into account users or admin privileges. With this new change it is possible to make something like this:
kiosk_mode:
## By default the sidebar will be hidden
hide_sidebar: true
admin_settings:
## If the input_boolean.hide_sidebar is off the sidebar will be visible for admins
hide_sidebar: '[[[ is_state("input_boolean.hide_sidebar", "on") ]]]'
user_settings:
- users:
- "ryan meek"
- "maykar"
## If the input_boolean.hide_sidebar_for_friends is off the sidebar will be visible for ryan meek and maykar
hide_sidebar: '[[[ is_state("input_boolean.hide_sidebar_for_friends", "on") ]]]'3. JavaScript templates use Home Assistant Javascript Templates behind the scenes
JavaScript templates use Home Assistant Javascript Templates for the JavaScript templating system. To know all the objects, variables and methods available in the JavaScript templates, consult the proper section in the repository.
4. Jinja templates will have access to client side variables
Inside the Jinja templates you can use some client variables that are very useful:
user_name: String with the logged user's nameuser_is_admin: Bolean value than indicates if the logged user is admin or notuser_is_owner: Bolean value than indicates if the logged user is the owner or notuser_agent: User agent of the browser in which Home Assistant is being executed
Advantages of using templates for the options
Using templates for the options gives a lot of flexibility and depending on your objectives you can omit the usage of the conditional configs, so when you start to create conditional configurations, ask yourself if it can be achieved with templates. For example:
kiosk_mode:
hide_sidebar: false
hide_header: false
user_settings:
- users:
- "ryan meek"
- "maykar"
hide_header: true
non_admin_settings:
hide_sidebar: trueCan be transformed into a simpler version:
kiosk_mode:
hide_header: '{{ user_name in ("maykar", "ryan meek") }}'
hide_sidebar: '[[[ !user_is_admin ]]]'5. New debug options
This pull request implements two new options:
| Config Option | Description |
|---|---|
debug
| Prints useful information in the console. The raw config loaded from the Lovelace panel, the resulting final config with all the options, and if a template is rendered, it will print the option that trigerred the template, the template code and the evaluated result of it. |
debug_template
| Useful to debug the result of a single template without activating the debug mode.
|
debug
Example with a valid template
Example with an invalid template
debug_template
Changes
⚙️ Configuration
- [Github Actions]: Bump actions/checkout from 4 to 5 in the actions-deps group @dependabot[bot] (#406)
🚀 Features
- Implement an option to hide the dialogs breadcrumb navigation
- PR: #394 by @elchininet
- Add custom variable when the sidebar is hidden @elchininet (#407)
- Make Kiosk Mode compatible with Home Assistant 2025.9.x @elchininet (#411)
🛠 Fixes
- Make Kiosk Mode compatible with Home Assistant 2025.9.x @elchininet (#411)
🧩 Dependencies
- [Dependencies]: Bump @types/node from 22.15.15 to 22.15.17 in the dependencies-dev group
- PR: #383 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group with 4 updates
- PR: #385 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group with 2 updates
- PR: #386 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group across 1 directory with 5 updates
- PR: #388 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group with 6 updates
- PR: #389 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group with 4 updates
- PR: #390 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group with 4 updates
- PR: #391 by @dependabot[bot]
- [Dependencies]: Bump the dependencies-dev group with 2 updates @dependabot[bot] (#408)
- [Dependencies]: Bump the dependencies-dev group across 1 directory with 6 updates @dependabot[bot] (#403)
- [Dependencies]: Bump the dependencies-dev group with 4 updates @dependabot[bot] (#398)
- [Dependencies]: Bump the dependencies-dev group with 3 updates @dependabot[bot] (#397)
- [Dependencies]: Bump the dependencies-dev group with 5 updates @dependabot[bot] (#396)
- [Dependencies]: Bump the dependencies-dev group with 6 updates @dependabot[bot] (#395)
- [Dependencies]: Bump the dependencies-dev group with 2 updates @dependabot[bot] (#413)
- [Dependencies]: Bump the dependencies-dev group with 4 updates @dependabot[bot] (#412)
📝 Documentation
- Improvements to the documentation
- PR: #382 by @elchininet
- Add Beta-tests badge to the README
- PR: #384 by @elchininet
- Implement an option to hide the dialogs breadcrumb navigation
- PR: #394 by @elchininet
📦 Other
- Modernize GitHub workflow with release-drafter for streamlined release management @copilot-swe-agent[bot] (#409)