NEWS
Heizkörperthermostate
-
So heute einen weiteren Versuch gestartet
- Soll Temperatur auf ON gestellt
- Batterien raus
- Thermostat abgeschraubt
- An meinem Test-Eckventil angeschraubt, damit ich nicht immer zum Heizkörper rennen muss (Foto siehe unten)
- Device in zigbee2mqtt gelöscht -> klappt nicht
- Device in zigbee2mqtt gelöscht mit Option "Entfernen erzwingen" -> klappt
- Batterien wieder eingesetzt
- Anlernen gestartet
- Anlernen in Zigbee2mqttt erlaubt
- Gerät meldet sich
[1/30/2026, 9:41:01 AM] z2m: Device '0xf4ce362404a2fe0d' is supported, identified as: Eurotronic Spirit Zigbee wireless heater thermostat (SPZB0001)- Das JSON aus der Log Message zum Interview habe ich mal formatiert ...
{ "data": { "definition": { "description": "Spirit Zigbee wireless heater thermostat", "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" }, { "features": [ { "access": 7, "description": "Temperature setpoint", "label": "Occupied heating setpoint", "name": "occupied_heating_setpoint", "property": "occupied_heating_setpoint", "type": "numeric", "unit": "°C", "value_max": 30, "value_min": 5, "value_step": 0.5 }, { "access": 7, "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": 5, "description": "Current temperature measured on the device", "label": "Local temperature", "name": "local_temperature", "property": "local_temperature", "type": "numeric", "unit": "°C" }, { "access": 7, "description": "Mode of this device", "label": "System mode", "name": "system_mode", "property": "system_mode", "type": "enum", "values": [ "off", "auto", "heat" ] }, { "access": 5, "description": "The current running state", "label": "Running state", "name": "running_state", "property": "running_state", "type": "enum", "values": [ "idle", "heat" ] }, { "access": 7, "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": 12.699999999999999, "value_min": -12.800000000000001, "value_step": 0.10000000000000001 }, { "access": 1, "description": "Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open", "label": "PI heating demand", "name": "pi_heating_demand", "property": "pi_heating_demand", "type": "numeric", "unit": "%", "value_max": 100, "value_min": 0 } ], "type": "climate" }, { "access": 7, "description": "Select between direct control of the valve via the `valve_position` or automatic control of the valve based on the `current_heating_setpoint`. For manual control set the value to 1, for automatic control set the value to 2 (the default). When switched to manual mode the display shows a value from 0 (valve closed) to 100 (valve fully open) and the buttons on the device are disabled.", "label": "Trv mode", "name": "trv_mode", "property": "trv_mode", "type": "enum", "values": [ 1, 2 ] }, { "access": 7, "description": "Directly control the radiator valve when `trv_mode` is set to 1. The values range from 0 (valve closed) to 255 (valve fully open)", "label": "Valve position", "name": "valve_position", "property": "valve_position", "type": "numeric", "value_max": 255, "value_min": 0 }, { "access": 7, "description": "Mirror display of the thermostat. Useful when it is mounted in a way where the display is presented upside down.", "label": "Mirror display", "name": "mirror_display", "property": "mirror_display", "type": "binary", "value_off": "OFF", "value_on": "ON" }, { "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 } ], "model": "SPZB0001", "options": [ { "access": 2, "description": "Controls the temperature unit of the thermostat (default celsius).", "label": "Thermostat unit", "name": "thermostat_unit", "property": "thermostat_unit", "type": "enum", "values": [ "celsius", "fahrenheit" ] } ], "source": "native", "supports_ota": true, "vendor": "Eurotronic" }, "friendly_name": "0xf4ce362404a2fe0d", "ieee_address": "0xf4ce362404a2fe0d", "status": "successful", "supported": true }, "type": "device_interview" }- Im mqtt.0 wird folgendes JSON hinterlegt
{ "last_seen": "2026-01-30T09:38:59+01:00", "linkquality": 212 }Ich habe gedacht, dass es ggfs. daran liegt, dass die Message von vor dem Interview ist, und ich mal etwas ändern muss. Habe in Zigbee2mqtt den Device Namen geändert, um das Anlegen eines neuen Device-Trees zu forcieren. Da steht aber auch nur der gleiche Blödsinn drin...
Nach dem Interview gibt es KEINE Messages mehr vom Thermostaten, weder beim Ändern der Solltemperatur, noch wenn ich den Thermostat-Testaufbau auf den Heizkörper lege, um eine Änderung der IST-Temperatur zu forcieren...
-
Hier gibt es einen alten Issue
https://github.com/Koenkk/zigbee2mqtt/discussions/19363
Aber die kriegen zumindest Werte vom Thermostat, und treffen nicht auch Schweigen im Wald
-
Nichts zu machen ....
TRV Mode geht nichtNur anzeigen falseNach Text filtern falseNur Hervorhebungen falseLog-Limit falseLog-Level-Konfiguration false false[30.1.2026, 11:14:48] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/health', payload '{"response_time":1769768088438,"os":{"load_average":[1.65,1.72,1.88],"memory_used_mb":3814.33,"memory_percent":48.9475},"process":{"uptime_sec":53416,"memory_used_mb":129.44,"memory_percent":1.661},"mqtt":{"connected":true,"queued":0,"published":7380,"received":94},"devices":{"0xffffb40e0604a31c":{"messages":3014,"messages_per_sec":0.0564,"leave_count":0,"network_address_changes":0},"0xa4c138c4f467b816":{"messages":69,"messages_per_sec":0.0013,"leave_count":0,"network_address_changes":0},"0xa4c1386b82ec5aab":{"messages":76,"messages_per_sec":0.0014,"leave_count":0,"network_address_changes":0},"0xf4ce362404a2fe0d":{"messages":4,"messages_per_sec":0.0001,"leave_count":0,"network_address_changes":0},"0xa4c138c490e0b03c":{"messages":72,"messages_per_sec":0.0014,"leave_count":0,"network_address_changes":0},"0xa4c138fc37f8a9f1":{"messages":67,"messages_per_sec":0.0013,"leave_count":0,"network_address_changes":0},"0xa4c138cbb1f7db42":{"messages":66,"messages_per_sec":0.0013,"leave_count":0,"network_address_changes":0},"0xa4c138c24580e8e3":{"messages":61,"messages_per_sec":0.0012,"leave_count":0,"network_address_changes":0},"0x00158d00087bc1c1":{"messages":84,"messages_per_sec":0.0017,"leave_count":0,"network_address_changes":0}}}' false false[30.1.2026, 11:18:08] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"system_mode":"auto"}} false false[30.1.2026, 11:18:15] z2m: Publish 'set' 'system_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.read([16392], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (51) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:18:20] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"trv_mode":2}} false false[30.1.2026, 11:18:22] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"trv_mode":2}} false false[30.1.2026, 11:18:26] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"trv_mode":1}} false false[30.1.2026, 11:18:26] z2m: Publish 'set' 'trv_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16384":{"value":2,"type":48}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (52) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:18:28] z2m: Publish 'set' 'trv_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16384":{"value":2,"type":48}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (53) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:18:29] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"system_mode":"heat"}} false false[30.1.2026, 11:18:32] z2m: Publish 'set' 'trv_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16384":{"value":1,"type":48}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (54) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:18:34] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"system_mode":"auto"}} false false[30.1.2026, 11:18:35] z2m: Publish 'set' 'system_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.read([16392], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (55) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:18:39] z2m: Publish 'set' 'system_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.read([16392], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (56) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:19:01] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"valve_position":255}} false false[30.1.2026, 11:19:06] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"valve_position":0}} false false[30.1.2026, 11:19:07] z2m: Publish 'set' 'valve_position' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16385":{"value":255,"type":32}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (57) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:19:13] z2m: Publish 'set' 'valve_position' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16385":{"value":0,"type":32}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (58) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:19:35] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"valve_position":0}} false false[30.1.2026, 11:19:41] z2m: Publish 'set' 'valve_position' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16385":{"value":0,"type":32}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (59) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:19:44] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"trv_mode":1}} false false[30.1.2026, 11:19:46] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"trv_mode":1}} false false[30.1.2026, 11:19:49] z2m: Publish 'set' 'trv_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16384":{"value":1,"type":48}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (60) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:19:51] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"valve_position":0}} false false[30.1.2026, 11:19:53] z2m: Publish 'set' 'trv_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16384":{"value":1,"type":48}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (61) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:19:56] z2m: Publish 'set' 'valve_position' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"16385":{"value":0,"type":32}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (62) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:20:13] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"system_mode":"heat"}} false false[30.1.2026, 11:20:19] z2m: Publish 'set' 'system_mode' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.read([16392], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4151,"writeUndiv":false}) failed (failed to send ZCL request (63) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' false false[30.1.2026, 11:23:25] frontend:api:bridge: Sending {"topic":"bridge/request/device/ota_update/check","payload":{"id":"0xf4ce362404a2fe0d","transaction":"pwryt-3"}}``` Soll-Temperatur setzen -
Nicht einmal die Soll-Temperatur kann man setzen
[30.1.2026, 11:26:08] frontend:api: Sending {"topic":"0xf4ce362404a2fe0d/set","payload":{"occupied_heating_setpoint":22}} [30.1.2026, 11:26:14] z2m: Publish 'set' 'occupied_heating_setpoint' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 hvacThermostat.write({"occupiedHeatingSetpoint":2200}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (failed to send ZCL request (65) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' -
Mir tut es zwar in der Seele weh, aber ich werde das Ding wohl zurückschicken, wenn ich da nicht bald Land sehe ...
Entwicklerkonsole, auslesen der HW-Version
[30.1.2026, 11:32:52] z2m: Publish 'set' 'read' to 'Thermostat_WZ' failed: 'Error: ZCL command 0xf4ce362404a2fe0d/1 genBasic.read(["hwVersion"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (failed to send ZCL request (67) Error: Failed APS-DATA.request with confirm status: ApsNoAck (0xa7))' -
@arteck Melden sich Deine Devices denn als COZB0001 oder als SPZB0001?
Die ersten sechs Hex-Zahlen der ISO-Adresse wären auch interessant
Mein Device melde sich als F4CE36, was nach https://standards-oui.ieee.org/ nordic semiconductors ist. Passt dazu:
https://github.com/Koenkk/zigbee2mqtt/issues/19420
Was für ein Chaos ...
Nach Factory Reset noch einmal gepaired, eher noch schlimmer geworden. Gibt eine etwas neuere BDA, als die Verlinkte im anderen Thread...
https://eurotronic.org/wp-content/uploads/2024/06/Bedienungsanleitung-Comet-ZigBee-DE.pdf
Ich habe die Nase voll, Thermostat ist verpackt, und geht zurück.
bestimmt 6 Stunden bastelei...