mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Migrate to voluptuous (#3342) [Breaking Change]
This commit is contained in:
parent
769bc37150
commit
0335f88e61
@ -6,22 +6,36 @@ https://home-assistant.io/components/light.x10/
|
|||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
from subprocess import check_output, CalledProcessError, STDOUT
|
from subprocess import check_output, CalledProcessError, STDOUT
|
||||||
from homeassistant.components.light import (ATTR_BRIGHTNESS,
|
|
||||||
SUPPORT_BRIGHTNESS, Light)
|
import voluptuous as vol
|
||||||
|
|
||||||
|
from homeassistant.const import (CONF_NAME, CONF_ID, CONF_DEVICES)
|
||||||
|
from homeassistant.components.light import (
|
||||||
|
ATTR_BRIGHTNESS, SUPPORT_BRIGHTNESS, Light, PLATFORM_SCHEMA)
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
SUPPORT_X10 = SUPPORT_BRIGHTNESS
|
SUPPORT_X10 = SUPPORT_BRIGHTNESS
|
||||||
|
|
||||||
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
|
vol.Required(CONF_DEVICES): vol.All(cv.ensure_list, [
|
||||||
|
{
|
||||||
|
vol.Required(CONF_ID): cv.string,
|
||||||
|
vol.Required(CONF_NAME): cv.string,
|
||||||
|
}
|
||||||
|
]),
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
def x10_command(command):
|
def x10_command(command):
|
||||||
"""Execute X10 command and check output."""
|
"""Execute X10 command and check output."""
|
||||||
return check_output(["heyu"] + command.split(' '), stderr=STDOUT)
|
return check_output(['heyu'] + command.split(' '), stderr=STDOUT)
|
||||||
|
|
||||||
|
|
||||||
def get_status():
|
def get_status():
|
||||||
"""Get on/off status for all x10 units in default housecode."""
|
"""Get on/off status for all x10 units in default housecode."""
|
||||||
output = check_output("heyu info | grep monitored", shell=True)
|
output = check_output('heyu info | grep monitored', shell=True)
|
||||||
return output.decode('utf-8').split(' ')[-1].strip('\n()')
|
return output.decode('utf-8').split(' ')[-1].strip('\n()')
|
||||||
|
|
||||||
|
|
||||||
@ -34,12 +48,12 @@ def get_unit_status(code):
|
|||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Setup the x10 Light platform."""
|
"""Setup the x10 Light platform."""
|
||||||
try:
|
try:
|
||||||
x10_command("info")
|
x10_command('info')
|
||||||
except CalledProcessError as err:
|
except CalledProcessError as err:
|
||||||
_LOGGER.error(err.output)
|
_LOGGER.error(err.output)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
add_devices(X10Light(light) for light in config['lights'])
|
add_devices(X10Light(light) for light in config[CONF_DEVICES])
|
||||||
|
|
||||||
|
|
||||||
class X10Light(Light):
|
class X10Light(Light):
|
||||||
@ -74,13 +88,13 @@ class X10Light(Light):
|
|||||||
|
|
||||||
def turn_on(self, **kwargs):
|
def turn_on(self, **kwargs):
|
||||||
"""Instruct the light to turn on."""
|
"""Instruct the light to turn on."""
|
||||||
x10_command("on " + self._id)
|
x10_command('on ' + self._id)
|
||||||
self._brightness = kwargs.get(ATTR_BRIGHTNESS, 255)
|
self._brightness = kwargs.get(ATTR_BRIGHTNESS, 255)
|
||||||
self._is_on = True
|
self._is_on = True
|
||||||
|
|
||||||
def turn_off(self, **kwargs):
|
def turn_off(self, **kwargs):
|
||||||
"""Instruct the light to turn off."""
|
"""Instruct the light to turn off."""
|
||||||
x10_command("off " + self._id)
|
x10_command('off ' + self._id)
|
||||||
self._is_on = False
|
self._is_on = False
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user