components/jiecang_desk_controller/__init__.py aktualisiert

This commit is contained in:
2026-01-03 19:44:29 +01:00
parent faa0ab28e7
commit 94da61657b

View File

@@ -26,6 +26,14 @@ JiecangDeskNumber = jiecang_desk_controller_ns.class_(
'JiecangDeskNumber', number.Number, cg.Component
)
# -------------------------------------------------------------------
# Robust schema compatibility (ESPHome 2025.11 ↔ 2025.12+)
# -------------------------------------------------------------------
BUTTON_SCHEMA = getattr(button, "_BUTTON_SCHEMA", button.BUTTON_SCHEMA)
NUMBER_SCHEMA = getattr(number, "_NUMBER_SCHEMA", number.NUMBER_SCHEMA)
# -------------------------------------------------------------------
CONF_SENSORS = "sensors"
CONF_BUTTONS = "buttons"
CONF_NUMBERS = "numbers"
@@ -110,12 +118,12 @@ CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({
}),
cv.Optional(CONF_NUMBERS): cv.Schema({
cv.Optional(CONF_HEIGHT): number._NUMBER_SCHEMA.extend({
cv.Optional(CONF_HEIGHT): NUMBER_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskNumber),
cv.Optional(CONF_ACCURACY_DECIMALS, default=1): cv.int_,
cv.Optional(CONF_UNIT_OF_MEASUREMENT, default=UNIT_CENTIMETER): cv.string,
}),
cv.Optional(CONF_HEIGHT_PCT): number._NUMBER_SCHEMA.extend({
cv.Optional(CONF_HEIGHT_PCT): NUMBER_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskNumber),
cv.Optional(CONF_ACCURACY_DECIMALS, default=1): cv.int_,
cv.Optional(CONF_UNIT_OF_MEASUREMENT, default=UNIT_PERCENT): cv.string,
@@ -123,43 +131,19 @@ CONFIG_SCHEMA = cv.COMPONENT_SCHEMA.extend({
}),
cv.Optional(CONF_BUTTONS): cv.Schema({
cv.Optional(CONF_STEP_UP): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_STEP_DOWN): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_STOP): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_POSITION1): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_POSITION2): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_POSITION3): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_POSITION4): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_SAVE_POSITION): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_MOVE_UP): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_MOVE_DOWN): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_STEP_UP): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_STEP_DOWN): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_STOP): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION1): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION2): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION3): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_POSITION4): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_SAVE_POSITION): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_MOVE_UP): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_MOVE_DOWN): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
# Backward compatibility
cv.Optional(CONF_RAISE): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_LOWER): button._BUTTON_SCHEMA.extend({
cv.GenerateID(): cv.declare_id(JiecangDeskButton)
}),
cv.Optional(CONF_RAISE): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
cv.Optional(CONF_LOWER): BUTTON_SCHEMA.extend({cv.GenerateID(): cv.declare_id(JiecangDeskButton)}),
}),
}).extend(uart.UART_DEVICE_SCHEMA)