Update: Please also see @petro’s PSA: Turn on/off all lights in Home Assistant 0.104+ (group.all_* changes) for examples.
I have noticed there is some concern about how to get along without the formerly automatically generated groups like group.all_lights
. I promise you there is a way to make your code work without them. Ask here and we can help you.
First off, the following is the correct way to turn off every light now.
service: light.turn_off
entity_id: all # replace group.all_lights with `all`
Here are some example templates to get lists of entity_ids to get you thinking.
List of all lights
{{ states.light | map(attribute='entity_id') | join(',') }}
List of lights that are turned on
{{ states.light | selectattr('state','eq','on') | map(attribute='entity_id') | join(',') }}
With some slights changes you can make these work for covers.
List of all covers
{{ states.cover | map(attribute='entity_id') | join(',') }}
List of covers that are open
{{ states.light | selectattr('state','eq','open') | map(attribute='entity_id') | join(',') }}
If you really feel like you need the all groups back you have some options. For example you can create a script that rebuilds a group. The script below literally recreates group.all_lights
. Call this script just before you need the group to update it.
script:
# Recreate group.all_lights
update_all_light_group:
sequence:
- service: group.set
data_template:
object_id: "all_lights"
entities: "{{ states.light | map(attribute='entity_id') | join(',') }}"
# Recreate group.all_switches
update_all_switches_group:
sequence:
- service: group.set
data_template:
object_id: "all_switches"
entities: "{{ states.switch | map(attribute='entity_id') | join(',') }}"
While these group won’t be updated every time the status of a state changes… well, your server doesn’t have to update the group every time a change happens. Every little bit helps on a Raspberry Pi… ammiright?
There also two AppDaemon apps available on HACS that intend to recreate those groups for you.
If you would like help converting a script post an example of your code in this topic.