fix: correct __init__.py imports and add stream+master options to schema/to_code

This commit is contained in:
Automation 2025-09-08 10:32:19 +02:00
parent 422fc3469e
commit d5942af8a0

View File

@ -1,4 +1,4 @@
from typing import Optional from typing import Optional
import esphome.codegen as cg import esphome.codegen as cg
import esphome.config_validation as cv import esphome.config_validation as cv
@ -18,10 +18,16 @@ from esphome.const import (
CONF_TRIGGER_ID, CONF_TRIGGER_ID,
CONF_STOP, CONF_STOP,
CONF_TIME_ID, CONF_TIME_ID,
)
CONF_MASTER_MODE = "master_mode" CONF_MASTER_MODE = "master_mode"
CONF_WRITES_ARMED = "writes_armed" CONF_WRITES_ARMED = "writes_armed"
CONF_MASTER_NAD = "master_nad") CONF_MASTER_NAD = "master_nad"
CONF_UDP_STREAM_HOST = "udp_stream_host"
CONF_UDP_STREAM_PORT = "udp_stream_port"
CONF_STREAM_ENABLED = "stream_enabled"
CONF_STREAM_DIAG_ONLY = "stream_diag_only"
CONF_STREAM_KEEPALIVE_MS = "stream_keepalive_ms"
from esphome.components.uart import ( from esphome.components.uart import (
CONF_STOP_BITS, CONF_STOP_BITS,
CONF_DATA_BITS, CONF_DATA_BITS,
@ -211,7 +217,15 @@ CONFIG_SCHEMA = cv.All(
cv.Optional(CONF_LIN_CHECKSUM, "VERSION_2"): cv.enum(CONF_SUPPORTED_LIN_CHECKSUM, upper=True), cv.Optional(CONF_LIN_CHECKSUM, "VERSION_2"): cv.enum(CONF_SUPPORTED_LIN_CHECKSUM, upper=True),
cv.Optional(CONF_CS_PIN): pins.gpio_output_pin_schema, cv.Optional(CONF_CS_PIN): pins.gpio_output_pin_schema,
cv.Optional(CONF_FAULT_PIN): pins.gpio_input_pin_schema, cv.Optional(CONF_FAULT_PIN): pins.gpio_input_pin_schema,
cv.Optional(CONF_OBSERVER_MODE): cv.boolean,
cv.Optional(CONF_UDP_STREAM_HOST): cv.string,
cv.Optional(CONF_UDP_STREAM_PORT): cv.int_,
cv.Optional(CONF_STREAM_ENABLED, False): cv.boolean,
cv.Optional(CONF_STREAM_DIAG_ONLY, False): cv.boolean,
cv.Optional(CONF_STREAM_KEEPALIVE_MS, 2000): cv.positive_int,
cv.Optional(CONF_MASTER_MODE, False): cv.boolean,
cv.Optional(CONF_WRITES_ARMED, False): cv.boolean,
cv.Optional(CONF_MASTER_NAD, 0x7F): cv.int_range(min=0, max=127),
cv.Optional(CONF_ON_HEATER_MESSAGE): automation.validate_automation( cv.Optional(CONF_ON_HEATER_MESSAGE): automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(TrumaiNetBoxAppHeaterMessageTrigger), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(TrumaiNetBoxAppHeaterMessageTrigger),
@ -259,13 +273,22 @@ async def to_code(config):
if CONF_OBSERVER_MODE in config: if CONF_OBSERVER_MODE in config:
cg.add(var.set_observer_mode(config[CONF_OBSERVER_MODE])) cg.add(var.set_observer_mode(config[CONF_OBSERVER_MODE]))
for conf in config.get(CONF_ON_HEATER_MESSAGE, []): if CONF_UDP_STREAM_HOST in config:
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var) cg.add(var.set_udp_stream_host(config[CONF_UDP_STREAM_HOST]))
await automation.build_automation( if CONF_UDP_STREAM_PORT in config:
trigger, [(StatusFrameHeaterConstPtr, "message")], conf cg.add(var.set_udp_stream_port(config[CONF_UDP_STREAM_PORT]))
) if CONF_STREAM_ENABLED in config:
cg.add(var.set_stream_enabled(config[CONF_STREAM_ENABLED]))
if CONF_STREAM_DIAG_ONLY in config:
cg.add(var.set_stream_diag_only(config[CONF_STREAM_DIAG_ONLY]))
if CONF_STREAM_KEEPALIVE_MS in config:
cg.add(var.set_stream_keepalive_ms(config[CONF_STREAM_KEEPALIVE_MS]))
if CONF_MASTER_MODE in config:
cg.add(var.set_master_mode(config[CONF_MASTER_MODE]))
if CONF_WRITES_ARMED in config:
cg.add(var.set_writes_armed(config[CONF_WRITES_ARMED]))
if CONF_MASTER_NAD in config:
cg.add(var.set_master_nad(config[CONF_MASTER_NAD]))
# AUTOMATION # AUTOMATION
CONF_ENERGY_MIX = "energy_mix" CONF_ENERGY_MIX = "energy_mix"