1 """Support for HomeMatic binary sensors."""
3 from __future__
import annotations
6 BinarySensorDeviceClass,
13 from .const
import ATTR_DISCOVER_DEVICES, ATTR_DISCOVERY_TYPE, DISCOVER_BATTERY
14 from .entity
import HMDevice
16 SENSOR_TYPES_CLASS = {
17 "IPShutterContact": BinarySensorDeviceClass.OPENING,
18 "IPShutterContactSabotage": BinarySensorDeviceClass.OPENING,
19 "MaxShutterContact": BinarySensorDeviceClass.OPENING,
20 "Motion": BinarySensorDeviceClass.MOTION,
21 "MotionV2": BinarySensorDeviceClass.MOTION,
22 "PresenceIP": BinarySensorDeviceClass.MOTION,
25 "ShutterContact": BinarySensorDeviceClass.OPENING,
26 "Smoke": BinarySensorDeviceClass.SMOKE,
27 "SmokeV2": BinarySensorDeviceClass.SMOKE,
29 "WeatherSensor":
None,
30 "IPContact": BinarySensorDeviceClass.OPENING,
31 "MotionIP": BinarySensorDeviceClass.MOTION,
32 "MotionIPV2": BinarySensorDeviceClass.MOTION,
33 "MotionIPContactSabotage": BinarySensorDeviceClass.MOTION,
34 "IPRemoteMotionV2": BinarySensorDeviceClass.MOTION,
41 add_entities: AddEntitiesCallback,
42 discovery_info: DiscoveryInfoType |
None =
None,
44 """Set up the HomeMatic binary sensor platform."""
45 if discovery_info
is None:
48 devices: list[BinarySensorEntity] = []
49 for conf
in discovery_info[ATTR_DISCOVER_DEVICES]:
50 if discovery_info[ATTR_DISCOVERY_TYPE] == DISCOVER_BATTERY:
59 """Representation of a binary HomeMatic device."""
63 """Return true if switch is on."""
70 """Return the class of this sensor from DEVICE_CLASSES."""
73 return BinarySensorDeviceClass.MOTION
74 return SENSOR_TYPES_CLASS.get(self.
_hmdevice_hmdevice.__class__.__name__)
77 """Generate the data dictionary (self._data) from metadata."""
84 """Representation of an HomeMatic low battery sensor."""
86 _attr_device_class = BinarySensorDeviceClass.BATTERY
90 """Return True if battery is low."""
94 """Generate the data dictionary (self._data) from metadata."""
def _init_data_struct(self)
def _init_data_struct(self)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)