Spelling fixes (#11940)
This commit is contained in:
parent
94316f07a2
commit
55ee8959ba
80 changed files with 110 additions and 110 deletions
|
@ -41,7 +41,7 @@ homeassistant/components/*/zwave.py @home-assistant/z-wave
|
||||||
|
|
||||||
homeassistant/components/hassio.py @home-assistant/hassio
|
homeassistant/components/hassio.py @home-assistant/hassio
|
||||||
|
|
||||||
# Indiviudal components
|
# Individual components
|
||||||
homeassistant/components/alarm_control_panel/egardia.py @jeroenterheerdt
|
homeassistant/components/alarm_control_panel/egardia.py @jeroenterheerdt
|
||||||
homeassistant/components/camera/yi.py @bachya
|
homeassistant/components/camera/yi.py @bachya
|
||||||
homeassistant/components/climate/ephember.py @ttroy50
|
homeassistant/components/climate/ephember.py @ttroy50
|
||||||
|
|
|
@ -133,7 +133,7 @@ def async_setup(hass, config):
|
||||||
# have been processed. If a service does not exist it causes a 10
|
# have been processed. If a service does not exist it causes a 10
|
||||||
# second delay while we're blocking waiting for a response.
|
# second delay while we're blocking waiting for a response.
|
||||||
# But services can be registered on other HA instances that are
|
# But services can be registered on other HA instances that are
|
||||||
# listening to the bus too. So as a in between solution, we'll
|
# listening to the bus too. So as an in between solution, we'll
|
||||||
# block only if the service is defined in the current HA instance.
|
# block only if the service is defined in the current HA instance.
|
||||||
blocking = hass.services.has_service(domain, service.service)
|
blocking = hass.services.has_service(domain, service.service)
|
||||||
|
|
||||||
|
|
|
@ -624,7 +624,7 @@ def async_api_set_brightness(hass, config, request, entity):
|
||||||
@extract_entity
|
@extract_entity
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_api_adjust_brightness(hass, config, request, entity):
|
def async_api_adjust_brightness(hass, config, request, entity):
|
||||||
"""Process a adjust brightness request."""
|
"""Process an adjust brightness request."""
|
||||||
brightness_delta = int(request[API_PAYLOAD]['brightnessDelta'])
|
brightness_delta = int(request[API_PAYLOAD]['brightnessDelta'])
|
||||||
|
|
||||||
# read current state
|
# read current state
|
||||||
|
@ -812,7 +812,7 @@ def async_api_set_percentage(hass, config, request, entity):
|
||||||
@extract_entity
|
@extract_entity
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_api_adjust_percentage(hass, config, request, entity):
|
def async_api_adjust_percentage(hass, config, request, entity):
|
||||||
"""Process a adjust percentage request."""
|
"""Process an adjust percentage request."""
|
||||||
percentage_delta = int(request[API_PAYLOAD]['percentageDelta'])
|
percentage_delta = int(request[API_PAYLOAD]['percentageDelta'])
|
||||||
service = None
|
service = None
|
||||||
data = {ATTR_ENTITY_ID: entity.entity_id}
|
data = {ATTR_ENTITY_ID: entity.entity_id}
|
||||||
|
@ -873,7 +873,7 @@ def async_api_lock(hass, config, request, entity):
|
||||||
@extract_entity
|
@extract_entity
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_api_unlock(hass, config, request, entity):
|
def async_api_unlock(hass, config, request, entity):
|
||||||
"""Process a unlock request."""
|
"""Process an unlock request."""
|
||||||
yield from hass.services.async_call(entity.domain, SERVICE_UNLOCK, {
|
yield from hass.services.async_call(entity.domain, SERVICE_UNLOCK, {
|
||||||
ATTR_ENTITY_ID: entity.entity_id
|
ATTR_ENTITY_ID: entity.entity_id
|
||||||
}, blocking=False)
|
}, blocking=False)
|
||||||
|
@ -904,7 +904,7 @@ def async_api_set_volume(hass, config, request, entity):
|
||||||
@extract_entity
|
@extract_entity
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_api_adjust_volume(hass, config, request, entity):
|
def async_api_adjust_volume(hass, config, request, entity):
|
||||||
"""Process a adjust volume request."""
|
"""Process an adjust volume request."""
|
||||||
volume_delta = int(request[API_PAYLOAD]['volume'])
|
volume_delta = int(request[API_PAYLOAD]['volume'])
|
||||||
|
|
||||||
current_level = entity.attributes.get(media_player.ATTR_MEDIA_VOLUME_LEVEL)
|
current_level = entity.attributes.get(media_player.ATTR_MEDIA_VOLUME_LEVEL)
|
||||||
|
|
|
@ -59,5 +59,5 @@ class HiveBinarySensorEntity(BinarySensorDevice):
|
||||||
self.node_device_type)
|
self.node_device_type)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update all Node data frome Hive."""
|
"""Update all Node data from Hive."""
|
||||||
self.session.core.update_data(self.node_id)
|
self.session.core.update_data(self.node_id)
|
||||||
|
|
|
@ -83,5 +83,5 @@ class InsteonPLMBinarySensorDevice(BinarySensorDevice):
|
||||||
@callback
|
@callback
|
||||||
def async_binarysensor_update(self, message):
|
def async_binarysensor_update(self, message):
|
||||||
"""Receive notification from transport that new data exists."""
|
"""Receive notification from transport that new data exists."""
|
||||||
_LOGGER.info("Received update calback from PLM for %s", self._address)
|
_LOGGER.info("Received update callback from PLM for %s", self._address)
|
||||||
self._hass.async_add_job(self.async_update_ha_state())
|
self._hass.async_add_job(self.async_update_ha_state())
|
||||||
|
|
|
@ -39,7 +39,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
sensor_type))
|
sensor_type))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# create an sensor for each zone managed by faucet
|
# create a sensor for each zone managed by faucet
|
||||||
for zone in raincloud.controller.faucet.zones:
|
for zone in raincloud.controller.faucet.zones:
|
||||||
sensors.append(RainCloudBinarySensor(zone, sensor_type))
|
sensors.append(RainCloudBinarySensor(zone, sensor_type))
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ class WemoBinarySensor(BinarySensorDevice):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
"""Return the name of the sevice if any."""
|
"""Return the name of the service if any."""
|
||||||
return self.wemo.name
|
return self.wemo.name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
@ -174,7 +174,7 @@ class WebDavCalendarData(object):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def is_matching(vevent, search):
|
def is_matching(vevent, search):
|
||||||
"""Return if the event matches the filter critera."""
|
"""Return if the event matches the filter criteria."""
|
||||||
if search is None:
|
if search is None:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -411,7 +411,7 @@ class TodoistProjectData(object):
|
||||||
|
|
||||||
The "best" event is determined by the following criteria:
|
The "best" event is determined by the following criteria:
|
||||||
* A proposed event must not be completed
|
* A proposed event must not be completed
|
||||||
* A proposed event must have a end date (otherwise we go with
|
* A proposed event must have an end date (otherwise we go with
|
||||||
the event at index 0, selected above)
|
the event at index 0, selected above)
|
||||||
* A proposed event must be on the same day or earlier as our
|
* A proposed event must be on the same day or earlier as our
|
||||||
current event
|
current event
|
||||||
|
|
|
@ -91,13 +91,13 @@ def async_snapshot(hass, filename, entity_id=None):
|
||||||
@bind_hass
|
@bind_hass
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_get_image(hass, entity_id, timeout=10):
|
def async_get_image(hass, entity_id, timeout=10):
|
||||||
"""Fetch a image from a camera entity."""
|
"""Fetch an image from a camera entity."""
|
||||||
websession = async_get_clientsession(hass)
|
websession = async_get_clientsession(hass)
|
||||||
state = hass.states.get(entity_id)
|
state = hass.states.get(entity_id)
|
||||||
|
|
||||||
if state is None:
|
if state is None:
|
||||||
raise HomeAssistantError(
|
raise HomeAssistantError(
|
||||||
"No entity '{0}' for grab a image".format(entity_id))
|
"No entity '{0}' for grab an image".format(entity_id))
|
||||||
|
|
||||||
url = "{0}{1}".format(
|
url = "{0}{1}".format(
|
||||||
hass.config.api.base_url,
|
hass.config.api.base_url,
|
||||||
|
|
|
@ -207,7 +207,7 @@ class DemoClimate(ClimateDevice):
|
||||||
self.schedule_update_ha_state()
|
self.schedule_update_ha_state()
|
||||||
|
|
||||||
def turn_aux_heat_on(self):
|
def turn_aux_heat_on(self):
|
||||||
"""Turn auxillary heater on."""
|
"""Turn auxiliary heater on."""
|
||||||
self._aux = True
|
self._aux = True
|
||||||
self.schedule_update_ha_state()
|
self.schedule_update_ha_state()
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
|
|
||||||
# pylint: disable=import-error
|
# pylint: disable=import-error
|
||||||
class EQ3BTSmartThermostat(ClimateDevice):
|
class EQ3BTSmartThermostat(ClimateDevice):
|
||||||
"""Representation of a eQ-3 Bluetooth Smart thermostat."""
|
"""Representation of an eQ-3 Bluetooth Smart thermostat."""
|
||||||
|
|
||||||
def __init__(self, _mac, _name):
|
def __init__(self, _mac, _name):
|
||||||
"""Initialize the thermostat."""
|
"""Initialize the thermostat."""
|
||||||
|
|
|
@ -174,5 +174,5 @@ class HiveClimateEntity(ClimateDevice):
|
||||||
entity.handle_update(self.data_updatesource)
|
entity.handle_update(self.data_updatesource)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update all Node data frome Hive."""
|
"""Update all Node data from Hive."""
|
||||||
self.session.core.update_data(self.node_id)
|
self.session.core.update_data(self.node_id)
|
||||||
|
|
|
@ -565,7 +565,7 @@ class MqttClimate(MqttAvailability, ClimateDevice):
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_turn_aux_heat_on(self):
|
def async_turn_aux_heat_on(self):
|
||||||
"""Turn auxillary heater on."""
|
"""Turn auxiliary heater on."""
|
||||||
if self._topic[CONF_AUX_COMMAND_TOPIC] is not None:
|
if self._topic[CONF_AUX_COMMAND_TOPIC] is not None:
|
||||||
mqtt.async_publish(self.hass, self._topic[CONF_AUX_COMMAND_TOPIC],
|
mqtt.async_publish(self.hass, self._topic[CONF_AUX_COMMAND_TOPIC],
|
||||||
self._payload_on, self._qos, self._retain)
|
self._payload_on, self._qos, self._retain)
|
||||||
|
@ -576,7 +576,7 @@ class MqttClimate(MqttAvailability, ClimateDevice):
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def async_turn_aux_heat_off(self):
|
def async_turn_aux_heat_off(self):
|
||||||
"""Turn auxillary heater off."""
|
"""Turn auxiliary heater off."""
|
||||||
if self._topic[CONF_AUX_COMMAND_TOPIC] is not None:
|
if self._topic[CONF_AUX_COMMAND_TOPIC] is not None:
|
||||||
mqtt.async_publish(self.hass, self._topic[CONF_AUX_COMMAND_TOPIC],
|
mqtt.async_publish(self.hass, self._topic[CONF_AUX_COMMAND_TOPIC],
|
||||||
self._payload_off, self._qos, self._retain)
|
self._payload_off, self._qos, self._retain)
|
||||||
|
|
|
@ -249,7 +249,7 @@ class TadoClimate(ClimateDevice):
|
||||||
data = self._store.get_data(self._data_id)
|
data = self._store.get_data(self._data_id)
|
||||||
|
|
||||||
if data is None:
|
if data is None:
|
||||||
_LOGGER.debug("Recieved no data for zone %s", self.zone_name)
|
_LOGGER.debug("Received no data for zone %s", self.zone_name)
|
||||||
return
|
return
|
||||||
|
|
||||||
if 'sensorDataPoints' in data:
|
if 'sensorDataPoints' in data:
|
||||||
|
@ -317,7 +317,7 @@ class TadoClimate(ClimateDevice):
|
||||||
fan_speed = setting_data['fanSpeed']
|
fan_speed = setting_data['fanSpeed']
|
||||||
|
|
||||||
if self._device_is_active:
|
if self._device_is_active:
|
||||||
# If you set mode manualy to off, there will be an overlay
|
# If you set mode manually to off, there will be an overlay
|
||||||
# and a termination, but we want to see the mode "OFF"
|
# and a termination, but we want to see the mode "OFF"
|
||||||
self._overlay_mode = termination
|
self._overlay_mode = termination
|
||||||
self._current_operation = termination
|
self._current_operation = termination
|
||||||
|
|
|
@ -158,7 +158,7 @@ class ZwaveGarageDoorBarrier(ZwaveGarageDoorBase):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_closing(self):
|
def is_closing(self):
|
||||||
"""Return true if cover is in an closing state."""
|
"""Return true if cover is in a closing state."""
|
||||||
return self._state == "Closing"
|
return self._state == "Closing"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
@ -42,7 +42,7 @@ Device = namedtuple('Device', ['mac', 'ip', 'last_update'])
|
||||||
|
|
||||||
|
|
||||||
class ActiontecDeviceScanner(DeviceScanner):
|
class ActiontecDeviceScanner(DeviceScanner):
|
||||||
"""This class queries a an actiontec router for connected devices."""
|
"""This class queries an actiontec router for connected devices."""
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
"""Initialize the scanner."""
|
"""Initialize the scanner."""
|
||||||
|
|
|
@ -59,7 +59,7 @@ def setup(hass, config):
|
||||||
payload, fullurl, req.status_code)
|
payload, fullurl, req.status_code)
|
||||||
|
|
||||||
def update_emoncms(time):
|
def update_emoncms(time):
|
||||||
"""Send whitelisted entities states reguarly to Emoncms."""
|
"""Send whitelisted entities states regularly to Emoncms."""
|
||||||
payload_dict = {}
|
payload_dict = {}
|
||||||
|
|
||||||
for entity_id in whitelist:
|
for entity_id in whitelist:
|
||||||
|
|
|
@ -200,7 +200,7 @@ class XiaomiAirPurifier(FanEntity):
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def _try_command(self, mask_error, func, *args, **kwargs):
|
def _try_command(self, mask_error, func, *args, **kwargs):
|
||||||
"""Call a air purifier command handling error messages."""
|
"""Call an air purifier command handling error messages."""
|
||||||
from miio import DeviceException
|
from miio import DeviceException
|
||||||
try:
|
try:
|
||||||
result = yield from self.hass.async_add_job(
|
result = yield from self.hass.async_add_job(
|
||||||
|
|
|
@ -407,7 +407,7 @@ def async_setup_themes(hass, themes):
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def set_theme(call):
|
def set_theme(call):
|
||||||
"""Set backend-prefered theme."""
|
"""Set backend-preferred theme."""
|
||||||
data = call.data
|
data = call.data
|
||||||
name = data[CONF_NAME]
|
name = data[CONF_NAME]
|
||||||
if name == DEFAULT_THEME or name in hass.data[DATA_THEMES]:
|
if name == DEFAULT_THEME or name in hass.data[DATA_THEMES]:
|
||||||
|
|
|
@ -79,7 +79,7 @@ class SmartHomeError(Exception):
|
||||||
"""Log error code."""
|
"""Log error code."""
|
||||||
super(SmartHomeError, self).__init__(msg)
|
super(SmartHomeError, self).__init__(msg)
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"An error has ocurred in Google SmartHome: %s."
|
"An error has occurred in Google SmartHome: %s."
|
||||||
"Error code: %s", msg, code
|
"Error code: %s", msg, code
|
||||||
)
|
)
|
||||||
self.code = code
|
self.code = code
|
||||||
|
@ -96,7 +96,7 @@ class Config:
|
||||||
|
|
||||||
|
|
||||||
def entity_to_device(entity: Entity, config: Config, units: UnitSystem):
|
def entity_to_device(entity: Entity, config: Config, units: UnitSystem):
|
||||||
"""Convert a hass entity into an google actions device."""
|
"""Convert a hass entity into a google actions device."""
|
||||||
entity_config = config.entity_config.get(entity.entity_id, {})
|
entity_config = config.entity_config.get(entity.entity_id, {})
|
||||||
google_domain = entity_config.get(CONF_TYPE)
|
google_domain = entity_config.get(CONF_TYPE)
|
||||||
class_data = MAPPING_COMPONENT.get(
|
class_data = MAPPING_COMPONENT.get(
|
||||||
|
|
|
@ -466,7 +466,7 @@ def _system_callback_handler(hass, config, src, *args):
|
||||||
hass, discovery_type, addresses, interface)
|
hass, discovery_type, addresses, interface)
|
||||||
|
|
||||||
# When devices of this type are found
|
# When devices of this type are found
|
||||||
# they are setup in HASS and an discovery event is fired
|
# they are setup in HASS and a discovery event is fired
|
||||||
if found_devices:
|
if found_devices:
|
||||||
discovery.load_platform(hass, component_name, DOMAIN, {
|
discovery.load_platform(hass, component_name, DOMAIN, {
|
||||||
ATTR_DISCOVER_DEVICES: found_devices
|
ATTR_DISCOVER_DEVICES: found_devices
|
||||||
|
|
|
@ -13,7 +13,7 @@ virtualkey:
|
||||||
description: Event to send i.e. PRESS_LONG, PRESS_SHORT.
|
description: Event to send i.e. PRESS_LONG, PRESS_SHORT.
|
||||||
example: PRESS_LONG
|
example: PRESS_LONG
|
||||||
interface:
|
interface:
|
||||||
description: (Optional) for set a interface value.
|
description: (Optional) for set an interface value.
|
||||||
example: Interfaces name from config
|
example: Interfaces name from config
|
||||||
|
|
||||||
set_variable_value:
|
set_variable_value:
|
||||||
|
@ -42,7 +42,7 @@ set_device_value:
|
||||||
description: Event to send i.e. PRESS_LONG, PRESS_SHORT
|
description: Event to send i.e. PRESS_LONG, PRESS_SHORT
|
||||||
example: PRESS_LONG
|
example: PRESS_LONG
|
||||||
interface:
|
interface:
|
||||||
description: (Optional) for set a interface value
|
description: (Optional) for set an interface value
|
||||||
example: Interfaces name from config
|
example: Interfaces name from config
|
||||||
value:
|
value:
|
||||||
description: New value
|
description: New value
|
||||||
|
|
|
@ -60,7 +60,7 @@ SERVICE_SCAN_SCHEMA = vol.Schema({
|
||||||
|
|
||||||
@bind_hass
|
@bind_hass
|
||||||
def scan(hass, entity_id=None):
|
def scan(hass, entity_id=None):
|
||||||
"""Force process a image."""
|
"""Force process an image."""
|
||||||
data = {ATTR_ENTITY_ID: entity_id} if entity_id else None
|
data = {ATTR_ENTITY_ID: entity_id} if entity_id else None
|
||||||
hass.services.call(DOMAIN, SERVICE_SCAN, data)
|
hass.services.call(DOMAIN, SERVICE_SCAN, data)
|
||||||
|
|
||||||
|
|
|
@ -137,5 +137,5 @@ class HiveDeviceLight(Light):
|
||||||
return supported_features
|
return supported_features
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update all Node data frome Hive."""
|
"""Update all Node data from Hive."""
|
||||||
self.session.core.update_data(self.node_id)
|
self.session.core.update_data(self.node_id)
|
||||||
|
|
|
@ -101,7 +101,7 @@ class InsteonPLMDimmerDevice(Light):
|
||||||
@callback
|
@callback
|
||||||
def async_light_update(self, message):
|
def async_light_update(self, message):
|
||||||
"""Receive notification from transport that new data exists."""
|
"""Receive notification from transport that new data exists."""
|
||||||
_LOGGER.info("Received update calback from PLM for %s", self._address)
|
_LOGGER.info("Received update callback from PLM for %s", self._address)
|
||||||
self._hass.async_add_job(self.async_update_ha_state())
|
self._hass.async_add_job(self.async_update_ha_state())
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
|
|
|
@ -62,7 +62,7 @@ class MochadLight(Light):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def brightness(self):
|
def brightness(self):
|
||||||
"""Return the birghtness of this light between 0..255."""
|
"""Return the brightness of this light between 0..255."""
|
||||||
return self._brightness
|
return self._brightness
|
||||||
|
|
||||||
def _get_device_status(self):
|
def _get_device_status(self):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
LIRC interface to receive signals from a infrared remote control.
|
LIRC interface to receive signals from an infrared remote control.
|
||||||
|
|
||||||
For more details about this component, please refer to the documentation at
|
For more details about this component, please refer to the documentation at
|
||||||
https://home-assistant.io/components/lirc/
|
https://home-assistant.io/components/lirc/
|
||||||
|
|
|
@ -133,7 +133,7 @@ class MailboxEntity(Entity):
|
||||||
|
|
||||||
|
|
||||||
class Mailbox(object):
|
class Mailbox(object):
|
||||||
"""Represent an mailbox device."""
|
"""Represent a mailbox device."""
|
||||||
|
|
||||||
def __init__(self, hass, name):
|
def __init__(self, hass, name):
|
||||||
"""Initialize mailbox object."""
|
"""Initialize mailbox object."""
|
||||||
|
|
|
@ -49,7 +49,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
|
||||||
|
|
||||||
def async_anthemav_update_callback(message):
|
def async_anthemav_update_callback(message):
|
||||||
"""Receive notification from transport that new data exists."""
|
"""Receive notification from transport that new data exists."""
|
||||||
_LOGGER.info("Received update calback from AVR: %s", message)
|
_LOGGER.info("Received update callback from AVR: %s", message)
|
||||||
hass.async_add_job(device.async_update_ha_state())
|
hass.async_add_job(device.async_update_ha_state())
|
||||||
|
|
||||||
avr = yield from anthemav.Connection.create(
|
avr = yield from anthemav.Connection.create(
|
||||||
|
|
|
@ -150,10 +150,10 @@ class BluesoundPlayer(MediaPlayerDevice):
|
||||||
self._port = DEFAULT_PORT
|
self._port = DEFAULT_PORT
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _try_get_index(string, seach_string):
|
def _try_get_index(string, search_string):
|
||||||
"""Get the index."""
|
"""Get the index."""
|
||||||
try:
|
try:
|
||||||
return string.index(seach_string)
|
return string.index(search_string)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ class CmusDevice(MediaPlayerDevice):
|
||||||
"""Get the latest data and update the state."""
|
"""Get the latest data and update the state."""
|
||||||
status = self.cmus.get_status_dict()
|
status = self.cmus.get_status_dict()
|
||||||
if not status:
|
if not status:
|
||||||
_LOGGER.warning("Recieved no status from cmus")
|
_LOGGER.warning("Received no status from cmus")
|
||||||
else:
|
else:
|
||||||
self.status = status
|
self.status = status
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ class DenonDevice(MediaPlayerDevice):
|
||||||
if not line:
|
if not line:
|
||||||
break
|
break
|
||||||
lines.append(line.decode('ASCII').strip())
|
lines.append(line.decode('ASCII').strip())
|
||||||
_LOGGER.debug("Recived: %s", line)
|
_LOGGER.debug("Received: %s", line)
|
||||||
|
|
||||||
if all_lines:
|
if all_lines:
|
||||||
return lines
|
return lines
|
||||||
|
|
|
@ -103,7 +103,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
|
|
||||||
|
|
||||||
class MonopriceZone(MediaPlayerDevice):
|
class MonopriceZone(MediaPlayerDevice):
|
||||||
"""Representation of a a Monoprice amplifier zone."""
|
"""Representation of a Monoprice amplifier zone."""
|
||||||
|
|
||||||
def __init__(self, monoprice, sources, zone_id, zone_name):
|
def __init__(self, monoprice, sources, zone_id, zone_name):
|
||||||
"""Initialize new zone."""
|
"""Initialize new zone."""
|
||||||
|
|
|
@ -473,7 +473,7 @@ class SqueezeBoxDevice(MediaPlayerDevice):
|
||||||
return self.async_query('playlist', 'play', media_id)
|
return self.async_query('playlist', 'play', media_id)
|
||||||
|
|
||||||
def _add_uri_to_playlist(self, media_id):
|
def _add_uri_to_playlist(self, media_id):
|
||||||
"""Add a items to the existing playlist."""
|
"""Add an item to the existing playlist."""
|
||||||
return self.async_query('playlist', 'add', media_id)
|
return self.async_query('playlist', 'add', media_id)
|
||||||
|
|
||||||
def async_set_shuffle(self, shuffle):
|
def async_set_shuffle(self, shuffle):
|
||||||
|
|
|
@ -337,7 +337,7 @@ class MicrosoftFace(object):
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def call_api(self, method, function, data=None, binary=False,
|
def call_api(self, method, function, data=None, binary=False,
|
||||||
params=None):
|
params=None):
|
||||||
"""Make a api call."""
|
"""Make an api call."""
|
||||||
headers = {"Ocp-Apim-Subscription-Key": self._api_key}
|
headers = {"Ocp-Apim-Subscription-Key": self._api_key}
|
||||||
url = self._server_url.format(function)
|
url = self._server_url.format(function)
|
||||||
|
|
||||||
|
|
|
@ -112,13 +112,13 @@ class ApnsDevice(object):
|
||||||
self.device_disabled = True
|
self.device_disabled = True
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
"""Return the comparision."""
|
"""Return the comparison."""
|
||||||
if isinstance(other, self.__class__):
|
if isinstance(other, self.__class__):
|
||||||
return self.push_id == other.push_id and self.name == other.name
|
return self.push_id == other.push_id and self.name == other.name
|
||||||
return NotImplemented
|
return NotImplemented
|
||||||
|
|
||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
"""Return the comparision."""
|
"""Return the comparison."""
|
||||||
return not self.__eq__(other)
|
return not self.__eq__(other)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -390,7 +390,7 @@ class RflinkCommand(RflinkDevice):
|
||||||
"""Cancel queued signal repetition commands.
|
"""Cancel queued signal repetition commands.
|
||||||
|
|
||||||
For example when user changed state while repetitions are still
|
For example when user changed state while repetitions are still
|
||||||
queued for broadcast. Or when a incoming Rflink command (remote
|
queued for broadcast. Or when an incoming Rflink command (remote
|
||||||
switch) changes the state.
|
switch) changes the state.
|
||||||
"""
|
"""
|
||||||
# cancel any outstanding tasks from the previous state change
|
# cancel any outstanding tasks from the previous state change
|
||||||
|
|
|
@ -238,7 +238,7 @@ class BME680Handler:
|
||||||
|
|
||||||
self._gas_sensor_running = True
|
self._gas_sensor_running = True
|
||||||
|
|
||||||
# Pause to allow inital data read for device validation.
|
# Pause to allow initial data read for device validation.
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
||||||
start_time = time()
|
start_time = time()
|
||||||
|
|
|
@ -93,8 +93,8 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
|
||||||
device.telegram = telegram
|
device.telegram = telegram
|
||||||
hass.async_add_job(device.async_update_ha_state())
|
hass.async_add_job(device.async_update_ha_state())
|
||||||
|
|
||||||
# Creates a asyncio.Protocol factory for reading DSMR telegrams from serial
|
# Creates an asyncio.Protocol factory for reading DSMR telegrams from
|
||||||
# and calls update_entities_telegram to update entities on arrival
|
# serial and calls update_entities_telegram to update entities on arrival
|
||||||
if config[CONF_HOST]:
|
if config[CONF_HOST]:
|
||||||
reader_factory = partial(
|
reader_factory = partial(
|
||||||
create_tcp_dsmr_reader, config[CONF_HOST], config[CONF_PORT],
|
create_tcp_dsmr_reader, config[CONF_HOST], config[CONF_PORT],
|
||||||
|
|
|
@ -122,7 +122,7 @@ class EddystoneTemp(Entity):
|
||||||
|
|
||||||
|
|
||||||
class Monitor(object):
|
class Monitor(object):
|
||||||
"""Continously scan for BLE advertisements."""
|
"""Continuously scan for BLE advertisements."""
|
||||||
|
|
||||||
def __init__(self, hass, devices, bt_device_id):
|
def __init__(self, hass, devices, bt_device_id):
|
||||||
"""Construct interface object."""
|
"""Construct interface object."""
|
||||||
|
@ -150,7 +150,7 @@ class Monitor(object):
|
||||||
self.scanning = False
|
self.scanning = False
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
"""Continously scan for BLE advertisements."""
|
"""Continuously scan for BLE advertisements."""
|
||||||
if not self.scanning:
|
if not self.scanning:
|
||||||
self.scanner.start()
|
self.scanner.start()
|
||||||
self.scanning = True
|
self.scanning = True
|
||||||
|
|
|
@ -65,7 +65,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
|
||||||
|
|
||||||
|
|
||||||
class EightHeatSensor(EightSleepHeatEntity):
|
class EightHeatSensor(EightSleepHeatEntity):
|
||||||
"""Representation of a eight sleep heat-based sensor."""
|
"""Representation of an eight sleep heat-based sensor."""
|
||||||
|
|
||||||
def __init__(self, name, eight, sensor):
|
def __init__(self, name, eight, sensor):
|
||||||
"""Initialize the sensor."""
|
"""Initialize the sensor."""
|
||||||
|
@ -116,7 +116,7 @@ class EightHeatSensor(EightSleepHeatEntity):
|
||||||
|
|
||||||
|
|
||||||
class EightUserSensor(EightSleepUserEntity):
|
class EightUserSensor(EightSleepUserEntity):
|
||||||
"""Representation of a eight sleep user-based sensor."""
|
"""Representation of an eight sleep user-based sensor."""
|
||||||
|
|
||||||
def __init__(self, name, eight, sensor, units):
|
def __init__(self, name, eight, sensor, units):
|
||||||
"""Initialize the sensor."""
|
"""Initialize the sensor."""
|
||||||
|
@ -232,7 +232,7 @@ class EightUserSensor(EightSleepUserEntity):
|
||||||
|
|
||||||
|
|
||||||
class EightRoomSensor(EightSleepUserEntity):
|
class EightRoomSensor(EightSleepUserEntity):
|
||||||
"""Representation of a eight sleep room sensor."""
|
"""Representation of an eight sleep room sensor."""
|
||||||
|
|
||||||
def __init__(self, name, eight, sensor, units):
|
def __init__(self, name, eight, sensor, units):
|
||||||
"""Initialize the sensor."""
|
"""Initialize the sensor."""
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
Parse prices of a item from gearbest.
|
Parse prices of an item from gearbest.
|
||||||
|
|
||||||
For more details about this platform, please refer to the documentation at
|
For more details about this platform, please refer to the documentation at
|
||||||
https://home-assistant.io/components/sensor.gearbest/
|
https://home-assistant.io/components/sensor.gearbest/
|
||||||
|
|
|
@ -48,5 +48,5 @@ class HiveSensorEntity(Entity):
|
||||||
return self.session.sensor.hub_online_status(self.node_id)
|
return self.session.sensor.hub_online_status(self.node_id)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update all Node data frome Hive."""
|
"""Update all Node data from Hive."""
|
||||||
self.session.core.update_data(self.node_id)
|
self.session.core.update_data(self.node_id)
|
||||||
|
|
|
@ -36,7 +36,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
RainCloudSensor(raincloud.controller.faucet,
|
RainCloudSensor(raincloud.controller.faucet,
|
||||||
sensor_type))
|
sensor_type))
|
||||||
else:
|
else:
|
||||||
# create an sensor for each zone managed by a faucet
|
# create a sensor for each zone managed by a faucet
|
||||||
for zone in raincloud.controller.faucet.zones:
|
for zone in raincloud.controller.faucet.zones:
|
||||||
sensors.append(RainCloudSensor(zone, sensor_type))
|
sensors.append(RainCloudSensor(zone, sensor_type))
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@ class TadoSensor(Entity):
|
||||||
data = self._store.get_data(self._data_id)
|
data = self._store.get_data(self._data_id)
|
||||||
|
|
||||||
if data is None:
|
if data is None:
|
||||||
_LOGGER.debug("Recieved no data for zone %s", self.zone_name)
|
_LOGGER.debug("Received no data for zone %s", self.zone_name)
|
||||||
return
|
return
|
||||||
|
|
||||||
unit = TEMP_CELSIUS
|
unit = TEMP_CELSIUS
|
||||||
|
|
|
@ -19,7 +19,7 @@ from homeassistant.util import slugify
|
||||||
class WFSensorConfig(object):
|
class WFSensorConfig(object):
|
||||||
"""Water Furnace Sensor configuration."""
|
"""Water Furnace Sensor configuration."""
|
||||||
|
|
||||||
def __init__(self, friendly_name, field, icon="mdi:guage",
|
def __init__(self, friendly_name, field, icon="mdi:gauge",
|
||||||
unit_of_measurement=None):
|
unit_of_measurement=None):
|
||||||
"""Initialize configuration."""
|
"""Initialize configuration."""
|
||||||
self.friendly_name = friendly_name
|
self.friendly_name = friendly_name
|
||||||
|
|
|
@ -68,7 +68,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
|
|
||||||
|
|
||||||
class AcerSwitch(SwitchDevice):
|
class AcerSwitch(SwitchDevice):
|
||||||
"""Represents an Acer Projector as an switch."""
|
"""Represents an Acer Projector as a switch."""
|
||||||
|
|
||||||
def __init__(self, serial_port, name, timeout, write_timeout, **kwargs):
|
def __init__(self, serial_port, name, timeout, write_timeout, **kwargs):
|
||||||
"""Init of the Acer projector."""
|
"""Init of the Acer projector."""
|
||||||
|
|
|
@ -100,7 +100,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
packet = yield from hass.async_add_job(
|
packet = yield from hass.async_add_job(
|
||||||
broadlink_device.check_data)
|
broadlink_device.check_data)
|
||||||
if packet:
|
if packet:
|
||||||
log_msg = "Recieved packet is: {}".\
|
log_msg = "Received packet is: {}".\
|
||||||
format(b64encode(packet).decode('utf8'))
|
format(b64encode(packet).decode('utf8'))
|
||||||
_LOGGER.info(log_msg)
|
_LOGGER.info(log_msg)
|
||||||
hass.components.persistent_notification.async_create(
|
hass.components.persistent_notification.async_create(
|
||||||
|
|
|
@ -73,7 +73,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
|
|
||||||
|
|
||||||
class DINRelay(SwitchDevice):
|
class DINRelay(SwitchDevice):
|
||||||
"""Representation of a individual DIN III relay port."""
|
"""Representation of an individual DIN III relay port."""
|
||||||
|
|
||||||
def __init__(self, controller_name, parent_device, outlet):
|
def __init__(self, controller_name, parent_device, outlet):
|
||||||
"""Initialize the DIN III Relay switch."""
|
"""Initialize the DIN III Relay switch."""
|
||||||
|
|
|
@ -210,7 +210,7 @@ class FluxSwitch(SwitchDevice):
|
||||||
else:
|
else:
|
||||||
temp = self._start_colortemp + temp_offset
|
temp = self._start_colortemp + temp_offset
|
||||||
else:
|
else:
|
||||||
# Nightime
|
# Night time
|
||||||
time_state = 'night'
|
time_state = 'night'
|
||||||
|
|
||||||
if now < stop_time:
|
if now < stop_time:
|
||||||
|
|
|
@ -65,5 +65,5 @@ class HiveDevicePlug(SwitchDevice):
|
||||||
entity.handle_update(self.data_updatesource)
|
entity.handle_update(self.data_updatesource)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Update all Node data frome Hive."""
|
"""Update all Node data from Hive."""
|
||||||
self.session.core.update_data(self.node_id)
|
self.session.core.update_data(self.node_id)
|
||||||
|
|
|
@ -83,7 +83,7 @@ class InsteonPLMSwitchDevice(SwitchDevice):
|
||||||
@callback
|
@callback
|
||||||
def async_switch_update(self, message):
|
def async_switch_update(self, message):
|
||||||
"""Receive notification from transport that new data exists."""
|
"""Receive notification from transport that new data exists."""
|
||||||
_LOGGER.info('Received update calback from PLM for %s', self._address)
|
_LOGGER.info('Received update callback from PLM for %s', self._address)
|
||||||
self._hass.async_add_job(self.async_update_ha_state())
|
self._hass.async_add_job(self.async_update_ha_state())
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
|
|
|
@ -35,7 +35,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
|
|
||||||
sensors = []
|
sensors = []
|
||||||
for sensor_type in config.get(CONF_MONITORED_CONDITIONS):
|
for sensor_type in config.get(CONF_MONITORED_CONDITIONS):
|
||||||
# create an sensor for each zone managed by faucet
|
# create a sensor for each zone managed by faucet
|
||||||
for zone in raincloud.controller.faucet.zones:
|
for zone in raincloud.controller.faucet.zones:
|
||||||
sensors.append(
|
sensors.append(
|
||||||
RainCloudSwitch(default_watering_timer,
|
RainCloudSwitch(default_watering_timer,
|
||||||
|
|
|
@ -155,7 +155,7 @@ class SCSGateSwitch(SwitchDevice):
|
||||||
class SCSGateScenarioSwitch(object):
|
class SCSGateScenarioSwitch(object):
|
||||||
"""Provides a SCSGate scenario switch.
|
"""Provides a SCSGate scenario switch.
|
||||||
|
|
||||||
This switch is always in a 'off" state, when toggled it's used to trigger
|
This switch is always in an 'off" state, when toggled it's used to trigger
|
||||||
events.
|
events.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ send_message:
|
||||||
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
||||||
example: '["/command1, /command2", "/command3"]'
|
example: '["/command1, /command2", "/command3"]'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or ["Text button1:/button1, Text button2:/button2", "Text button3:/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or ["Text button1:/button1, Text button2:/button2", "Text button3:/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
send_photo:
|
send_photo:
|
||||||
|
@ -56,7 +56,7 @@ send_photo:
|
||||||
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
||||||
example: '["/command1, /command2", "/command3"]'
|
example: '["/command1, /command2", "/command3"]'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
send_video:
|
send_video:
|
||||||
|
@ -87,7 +87,7 @@ send_video:
|
||||||
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
||||||
example: '["/command1, /command2", "/command3"]'
|
example: '["/command1, /command2", "/command3"]'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
send_document:
|
send_document:
|
||||||
|
@ -118,7 +118,7 @@ send_document:
|
||||||
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
||||||
example: '["/command1, /command2", "/command3"]'
|
example: '["/command1, /command2", "/command3"]'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
send_location:
|
send_location:
|
||||||
|
@ -140,7 +140,7 @@ send_location:
|
||||||
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
description: List of rows of commands, comma-separated, to make a custom keyboard.
|
||||||
example: '["/command1, /command2", "/command3"]'
|
example: '["/command1, /command2", "/command3"]'
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
edit_message:
|
edit_message:
|
||||||
|
@ -165,7 +165,7 @@ edit_message:
|
||||||
description: Disables link previews for links in the message.
|
description: Disables link previews for links in the message.
|
||||||
example: true
|
example: true
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
edit_caption:
|
edit_caption:
|
||||||
|
@ -181,7 +181,7 @@ edit_caption:
|
||||||
description: Message body of the notification.
|
description: Message body of the notification.
|
||||||
example: The garage door has been open for 10 minutes.
|
example: The garage door has been open for 10 minutes.
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
edit_replymarkup:
|
edit_replymarkup:
|
||||||
|
@ -194,7 +194,7 @@ edit_replymarkup:
|
||||||
description: The chat_id where to edit the reply_markup.
|
description: The chat_id where to edit the reply_markup.
|
||||||
example: 12345
|
example: 12345
|
||||||
inline_keyboard:
|
inline_keyboard:
|
||||||
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data.
|
description: List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data.
|
||||||
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
example: '["/button1, /button2", "/button3"] or [[["Text button1", "/button1"], ["Text button2", "/button2"]], [["Text button3", "/button3"]]]'
|
||||||
|
|
||||||
answer_callback_query:
|
answer_callback_query:
|
||||||
|
|
|
@ -219,7 +219,7 @@ def get_config_value(node, value_index, tries=5):
|
||||||
and value.index == value_index):
|
and value.index == value_index):
|
||||||
return value.data
|
return value.data
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
# If we get an runtime error the dict has changed while
|
# If we get a runtime error the dict has changed while
|
||||||
# we was looking for a value, just do it again
|
# we was looking for a value, just do it again
|
||||||
return None if tries <= 0 else get_config_value(
|
return None if tries <= 0 else get_config_value(
|
||||||
node, value_index, tries=tries - 1)
|
node, value_index, tries=tries - 1)
|
||||||
|
|
|
@ -4,7 +4,7 @@ change_association:
|
||||||
description: Change an association in the Z-Wave network.
|
description: Change an association in the Z-Wave network.
|
||||||
fields:
|
fields:
|
||||||
association:
|
association:
|
||||||
description: Specify add or remove assosication
|
description: Specify add or remove association
|
||||||
example: add
|
example: add
|
||||||
node_id:
|
node_id:
|
||||||
description: Node id of the node to set association for.
|
description: Node id of the node to set association for.
|
||||||
|
@ -30,14 +30,14 @@ heal_network:
|
||||||
description: Start a Z-Wave network heal. This might take a while and will slow down the Z-Wave network greatly while it is being processed. Refer to OZW.log for progress.
|
description: Start a Z-Wave network heal. This might take a while and will slow down the Z-Wave network greatly while it is being processed. Refer to OZW.log for progress.
|
||||||
fields:
|
fields:
|
||||||
return_routes:
|
return_routes:
|
||||||
description: Wheter or not to update the return routes from the nodes to the controller. Defaults to False.
|
description: Whether or not to update the return routes from the nodes to the controller. Defaults to False.
|
||||||
example: True
|
example: True
|
||||||
|
|
||||||
heal_node:
|
heal_node:
|
||||||
description: Start a Z-Wave node heal. Refer to OZW.log for progress.
|
description: Start a Z-Wave node heal. Refer to OZW.log for progress.
|
||||||
fields:
|
fields:
|
||||||
return_routes:
|
return_routes:
|
||||||
description: Wheter or not to update the return routes from the node to the controller. Defaults to False.
|
description: Whether or not to update the return routes from the node to the controller. Defaults to False.
|
||||||
example: True
|
example: True
|
||||||
|
|
||||||
remove_node:
|
remove_node:
|
||||||
|
|
|
@ -66,7 +66,7 @@ def valid_entity_id(entity_id: str) -> bool:
|
||||||
|
|
||||||
|
|
||||||
def valid_state(state: str) -> bool:
|
def valid_state(state: str) -> bool:
|
||||||
"""Test if an state is valid."""
|
"""Test if a state is valid."""
|
||||||
return len(state) < 256
|
return len(state) < 256
|
||||||
|
|
||||||
|
|
||||||
|
@ -777,7 +777,7 @@ class ServiceCall(object):
|
||||||
self.call_id = call_id
|
self.call_id = call_id
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
"""Return the represenation of the service."""
|
"""Return the representation of the service."""
|
||||||
if self.data:
|
if self.data:
|
||||||
return "<ServiceCall {}.{}: {}>".format(
|
return "<ServiceCall {}.{}: {}>".format(
|
||||||
self.domain, self.service, util.repr_helper(self.data))
|
self.domain, self.service, util.repr_helper(self.data))
|
||||||
|
|
|
@ -268,7 +268,7 @@ class Entity(object):
|
||||||
self.entity_id, state, attr, self.force_update)
|
self.entity_id, state, attr, self.force_update)
|
||||||
|
|
||||||
def schedule_update_ha_state(self, force_refresh=False):
|
def schedule_update_ha_state(self, force_refresh=False):
|
||||||
"""Schedule a update ha state change task.
|
"""Schedule an update ha state change task.
|
||||||
|
|
||||||
That avoid executor dead looks.
|
That avoid executor dead looks.
|
||||||
"""
|
"""
|
||||||
|
@ -276,7 +276,7 @@ class Entity(object):
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_schedule_update_ha_state(self, force_refresh=False):
|
def async_schedule_update_ha_state(self, force_refresh=False):
|
||||||
"""Schedule a update ha state change task."""
|
"""Schedule an update ha state change task."""
|
||||||
self.hass.async_add_job(self.async_update_ha_state(force_refresh))
|
self.hass.async_add_job(self.async_update_ha_state(force_refresh))
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
|
|
|
@ -119,7 +119,7 @@ track_template = threaded_listener_factory(async_track_template)
|
||||||
@bind_hass
|
@bind_hass
|
||||||
def async_track_same_state(hass, period, action, async_check_same_func,
|
def async_track_same_state(hass, period, action, async_check_same_func,
|
||||||
entity_ids=MATCH_ALL):
|
entity_ids=MATCH_ALL):
|
||||||
"""Track the state of entities for a period and run a action.
|
"""Track the state of entities for a period and run an action.
|
||||||
|
|
||||||
If async_check_func is None it use the state of orig_value.
|
If async_check_func is None it use the state of orig_value.
|
||||||
Without entity_ids we track all state changes.
|
Without entity_ids we track all state changes.
|
||||||
|
|
|
@ -148,7 +148,7 @@ def get_component(comp_name) -> Optional[ModuleType]:
|
||||||
# a namespace. We do not care about namespaces.
|
# a namespace. We do not care about namespaces.
|
||||||
# This prevents that when only
|
# This prevents that when only
|
||||||
# custom_components/switch/some_platform.py exists,
|
# custom_components/switch/some_platform.py exists,
|
||||||
# the import custom_components.switch would succeeed.
|
# the import custom_components.switch would succeed.
|
||||||
if module.__spec__.origin == 'namespace':
|
if module.__spec__.origin == 'namespace':
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
|
@ -227,7 +227,7 @@ class OrderedSet(MutableSet):
|
||||||
return '%s(%r)' % (self.__class__.__name__, list(self))
|
return '%s(%r)' % (self.__class__.__name__, list(self))
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
"""Return the comparision."""
|
"""Return the comparison."""
|
||||||
if isinstance(other, OrderedSet):
|
if isinstance(other, OrderedSet):
|
||||||
return len(self) == len(other) and list(self) == list(other)
|
return len(self) == len(other) and list(self) == list(other)
|
||||||
return set(self) == set(other)
|
return set(self) == set(other)
|
||||||
|
|
|
@ -23,7 +23,7 @@ class HideSensitiveDataFilter(logging.Filter):
|
||||||
|
|
||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
class AsyncHandler(object):
|
class AsyncHandler(object):
|
||||||
"""Logging handler wrapper to add a async layer."""
|
"""Logging handler wrapper to add an async layer."""
|
||||||
|
|
||||||
def __init__(self, loop, handler):
|
def __init__(self, loop, handler):
|
||||||
"""Initialize async logging handler wrapper."""
|
"""Initialize async logging handler wrapper."""
|
||||||
|
|
|
@ -83,7 +83,7 @@ class TestGetImage(object):
|
||||||
@patch('homeassistant.components.camera.demo.DemoCamera.camera_image',
|
@patch('homeassistant.components.camera.demo.DemoCamera.camera_image',
|
||||||
autospec=True, return_value=b'Test')
|
autospec=True, return_value=b'Test')
|
||||||
def test_get_image_from_camera(self, mock_camera):
|
def test_get_image_from_camera(self, mock_camera):
|
||||||
"""Grab a image from camera entity."""
|
"""Grab an image from camera entity."""
|
||||||
self.hass.start()
|
self.hass.start()
|
||||||
|
|
||||||
image = run_coroutine_threadsafe(camera.async_get_image(
|
image = run_coroutine_threadsafe(camera.async_get_image(
|
||||||
|
|
|
@ -139,12 +139,12 @@ class TestComponentsDeviceTrackerUnifiDirect(unittest.TestCase):
|
||||||
devices = scanner._get_update() # pylint: disable=protected-access
|
devices = scanner._get_update() # pylint: disable=protected-access
|
||||||
self.assertTrue(devices is None)
|
self.assertTrue(devices is None)
|
||||||
|
|
||||||
def test_good_reponse_parses(self):
|
def test_good_response_parses(self):
|
||||||
"""Test that the response form the AP parses to JSON correctly."""
|
"""Test that the response form the AP parses to JSON correctly."""
|
||||||
response = _response_to_json(load_fixture('unifi_direct.txt'))
|
response = _response_to_json(load_fixture('unifi_direct.txt'))
|
||||||
self.assertTrue(response != {})
|
self.assertTrue(response != {})
|
||||||
|
|
||||||
def test_bad_reponse_returns_none(self):
|
def test_bad_response_returns_none(self):
|
||||||
"""Test that a bad response form the AP parses to JSON correctly."""
|
"""Test that a bad response form the AP parses to JSON correctly."""
|
||||||
self.assertTrue(_response_to_json("{(}") == {})
|
self.assertTrue(_response_to_json("{(}") == {})
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ def test_query_climate_request_f(hass_fixture, assistant_client):
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def test_execute_request(hass_fixture, assistant_client):
|
def test_execute_request(hass_fixture, assistant_client):
|
||||||
"""Test a execute request."""
|
"""Test an execute request."""
|
||||||
reqid = '5711642932632160985'
|
reqid = '5711642932632160985'
|
||||||
data = {
|
data = {
|
||||||
'requestId':
|
'requestId':
|
||||||
|
|
|
@ -82,7 +82,7 @@ class TestImageProcessing(object):
|
||||||
@patch('homeassistant.components.camera.demo.DemoCamera.camera_image',
|
@patch('homeassistant.components.camera.demo.DemoCamera.camera_image',
|
||||||
autospec=True, return_value=b'Test')
|
autospec=True, return_value=b'Test')
|
||||||
def test_get_image_from_camera(self, mock_camera):
|
def test_get_image_from_camera(self, mock_camera):
|
||||||
"""Grab a image from camera entity."""
|
"""Grab an image from camera entity."""
|
||||||
self.hass.start()
|
self.hass.start()
|
||||||
|
|
||||||
ip.scan(self.hass, entity_id='image_processing.test')
|
ip.scan(self.hass, entity_id='image_processing.test')
|
||||||
|
|
|
@ -156,7 +156,7 @@ class TestLiteJetLight(unittest.TestCase):
|
||||||
|
|
||||||
# (Requesting the level is not strictly needed with a deactivated
|
# (Requesting the level is not strictly needed with a deactivated
|
||||||
# event but the implementation happens to do it. This could be
|
# event but the implementation happens to do it. This could be
|
||||||
# changed to a assert_not_called in the future.)
|
# changed to an assert_not_called in the future.)
|
||||||
self.mock_lj.get_load_level.assert_called_with(
|
self.mock_lj.get_load_level.assert_called_with(
|
||||||
ENTITY_OTHER_LIGHT_NUMBER)
|
ENTITY_OTHER_LIGHT_NUMBER)
|
||||||
|
|
||||||
|
|
|
@ -152,7 +152,7 @@ class TestSonosMediaPlayer(unittest.TestCase):
|
||||||
@mock.patch('socket.create_connection', side_effect=socket.error())
|
@mock.patch('socket.create_connection', side_effect=socket.error())
|
||||||
@mock.patch('soco.discover')
|
@mock.patch('soco.discover')
|
||||||
def test_ensure_setup_config_interface_addr(self, discover_mock, *args):
|
def test_ensure_setup_config_interface_addr(self, discover_mock, *args):
|
||||||
"""Test a interface address config'd by the HASS config file."""
|
"""Test an interface address config'd by the HASS config file."""
|
||||||
discover_mock.return_value = {SoCoMock('192.0.2.1')}
|
discover_mock.return_value = {SoCoMock('192.0.2.1')}
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
@ -172,7 +172,7 @@ class TestSonosMediaPlayer(unittest.TestCase):
|
||||||
@mock.patch('soco.discover')
|
@mock.patch('soco.discover')
|
||||||
def test_ensure_setup_config_advertise_addr(self, discover_mock,
|
def test_ensure_setup_config_advertise_addr(self, discover_mock,
|
||||||
*args):
|
*args):
|
||||||
"""Test a advertise address config'd by the HASS config file."""
|
"""Test an advertise address config'd by the HASS config file."""
|
||||||
discover_mock.return_value = {SoCoMock('192.0.2.1')}
|
discover_mock.return_value = {SoCoMock('192.0.2.1')}
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
|
@ -44,7 +44,7 @@ class TestYamahaMediaPlayer(unittest.TestCase):
|
||||||
self.hass.stop()
|
self.hass.stop()
|
||||||
|
|
||||||
def enable_output(self, port, enabled):
|
def enable_output(self, port, enabled):
|
||||||
"""Enable ouput on a specific port."""
|
"""Enable output on a specific port."""
|
||||||
data = {
|
data = {
|
||||||
'entity_id': 'media_player.yamaha_receiver_main_zone',
|
'entity_id': 'media_player.yamaha_receiver_main_zone',
|
||||||
'port': port,
|
'port': port,
|
||||||
|
|
|
@ -25,7 +25,7 @@ def create_engine_test(*args, **kwargs):
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def test_schema_update_calls(hass):
|
def test_schema_update_calls(hass):
|
||||||
"""Test that schema migrations occurr in correct order."""
|
"""Test that schema migrations occur in correct order."""
|
||||||
with patch('sqlalchemy.create_engine', new=create_engine_test), \
|
with patch('sqlalchemy.create_engine', new=create_engine_test), \
|
||||||
patch('homeassistant.components.recorder.migration._apply_update') as \
|
patch('homeassistant.components.recorder.migration._apply_update') as \
|
||||||
update:
|
update:
|
||||||
|
|
|
@ -110,7 +110,7 @@ def test_derivative():
|
||||||
yield from entity.async_update()
|
yield from entity.async_update()
|
||||||
|
|
||||||
assert entity.state == STATE_UNKNOWN, \
|
assert entity.state == STATE_UNKNOWN, \
|
||||||
'state after first update shoudl still be unknown'
|
'state after first update should still be unknown'
|
||||||
|
|
||||||
entity.telegram = {
|
entity.telegram = {
|
||||||
'1.0.0': MBusObject([
|
'1.0.0': MBusObject([
|
||||||
|
|
|
@ -435,7 +435,7 @@ class TestDialogflow(unittest.TestCase):
|
||||||
self.assertEqual("virgo", call.data.get("hello"))
|
self.assertEqual("virgo", call.data.get("hello"))
|
||||||
|
|
||||||
def test_intent_with_no_action(self):
|
def test_intent_with_no_action(self):
|
||||||
"""Test a intent with no defined action."""
|
"""Test an intent with no defined action."""
|
||||||
data = {
|
data = {
|
||||||
"id": REQUEST_ID,
|
"id": REQUEST_ID,
|
||||||
"timestamp": REQUEST_TIMESTAMP,
|
"timestamp": REQUEST_TIMESTAMP,
|
||||||
|
@ -480,7 +480,7 @@ class TestDialogflow(unittest.TestCase):
|
||||||
"You have not defined an action in your Dialogflow intent.", text)
|
"You have not defined an action in your Dialogflow intent.", text)
|
||||||
|
|
||||||
def test_intent_with_unknown_action(self):
|
def test_intent_with_unknown_action(self):
|
||||||
"""Test a intent with an action not defined in the conf."""
|
"""Test an intent with an action not defined in the conf."""
|
||||||
data = {
|
data = {
|
||||||
"id": REQUEST_ID,
|
"id": REQUEST_ID,
|
||||||
"timestamp": REQUEST_TIMESTAMP,
|
"timestamp": REQUEST_TIMESTAMP,
|
||||||
|
|
|
@ -224,7 +224,7 @@ class TestTTSYandexPlatform(object):
|
||||||
|
|
||||||
assert len(calls) == 0
|
assert len(calls) == 0
|
||||||
|
|
||||||
def test_service_say_specifed_speaker(self, aioclient_mock):
|
def test_service_say_specified_speaker(self, aioclient_mock):
|
||||||
"""Test service call say."""
|
"""Test service call say."""
|
||||||
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
||||||
|
|
||||||
|
@ -259,7 +259,7 @@ class TestTTSYandexPlatform(object):
|
||||||
assert len(aioclient_mock.mock_calls) == 1
|
assert len(aioclient_mock.mock_calls) == 1
|
||||||
assert len(calls) == 1
|
assert len(calls) == 1
|
||||||
|
|
||||||
def test_service_say_specifed_emotion(self, aioclient_mock):
|
def test_service_say_specified_emotion(self, aioclient_mock):
|
||||||
"""Test service call say."""
|
"""Test service call say."""
|
||||||
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ class TestHelpersEntityComponent(unittest.TestCase):
|
||||||
assert poll_ent.async_update.called
|
assert poll_ent.async_update.called
|
||||||
|
|
||||||
def test_polling_updates_entities_with_exception(self):
|
def test_polling_updates_entities_with_exception(self):
|
||||||
"""Test the updated entities that not break with a exception."""
|
"""Test the updated entities that not break with an exception."""
|
||||||
component = EntityComponent(
|
component = EntityComponent(
|
||||||
_LOGGER, DOMAIN, self.hass, timedelta(seconds=20))
|
_LOGGER, DOMAIN, self.hass, timedelta(seconds=20))
|
||||||
|
|
||||||
|
@ -663,7 +663,7 @@ def test_raise_error_on_update(hass):
|
||||||
entity2 = EntityTest(name='test_2')
|
entity2 = EntityTest(name='test_2')
|
||||||
|
|
||||||
def _raise():
|
def _raise():
|
||||||
"""Helper to raise a exception."""
|
"""Helper to raise an exception."""
|
||||||
raise AssertionError
|
raise AssertionError
|
||||||
|
|
||||||
entity1.update = _raise
|
entity1.update = _raise
|
||||||
|
|
|
@ -17,7 +17,7 @@ VERSION_PATH = os.path.join(get_test_config_dir(), config_util.VERSION_FILE)
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
# prevent .HA_VERISON file from being written
|
# prevent .HA_VERSION file from being written
|
||||||
@patch(
|
@patch(
|
||||||
'homeassistant.bootstrap.conf_util.process_ha_config_upgrade', Mock())
|
'homeassistant.bootstrap.conf_util.process_ha_config_upgrade', Mock())
|
||||||
@patch('homeassistant.util.location.detect_location_info',
|
@patch('homeassistant.util.location.detect_location_info',
|
||||||
|
|
|
@ -172,7 +172,7 @@ class TestHomeAssistant(unittest.TestCase):
|
||||||
assert len(call_count) == 2
|
assert len(call_count) == 2
|
||||||
|
|
||||||
def test_async_add_job_pending_tasks_executor(self):
|
def test_async_add_job_pending_tasks_executor(self):
|
||||||
"""Run a executor in pending tasks."""
|
"""Run an executor in pending tasks."""
|
||||||
call_count = []
|
call_count = []
|
||||||
|
|
||||||
def test_executor():
|
def test_executor():
|
||||||
|
|
|
@ -28,7 +28,7 @@ def _url(path=''):
|
||||||
|
|
||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
def setUpModule():
|
def setUpModule():
|
||||||
"""Initalization of a Home Assistant server instance."""
|
"""Initialization of a Home Assistant server instance."""
|
||||||
global hass, master_api
|
global hass, master_api
|
||||||
|
|
||||||
hass = get_test_home_assistant()
|
hass = get_test_home_assistant()
|
||||||
|
|
|
@ -48,7 +48,7 @@ class TestYaml(unittest.TestCase):
|
||||||
load_yaml_config_file(YAML_CONFIG_FILE)
|
load_yaml_config_file(YAML_CONFIG_FILE)
|
||||||
|
|
||||||
def test_no_key(self):
|
def test_no_key(self):
|
||||||
"""Test item without an key."""
|
"""Test item without a key."""
|
||||||
files = {YAML_CONFIG_FILE: 'a: a\nnokeyhere'}
|
files = {YAML_CONFIG_FILE: 'a: a\nnokeyhere'}
|
||||||
with self.assertRaises(HomeAssistantError), \
|
with self.assertRaises(HomeAssistantError), \
|
||||||
patch_yaml_files(files):
|
patch_yaml_files(files):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue