Temperaturkalibrierung/Delta plötzlich nicht mehr einstellbar

Heizen hat unter Tuya und auch ab Jahresanfang während der Heizsaison unter HA perfekt funktioniert, daran hatte ich lange gefeilt. Jetzt zur neuen Heizsaison ist mir aufgefallen, daß nicht mehr ordentlich geheizt wird, sprich die Heizkörperthermostate stoppen den Heizbetrieb einfach und bei der Fehlersuche bin ich darauf gestoßen, daß sich die Temperaturabweichung nicht mehr einstellen lässt, auch in Szenen, bei denen sie für jede meiner gebrauchten Zieltemperaturen individuell hinterlegt war, ist sie einfach rausgeflogen und lässt sich auch nicht mehr setzen, auch manuell nicht, der Wert springt immer auf 0 zurück. Zigbee2MQTT spuckt folgendes aus:

z2m: Publish ‘set’ ‘local_temperature_calibration’ to ‘WZ-HKV’ failed: ‘TypeError: Cannot read properties of undefined (reading ‘to’)’

Geändert habe ich im Laufe des Jahres nichts, warum auch, hat ja alles perfekt funktioniert, wie gesagt, also muß irgendeine Aktualisierung was zerschossen haben oder woran könnte es sonst liegen?

Du nicht aber Z2M mit einem Update ggf. schon. Ich würde die Releases nach Deinem Tuya durschauen.

Wegen solchen Sachen steht ein Z2M Update bei mir gleich hinter HA was mögliche Auswirkungen angeht. Mehrfach wurden schon bei meinen Boschthermostaten der Weg des Setzens der Solltemperatur angepaßt und mußte nacharbeiten.

Naja, ich kann nun schwerlich alle älteren Z2M Versionen seit Jahresanfang nochmal einspielen um zu gucken, ob es da irgendwo dran gelegen haben könnte, zumal ich mich ja auch außerhalb der Heizsaison und meiner Vollautomatisierung dieser absolut nicht um Heizgeschichten zu kümmern brauche, deshalb fällt es ja auch erst jetzt auf.

Das wäre schon Hardcore :wink: aber die Z2M-Releases nach Deinem Typen durchschauen oder gehe direkt auf die Z2M Geräteseite und schau wie dort der set Befehl gesetzt werden soll.

Es ist ein BEOK TRV-705ZB, wird nicht offiziell von Z2M unterstützt und ist per externer Definition eingebunden, hat bislang ja bestens funktioniert.

{
    "description": "Thermostat Radiator Valve",
    "exposes": [
        {
            "access": 1,
            "category": "diagnostic",
            "description": "Remaining battery in %, can take up to 24 hours before reported",
            "label": "Battery",
            "name": "battery",
            "property": "battery",
            "type": "numeric",
            "unit": "%",
            "value_max": 100,
            "value_min": 0
        },
        {
            "access": 3,
            "description": "Enables/disables physical input on the device",
            "label": "Child lock",
            "name": "child_lock",
            "property": "child_lock",
            "type": "binary",
            "value_off": "UNLOCK",
            "value_on": "LOCK"
        },
        {
            "access": 1,
            "description": "Position",
            "label": "Position",
            "name": "position",
            "property": "position",
            "type": "numeric",
            "unit": "%"
        },
        {
            "features": [
                {
                    "access": 3,
                    "description": "Enables/disables window detection on the device",
                    "label": "State",
                    "name": "state",
                    "property": "window_detection",
                    "type": "binary",
                    "value_off": "OFF",
                    "value_on": "ON",
                    "value_toggle": "TOGGLE"
                }
            ],
            "label": "Window detection",
            "type": "switch"
        },
        {
            "access": 1,
            "description": "Window status closed or open ",
            "label": "Window",
            "name": "window",
            "property": "window",
            "type": "binary",
            "value_off": "CLOSE",
            "value_on": "OPEN"
        },
        {
            "access": 1,
            "description": "Valve status closed or opened ",
            "label": "Valve state",
            "name": "valve_state",
            "property": "valve_state",
            "type": "binary",
            "value_off": "CLOSE",
            "value_on": "OPEN"
        },
        {
            "features": [
                {
                    "access": 3,
                    "description": "Offset to add/subtract to the local temperature",
                    "label": "Local temperature calibration",
                    "name": "local_temperature_calibration",
                    "property": "local_temperature_calibration",
                    "type": "numeric",
                    "unit": "°C",
                    "value_max": 10,
                    "value_min": -10,
                    "value_step": 0.1
                },
                {
                    "access": 1,
                    "description": "Current temperature measured on the device",
                    "label": "Local temperature",
                    "name": "local_temperature",
                    "property": "local_temperature",
                    "type": "numeric",
                    "unit": "°C"
                },
                {
                    "access": 3,
                    "description": "Temperature setpoint",
                    "label": "Current heating setpoint",
                    "name": "current_heating_setpoint",
                    "property": "current_heating_setpoint",
                    "type": "numeric",
                    "unit": "°C",
                    "value_max": 30,
                    "value_min": 5,
                    "value_step": 0.5
                },
                {
                    "access": 3,
                    "description": "Off deactivates valve operation, the other modes presets when setting on 5º (antifrost), from 15º (eco) and from 20º (comfort). It is better to set directly the temperature to deactivate off mode.",
                    "label": "Preset",
                    "name": "preset",
                    "property": "preset",
                    "type": "enum",
                    "values": [
                        "off",
                        "antifrost",
                        "eco",
                        "comfort",
                        "program",
                        "valve_open"
                    ]
                }
            ],
            "type": "climate"
        },
        {
            "access": 3,
            "description": "Antifreeze function",
            "label": "Frost protection",
            "name": "frost_protection",
            "property": "frost_protection",
            "type": "binary",
            "value_off": "OFF",
            "value_on": "ON"
        },
        {
            "access": 3,
            "description": "Off deactivates valve operation, the other modes presets when setting on 5º (antifrost), from 15º (eco) and from 20º (comfort). It is better to set directly the temperature to deactivate off mode.",
            "label": "Valve status",
            "name": "valve_status",
            "property": "valve_status",
            "type": "enum",
            "values": [
                "valve_closed",
                "valve_open"
            ]
        },
        {
            "access": 3,
            "description": "Schedule for monday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule monday",
            "name": "schedule_monday",
            "property": "schedule_monday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Schedule for tuesday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule tuesday",
            "name": "schedule_tuesday",
            "property": "schedule_tuesday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Schedule for wednesday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule wednesday",
            "name": "schedule_wednesday",
            "property": "schedule_wednesday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Schedule for thursday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule thursday",
            "name": "schedule_thursday",
            "property": "schedule_thursday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Schedule for friday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule friday",
            "name": "schedule_friday",
            "property": "schedule_friday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Schedule for saturday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule saturday",
            "name": "schedule_saturday",
            "property": "schedule_saturday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Schedule for sunday, example: \"HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C\"",
            "label": "Schedule sunday",
            "name": "schedule_sunday",
            "property": "schedule_sunday",
            "type": "text"
        },
        {
            "access": 3,
            "description": "Comfort mode temperature",
            "label": "Comfort temperature",
            "name": "comfort_temperature",
            "property": "comfort_temperature",
            "type": "numeric",
            "unit": "°C",
            "value_max": 30,
            "value_min": 15.5,
            "value_step": 0.5
        },
        {
            "access": 3,
            "description": "Eco mode temperature",
            "label": "Eco temperature",
            "name": "eco_temperature",
            "property": "eco_temperature",
            "type": "numeric",
            "unit": "°C",
            "value_max": 20,
            "value_min": 5.5,
            "value_step": 0.5
        },
        {
            "access": 3,
            "description": "Antifreeze mode temperature",
            "label": "Holiday temperature",
            "name": "holiday_temperature",
            "property": "holiday_temperature",
            "type": "numeric",
            "unit": "°C",
            "value_max": 15,
            "value_min": 5,
            "value_step": 0.5
        },
        {
            "access": 3,
            "description": "Display brightness",
            "label": "Display brightness",
            "name": "display_brightness",
            "property": "display_brightness",
            "type": "enum",
            "values": [
                "high",
                "medium",
                "low"
            ]
        },
        {
            "access": 3,
            "description": "Screen orientation",
            "label": "Screen orientation",
            "name": "screen_orientation",
            "property": "screen_orientation",
            "type": "enum",
            "values": [
                "up",
                "down"
            ]
        },
        {
            "access": 3,
            "description": "Hysteresis - comfort > switches off/on exactly at reached temperature with valve smooth from 0 to 100%, eco > 0.5 degrees above or below, valve either 0 or 100%",
            "label": "Mode",
            "name": "mode",
            "property": "mode",
            "type": "enum",
            "values": [
                "comfort",
                "eco"
            ]
        },
        {
            "access": 1,
            "category": "diagnostic",
            "description": "Link quality (signal strength)",
            "label": "Linkquality",
            "name": "linkquality",
            "property": "linkquality",
            "type": "numeric",
            "unit": "lqi",
            "value_max": 255,
            "value_min": 0
        }
    ],
    "icon": "https://de.beok-controls.com/uploads/202434945/zigbee-smart-home-radiator-valves916524cd-e98f-405e-81e9-f330c8d2adeb.jpg",
    "model": "TRV-705ZB",
    "options": [],
    "source": "external",
    "supports_ota": false,
    "vendor": "TuYa",
    "version": "0.0.0"
}

Ich vermute, daß das Problem beim externen Converter im Zusammenhang mit einem Z2M-Update entstanden ist. Die Temperaturkalibrierung wird ja weiterhin als beschreibbar angezeigt, allerdings schlägt das Schreiben fehl.
Laß das Javascript des externen Converters von einer KI Deiner Wahl prüfen. Gib dabei deine aktuelle Z2M-Version und die Fehlermeldung mit an.
Bin gespannt was dabei herauskommt.