forked from home-assistant/core
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for Vera covers. (home-assistant#3411)
- Loading branch information
Showing
3 changed files
with
75 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters