1 """Support for LCN scenes."""
3 from collections.abc
import Iterable
4 from functools
import partial
17 ADD_ENTITIES_CALLBACKS,
25 from .entity
import LcnEntity
31 config_entry: ConfigEntry,
32 async_add_entities: AddEntitiesCallback,
33 entity_configs: Iterable[ConfigType],
35 """Add entities for this domain."""
37 LcnScene(entity_config, config_entry)
for entity_config
in entity_configs
45 config_entry: ConfigEntry,
46 async_add_entities: AddEntitiesCallback,
48 """Set up LCN switch entities from a config entry."""
49 add_entities = partial(
55 hass.data[DOMAIN][config_entry.entry_id][ADD_ENTITIES_CALLBACKS].
update(
56 {DOMAIN_SCENE: add_entities}
62 for entity_config
in config_entry.data[CONF_ENTITIES]
63 if entity_config[CONF_DOMAIN] == DOMAIN_SCENE
69 """Representation of a LCN scene."""
71 def __init__(self, config: ConfigType, config_entry: ConfigEntry) ->
None:
72 """Initialize the LCN scene."""
73 super().
__init__(config, config_entry)
75 self.
register_idregister_id = config[CONF_DOMAIN_DATA][CONF_REGISTER]
76 self.
scene_idscene_id = config[CONF_DOMAIN_DATA][CONF_SCENE]
80 for port
in config[CONF_DOMAIN_DATA][CONF_OUTPUTS]:
81 if port
in OUTPUT_PORTS:
82 self.
output_portsoutput_ports.append(pypck.lcn_defs.OutputPort[port])
84 self.
relay_portsrelay_ports.append(pypck.lcn_defs.RelayPort[port])
86 if config[CONF_DOMAIN_DATA][CONF_TRANSITION]
is None:
89 self.
transitiontransition = pypck.lcn_defs.time_to_ramp_value(
90 config[CONF_DOMAIN_DATA][CONF_TRANSITION] * 1000.0
None async_activate(self, **Any kwargs)
None __init__(self, ConfigType config, ConfigEntry config_entry)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
IssData update(pyiss.ISS iss)
None add_lcn_entities(ConfigEntry config_entry, AddEntitiesCallback async_add_entities, Iterable[ConfigType] entity_configs)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)