mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 11:47:06 +00:00
Add support for Vera covers. (#3411)
This commit is contained in:
parent
07a92e8ac3
commit
0a6f496425
70
homeassistant/components/cover/vera.py
Normal file
70
homeassistant/components/cover/vera.py
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
"""
|
||||||
|
Support for Vera cover - curtains, rollershutters etc.
|
||||||
|
|
||||||
|
For more details about this platform, please refer to the documentation at
|
||||||
|
https://home-assistant.io/components/cover.vera/
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from homeassistant.components.cover import CoverDevice
|
||||||
|
from homeassistant.components.vera import (
|
||||||
|
VeraDevice, VERA_DEVICES, VERA_CONTROLLER)
|
||||||
|
|
||||||
|
DEPENDENCIES = ['vera']
|
||||||
|
|
||||||
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def setup_platform(hass, config, add_devices_callback, discovery_info=None):
|
||||||
|
"""Find and return Vera covers."""
|
||||||
|
add_devices_callback(
|
||||||
|
VeraCover(device, VERA_CONTROLLER) for
|
||||||
|
device in VERA_DEVICES['cover'])
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=abstract-method
|
||||||
|
class VeraCover(VeraDevice, CoverDevice):
|
||||||
|
"""Represents a Vera Cover in Home Assistant."""
|
||||||
|
|
||||||
|
def __init__(self, vera_device, controller):
|
||||||
|
"""Initialize the Vera device."""
|
||||||
|
VeraDevice.__init__(self, vera_device, controller)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def current_cover_position(self):
|
||||||
|
"""
|
||||||
|
Return current position of cover.
|
||||||
|
|
||||||
|
0 is closed, 100 is fully open.
|
||||||
|
"""
|
||||||
|
position = self.vera_device.get_level()
|
||||||
|
if position <= 5:
|
||||||
|
return 0
|
||||||
|
if position >= 95:
|
||||||
|
return 100
|
||||||
|
return position
|
||||||
|
|
||||||
|
def set_cover_position(self, position, **kwargs):
|
||||||
|
"""Move the cover to a specific position."""
|
||||||
|
self.vera_device.set_level(position)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_closed(self):
|
||||||
|
"""Return if the cover is closed."""
|
||||||
|
if self.current_cover_position is not None:
|
||||||
|
if self.current_cover_position > 0:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
def open_cover(self, **kwargs):
|
||||||
|
"""Open the cover."""
|
||||||
|
self.vera_device.open()
|
||||||
|
|
||||||
|
def close_cover(self, **kwargs):
|
||||||
|
"""Close the cover."""
|
||||||
|
self.vera_device.close()
|
||||||
|
|
||||||
|
def stop_cover(self, **kwargs):
|
||||||
|
"""Stop the cover."""
|
||||||
|
self.vera_device.stop()
|
@ -20,7 +20,7 @@ from homeassistant.const import (
|
|||||||
EVENT_HOMEASSISTANT_STOP)
|
EVENT_HOMEASSISTANT_STOP)
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
REQUIREMENTS = ['pyvera==0.2.16']
|
REQUIREMENTS = ['pyvera==0.2.20']
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ CONFIG_SCHEMA = vol.Schema({
|
|||||||
}, extra=vol.ALLOW_EXTRA)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
VERA_COMPONENTS = [
|
VERA_COMPONENTS = [
|
||||||
'binary_sensor', 'sensor', 'light', 'switch', 'lock', 'climate'
|
'binary_sensor', 'sensor', 'light', 'switch', 'lock', 'climate', 'cover'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -109,12 +109,13 @@ def map_vera_device(vera_device, remap):
|
|||||||
return 'lock'
|
return 'lock'
|
||||||
if isinstance(vera_device, veraApi.VeraThermostat):
|
if isinstance(vera_device, veraApi.VeraThermostat):
|
||||||
return 'climate'
|
return 'climate'
|
||||||
|
if isinstance(vera_device, veraApi.VeraCurtain):
|
||||||
|
return 'cover'
|
||||||
if isinstance(vera_device, veraApi.VeraSwitch):
|
if isinstance(vera_device, veraApi.VeraSwitch):
|
||||||
if vera_device.device_id in remap:
|
if vera_device.device_id in remap:
|
||||||
return 'light'
|
return 'light'
|
||||||
else:
|
else:
|
||||||
return 'switch'
|
return 'switch'
|
||||||
# VeraCurtain: NOT SUPPORTED YET
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ python-wink==0.7.14
|
|||||||
# pyuserinput==0.1.11
|
# pyuserinput==0.1.11
|
||||||
|
|
||||||
# homeassistant.components.vera
|
# homeassistant.components.vera
|
||||||
pyvera==0.2.16
|
pyvera==0.2.20
|
||||||
|
|
||||||
# homeassistant.components.wemo
|
# homeassistant.components.wemo
|
||||||
pywemo==0.4.6
|
pywemo==0.4.6
|
||||||
|
Loading…
x
Reference in New Issue
Block a user