1 """Support for ADS switch platform."""
3 from __future__
import annotations
8 import voluptuous
as vol
11 PLATFORM_SCHEMA
as SWITCH_PLATFORM_SCHEMA,
20 from .const
import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE
21 from .entity
import AdsEntity
23 DEFAULT_NAME =
"ADS Switch"
25 PLATFORM_SCHEMA = SWITCH_PLATFORM_SCHEMA.extend(
27 vol.Required(CONF_ADS_VAR): cv.string,
28 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
36 add_entities: AddEntitiesCallback,
37 discovery_info: DiscoveryInfoType |
None =
None,
39 """Set up switch platform for ADS."""
40 ads_hub = hass.data[DATA_ADS]
42 name: str = config[CONF_NAME]
43 ads_var: str = config[CONF_ADS_VAR]
49 """Representation of an ADS switch device."""
52 """Register device notification."""
56 def is_on(self) -> bool:
57 """Return True if the entity is on."""
58 return self._state_dict[STATE_KEY_STATE]
60 def turn_on(self, **kwargs: Any) ->
None:
61 """Turn the switch on."""
62 self.
_ads_hub_ads_hub.write_by_name(self.
_ads_var_ads_var,
True, pyads.PLCTYPE_BOOL)
64 def turn_off(self, **kwargs: Any) ->
None:
65 """Turn the switch off."""
66 self.
_ads_hub_ads_hub.write_by_name(self.
_ads_var_ads_var,
False, pyads.PLCTYPE_BOOL)
None async_initialize_device(self, str ads_var, type plctype, str state_key=STATE_KEY_STATE, int|None factor=None)
None async_added_to_hass(self)
None turn_off(self, **Any kwargs)
None turn_on(self, **Any kwargs)
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)