1 """Support for ADS sensors."""
3 from __future__
import annotations
5 import voluptuous
as vol
9 DEVICE_CLASSES_SCHEMA
as SENSOR_DEVICE_CLASSES_SCHEMA,
10 PLATFORM_SCHEMA
as SENSOR_PLATFORM_SCHEMA,
11 STATE_CLASSES_SCHEMA
as SENSOR_STATE_CLASSES_SCHEMA,
22 from .
import ADS_TYPEMAP, CONF_ADS_FACTOR, CONF_ADS_TYPE
23 from .const
import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsType
24 from .entity
import AdsEntity
25 from .hub
import AdsHub
27 DEFAULT_NAME =
"ADS sensor"
29 PLATFORM_SCHEMA = SENSOR_PLATFORM_SCHEMA.extend(
31 vol.Required(CONF_ADS_VAR): cv.string,
32 vol.Optional(CONF_ADS_FACTOR): cv.positive_int,
33 vol.Optional(CONF_ADS_TYPE, default=AdsType.INT): vol.All(
52 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
53 vol.Optional(CONF_DEVICE_CLASS): SENSOR_DEVICE_CLASSES_SCHEMA,
54 vol.Optional(CONF_STATE_CLASS): SENSOR_STATE_CLASSES_SCHEMA,
55 vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
63 add_entities: AddEntitiesCallback,
64 discovery_info: DiscoveryInfoType |
None =
None,
66 """Set up an ADS sensor device."""
67 ads_hub = hass.data[DATA_ADS]
69 ads_var: str = config[CONF_ADS_VAR]
70 ads_type: AdsType = config[CONF_ADS_TYPE]
71 name: str = config[CONF_NAME]
72 factor: int |
None = config.get(CONF_ADS_FACTOR)
73 device_class: SensorDeviceClass |
None = config.get(CONF_DEVICE_CLASS)
74 state_class: SensorStateClass |
None = config.get(CONF_STATE_CLASS)
75 unit_of_measurement: str |
None = config.get(CONF_UNIT_OF_MEASUREMENT)
92 """Representation of an ADS sensor entity."""
101 device_class: SensorDeviceClass |
None,
102 state_class: SensorStateClass |
None,
103 unit_of_measurement: str |
None,
105 """Initialize AdsSensor entity."""
106 super().
__init__(ads_hub, name, ads_var)
114 """Register device notification."""
124 """Return the state of the device."""
125 return self._state_dict[STATE_KEY_STATE]
None async_initialize_device(self, str ads_var, type plctype, str state_key=STATE_KEY_STATE, int|None factor=None)
StateType native_value(self)
_attr_native_unit_of_measurement
None __init__(self, AdsHub ads_hub, str ads_var, AdsType ads_type, str name, int|None factor, SensorDeviceClass|None device_class, SensorStateClass|None state_class, str|None unit_of_measurement)
None async_added_to_hass(self)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)
def add_entities(account, async_add_entities, tracked)