1 """Support for ADS light sources."""
3 from __future__
import annotations
8 import voluptuous
as vol
12 PLATFORM_SCHEMA
as LIGHT_PLATFORM_SCHEMA,
22 from .const
import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE
23 from .entity
import AdsEntity
24 from .hub
import AdsHub
26 CONF_ADS_VAR_BRIGHTNESS =
"adsvar_brightness"
27 STATE_KEY_BRIGHTNESS =
"brightness"
29 DEFAULT_NAME =
"ADS Light"
30 PLATFORM_SCHEMA = LIGHT_PLATFORM_SCHEMA.extend(
32 vol.Required(CONF_ADS_VAR): cv.string,
33 vol.Optional(CONF_ADS_VAR_BRIGHTNESS): cv.string,
34 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
42 add_entities: AddEntitiesCallback,
43 discovery_info: DiscoveryInfoType |
None =
None,
45 """Set up the light platform for ADS."""
46 ads_hub = hass.data[DATA_ADS]
48 ads_var_enable: str = config[CONF_ADS_VAR]
49 ads_var_brightness: str |
None = config.get(CONF_ADS_VAR_BRIGHTNESS)
50 name: str = config[CONF_NAME]
56 """Representation of ADS light."""
62 ads_var_brightness: str |
None,
65 """Initialize AdsLight entity."""
66 super().
__init__(ads_hub, name, ads_var_enable)
67 self._state_dict[STATE_KEY_BRIGHTNESS] =
None
69 if ads_var_brightness
is not None:
77 """Register device notification."""
89 """Return the brightness of the light (0..255)."""
90 return self._state_dict[STATE_KEY_BRIGHTNESS]
94 """Return True if the entity is on."""
95 return self._state_dict[STATE_KEY_STATE]
98 """Turn the light on or set a specific dimmer value."""
99 brightness = kwargs.get(ATTR_BRIGHTNESS)
100 self.
_ads_hub_ads_hub.write_by_name(self.
_ads_var_ads_var,
True, pyads.PLCTYPE_BOOL)
103 self.
_ads_hub_ads_hub.write_by_name(
108 """Turn the light off."""
109 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 __init__(self, AdsHub ads_hub, str ads_var_enable, str|None ads_var_brightness, str name)
int|None brightness(self)
_attr_supported_color_modes
None async_added_to_hass(self)
None turn_on(self, **Any kwargs)
None turn_off(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)