Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for MotionMount sensors."""
2 
3 import motionmount
4 
5 from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
6 from homeassistant.config_entries import ConfigEntry
7 from homeassistant.core import HomeAssistant
8 from homeassistant.helpers.entity_platform import AddEntitiesCallback
9 
10 from .const import DOMAIN
11 from .entity import MotionMountEntity
12 
13 
15  hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
16 ) -> None:
17  """Set up Vogel's MotionMount from a config entry."""
18  mm = hass.data[DOMAIN][entry.entry_id]
19 
21 
22 
24  """The error status sensor of a MotionMount."""
25 
26  _attr_device_class = SensorDeviceClass.ENUM
27  _attr_options = ["none", "motor", "internal"]
28  _attr_translation_key = "motionmount_error_status"
29 
30  def __init__(self, mm: motionmount.MotionMount, config_entry: ConfigEntry) -> None:
31  """Initialize sensor entiry."""
32  super().__init__(mm, config_entry)
33  self._attr_unique_id_attr_unique_id = f"{self._base_unique_id}-error-status"
34 
35  @property
36  def native_value(self) -> str:
37  """Return error status."""
38  errors = self.mmmm.error_status or 0
39 
40  if errors & (1 << 31):
41  # Only when but 31 is set are there any errors active at this moment
42  if errors & (1 << 10):
43  return "motor"
44 
45  return "internal"
46 
47  return "none"
None __init__(self, motionmount.MotionMount mm, ConfigEntry config_entry)
Definition: sensor.py:30
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:16