Files
homeassistant-core/tests/components/group/common.py
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

86 lines
1.8 KiB
Python
Raw Normal View History

2018-09-26 08:50:05 +02:00
"""Collection of helper methods.
All containing methods are legacy helpers that should not be used by new
components. Instead call the service directly.
"""
2018-09-27 23:14:09 +02:00
from homeassistant.components.group import (
ATTR_ADD_ENTITIES,
ATTR_ENTITIES,
ATTR_OBJECT_ID,
DOMAIN,
SERVICE_REMOVE,
SERVICE_SET,
)
from homeassistant.const import ATTR_ICON, ATTR_NAME, SERVICE_RELOAD
2018-09-27 23:14:09 +02:00
from homeassistant.core import callback
2018-09-26 08:50:05 +02:00
from homeassistant.loader import bind_hass
2018-09-27 23:14:09 +02:00
@bind_hass
def reload(hass):
"""Reload the automation from config."""
hass.add_job(async_reload, hass)
@callback
@bind_hass
def async_reload(hass):
"""Reload the automation from config."""
hass.async_create_task(hass.services.async_call(DOMAIN, SERVICE_RELOAD))
2018-09-27 23:14:09 +02:00
@bind_hass
def set_group(
2020-08-27 13:56:20 +02:00
hass,
object_id,
name=None,
entity_ids=None,
icon=None,
add=None,
2018-09-27 23:14:09 +02:00
):
"""Create/Update a group."""
hass.add_job(
2020-08-27 13:56:20 +02:00
async_set_group,
hass,
object_id,
name,
entity_ids,
icon,
add,
2018-09-27 23:14:09 +02:00
)
@callback
@bind_hass
def async_set_group(
2020-08-27 13:56:20 +02:00
hass,
object_id,
name=None,
entity_ids=None,
icon=None,
add=None,
2018-09-27 23:14:09 +02:00
):
"""Create/Update a group."""
data = {
key: value
for key, value in (
2018-09-27 23:14:09 +02:00
(ATTR_OBJECT_ID, object_id),
(ATTR_NAME, name),
(ATTR_ENTITIES, entity_ids),
(ATTR_ICON, icon),
(ATTR_ADD_ENTITIES, add),
)
2018-09-27 23:14:09 +02:00
if value is not None
}
hass.async_create_task(hass.services.async_call(DOMAIN, SERVICE_SET, data))
2018-09-27 23:14:09 +02:00
@callback
@bind_hass
def async_remove(hass, object_id):
"""Remove a user group."""
data = {ATTR_OBJECT_ID: object_id}
hass.async_create_task(hass.services.async_call(DOMAIN, SERVICE_REMOVE, data))