This offers the official frontend to control Home Assistant. This integration is by default enabled, unless you’ve disabled or removed the
default_config: line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
# Example configuration.yaml entry frontend:
es5 - transpiled so old browsers understand it.
latest - not transpiled, so will work on recent browsers only.
auto - select a version according to the browser user-agent. The value in the configuration can be overiden by putting
latest in the URL. For example
Allow to define different themes. See below for further details.
DEPRECATED List of additional resources to load in
Starting with version 0.49 you can define themes:
# Example configuration.yaml entry frontend: themes: happy: primary-color: pink sad: primary-color: blue
The example above defined two themes named
sad. For each theme you can set values for CSS variables. For a partial list of variables used by the main frontend see ha-style.ts.
Check our community forums to find themes to use.
There are 2 themes-related services:
frontend.reload_themes: reloads theme configuration from your
frontend.set_theme(name): sets backend-preferred theme name.
Example in automation:
Set a theme at the startup of Home Assistant:
automation: - alias: 'Set theme at startup' trigger: - platform: homeassistant event: start action: service: frontend.set_theme data: name: happy
To enable “night mode”:
automation: - alias: 'Set dark theme for the night' trigger: - platform: time at: '21:00:00' action: - service: frontend.set_theme data: name: darkred
When themes are enabled in the
configuration.yaml file, a new option will show up in the user profile page (accessed by clicking your user account initials at the bottom of the sidebar). You can then choose any installed theme from the dropdown list and it will be applied immediately.
Set a theme
# Example configuration.yaml entry frontend: extra_module_url: - /local/my_module.js extra_js_url_es5: - /local/my_es5.js
Modules will be loaded with
import(), on devices that support it (
For other devices (
es5 mode) you can use
extra_js_url_es5, this will be loaded with
<script defer src=''></script>
The ES5 and module version will never both be loaded, depending on if the device supports
import the module of ES5 version will be loaded.
The browser language is automatically detected. To use a different language, go to the user profile page (accessed by clicking your user account initials at the bottom of the sidebar) and select one. It will be applied immediately.
Choose a Language