core/homeassistant/components/group/reproduce_state.py

31 lines
1.0 KiB
Python
Raw Normal View History

"""Module that groups code required to handle state restore for component."""
from typing import Iterable, Optional
from homeassistant.core import Context, State
from homeassistant.helpers.state import async_reproduce_state
from homeassistant.helpers.typing import HomeAssistantType
from . import get_entity_ids
2019-07-31 19:25:30 +00:00
async def async_reproduce_states(
hass: HomeAssistantType, states: Iterable[State], context: Optional[Context] = None
) -> None:
"""Reproduce component states."""
2019-07-31 19:25:30 +00:00
states_copy = []
for state in states:
members = get_entity_ids(hass, state.entity_id)
for member in members:
states_copy.append(
2019-07-31 19:25:30 +00:00
State(
member,
state.state,
state.attributes,
last_changed=state.last_changed,
last_updated=state.last_updated,
context=state.context,
)
)
await async_reproduce_state(hass, states_copy, blocking=True, context=context)