From d5942af8a0391e3e8b33818f30ecdd520df74e97 Mon Sep 17 00:00:00 2001 From: Automation Date: Mon, 8 Sep 2025 10:32:19 +0200 Subject: [PATCH] fix: correct __init__.py imports and add stream+master options to schema/to_code --- components/truma_inetbox/__init__.py | 45 +++++++++++++++++++++------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/components/truma_inetbox/__init__.py b/components/truma_inetbox/__init__.py index 0b187c5..c2b01b7 100644 --- a/components/truma_inetbox/__init__.py +++ b/components/truma_inetbox/__init__.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Optional import esphome.codegen as cg import esphome.config_validation as cv @@ -18,10 +18,16 @@ from esphome.const import ( CONF_TRIGGER_ID, CONF_STOP, CONF_TIME_ID, - +) + CONF_MASTER_MODE = "master_mode" 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 ( CONF_STOP_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_CS_PIN): pins.gpio_output_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.GenerateID(CONF_TRIGGER_ID): cv.declare_id(TrumaiNetBoxAppHeaterMessageTrigger), @@ -259,13 +273,22 @@ async def to_code(config): if CONF_OBSERVER_MODE in config: cg.add(var.set_observer_mode(config[CONF_OBSERVER_MODE])) - for conf in config.get(CONF_ON_HEATER_MESSAGE, []): - trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var) - await automation.build_automation( - trigger, [(StatusFrameHeaterConstPtr, "message")], conf - ) - - + if CONF_UDP_STREAM_HOST in config: + cg.add(var.set_udp_stream_host(config[CONF_UDP_STREAM_HOST])) + if CONF_UDP_STREAM_PORT in config: + 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 CONF_ENERGY_MIX = "energy_mix"