Unable to set several configuration parameters for the ADC T2000 thermostat

Hello all,

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.

Thanks.

Subscribed to Z-Wave JS Log Messages…
2021-09-22T14:42:10.057Z DRIVER » [Node 005] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 29
└─[ConfigurationCCSet]
parameter #: 7
reset to default: false
value size: 4
value format: SignedInteger
value: 15
2021-09-22T14:42:10.075Z DRIVER « [RES] [SendData]
was sent: true
2021-09-22T14:42:10.089Z DRIVER « [REQ] [SendData]
callback id: 29
transmit status: OK
2021-09-22T14:42:11.138Z DRIVER » [Node 005] [REQ] [SendData]
│ transmit options: 0x25
│ callback id: 30
└─[ConfigurationCCGet]
parameter #: 7
2021-09-22T14:42:11.153Z DRIVER « [RES] [SendData]
was sent: true
2021-09-22T14:42:11.164Z DRIVER « [REQ] [SendData]
callback id: 30
transmit status: OK
2021-09-22T14:42:11.261Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
└─[ConfigurationCCReport]
parameter #: 7
value size: 4
value: 704643072

Unfortunately, I’m experiencing the same and haven’t found a resolution. I wonder if the ADC T-3000 behaves better…

I stumbled across this zwave-js issue: https://github.com/zwave-js/node-zwave-js/issues/4276

It seems to indicate that these values need to be converted into something meaningful. I asked for more clarification; will see what I hear back.

Have you tried re-interviewing the device? According to the issue, it has been fixed and you don’t need to deal with the integer values.

And here I was, getting ready to become an expert on hex conversion and bit shifting… Thank you!! A re-interview worked like a charm.

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?

In Z-Wave JS, you can put a negative number into that parameter – here’s me calibrating the temperature by -1°:

EDIT: actually, that doesn’t look quite right… That seems to be setting a config parameter, not the value.

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

1 Like