I’m trying to change the theme with an input_select but i cant make it work. When i change the input the state variable changes but the theme never gets loaded.
Is it possible to have themes change automatically?
When I wake up before dawn it would be great to have the dark theme so my eyeballs aren’t burnt by the phone glare before I wake up properly. But after dawn the theme should go back to white background.
@j.assuncao, @bachoo786, @forsquirel, @DPB61: Here is my automation rule, based on changing an input select box manually and/or automatically. There are of course other ways of accomplishing this, but this works fine for me (and is pretty comprehensible).
Please note however that changing the theme in your configuration frontend UI overrides all of it. So better leave the frontend config (https://your.home.assistant/config/core) theme set to ‘backend-selected’.
frontend:
themes: !include configuration_themes.yaml # your themes go in this file, or directly below here
input_select:
hass_template:
name: Choose template
options:
- default
- day
- night
initial: day
icon: mdi:theme-light-dark
automation:
# IF: { input_select hass_template is changed by user OR home assistants boots up } THEN: { set theme to state given by input_select.hass_template }
- id: switch_hass_template
alias: switch_hass_template
trigger:
- platform: state
entity_id: input_select.hass_template
- platform: homeassistant
event: start
action:
- service: frontend.set_theme
data_template:
name: "{{ states.input_select.hass_template.state }}"
# IF: { sun.sun goes under horizon } THEN: { set theme to night mode }
- id: day_to_night_theme
alias: day_to_night_theme
trigger:
- platform: state
entity_id: sun.sun
from: 'above_horizon'
to: 'below_horizon'
action:
- service: input_select.select_option
data:
entity_id: input_select.hass_template
option: 'night'
# IF: { sun.sun is up } THEN: { set theme to day mode }
- id: night_to_day_theme
alias: night_to_day_theme
trigger:
- platform: state
entity_id: sun.sun
from: 'below_horizon'
to: 'above_horizon'
action:
- service: input_select.select_option
data:
entity_id: input_select.hass_template
option: 'day'
Sorry if this is a silly question but if you change the Theme to another color how do you get back to the “normal” default colors? Is it as simple as saying
frontend.set_theme
data:
name: 'default'`
or do I need to define the color values back to the original by defining a Theme called “default” ?
Here’s a script I use when working on groups, automations and themes so I don’t have to constantly restart HA. Just put script.reload somewhere where its easy to activate on your frontend.