diff --git a/.coveragerc b/.coveragerc index b7d4b0bc68b..5265493ece1 100644 --- a/.coveragerc +++ b/.coveragerc @@ -762,6 +762,7 @@ omit = homeassistant/components/motion_blinds/entity.py homeassistant/components/motion_blinds/sensor.py homeassistant/components/motionmount/__init__.py + homeassistant/components/motionmount/binary_sensor.py homeassistant/components/motionmount/entity.py homeassistant/components/motionmount/number.py homeassistant/components/motionmount/select.py diff --git a/homeassistant/components/motionmount/__init__.py b/homeassistant/components/motionmount/__init__.py index 4285a12a101..5c661a77955 100644 --- a/homeassistant/components/motionmount/__init__.py +++ b/homeassistant/components/motionmount/__init__.py @@ -13,10 +13,7 @@ from homeassistant.helpers.device_registry import format_mac from .const import DOMAIN, EMPTY_MAC -PLATFORMS: list[Platform] = [ - Platform.NUMBER, - Platform.SELECT, -] +PLATFORMS: list[Platform] = [Platform.BINARY_SENSOR, Platform.NUMBER, Platform.SELECT] async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: diff --git a/homeassistant/components/motionmount/binary_sensor.py b/homeassistant/components/motionmount/binary_sensor.py new file mode 100644 index 00000000000..6bbed2e90c5 --- /dev/null +++ b/homeassistant/components/motionmount/binary_sensor.py @@ -0,0 +1,39 @@ +"""Support for MotionMount binary sensors.""" +import motionmount + +from homeassistant.components.binary_sensor import ( + BinarySensorDeviceClass, + BinarySensorEntity, +) +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity_platform import AddEntitiesCallback + +from .const import DOMAIN +from .entity import MotionMountEntity + + +async def async_setup_entry( + hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback +) -> None: + """Set up Vogel's MotionMount from a config entry.""" + mm = hass.data[DOMAIN][entry.entry_id] + + async_add_entities([MotionMountMovingSensor(mm, entry)]) + + +class MotionMountMovingSensor(MotionMountEntity, BinarySensorEntity): + """The moving sensor of a MotionMount.""" + + _attr_device_class = BinarySensorDeviceClass.MOVING + _attr_translation_key = "motionmount_is_moving" + + def __init__(self, mm: motionmount.MotionMount, config_entry: ConfigEntry) -> None: + """Initialize moving binary sensor entity.""" + super().__init__(mm, config_entry) + self._attr_unique_id = f"{self._base_unique_id}-moving" + + @property + def is_on(self) -> bool: + """Get on status.""" + return self.mm.is_moving or False diff --git a/homeassistant/components/motionmount/strings.json b/homeassistant/components/motionmount/strings.json index 2a25611433a..94859dc90e3 100644 --- a/homeassistant/components/motionmount/strings.json +++ b/homeassistant/components/motionmount/strings.json @@ -25,6 +25,11 @@ } }, "entity": { + "binary_sensor": { + "motionmount_is_moving": { + "name": "Moving" + } + }, "number": { "motionmount_extension": { "name": "Extension"