I just started using Home Assistant a few weeks ago and I’ve been able to add all my Zwave devices and just about everything has worked well so far.
I was also able to add my ADC T2000 thermostat and I can change the temperature set point and heat/cool mode okay, but when I try to configure the device using the Z-Wave Device Configuration UI, there are several parameters like Calibration Temperature, Overshoot, Swing, Balance SetPoint, Max/Min Heat Setpoint, Max/Min Cool Setpoint Heat Differential, Cool Differential and temperature reporting threshold that always report back an out of range value when HomeAssistant tries to read the value back after setting it.
It doesn’t do this for all the parameters, some of them like HVAC System type, Number of heat/cool stages, heat fuel type and heating/cooling staging delay all seem to be able to be changed and read back correctly.
I tried searching the forums but I can’t find anything that says whether these values are currently supported. The devices.zwave-js.io site shows the ADC-T 2000 thermostat as having those parameters as configurable and they showed up after adding the thermostat to Homeassistant I just can’t seem to change them.
I captured the logs from trying to Swing temperature value and pasted them below. Has anyone else seen this issue with the same thermostat or even a different one?
I’m currently running Zwave JS version: 0.1.40 and updated homeassistant to the latest version last night to see if that would fix anything. No luck though.
Hi All: I’m actually here from the Openhab community with the same issue. Someone helped me figure out the same thing you discovered here about the masked hex values, but I’m stuck on how to send a negative value - in the case of the temp calibration. I was wondering if someone could shed light on how this was solved here. What is HA now sending for the temp calibration parameter when wanting to decrease the temperature?
Thank you for the reply, @bachya. Are you able to see what decimal value HA is actually passing to the unit after you’re making that selection in the ui? For example, for a setting of “0”, the unit needs to receive “704643072”.
If you can see what that decimal value is for any negative value, that would help me a great deal. Thank you!
So, I figured this out with the help of all smart home communities! For prosperity in case someone needs this information in the future, negative numbers are the signed hex 2’s complement. For example:
Apparent temperature format in HEX: 2A + XXXX + 00, where the middle part is the hex representation of the temperature value (in tenths of a degree).
0 degrees = 2A000000 in HEX = 704643072 in decimal
2 degrees = 2A001400 in HEX = 704648192 in decimal
-2 degrees = 2AFFEC00 in HEX = 721415168 in decimal
This is the only thread I can find on adjusting the swing temperature, but I don’t see a solution?
I’m struggling with adjusting the swing parameter and would like some guidance on how to make it “stick” as it keeps reverting to the default value of 0.
Please help me and show me how I can make the value change and stay. Thanks!