mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 04:07:08 +00:00
Add HomematicIP Cloud smoke detector device (#15621)
* Add smoke detector device * Remove not needed __init__ functions
This commit is contained in:
parent
2233d7ca98
commit
a29f867908
@ -16,10 +16,7 @@ DEPENDENCIES = ['homematicip_cloud']
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
ATTR_WINDOW_STATE = 'window_state'
|
STATE_SMOKE_OFF = 'IDLE_OFF'
|
||||||
ATTR_EVENT_DELAY = 'event_delay'
|
|
||||||
ATTR_MOTION_DETECTED = 'motion_detected'
|
|
||||||
ATTR_ILLUMINATION = 'illumination'
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_platform(hass, config, async_add_devices,
|
async def async_setup_platform(hass, config, async_add_devices,
|
||||||
@ -30,15 +27,18 @@ async def async_setup_platform(hass, config, async_add_devices,
|
|||||||
|
|
||||||
async def async_setup_entry(hass, config_entry, async_add_devices):
|
async def async_setup_entry(hass, config_entry, async_add_devices):
|
||||||
"""Set up the HomematicIP binary sensor from a config entry."""
|
"""Set up the HomematicIP binary sensor from a config entry."""
|
||||||
from homematicip.device import (ShutterContact, MotionDetectorIndoor)
|
from homematicip.aio.device import (
|
||||||
|
AsyncShutterContact, AsyncMotionDetectorIndoor, AsyncSmokeDetector)
|
||||||
|
|
||||||
home = hass.data[HMIPC_DOMAIN][config_entry.data[HMIPC_HAPID]].home
|
home = hass.data[HMIPC_DOMAIN][config_entry.data[HMIPC_HAPID]].home
|
||||||
devices = []
|
devices = []
|
||||||
for device in home.devices:
|
for device in home.devices:
|
||||||
if isinstance(device, ShutterContact):
|
if isinstance(device, AsyncShutterContact):
|
||||||
devices.append(HomematicipShutterContact(home, device))
|
devices.append(HomematicipShutterContact(home, device))
|
||||||
elif isinstance(device, MotionDetectorIndoor):
|
elif isinstance(device, AsyncMotionDetectorIndoor):
|
||||||
devices.append(HomematicipMotionDetector(home, device))
|
devices.append(HomematicipMotionDetector(home, device))
|
||||||
|
elif isinstance(device, AsyncSmokeDetector):
|
||||||
|
devices.append(HomematicipSmokeDetector(home, device))
|
||||||
|
|
||||||
if devices:
|
if devices:
|
||||||
async_add_devices(devices)
|
async_add_devices(devices)
|
||||||
@ -47,10 +47,6 @@ async def async_setup_entry(hass, config_entry, async_add_devices):
|
|||||||
class HomematicipShutterContact(HomematicipGenericDevice, BinarySensorDevice):
|
class HomematicipShutterContact(HomematicipGenericDevice, BinarySensorDevice):
|
||||||
"""HomematicIP shutter contact."""
|
"""HomematicIP shutter contact."""
|
||||||
|
|
||||||
def __init__(self, home, device):
|
|
||||||
"""Initialize the shutter contact."""
|
|
||||||
super().__init__(home, device)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_class(self):
|
def device_class(self):
|
||||||
"""Return the class of this sensor."""
|
"""Return the class of this sensor."""
|
||||||
@ -71,10 +67,6 @@ class HomematicipShutterContact(HomematicipGenericDevice, BinarySensorDevice):
|
|||||||
class HomematicipMotionDetector(HomematicipGenericDevice, BinarySensorDevice):
|
class HomematicipMotionDetector(HomematicipGenericDevice, BinarySensorDevice):
|
||||||
"""MomematicIP motion detector."""
|
"""MomematicIP motion detector."""
|
||||||
|
|
||||||
def __init__(self, home, device):
|
|
||||||
"""Initialize the shutter contact."""
|
|
||||||
super().__init__(home, device)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_class(self):
|
def device_class(self):
|
||||||
"""Return the class of this sensor."""
|
"""Return the class of this sensor."""
|
||||||
@ -86,3 +78,17 @@ class HomematicipMotionDetector(HomematicipGenericDevice, BinarySensorDevice):
|
|||||||
if self._device.sabotage:
|
if self._device.sabotage:
|
||||||
return True
|
return True
|
||||||
return self._device.motionDetected
|
return self._device.motionDetected
|
||||||
|
|
||||||
|
|
||||||
|
class HomematicipSmokeDetector(HomematicipGenericDevice, BinarySensorDevice):
|
||||||
|
"""MomematicIP smoke detector."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def device_class(self):
|
||||||
|
"""Return the class of this sensor."""
|
||||||
|
return 'smoke'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_on(self):
|
||||||
|
"""Return true if smoke is detected."""
|
||||||
|
return self._device.smokeDetectorAlarmType != STATE_SMOKE_OFF
|
||||||
|
Loading…
x
Reference in New Issue
Block a user