Group
The group integration lets you combine multiple entities into a single entity. Entities that are members of a group can be controlled and monitored as a whole.
This can be useful for cases where you want to control, for example, the multiple bulbs in a light fixture as a single light in Home Assistant.
Home Assistant can group multiple binary sensors, covers, fans, lights, locks, media players, switches as a single entity, with the option of hiding the individual member entities.
Configuration
To add the Group integration to your Home Assistant instance, use this My button:
If the above My button doesn’t work, you can also perform the following steps manually:
-
Browse to your Home Assistant instance.
-
At the top of the screen, select the tab: Helpers.
-
In the bottom right corner, select the Create helper button.
-
From the list, select Group.
-
Follow the instructions on screen to complete the setup.
Group behavior
Binary sensor, light, and switch groups
In short, when any group member entity is on
, the group will also be on
. A complete overview of how groups behave:
- The group state is
unavailable
if all group members areunavailable
. - Otherwise, the group state is
unknown
if all group members areunknown
orunavailable
. - Otherwise, the group state is
on
if at least one group member ison
. - Otherwise, the group state is
off
.
Binary sensor, light, and switch groups allow you set the “All entities” option. When enabled, the group behavior is inverted, and all members of the group have to be on
for the group to turn on
as well. A complete overview of how groups behave when the “All entities” option is enabled:
- The group state is
unavailable
if all group members areunavailable
. - Otherwise, the group state is
unknown
if at least one group member isunknown
orunavailable
. - Otherwise, the group state is
off
if at least one group member isoff
. - Otherwise, the group state is
on
.
Cover groups
In short, when any group member entity is open
, the group will also be open
. A complete overview of how cover groups behave:
- The group state is
unavailable
if all group members areunavailable
. - Otherwise, the group state is
unknown
if all group members areunknown
orunavailable
. - Otherwise, the group state is
opening
if at least one group member isopening
. - Otherwise, the group state is
closing
if at least one group member isclosing
. - Otherwise, the group state is
open
if at least one group member isopen
. - Otherwise, the group state is
closed
.
Fan groups
In short, when any group member entity is on
, the group will also be on
. A complete overview of how fan groups behave:
- The group state is
unavailable
if all group members areunavailable
. - Otherwise, the group state is
unknown
if all group members areunknown
orunavailable
. - Otherwise, The group state is
on
if at least one group member ison
. - Otherwise, the group state is
off
.
Lock groups
In short, when any group member entity is unlocked
, the group will also be unlocked
. A complete overview of how lock groups behave:
- The group state is
unavailable
if all group members areunavailable
. - Otherwise, the group state is
unknown
if all group members areunknown
orunavailable
. - Otherwise, the group state is
jammed
if at least one group member isjammed
. - Otherwise, the group state is
locking
if at least one group member islocking
. - Otherwise, the group state is
unlocking
if at least one group member isunlocking
. - Otherwise, the group state is
unlocked
if at least one group member isunlocked
. - Otherwise, the group state is
locked
.
Media player groups
- The group state is
unavailable
if all group members areunavailable
. - Otherwise, the group state is
unknown
if all group members areunknown
orunavailable
. - Otherwise, the group state is
buffering
if all group members arebuffering
. - Otherwise, the group state is
idle
if all group members areidle
. - Otherwise, the group state is
paused
if all group members arepaused
. - Otherwise, the group state is
playing
if all group members areplaying
. - Otherwise, the group state is
on
if at least one group member is notoff
,unavailable
orunknown
. - Otherwise, the group state is
off
.
Sensor groups
- The group state is combined / calculated based on
type
selected to determine the minimum, maximum, latest (last), mean, median, range, product or sum of the collected states. - Members can be any
sensor
,number
orinput_number
holding numeric states. - The group state is
unavailable
if all group members areunavailable
. - If
ignore_non_numeric
isfalse
then group state will beunavailable
if one member isunavailable
or does not have a numeric state.
Managing groups
To edit a group, Settings -> Devices & Services -> Helpers. Find and select the group from the list.
Group options
To add or remove entities from an existing group, click on Group options
, all the existing entities are listed in the members
section where you add and remove entities.
YAML Configuration
Alternatively, this integration can be configured and set up manually via YAML
instead. Here are example of how to configure groups when using the configuration.yaml
file.
Example YAML configuration of a binary sensor group:
# Example configuration.yaml entry
binary_sensor:
- platform: group
name: "Patio Doors"
device_class: opening
entities:
- binary_sensor.door_left_contact
- binary_sensor.door_right_contact
Example YAML configuration of a cover group:
# Example configuration.yaml entry
cover:
- platform: group
name: "Window Covers"
entities:
- cover.hall_window
- cover.living_room_window
Example YAML configuration of a fan group:
# Example configuration.yaml entry
fan:
- platform: group
name: "Downstairs Fans"
entities:
- fan.lanai_west
- fan.lanai_south
- fan.lanai_east
Example YAML configuration of a light group:
# Example configuration.yaml entry
light:
- platform: group
name: "Kitchen Lights"
entities:
- light.kitchen_ceiling_lights
- light.kitchen_under_cabinet_lights
- light.kitchen_spot_lights
- light.pendant_lights
Example YAML configuration of a lock group:
# Example configuration.yaml entry
lock:
- platform: group
name: "House Locks"
entities:
- lock.front_door
- lock.back_door
Example YAML configuration of a media_player group:
# Example configuration.yaml entry
media_player:
- platform: group
entities:
- media_player.kitchen_tv
- media_player.living_room_tv
Example YAML configuration of a sensor group:
# Example configuration.yaml entry
sensor:
- platform: group
type: mean
entities:
- sensor.temperature_kitchen
- sensor.temperature_hallway
Example YAML configuration of a switch group:
# Example configuration.yaml entry
switch:
- platform: group
entities:
- switch.tv
- switch.soundbar
Configuration Variables
An ID that uniquely identifies this group. If two groups have the same unique ID, Home Assistant will raise an error. Giving an group a unique ID allow the group name, icon and area to be customized via the UI.
Only available for binary_sensor
, light
and switch
groups. Set this to true
if the group state should only turn on if all grouped entities are on.
Only available for sensor
group. The type of sensor: min
, max
, last
, mean
, median
, range
, product
or sum
.
Only available for sensor
group. Set this to true
if the group state should ignore sensors with non numeric values.
Only available for sensor
group. Set the unit of measurement for the sensor.
Only available for sensor
group. Set the device class for the sensor according to available options.
Only available for sensor
group. Set the state class for the sensor according to available options.
Notify Groups
This group is a special case of groups currently only available via YAML configuration.
Notify groups are used to combine multiple notification services into a single service. This allows you to send notification to multiple devices with a single call.
# Example configuration.yaml entry
notify:
- platform: group
name: "My notification group"
services:
- service: html5
data:
target: "macbook"
- service: html5_nexus
Configuration Variables
A list of all the services to be included in the group.
The service part of an entity ID, e.g., if you use notify.html5
normally, just put html5
. Note that you must put everything in lower case here. Although you might have capitals written in the actual notification services!
Old style groups
This group is a special case of groups only available via YAML configuration.
We don’t recommend using these old-style groups anymore. They are still supported, but we recommend using the groups as described above.
Back in the day, Home Assistant used groups to visually groups entities in the Home Assistant UI; it was the only way to tell which entities would show up in a single card on your Dashboard. This is no longer the case, as we now have fantastic UI editors and Dashboarding.
However, the old-style groups are still there in the roots of Home Assistant. On the one hand, they are more versatile (they can use more entity types right now); but on the other hand, they are also more limited and complicated to use.
The limited use is that these old-style groups are written to be universal, while the new style groups described above are designed to be a full replacement of their members (e.g., a light group, as described above, has all light features). Besides being only available via manual YAML configuration, they also have limited UI support in terms of customizing.
Example old-style groups YAML configuration:
# Example configuration.yaml entry
group:
kitchen:
name: "Kitchen Group"
entities:
- switch.kitchen_pin_3
climate:
name: "Climate Group"
entities:
- sensor.bedroom_temp
- sensor.porch_temp
awesome_people:
name: "Awesome People"
entities:
- device_tracker.dad_smith
- device_tracker.mom_smith
Old style groups can calculate group state with entities from the following domains:
alarm_control_panel
binary_sensor
climate
cover
device_tracker
fan
humidifier
light
lock
media_player
person
plant
remote
switch
vacuum
water_heater
When member entities all have a single on
and off
state, the group state will be calculated as follows:
Domain | on | off |
---|---|---|
device_tracker | home | not_home |
cover | open | closed |
lock | unlocked | locked |
person | home | not_home |
media_player | ok | problem |
When a group contains entities from domains that have multiple on
states or only use on
and off
, the group state will be on
or off
.
It is possible to create a group that the system cannot calculate a group state. Groups with entities from unsupported domains will always have an unknown state.
These groups can still be in templates with the expand()
directive, called using the homeassistant.turn_on
and homeassistant.turn_off
services, etc.
Services
This integration provides the following services to modify groups and a service to reload the configuration without restarting Home Assistant itself.
Service | Data | Description |
---|---|---|
set |
Object ID |
Group id and part of entity id. |
Name |
Name of the group. | |
Icon |
Name of the icon for the group. | |
Entities |
List of all members in the group. Not compatible with delta. | |
Add Entities |
List of members that will change on group listening. | |
Remove Entities |
List of members that will be removed from group listening. | |
All |
Enable this option if the group should only turn on when all entities are on. | |
remove |
Object ID |
Group id and part of entity id. |
reload |
Object ID |
Group id and part of entity id. |