1 """Support for ADS select entities."""
3 from __future__
import annotations
6 import voluptuous
as vol
9 PLATFORM_SCHEMA
as SELECT_PLATFORM_SCHEMA,
18 from .const
import CONF_ADS_VAR, DATA_ADS
19 from .entity
import AdsEntity
20 from .hub
import AdsHub
22 DEFAULT_NAME =
"ADS select"
24 CONF_OPTIONS =
"options"
26 PLATFORM_SCHEMA = SELECT_PLATFORM_SCHEMA.extend(
28 vol.Required(CONF_ADS_VAR): cv.string,
29 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
30 vol.Required(CONF_OPTIONS): vol.All(cv.ensure_list, [cv.string]),
38 add_entities: AddEntitiesCallback,
39 discovery_info: DiscoveryInfoType |
None =
None,
41 """Set up an ADS select device."""
42 ads_hub = hass.data[DATA_ADS]
44 ads_var: str = config[CONF_ADS_VAR]
45 name: str = config[CONF_NAME]
46 options: list[str] = config[CONF_OPTIONS]
48 entity =
AdsSelect(ads_hub, ads_var, name, options)
54 """Representation of an ADS select entity."""
63 """Initialize the AdsSelect entity."""
64 super().
__init__(ads_hub, name, ads_var)
69 """Register device notification."""
71 self.
_ads_hub_ads_hub.add_device_notification(
76 """Change the selected option."""
79 self.
_ads_hub_ads_hub.write_by_name(self.
_ads_var_ads_var, index, pyads.PLCTYPE_INT)
83 """Handle the value update from ADS."""
None async_initialize_device(self, str ads_var, type plctype, str state_key=STATE_KEY_STATE, int|None factor=None)
None _handle_ads_value(self, str name, int value)
None __init__(self, AdsHub ads_hub, str ads_var, str name, list[str] options)
None select_option(self, str option)
None async_added_to_hass(self)
None schedule_update_ha_state(self, bool force_refresh=False)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)