49 řádky
1.4 KiB
Python
49 řádky
1.4 KiB
Python
"""Support for Deebot Sensor."""
|
|
from typing import Optional
|
|
|
|
from deebotozmo import *
|
|
from homeassistant.components.binary_sensor import BinarySensorEntity
|
|
|
|
from . import HUB as hub
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
"""Set up the Deebot binary sensor platform."""
|
|
hub.update()
|
|
|
|
for vacbot in hub.vacbots:
|
|
add_devices([DeebotMopAttachedBinarySensor(vacbot, "mop_attached")], True)
|
|
|
|
|
|
class DeebotMopAttachedBinarySensor(BinarySensorEntity):
|
|
"""Deebot mop attached binary sensor"""
|
|
|
|
def __init__(self, vacbot: VacBot, device_id: str):
|
|
"""Initialize the Sensor."""
|
|
self._vacbot = vacbot
|
|
self._id = device_id
|
|
|
|
if self._vacbot.vacuum.get("nick", None) is not None:
|
|
self._vacbot_name = "{}".format(self._vacbot.vacuum["nick"])
|
|
else:
|
|
# In case there is no nickname defined, use the device id
|
|
self._vacbot_name = "{}".format(self._vacbot.vacuum["did"])
|
|
|
|
self._name = self._vacbot_name + "_" + device_id
|
|
|
|
@property
|
|
def name(self):
|
|
"""Return the name of the device."""
|
|
return self._name
|
|
|
|
@property
|
|
def is_on(self):
|
|
return self._vacbot.mop_attached
|
|
|
|
@property
|
|
def icon(self) -> Optional[str]:
|
|
"""Return the icon to use in the frontend, if any."""
|
|
return "mdi:water" if self.is_on else "mdi:water-off"
|