"local_temperature_calibration" new value change not updated SPZB0001 thermostat
See original GitHub issueThe local_temperature_calibration attribute output is not updated to the new value, is always 0.
I set the local_temperature_calibration by
zigbee2mqtt/thermostat/living_room/set {"local_temperature_calibration":1.4} and yes it changes the local temperature from 19.77°C to 21.17°C, but the update topic will not set my new offset value in the attributes json.
Received topic:
zigbee2mqtt/thermostat/living_room
{
"local_temperature": 21.17,
"linkquality": 94,
"current_heating_setpoint": 21.5,
"eurotronic_system_mode": 1,
"system_mode": "heat",
"occupied_heating_setpoint": 21,
"unoccupied_heating_setpoint": 16,
"eurotronic_error_status": 0,
"pi_heating_demand": 32,
"battery": 100,
"local_temperature_calibration": 0
}
Eurotronic Spirit SPZB0001 thermostat
Issue Analytics
- State:
- Created 4 years ago
- Comments:18 (16 by maintainers)
Top Results From Across the Web
Set Local Temperature Calibration fails - Zigbee
Hi there, I have a climate Eurotronic SPZB0001 and I try to calibrate the local temperature by setting the offset.
Read more >Eurotronic SPZB0001 control via MQTT
Integrate your Eurotronic SPZB0001 via Zigbee2MQTT with whatever smart home infrastructure you are ... Description, Spirit Zigbee wireless heater thermostat.
Read more >The ai_thermostat from KartoffelToby - GithubHelp
ai_thermostat does not change the local_temperature_calibration. But no errors. Steps to Reproduce. Install ai_thermostat via HACS and add the new climate ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

I just double checked the PDF document, it is not listed in the reporting table as a reportable attribute 😦
@koenkk based on some debugging, setting a new calibration calls the convertSet method but convertGet is not automatically called afterwards.
Is this the expected behavior? If so, would it be appropriate to add a read immediately after the write to update the info? Or maybe just update the cached state if the write was successful?
I have issues in setting the value for local_temperature_calibration on some SPZB0001 devices. I publish Number values via OpenHab. That works for some devices. Other process values with factor 10 and report error message (either “out of range” or “INVALID_VALUE” as seen in the logs below).
There is no firmware update available, anyway that models are the same (working and not working ones). Did anyone face the same problem? Maybe the devices are not working properly?
Thanks for your support!!!
Publish 'set' 'local_temperature_calibration' to 'DG_Giebelzimmer_Heizkoerperthermostat_L' failed: 'Error: Write 0x00158d00032f7ced/1 hvacThermostat({"localTemperatureCalibration":-36}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')' Publish 'set' 'local_temperature_calibration' to 'DG_Giebelzimmer_Heizkoerperthermostat_R' failed: 'Error: Write 0x00158d00030c8695/1 hvacThermostat({"localTemperatureCalibration":28}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')' Publish 'set' 'local_temperature_calibration' to 'DG_Giebelzimmer_Heizkoerperthermostat_L' failed: 'Error: Write 0x00158d00032f7ced/1 hvacThermostat({"localTemperatureCalibration":-38}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')' Publish 'set' 'local_temperature_calibration' to 'DG_Giebelzimmer_Heizkoerperthermostat_R' failed: 'Error: Write 0x00158d00030c8695/1 hvacThermostat({"localTemperatureCalibration":28}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')' Publish 'set' 'local_temperature_calibration' to 'DG_Giebelzimmer_Heizkoerperthermostat_R' failed: 'Error: Write 0x00158d00030c8695/1 hvacThermostat({"localTemperatureCalibration":28}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')' Publish 'set' 'local_temperature_calibration' to 'DG_Giebelzimmer_Heizkoerperthermostat_L' failed: 'Error: Write 0x00158d00032f7ced/1 hvacThermostat({"localTemperatureCalibration":-39}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'INVALID_VALUE')'