Add support for Vera covers. (#3411)
This commit is contained in:
parent
07a92e8ac3
commit
0a6f496425
3 changed files with 75 additions and 4 deletions
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)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
REQUIREMENTS = ['pyvera==0.2.16']
|
||||
REQUIREMENTS = ['pyvera==0.2.20']
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -47,7 +47,7 @@ CONFIG_SCHEMA = vol.Schema({
|
|||
}, extra=vol.ALLOW_EXTRA)
|
||||
|
||||
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'
|
||||
if isinstance(vera_device, veraApi.VeraThermostat):
|
||||
return 'climate'
|
||||
if isinstance(vera_device, veraApi.VeraCurtain):
|
||||
return 'cover'
|
||||
if isinstance(vera_device, veraApi.VeraSwitch):
|
||||
if vera_device.device_id in remap:
|
||||
return 'light'
|
||||
else:
|
||||
return 'switch'
|
||||
# VeraCurtain: NOT SUPPORTED YET
|
||||
return None
|
||||
|
||||
|
||||
|
|
|
@ -406,7 +406,7 @@ python-wink==0.7.14
|
|||
# pyuserinput==0.1.11
|
||||
|
||||
# homeassistant.components.vera
|
||||
pyvera==0.2.16
|
||||
pyvera==0.2.20
|
||||
|
||||
# homeassistant.components.wemo
|
||||
pywemo==0.4.6
|
||||
|
|
Loading…
Add table
Reference in a new issue