Update __init__.py

This commit is contained in:
ElVit 2025-11-24 22:06:11 +01:00 committed by GitHub
parent c22f19a7f3
commit e350a11469
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 125 additions and 117 deletions

View File

@ -2,9 +2,13 @@ import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import binary_sensor
from esphome.const import (
DEVICE_CLASS_RUNNING,
DEVICE_CLASS_RUNNING,
)
from .. import (
CONF_PANASONIC_HEATPUMP_ID,
PanasonicHeatpumpComponent,
panasonic_heatpump_ns,
)
from .. import CONF_PANASONIC_HEATPUMP_ID, PanasonicHeatpumpComponent, panasonic_heatpump_ns
CONF_TOP0 = "top0" # Heatpump State
@ -32,125 +36,129 @@ CONF_TOP132 = "top132" # Bivalent Advanced Heat
CONF_TOP133 = "top133" # Bivalent Advanced DHW
TYPES = [
CONF_TOP0,
CONF_TOP2,
CONF_TOP3,
CONF_TOP13,
CONF_TOP26,
CONF_TOP60,
CONF_TOP61,
CONF_TOP68,
CONF_TOP69,
CONF_TOP99,
CONF_TOP100,
CONF_TOP108,
CONF_TOP109,
CONF_TOP110,
CONF_TOP119,
CONF_TOP120,
CONF_TOP121,
CONF_TOP122,
CONF_TOP123,
CONF_TOP124,
CONF_TOP129,
CONF_TOP132,
CONF_TOP133,
CONF_TOP0,
CONF_TOP2,
CONF_TOP3,
CONF_TOP13,
CONF_TOP26,
CONF_TOP60,
CONF_TOP61,
CONF_TOP68,
CONF_TOP69,
CONF_TOP99,
CONF_TOP100,
CONF_TOP108,
CONF_TOP109,
CONF_TOP110,
CONF_TOP119,
CONF_TOP120,
CONF_TOP121,
CONF_TOP122,
CONF_TOP123,
CONF_TOP124,
CONF_TOP129,
CONF_TOP132,
CONF_TOP133,
]
PanasonicHeatpumpBinarySensor = panasonic_heatpump_ns.class_("PanasonicHeatpumpBinarySensor", binary_sensor.BinarySensor, cg.Component)
PanasonicHeatpumpBinarySensor = panasonic_heatpump_ns.class_(
"PanasonicHeatpumpBinarySensor", binary_sensor.BinarySensor, cg.Component
)
CONFIG_SCHEMA = cv.Schema(
{
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
cv.Optional(CONF_TOP0): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP2): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP3): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP13): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP26): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP60): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP61): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP68): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP69): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP99): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP100): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP108): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP109): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class = DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP110): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP119): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP120): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP121): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP122): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP123): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP124): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP129): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP132): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP133): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
}
{
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(
PanasonicHeatpumpComponent
),
cv.Optional(CONF_TOP0): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP2): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP3): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP13): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP26): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP60): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP61): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP68): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP69): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP99): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP100): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP108): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP109): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
device_class=DEVICE_CLASS_RUNNING,
),
cv.Optional(CONF_TOP110): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP119): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP120): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP121): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP122): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP123): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP124): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP129): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP132): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
cv.Optional(CONF_TOP133): binary_sensor.binary_sensor_schema(
PanasonicHeatpumpBinarySensor,
),
}
).extend(cv.COMPONENT_SCHEMA)
async def to_code(config):
parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
for index, key in enumerate(TYPES):
if child_config := config.get(key):
var = await binary_sensor.new_binary_sensor(child_config)
await cg.register_component(var, child_config)
cg.add(var.set_parent(parent))
cg.add(var.set_id(index))
cg.add(parent.add_binary_sensor(var))
parent = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
for index, key in enumerate(TYPES):
if child_config := config.get(key):
var = await binary_sensor.new_binary_sensor(child_config)
await cg.register_component(var, child_config)
cg.add(var.set_parent(parent))
cg.add(var.set_id(index))
cg.add(parent.add_binary_sensor(var))