Centralite HA Thermostat Setpoint Doesn't Always Update

@chris

I saw this thread where for z-wave there’s a sleep and awake period and the setpoint can only be set when the device wakes up. Is it possible that is what is happening to me with this zigbee thermostat?

If I reboot the thermostat and openhab and then change the setpoint (such as saying “alexa set thermostat to 70”) it will update on the thermostat nearly immediately which is good.

But if some hours later I try to change the setpoint it updates the openhab item but doesn’t change on the thermostat. Then some time later the openhab item changes back to what the thermostat actually is.

It’s this thermostat: https://fccid.io/document.php?id=2081173

Is there a simple way I can get around this happening?

ZigBee (generally) has a different concept for managing battery devices. Instead of the defined wake period like ZWave, devices like thermostats are meant to wake up at least every 7.6 seconds to check their parent for any waiting messages.

Not all battery devices do this (many don’t!), but I would expect a thermostat to follow this rule since it needs to be controllable “immediately”.

What troubleshooting steps can I take? I’m currently running openhab 2.5.1 using an ember dongle.

Here are some screenshots of the thermostat thing/items if it matters.

Are you using a rule for this? If so make sure you are sending the command and not just doing a postUpdate.

No, not using a rule for this at all. Here are my items:

Group Thermostat “Thermostat” [ “Thermostat”, “Fahrenheit” ]
Number:Temperature Temperature “Temperature” (Thermostat) [ “CurrentTemperature” ]
Number:Temperature TargetTemp “Target Temperature” (Thermostat) [ “homekit:TargetTemperature” ]
Number HeatingMode “Heating Mode” (Thermostat) [ “homekit:TargetHeatingCoolingMode” ]

I simply say “alexa set temperature to 70” and after the thermostat and openhab are freshly started I can go over and literally see that the temperature set on the thermostat has changed. But if some hours later I try adjusting the temperature again the item changes in openhab like before but the thermostat itself no longer changes.

Try removing the UoM from the item (the : part and Temperature) as the t-stat may not accept that as input.

Example:

Group Thermostat “Thermostat” [ “Thermostat”, “Fahrenheit” ]
Number Temperature “Temperature” (Thermostat) [ “CurrentTemperature” ]
Number TargetTemp “Target Temperature” (Thermostat) [ “homekit:TargetTemperature” ]
Number HeatingMode “Heating Mode” (Thermostat) [ “homekit:TargetHeatingCoolingMode” ]

I removed it from both but you can try with only removing UoM from the second one.

It’s not really got anything to do with the thermostat - the binding handles everything to do with the Item types - the thermostat will only see the ZigBee attribute updates which the binding sends. Any conversion is done in the binding and it handles the QuantityType.

1 Like

Thanks for the info, wasn’t sure how the binding handles things, the above was just an idea to try. :upside_down_face:

EDIT: @wtf911 if you have wireshark installed try monitoring the network when changing the set points and see what happens…or what doesn’t happen.

1 Like

I appreciate the responses. I’ve just been a bit busy. I was hoping to get time to enable the zigbee debug logging and then see if there becomes a difference in the send/receive of the packets after time. I figured that would probably be of more use to Chris to help troubleshoot this. I’ll update once I find time to try these things.

1 Like

@chris I had time to get some log info with zigbee debug enabled. I hope it’s alright that I uploaded it here: http://www.filedropper.com/openhab

Earlier in the log you’ll see an example of it not changing on the thermostat itself:

17:39:01.100 COMMAND RECEIVED zigbee:device:5e4256a6:000d6f00036b0ba5:000D6F00036B0BA5_1_thermostatoccupiedheating 72 °F [QuantityType]

Then towards the bottom you will see after I reset/rebooted the thermostat and it did successfully change the thermostats setpoint:

18:02:08.177 COMMAND RECEIVED zigbee:device:5e4256a6:000d6f00036b0ba5:000D6F00036B0BA5_1_thermostatoccupiedheating 73 °F [QuantityType]

Just wanted to give you timestamps so you could look at it quicker.

Hopefully this is of some help?

@chris I’ve been trying the latest SNAPSHOT for a while but still having this problem. Here are two logs …of when the thermostat set temp does change (after restarting the thermostat) and then hours later when it no longer changes.

testlog-failed change to 68.txt (250.3 KB) testlog-working temp change to 73 and then to 70.txt (560.7 KB)

You can see in the successful log where I ask to change the temp to 73 and it updates on the thermostat around this area in the log:

2020-05-06 21:53:08.975 [DEBUG] [converter.ZigBeeBaseChannelConverter] - 000D6F00036B0BA5: Channel zigbee:device:5e4256a6:000d6f00036b0ba5:000D6F00036B0BA5_1_thermostatoccupiedheating updated to 22.78 °C

Then in the failed attempt to change the temp it’s around here:

2020-05-09 10:40:37.007 [DEBUG] [ng.zigbee.handler.ZigBeeThingHandler] - 000D6F00036B0BA5: Command for channel zigbee:device:5e4256a6:000d6f00036b0ba5:000D6F00036B0BA5_1_thermostatoccupiedheating --> 68 °F [QuantityType]

It looks like in the log that in the one instance it is sending out correct but in the other it isn’t sending the command correctly.

What I’ll do is to create a new release of the libraries - once this is done I’ll post back here. Please then update to this library using @5iver s script -:

It will ask you what version to use - this should be 1.3.5 for the libraries.

I don’t really expect this to change anything, but let’s start from a known baseline. I assume this is happening reasonably often (??) - if so I’ll probably add some debug to the libraries so we can try and work out what is wrong.

@chris Thank you. Whatever you have for me to try I’m willing to give a shot. After the thermostat is reset after a few hours it quits updating the set temperature if I ask it to so sadly I’ve just been changing it manually by walking over to it. Obviously you’re the expert but I believe from my looking at the logs I uploaded that the logs change from when it works to when it doesn’t.

There’s clearly an issue - the libraries are not sending commands to this device - I don’t know why and will likely need to add debug to work out why…

V 1.3.5 should now be available - or if not, then it should be in the next 30 minutes or so (depending on where @5iver s script gets the files from (Bintray or central).

If you can get another log to show that this issue still exists, then I’ll try to work out what to do next - it will no doubt be a few iterations of debugging.

The script downloads everything from bintray, but gets some OH version info from CI and GH. Version 1.3.5 is available using option 2: ZigBee Library release (pre-openHAB snapshot).

1 Like

@5iver I’m running openhab on Windows. I don’t suppose there is a way of using your script on Windows? I would have to follow the manual instructions?

Nope, you’ll need to do it manually. I just updated the script today and changed some URLs and this reminded me that I did not update the readme. I’ll try to get to it tonight, but if downloads don’t work, look into the script for the URLs.

One of these days I will convert it to a Jython rule.

Here’s my /addons/ folder now:

And here’s my openhab stuff:

Remove…

  • com.zsmartsystems.zigbee.console.main
  • com.zsmartsystems.zigbee.serial
  • commons-cli
  • jssc

These were also removed earlier today.

@chris So still no luck as expected.

  1. I fixed my bundles like so:

  2. Restarted my thermostat and was able to change the temperature by voice command:
    changefrom69to70-library1.3.5.txt (112.4 KB)

  3. Went to bed and in the morning was no longer able to change the set temperature:
    failed change to 69 and 68.txt (272.5 KB)