1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-05 03:13:49 +01:00
Files
esphome/esphome/components/opentherm/switch/__init__.py
2025-05-12 20:53:46 +00:00

43 lines
1.1 KiB
Python

from typing import Any
import esphome.codegen as cg
from esphome.components import switch
import esphome.config_validation as cv
from .. import const, generate, schema, validate
DEPENDENCIES = [const.OPENTHERM]
COMPONENT_TYPE = const.SWITCH
OpenthermSwitch = generate.opentherm_ns.class_(
"OpenthermSwitch", switch.Switch, cg.Component
)
async def new_openthermswitch(config: dict[str, Any]) -> cg.Pvariable:
var = await switch.new_switch(config)
await cg.register_component(var, config)
return var
def get_entity_validation_schema(entity: schema.SwitchSchema) -> cv.Schema:
return switch.switch_schema(
OpenthermSwitch, default_restore_mode=entity.default_mode
).extend(cv.COMPONENT_SCHEMA)
CONFIG_SCHEMA = validate.create_component_schema(
schema.SWITCHES, get_entity_validation_schema
)
async def to_code(config: dict[str, Any]) -> None:
keys = await generate.component_to_code(
COMPONENT_TYPE,
schema.SWITCHES,
OpenthermSwitch,
generate.create_only_conf(new_openthermswitch),
config,
)
generate.define_readers(COMPONENT_TYPE, keys)