Climate Confusion

So I’ve finally got a thermostat I can control via zwave, and have been trying to get it working in HA, I’ve made some progress, but still running into issues, not sure what I’m doing wrong here:

Thermostat: GoControl GC-TBZ48

I’ve read on this post, about getting it added: GoControl GC-TBZ48 Z-Wave Thermostat - Can't control setpoints?

I managed to use the built-in zwave support in HA and got the thermostat added successfully (I think).
Once connected, I had 4 new climate devices:
climate.linear_tbz48_cooling_1
climate.linear_tbz48_cooling_econ
climate.linear_tbz48_heating_1
climate.linear_tbz48_heating_econ

I read on the components page that:

Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one. If the thermostat support different operating modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the configuration.yaml file.

So that explains the 4 devices.

What I can’t make sense of is… Which of these 4 devices should I be using?

Also on the components page, I followed the “test if it works” section. I’ve tried using the climate.set_temperature & climate.set_operation_mode for each of the 4 devices, above. Filling out the entity_id for each, as well as the mode and/or temperature. None of them actually change the temperature, or mode of the thermostat!

What am I doing wrong here?

Success! (instructions, for anyone else)
This worked with HA ver: 0.57.2

Factory reset the thermostat.

Stopped HA, as the hass user, moved into this dir: [ha-config-dir]/deps/lib/python3.5/site-packages/python_openzwave/ozw_config/linear/

Pulled down the correct config from the OZW git repo:
wget https://raw.githubusercontent.com/OpenZWave/open-zwave/master/config/linear/GC-TBZ48.xml

Verify it’s there, and permissions are right:
ls -hl: -rw-r--r-- 1 hass hass 9.8K Nov 11 17:32 GC-TBZ48.xml

Up one dir, and edit the “manufacturer_specific.xml”, find this line:
<Manufacturer id="014f" name="Linear">

Add this, just below it, following the formatting, then save it:
<Product type="5442" id="5436" name="GC-TBZ48" config="linear/GC-TBZ48.xml"/>

Back in the home-asssistant config-dir, make sure that there’s no entry for the device, in “zwcfg_****.xml” (this might not be necessary).

Start Home-Assistant.

In the UI:
Configuration -> zwave -> add node

On the thermostat (after it’s been reset):
Menu -> zwave -> install
Should come back and say success, when it’s done.

Once it’s all added, you’ll have 2 new devices:
climate.linear_gctbz48_cooling_1
climate.linear_gctbz48_heating_1

Changing the operation mode, and temp now works as it should!

Enjoy!

More problems :frowning:

If I try and set the temperature via the UI or a service call, I get the following in OZW_log.txt:

2017-11-12 11:51:06.722 Info, Node008, Value::Set - COMMAND_CLASS_THERMOSTAT_SETPOINT - Heating 1 - 1 - 1 - 75
2017-11-12 11:51:06.723 Detail, Node008, Queuing (Send) ThermostatSetpointCmd_Set (Node=8): 0x01, 0x0c, 0x00, 0x13, 0x08, 0x05, 0x43, 0x01, 0x01, 0x09, 0x4b, 0x25, 0x31, 0xf8
2017-11-12 11:51:06.723 Detail, Node008, Queuing (Send) ThermostatSetpointCmd_Get (Node=8): 0x01, 0x0a, 0x00, 0x13, 0x08, 0x03, 0x43, 0x02, 0x01, 0x25, 0x32, 0xba
2017-11-12 11:51:06.723 Detail,
2017-11-12 11:51:06.723 Info, Node008, Sending (Send) message (Callback ID=0x31, Expected Reply=0x13) - ThermostatSetpointCmd_Set (Node=8): 0x01, 0x0c, 0x00, 0x13, 0x08, 0x05, 0x43, 0x01, 0x01, 0x09, 0x4b, 0x25, 0x31, 0xf8
2017-11-12 11:51:06.733 Detail, Node008,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2017-11-12 11:51:06.733 Detail, Node008,   ZW_SEND_DATA delivered to Z-Wave stack
2017-11-12 11:51:10.263 Detail, Node008,   Received: 0x01, 0x07, 0x00, 0x13, 0x31, 0x01, 0x01, 0x61, 0xbb
2017-11-12 11:51:10.263 Detail, Node008,   ZW_SEND_DATA Request with callback ID 0x31 received (expected 0x31)
2017-11-12 11:51:10.263 Info, Node008, WARNING: ZW_SEND_DATA failed. No ACK received - device may be asleep.
2017-11-12 11:51:10.263 Warning, Node008, WARNING: Device is not a sleeping node.
2017-11-12 11:51:10.263 Error, Node008, ERROR: node presumed dead
2017-11-12 11:51:10.264 Detail, Node001,   Expected callbackId was received
2017-11-12 11:51:10.264 Detail, Node001,   Expected reply was received
2017-11-12 11:51:10.264 Detail, Node001,   Message transaction complete
2017-11-12 11:51:10.264 Detail,
2017-11-12 11:51:10.264 Detail, Node008, Removing current message
2017-11-12 11:51:10.264 Detail, Node008, Notification: Notification - Node Dead
2017-11-12 11:51:10.266 Error, Node008, ERROR: Dropping command because node is presumed dead
2017-11-12 11:51:10.266 Detail, Node008, Removing current message
2017-11-12 11:51:50.471 Detail, Node008,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x08, 0x05, 0x31, 0x05, 0x01, 0x09, 0x49, 0x88
2017-11-12 11:51:50.471 Detail,
2017-11-12 11:51:50.471 Error, Node008, WARNING: node revived
2017-11-12 11:51:50.471 Info, Node008, Received SensorMultiLevel report from node 8, instance 1, Temperature: value=73F
2017-11-12 11:51:50.471 Detail, Node008, Refreshed Value: old value=72, new value=73, type=decimal
2017-11-12 11:51:50.471 Detail, Node008, Changes to this value are not verified
2017-11-12 11:51:50.472 Detail, Node008, Notification: Notification - Node Alive
2017-11-12 11:51:50.474 Detail, Node008, Notification: ValueChanged 

and the temperature never changes… Any idea?

That’s your problem. The node isn’t responding. There are many possible reasons for that - from problems with the device, to it being right on the edge of reliable communication (too far from the controller).

That was my thinking as well, but if I go the thermostat, and manually adjust the temperature, here’s what I see:

2017-11-12 12:43:07.955 Detail, Node008,   Received: 0x01, 0x07, 0x00, 0x13, 0x92, 0x01, 0x02, 0xc8, 0xb2
2017-11-12 12:43:07.955 Detail, Node008,   ZW_SEND_DATA Request with callback ID 0x92 received (expected 0x92)
2017-11-12 12:43:07.955 Info, Node008, WARNING: ZW_SEND_DATA failed. No ACK received - device may be asleep.
2017-11-12 12:43:07.955 Warning, Node008, WARNING: Device is not a sleeping node.
2017-11-12 12:43:07.955 Detail, Node001,   Expected callbackId was received
2017-11-12 12:43:10.836 Error, Node008, ERROR: Dropping command, expected response not received after 1 attempt(s)
2017-11-12 12:43:10.837 Detail, Node008, Removing current message
2017-11-12 12:43:10.837 Detail, Node008, Notification: Notification - TimeOut
2017-11-12 12:43:25.573 Detail, Node008,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x08, 0x05, 0x43, 0x03, 0x01, 0x09, 0x49, 0xfc
2017-11-12 12:43:25.573 Detail,
2017-11-12 12:43:25.573 Detail, Node008, Refreshed Value: old value=74, new value=73, type=decimal
2017-11-12 12:43:25.573 Detail, Node008, Changes to this value are not verified
2017-11-12 12:43:25.573 Info, Node008, Received thermostat setpoint report: Setpoint Heating 1 = 73F
2017-11-12 12:43:25.573 Detail, Node008, Notification: ValueChanged
2017-11-12 12:44:10.845 Detail, Node008, Polling: COMMAND_CLASS_THERMOSTAT_SETPOINT index = 1 instance = 1 (poll queue has 0 messages)
2017-11-12 12:44:10.845 Detail, Node008, Queuing (Poll) ThermostatSetpointCmd_Get (Node=8): 0x01, 0x0a, 0x00, 0x13, 0x08, 0x03, 0x43, 0x02, 0x01, 0x25, 0x93, 0x1b
2017-11-12 12:44:10.845 Detail,
2017-11-12 12:44:10.845 Info, Node008, Sending (Poll) message (Callback ID=0x93, Expected Reply=0x04) - ThermostatSetpointCmd_Get (Node=8): 0x01, 0x0a, 0x00, 0x13, 0x08, 0x03, 0x43, 0x02, 0x01, 0x25, 0x93, 0x1b
2017-11-12 12:44:10.853 Detail, Node008,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2017-11-12 12:44:10.853 Detail, Node008,   ZW_SEND_DATA delivered to Z-Wave stack
2017-11-12 12:44:18.023 Detail, Node008,   Received: 0x01, 0x07, 0x00, 0x13, 0x93, 0x01, 0x02, 0xce, 0xb5
2017-11-12 12:44:18.023 Detail, Node008,   ZW_SEND_DATA Request with callback ID 0x93 received (expected 0x93)
2017-11-12 12:44:18.023 Info, Node008, WARNING: ZW_SEND_DATA failed. No ACK received - device may be asleep.
2017-11-12 12:44:18.023 Warning, Node008, WARNING: Device is not a sleeping node.
2017-11-12 12:44:18.023 Detail, Node001,   Expected callbackId was received
2017-11-12 12:44:20.846 Error, Node008, ERROR: Dropping command, expected response not received after 1 attempt(s)
2017-11-12 12:44:20.846 Detail, Node008, Removing current message
2017-11-12 12:44:20.846 Detail, Node008, Notification: Notification - TimeOut

Interesting, I just got this same thermostat and it is showing up as unknown type “type5442_id5436”. I get 4 entities:

away_heating, cooling_1, cooling_econ, unused_3.

My HVAC system only has a fan and heat. It does not seem to matter which entity_id I use - I can turn fan on/off and change operation_mode.

I can’t set the temperature either but it’s strange behavior - If I try to use climate.set_temperature it will show on the thermostat screen the value I have sent, but when it changes back to the default screen the target point is the same as it was before.

I guess this is ok for me since I really just need to be able to turn the fan and heat on or off, the set point doesn’t particularly matter.

If anyone knows how to replace the XML file in Hass.io I can give that a try, I’m on 0.57.2

Lots of WARNINGS and ERRORs in that log, it’s not healthy.

When you included it, did you use a button on the controller to do that, or did you use Add Node in the Z-Wave control panel?

I used the Add Node button in the zwave control panel.

I’ve since given up on this; though I could get it added, nothing seemed to work right. Instead I’ve paired the thermostat with my ISY994(iz), and it’s working flawlessly. Also just got it added to HA thanks to @DetroitEE on this post. It’s not as elegant, but at least it works. Might try to add it as a generic-thermostat, we’ll see how that goes.

I am having exactly the same problem.

After reading so many posts and tried some of them, I finally realized that the true treatment is: remove all batteries in the thermostat and reinstall batteries, then it just works!

One thing all solutions in common is to reset the thermostat, this happens includes remove batteries and restart!

Must be a thermostat firmware bug.