2018-09-26 18:02:05 +02:00
|
|
|
"""Collection of helper methods.
|
|
|
|
|
|
|
|
All containing methods are legacy helpers that should not be used by new
|
|
|
|
components. Instead call the service directly.
|
|
|
|
"""
|
|
|
|
from homeassistant.components.remote import (
|
2019-06-05 06:32:59 -03:00
|
|
|
ATTR_ACTIVITY, ATTR_ALTERNATIVE, ATTR_COMMAND, ATTR_DELAY_SECS,
|
|
|
|
ATTR_DEVICE, ATTR_NUM_REPEATS, ATTR_TIMEOUT, DOMAIN,
|
|
|
|
SERVICE_LEARN_COMMAND, SERVICE_SEND_COMMAND)
|
2018-09-26 18:02:05 +02:00
|
|
|
from homeassistant.const import (
|
|
|
|
ATTR_ENTITY_ID, SERVICE_TURN_OFF, SERVICE_TURN_ON)
|
|
|
|
from homeassistant.loader import bind_hass
|
|
|
|
|
|
|
|
|
|
|
|
@bind_hass
|
|
|
|
def turn_on(hass, activity=None, entity_id=None):
|
|
|
|
"""Turn all or specified remote on."""
|
|
|
|
data = {
|
|
|
|
key: value for key, value in [
|
|
|
|
(ATTR_ACTIVITY, activity),
|
|
|
|
(ATTR_ENTITY_ID, entity_id),
|
|
|
|
] if value is not None}
|
|
|
|
hass.services.call(DOMAIN, SERVICE_TURN_ON, data)
|
|
|
|
|
|
|
|
|
|
|
|
@bind_hass
|
|
|
|
def turn_off(hass, activity=None, entity_id=None):
|
|
|
|
"""Turn all or specified remote off."""
|
|
|
|
data = {}
|
|
|
|
if activity:
|
|
|
|
data[ATTR_ACTIVITY] = activity
|
|
|
|
|
|
|
|
if entity_id:
|
|
|
|
data[ATTR_ENTITY_ID] = entity_id
|
|
|
|
|
|
|
|
hass.services.call(DOMAIN, SERVICE_TURN_OFF, data)
|
|
|
|
|
|
|
|
|
|
|
|
@bind_hass
|
|
|
|
def send_command(hass, command, entity_id=None, device=None,
|
|
|
|
num_repeats=None, delay_secs=None):
|
|
|
|
"""Send a command to a device."""
|
|
|
|
data = {ATTR_COMMAND: command}
|
|
|
|
if entity_id:
|
|
|
|
data[ATTR_ENTITY_ID] = entity_id
|
|
|
|
|
|
|
|
if device:
|
|
|
|
data[ATTR_DEVICE] = device
|
|
|
|
|
|
|
|
if num_repeats:
|
|
|
|
data[ATTR_NUM_REPEATS] = num_repeats
|
|
|
|
|
|
|
|
if delay_secs:
|
|
|
|
data[ATTR_DELAY_SECS] = delay_secs
|
|
|
|
|
|
|
|
hass.services.call(DOMAIN, SERVICE_SEND_COMMAND, data)
|
2019-06-05 06:32:59 -03:00
|
|
|
|
|
|
|
|
|
|
|
@bind_hass
|
|
|
|
def learn_command(hass, entity_id=None, device=None, command=None,
|
|
|
|
alternative=None, timeout=None):
|
|
|
|
"""Learn a command from a device."""
|
|
|
|
data = {}
|
|
|
|
if entity_id:
|
|
|
|
data[ATTR_ENTITY_ID] = entity_id
|
|
|
|
|
|
|
|
if device:
|
|
|
|
data[ATTR_DEVICE] = device
|
|
|
|
|
|
|
|
if command:
|
|
|
|
data[ATTR_COMMAND] = command
|
|
|
|
|
|
|
|
if alternative:
|
|
|
|
data[ATTR_ALTERNATIVE] = alternative
|
|
|
|
|
|
|
|
if timeout:
|
|
|
|
data[ATTR_TIMEOUT] = timeout
|
|
|
|
|
|
|
|
hass.services.call(DOMAIN, SERVICE_LEARN_COMMAND, data)
|