36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
"""The denonavr component."""
|
|
import voluptuous as vol
|
|
|
|
from homeassistant.const import ATTR_ENTITY_ID
|
|
import homeassistant.helpers.config_validation as cv
|
|
from homeassistant.helpers.dispatcher import dispatcher_send
|
|
|
|
DOMAIN = "denonavr"
|
|
|
|
SERVICE_GET_COMMAND = "get_command"
|
|
ATTR_COMMAND = "command"
|
|
|
|
CALL_SCHEMA = vol.Schema({vol.Required(ATTR_ENTITY_ID): cv.comp_entity_ids})
|
|
|
|
GET_COMMAND_SCHEMA = CALL_SCHEMA.extend({vol.Required(ATTR_COMMAND): cv.string})
|
|
|
|
SERVICE_TO_METHOD = {
|
|
SERVICE_GET_COMMAND: {"method": "get_command", "schema": GET_COMMAND_SCHEMA}
|
|
}
|
|
|
|
|
|
def setup(hass, config):
|
|
"""Set up the denonavr platform."""
|
|
|
|
def service_handler(service):
|
|
method = SERVICE_TO_METHOD.get(service.service)
|
|
data = service.data.copy()
|
|
data["method"] = method["method"]
|
|
dispatcher_send(hass, DOMAIN, data)
|
|
|
|
for service in SERVICE_TO_METHOD:
|
|
schema = SERVICE_TO_METHOD[service]["schema"]
|
|
hass.services.register(DOMAIN, service, service_handler, schema=schema)
|
|
|
|
return True
|