Move YAML config to component
This commit is contained in:
committed by
rospogrigio
parent
450060488b
commit
0048ce6d5e
@@ -1,48 +1,22 @@
|
|||||||
"""The LocalTuya integration integration."""
|
"""The LocalTuya integration integration."""
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
import voluptuous as vol
|
|
||||||
|
|
||||||
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
|
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_DEVICE_ID,
|
|
||||||
CONF_ID,
|
|
||||||
CONF_ICON,
|
|
||||||
CONF_NAME,
|
|
||||||
CONF_FRIENDLY_NAME,
|
|
||||||
CONF_HOST,
|
|
||||||
CONF_PLATFORM,
|
CONF_PLATFORM,
|
||||||
CONF_ENTITIES,
|
CONF_ENTITIES,
|
||||||
)
|
)
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
|
|
||||||
from .const import CONF_LOCAL_KEY, CONF_PROTOCOL_VERSION, DOMAIN
|
from .const import DOMAIN
|
||||||
|
from .config_flow import config_schema
|
||||||
|
|
||||||
import pprint
|
|
||||||
|
|
||||||
pp = pprint.PrettyPrinter(indent=4)
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DEFAULT_ID = "1"
|
|
||||||
DEFAULT_PROTOCOL_VERSION = 3.3
|
|
||||||
|
|
||||||
UNSUB_LISTENER = "unsub_listener"
|
UNSUB_LISTENER = "unsub_listener"
|
||||||
|
|
||||||
BASE_PLATFORM_SCHEMA = {
|
CONFIG_SCHEMA = config_schema()
|
||||||
vol.Optional(CONF_ICON): cv.icon, # Deprecated: not used
|
|
||||||
vol.Required(CONF_HOST): cv.string,
|
|
||||||
vol.Required(CONF_DEVICE_ID): cv.string,
|
|
||||||
vol.Required(CONF_LOCAL_KEY): cv.string,
|
|
||||||
vol.Optional(CONF_NAME): cv.string, # Deprecated: not used
|
|
||||||
vol.Required(CONF_FRIENDLY_NAME): cv.string,
|
|
||||||
vol.Required(CONF_PROTOCOL_VERSION, default=DEFAULT_PROTOCOL_VERSION): vol.Coerce(
|
|
||||||
float
|
|
||||||
),
|
|
||||||
vol.Optional(CONF_ID, default=DEFAULT_ID): cv.string,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def import_from_yaml(hass, config, platform):
|
def import_from_yaml(hass, config, platform):
|
||||||
@@ -60,6 +34,8 @@ def import_from_yaml(hass, config, platform):
|
|||||||
async def async_setup(hass: HomeAssistant, config: dict):
|
async def async_setup(hass: HomeAssistant, config: dict):
|
||||||
"""Set up the LocalTuya integration component."""
|
"""Set up the LocalTuya integration component."""
|
||||||
hass.data.setdefault(DOMAIN, {})
|
hass.data.setdefault(DOMAIN, {})
|
||||||
|
|
||||||
|
print("setup:", config.get(DOMAIN))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@@ -23,7 +23,6 @@ import voluptuous as vol
|
|||||||
|
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
PLATFORM_SCHEMA,
|
|
||||||
DEVICE_CLASSES_SCHEMA,
|
DEVICE_CLASSES_SCHEMA,
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
)
|
)
|
||||||
@@ -33,20 +32,13 @@ from homeassistant.const import (
|
|||||||
CONF_FRIENDLY_NAME,
|
CONF_FRIENDLY_NAME,
|
||||||
)
|
)
|
||||||
|
|
||||||
from . import (
|
from .common import LocalTuyaEntity, prepare_setup_entities
|
||||||
BASE_PLATFORM_SCHEMA,
|
|
||||||
LocalTuyaEntity,
|
|
||||||
prepare_setup_entities,
|
|
||||||
import_from_yaml,
|
|
||||||
)
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
CONF_STATE_ON = "state_on"
|
CONF_STATE_ON = "state_on"
|
||||||
CONF_STATE_OFF = "state_off"
|
CONF_STATE_OFF = "state_off"
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(BASE_PLATFORM_SCHEMA)
|
|
||||||
|
|
||||||
|
|
||||||
def flow_schema(dps):
|
def flow_schema(dps):
|
||||||
"""Return schema used in config flow."""
|
"""Return schema used in config flow."""
|
||||||
@@ -76,11 +68,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
async_add_entities(sensors, True)
|
async_add_entities(sensors, True)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
||||||
"""Set up of the Tuya sensor."""
|
|
||||||
return import_from_yaml(hass, config, DOMAIN)
|
|
||||||
|
|
||||||
|
|
||||||
class TuyaCache:
|
class TuyaCache:
|
||||||
"""Cache wrapper for pytuya.TuyaDevice."""
|
"""Cache wrapper for pytuya.TuyaDevice."""
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@ from homeassistant.const import (
|
|||||||
CONF_PLATFORM,
|
CONF_PLATFORM,
|
||||||
CONF_SWITCHES,
|
CONF_SWITCHES,
|
||||||
)
|
)
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
from . import pytuya
|
from . import pytuya
|
||||||
from .const import ( # pylint: disable=unused-import
|
from .const import ( # pylint: disable=unused-import
|
||||||
@@ -56,6 +57,16 @@ OPTIONS_SCHEMA = vol.Schema(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
DEVICE_SCHEMA = vol.Schema(
|
||||||
|
{
|
||||||
|
vol.Required(CONF_HOST): cv.string,
|
||||||
|
vol.Required(CONF_DEVICE_ID): cv.string,
|
||||||
|
vol.Required(CONF_LOCAL_KEY): cv.string,
|
||||||
|
vol.Required(CONF_FRIENDLY_NAME): cv.string,
|
||||||
|
vol.Required(CONF_PROTOCOL_VERSION, default="3.3"): vol.Coerce(float),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
PICK_ENTITY_SCHEMA = vol.Schema(
|
PICK_ENTITY_SCHEMA = vol.Schema(
|
||||||
{vol.Required(PLATFORM_TO_ADD, default=PLATFORMS[0]): vol.In(PLATFORMS)}
|
{vol.Required(PLATFORM_TO_ADD, default=PLATFORMS[0]): vol.In(PLATFORMS)}
|
||||||
)
|
)
|
||||||
@@ -100,9 +111,12 @@ def gen_dps_strings():
|
|||||||
return [f"{dp} (value: ?)" for dp in range(1, 256)]
|
return [f"{dp} (value: ?)" for dp in range(1, 256)]
|
||||||
|
|
||||||
|
|
||||||
def platform_schema(platform, dps_strings, allow_id=True):
|
def platform_schema(platform, dps_strings, allow_id=True, yaml=False):
|
||||||
"""Generate input validation schema for a platform."""
|
"""Generate input validation schema for a platform."""
|
||||||
schema = {}
|
schema = {}
|
||||||
|
if yaml:
|
||||||
|
# In YAML mode we force the specified platform to match flow schema
|
||||||
|
schema[vol.Required(CONF_PLATFORM)] = vol.In([platform])
|
||||||
if allow_id:
|
if allow_id:
|
||||||
schema[vol.Required(CONF_ID)] = vol.In(dps_strings)
|
schema[vol.Required(CONF_ID)] = vol.In(dps_strings)
|
||||||
schema[vol.Required(CONF_FRIENDLY_NAME)] = str
|
schema[vol.Required(CONF_FRIENDLY_NAME)] = str
|
||||||
@@ -126,6 +140,26 @@ def strip_dps_values(user_input, dps_strings):
|
|||||||
return stripped
|
return stripped
|
||||||
|
|
||||||
|
|
||||||
|
def config_schema():
|
||||||
|
"""Build schema used for setting up component."""
|
||||||
|
entity_schemas = [
|
||||||
|
platform_schema(platform, range(1, 256), yaml=True) for platform in PLATFORMS
|
||||||
|
]
|
||||||
|
return vol.Schema(
|
||||||
|
{
|
||||||
|
DOMAIN: vol.All(
|
||||||
|
cv.ensure_list,
|
||||||
|
[
|
||||||
|
DEVICE_SCHEMA.extend(
|
||||||
|
{vol.Required(CONF_ENTITIES): [vol.Any(*entity_schemas)]}
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
},
|
||||||
|
extra=vol.ALLOW_EXTRA,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def validate_input(hass: core.HomeAssistant, data):
|
async def validate_input(hass: core.HomeAssistant, data):
|
||||||
"""Validate the user input allows us to connect."""
|
"""Validate the user input allows us to connect."""
|
||||||
tuyainterface = pytuya.TuyaInterface(
|
tuyainterface = pytuya.TuyaInterface(
|
||||||
|
@@ -26,7 +26,6 @@ import voluptuous as vol
|
|||||||
from homeassistant.components.cover import (
|
from homeassistant.components.cover import (
|
||||||
CoverEntity,
|
CoverEntity,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
PLATFORM_SCHEMA,
|
|
||||||
SUPPORT_CLOSE,
|
SUPPORT_CLOSE,
|
||||||
SUPPORT_OPEN,
|
SUPPORT_OPEN,
|
||||||
SUPPORT_STOP,
|
SUPPORT_STOP,
|
||||||
@@ -36,9 +35,7 @@ from homeassistant.const import (
|
|||||||
CONF_ID,
|
CONF_ID,
|
||||||
CONF_FRIENDLY_NAME,
|
CONF_FRIENDLY_NAME,
|
||||||
)
|
)
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
|
|
||||||
from . import BASE_PLATFORM_SCHEMA, import_from_yaml
|
|
||||||
from .const import (
|
from .const import (
|
||||||
CONF_OPEN_CMD,
|
CONF_OPEN_CMD,
|
||||||
CONF_CLOSE_CMD,
|
CONF_CLOSE_CMD,
|
||||||
@@ -53,15 +50,6 @@ DEFAULT_CLOSE_CMD = "off"
|
|||||||
DEFAULT_STOP_CMD = "stop"
|
DEFAULT_STOP_CMD = "stop"
|
||||||
|
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(BASE_PLATFORM_SCHEMA).extend(
|
|
||||||
{
|
|
||||||
vol.Optional(CONF_OPEN_CMD, default=DEFAULT_OPEN_CMD): cv.string,
|
|
||||||
vol.Optional(CONF_CLOSE_CMD, default=DEFAULT_CLOSE_CMD): cv.string,
|
|
||||||
vol.Optional(CONF_STOP_CMD, default=DEFAULT_STOP_CMD): cv.string,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def flow_schema(dps):
|
def flow_schema(dps):
|
||||||
"""Return schema used in config flow."""
|
"""Return schema used in config flow."""
|
||||||
return {
|
return {
|
||||||
@@ -90,11 +78,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
async_add_entities(covers, True)
|
async_add_entities(covers, True)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
||||||
"""Set up of the Tuya cover."""
|
|
||||||
return import_from_yaml(hass, config, DOMAIN)
|
|
||||||
|
|
||||||
|
|
||||||
class LocaltuyaCover(LocalTuyaEntity, CoverEntity):
|
class LocaltuyaCover(LocalTuyaEntity, CoverEntity):
|
||||||
"""Tuya cover device."""
|
"""Tuya cover device."""
|
||||||
|
|
||||||
|
@@ -19,7 +19,6 @@ import logging
|
|||||||
from homeassistant.components.fan import (
|
from homeassistant.components.fan import (
|
||||||
FanEntity,
|
FanEntity,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
PLATFORM_SCHEMA,
|
|
||||||
SPEED_OFF,
|
SPEED_OFF,
|
||||||
SPEED_LOW,
|
SPEED_LOW,
|
||||||
SPEED_MEDIUM,
|
SPEED_MEDIUM,
|
||||||
@@ -29,16 +28,10 @@ from homeassistant.components.fan import (
|
|||||||
)
|
)
|
||||||
from homeassistant.const import CONF_ID, CONF_FRIENDLY_NAME
|
from homeassistant.const import CONF_ID, CONF_FRIENDLY_NAME
|
||||||
|
|
||||||
from . import (
|
|
||||||
BASE_PLATFORM_SCHEMA,
|
|
||||||
import_from_yaml,
|
|
||||||
)
|
|
||||||
from .common import LocalTuyaEntity, TuyaDevice, prepare_setup_entities
|
from .common import LocalTuyaEntity, TuyaDevice, prepare_setup_entities
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(BASE_PLATFORM_SCHEMA)
|
|
||||||
|
|
||||||
|
|
||||||
def flow_schema(dps):
|
def flow_schema(dps):
|
||||||
"""Return schema used in config flow."""
|
"""Return schema used in config flow."""
|
||||||
@@ -65,11 +58,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
async_add_entities(fans, True)
|
async_add_entities(fans, True)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
||||||
"""Set up of the Tuya fan."""
|
|
||||||
return import_from_yaml(hass, config, DOMAIN)
|
|
||||||
|
|
||||||
|
|
||||||
class LocaltuyaFan(LocalTuyaEntity, FanEntity):
|
class LocaltuyaFan(LocalTuyaEntity, FanEntity):
|
||||||
"""Representation of a Tuya fan."""
|
"""Representation of a Tuya fan."""
|
||||||
|
|
||||||
|
@@ -20,7 +20,6 @@ from homeassistant.const import (
|
|||||||
from homeassistant.components.light import (
|
from homeassistant.components.light import (
|
||||||
LightEntity,
|
LightEntity,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
PLATFORM_SCHEMA,
|
|
||||||
ATTR_BRIGHTNESS,
|
ATTR_BRIGHTNESS,
|
||||||
ATTR_COLOR_TEMP,
|
ATTR_COLOR_TEMP,
|
||||||
ATTR_HS_COLOR,
|
ATTR_HS_COLOR,
|
||||||
@@ -28,13 +27,8 @@ from homeassistant.components.light import (
|
|||||||
SUPPORT_COLOR,
|
SUPPORT_COLOR,
|
||||||
)
|
)
|
||||||
|
|
||||||
from . import (
|
|
||||||
BASE_PLATFORM_SCHEMA,
|
|
||||||
import_from_yaml,
|
|
||||||
)
|
|
||||||
from .common import LocalTuyaEntity, TuyaDevice, prepare_setup_entities
|
from .common import LocalTuyaEntity, TuyaDevice, prepare_setup_entities
|
||||||
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
MIN_MIRED = 153
|
MIN_MIRED = 153
|
||||||
@@ -47,8 +41,6 @@ DPS_INDEX_BRIGHTNESS = "3"
|
|||||||
DPS_INDEX_COLOURTEMP = "4"
|
DPS_INDEX_COLOURTEMP = "4"
|
||||||
DPS_INDEX_COLOUR = "5"
|
DPS_INDEX_COLOUR = "5"
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(BASE_PLATFORM_SCHEMA)
|
|
||||||
|
|
||||||
|
|
||||||
def flow_schema(dps):
|
def flow_schema(dps):
|
||||||
"""Return schema used in config flow."""
|
"""Return schema used in config flow."""
|
||||||
@@ -77,11 +69,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
async_add_entities(lights, True)
|
async_add_entities(lights, True)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
||||||
"""Set up of the Tuya light."""
|
|
||||||
return import_from_yaml(hass, config, DOMAIN)
|
|
||||||
|
|
||||||
|
|
||||||
class LocaltuyaLight(LocalTuyaEntity, LightEntity):
|
class LocaltuyaLight(LocalTuyaEntity, LightEntity):
|
||||||
"""Representation of a Tuya light."""
|
"""Representation of a Tuya light."""
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@ import logging
|
|||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.components.sensor import DOMAIN, PLATFORM_SCHEMA, DEVICE_CLASSES
|
from homeassistant.components.sensor import DOMAIN, DEVICE_CLASSES
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_ID,
|
CONF_ID,
|
||||||
CONF_DEVICE_CLASS,
|
CONF_DEVICE_CLASS,
|
||||||
@@ -27,10 +27,6 @@ from homeassistant.const import (
|
|||||||
STATE_UNKNOWN,
|
STATE_UNKNOWN,
|
||||||
)
|
)
|
||||||
|
|
||||||
from . import (
|
|
||||||
BASE_PLATFORM_SCHEMA,
|
|
||||||
import_from_yaml,
|
|
||||||
)
|
|
||||||
from .const import CONF_SCALING
|
from .const import CONF_SCALING
|
||||||
from .common import LocalTuyaEntity, TuyaDevice, prepare_setup_entities
|
from .common import LocalTuyaEntity, TuyaDevice, prepare_setup_entities
|
||||||
|
|
||||||
@@ -38,8 +34,6 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
DEFAULT_SCALING = 1.0
|
DEFAULT_SCALING = 1.0
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(BASE_PLATFORM_SCHEMA)
|
|
||||||
|
|
||||||
|
|
||||||
def flow_schema(dps):
|
def flow_schema(dps):
|
||||||
"""Return schema used in config flow."""
|
"""Return schema used in config flow."""
|
||||||
@@ -71,11 +65,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
async_add_entities(sensors, True)
|
async_add_entities(sensors, True)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
||||||
"""Set up of the Tuya sensor."""
|
|
||||||
return import_from_yaml(hass, config, DOMAIN)
|
|
||||||
|
|
||||||
|
|
||||||
class LocaltuyaSensor(LocalTuyaEntity):
|
class LocaltuyaSensor(LocalTuyaEntity):
|
||||||
"""Representation of a Tuya sensor."""
|
"""Representation of a Tuya sensor."""
|
||||||
|
|
||||||
|
@@ -31,20 +31,12 @@ import voluptuous as vol
|
|||||||
from homeassistant.components.switch import (
|
from homeassistant.components.switch import (
|
||||||
SwitchEntity,
|
SwitchEntity,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
PLATFORM_SCHEMA,
|
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_ID,
|
CONF_ID,
|
||||||
CONF_SWITCHES,
|
|
||||||
CONF_FRIENDLY_NAME,
|
CONF_FRIENDLY_NAME,
|
||||||
CONF_NAME,
|
|
||||||
)
|
)
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
|
|
||||||
from . import (
|
|
||||||
BASE_PLATFORM_SCHEMA,
|
|
||||||
import_from_yaml,
|
|
||||||
)
|
|
||||||
from .const import (
|
from .const import (
|
||||||
ATTR_CURRENT,
|
ATTR_CURRENT,
|
||||||
ATTR_CURRENT_CONSUMPTION,
|
ATTR_CURRENT_CONSUMPTION,
|
||||||
@@ -59,27 +51,6 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
DEFAULT_ID = "1"
|
DEFAULT_ID = "1"
|
||||||
|
|
||||||
# TODO: This will eventully merge with flow_schema
|
|
||||||
SWITCH_SCHEMA = vol.Schema(
|
|
||||||
{
|
|
||||||
vol.Optional(CONF_ID, default=DEFAULT_ID): cv.string,
|
|
||||||
vol.Optional(CONF_NAME): cv.string, # Deprecated: not used
|
|
||||||
vol.Required(CONF_FRIENDLY_NAME): cv.string,
|
|
||||||
vol.Optional(CONF_CURRENT, default="-1"): cv.string,
|
|
||||||
vol.Optional(CONF_CURRENT_CONSUMPTION, default="-1"): cv.string,
|
|
||||||
vol.Optional(CONF_VOLTAGE, default="-1"): cv.string,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(BASE_PLATFORM_SCHEMA).extend(
|
|
||||||
{
|
|
||||||
vol.Optional(CONF_CURRENT, default="-1"): cv.string,
|
|
||||||
vol.Optional(CONF_CURRENT_CONSUMPTION, default="-1"): cv.string,
|
|
||||||
vol.Optional(CONF_VOLTAGE, default="-1"): cv.string,
|
|
||||||
vol.Optional(CONF_SWITCHES, default={}): vol.Schema({cv.slug: SWITCH_SCHEMA}),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def flow_schema(dps):
|
def flow_schema(dps):
|
||||||
"""Return schema used in config flow."""
|
"""Return schema used in config flow."""
|
||||||
@@ -118,11 +89,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
async_add_entities(switches, True)
|
async_add_entities(switches, True)
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
||||||
"""Set up of the Tuya switch."""
|
|
||||||
return import_from_yaml(hass, config, DOMAIN)
|
|
||||||
|
|
||||||
|
|
||||||
class LocaltuyaSwitch(LocalTuyaEntity, SwitchEntity):
|
class LocaltuyaSwitch(LocalTuyaEntity, SwitchEntity):
|
||||||
"""Representation of a Tuya switch."""
|
"""Representation of a Tuya switch."""
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user