ADC T200-thermostat help

Ah, okay – so you are connecting the T2000 through SmartThings and not directly to the machine running HASS?

@pdobrien3 Are you doing the same?

That’s correct. I can go in and set the temp in my Smartthings Apps and the Lovelace card updates.

image

Okay – I stuck some batteries in mine so I could test without actually wiring anything up (or making it so I can’t eventually return this thing if needed). Here’s what I found; note that I’m connecting directly to HASS via an Aeotec Z-Stick Gen5 (and not through SmartThings).

PAIRING

I inserted 4 AA batteries and held down the DOWN until the network icon began flashing. I then went into Configuration >> Z-Wave within HASS and clicked ADD NODE. I immediately saw a new node: Building 36 Technologies Unknown: type=0001, id=0001

When I investigated, I found four entities related to this node:

  • climate.building_36_technologies_unknown_type_0001_id_0001_cooling_1
  • climate.building_36_technologies_unknown_type_0001_id_0001_unused_3
  • sensor.building_36_technologies_unknown_type_0001_id_0001_relative_humidity
  • sensor.building_36_technologies_unknown_type_0001_id_0001_temperature

I’ll update this post as I test more.

Lovelace Testing

Auto Mode, 72° Target Temperature

I first clicked the Auto icon on the bottom left of the card:

The UI changed and I heard a relay click within the unit. I then touched the “…” button to wake the thermostat up, I saw this:

I then saw this state and these attribute values for the entity:

It appears that the unit is showing the current temperature while on Auto mode. Furthermore, the min and max temps appear to be set at 45° and 95°, respectively; I’ll need to investigate whether these can be changed via service calls.

Heat Mode, 75° Target Temperature

I then set the mode to Heat and the target temperature to 75°:

Again correct, although I wish the unit showed the target temperature…

Cool Mode, 66° Target Temperature

I then set the mode to Cool and the target temperature to 66°:

Again correct, but now I’m realizing that while this is hooked only to batteries, I’m not truly testing whether heating/cooling work as expected (unless I count relay clicks as proof at this stage).

Off Mode

I then set the mode to Off:

Again correct.

Unit Testing

Auto Mode, 65° Target Temperature

I set Auto mode with a 65° target temperature on the unit itself:

Still not sure how min and max temperatures fit into this; will have to see. As someone who’s leaving Nest, I’ll miss the idea of an Eco mode and will want to try to create my own.

Heat Mode, 77° Target Temperature

(I’ll skip photos/screenshots from here on out unless something materially new appears.)

This interaction worked as expected: HASS updated properly (including the Lovelace card).

Cool Mode, 71° Target Temperature

This interaction worked as expected: HASS updated properly (including the Lovelace card).

Service Testing

I tested several of the climate services; results below:

  • climate.set_temperature (using a temperature payload): worked as expected. It appears there’s some sort of lower limit; setting a temperature of, say, 49° didn’t cause the relay to open.
  • climate.set_temperature (using a target_temp_low and target_temp_high payload): did not work as expected. Perhaps this means that the min_temp and max_temp attributes are the ones enforced by the device, not configurable values.
  • climate.set_fan_mode: no errors appeared and the Lovelace card updated, but nothing on the unit verified this; will need to test once I’ve wired it up.
  • climate.set_operation_mode: worked as expected.
  • climate.turn_off: did not work as expected; I received a “Failed to call service climate/turn_off.” error.
  • climate.turn_on: did not work as expected; I received a “Failed to call service climate/turn_on.” error.

Other Entities

climate.building_36_technologies_unknown_type_0001_id_0001_unused_3 is puzzling to me, as it doesn’t appear to do anything. I suppose I could have deduced that from the “unused” in the title. :laughing:

At any rate, this entity appears to pick up some data (like state changes) and ignore others (like correct attribute values). It might be something slightly related to the note on the Z-Wave HASS docs:

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 supports 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.

sensor.building_36_technologies_unknown_type_0001_id_0001_relative_humidity had a value of 0 for a while, but shortly after inserting the batteries, it began reporting (44%). Hard to know whether this is a correct or an overly sensitive value, but at any rate, it works.

sensor.building_36_technologies_unknown_type_0001_id_0001_temperature appears to work as expected.

This is very helpful. Is there a way to leverage what you found out for my environment? Could there be an issue with how Smartthings is passing info to HA?

I’m thinking that’s the case. Unfortuntately, I’m not the expert on the SmartThings integration; GitHub user “andrewsayre” is the codeowner for it, so perhaps he can help there.

Thanks for investigating this. Are there key entries in the climate.thermostat that I should be looking for? Is there a way to modify my existing entries in HA?

Hopefully @andrewsayre sees this thread and can chime in.

I would walk through some of the tests I did above and see if the attributes of your climate entity/entities (temperature, operation_mode, etc.) changes.

Ok. Thanks again for your help.

1 Like

No, I was connected directly to HA. From memory, although I had so many other things going on at the time, I remember being able to control air conditioning but not heating. I also recall others had a similar issue. Not sure I could do anything from the lovelace card though.

@bachya, curious what version of python you are using. Could that be the difference? Maybe a recent OZW update for thermostats?

Using Python 3.7.3 and homeassistant-pyozw 0.1.4.

@pdobrien3 and @bachya,

Quick update for my issue. As you know my T2000 was connected to smartthings and imported into HA. The problem with this approach is that i was using a custom device handler that was not passing the proper commands to HA. I connected with andrewsayre and he was was able to suggest some entries for the device handler that solved the problem.

Check out the git conversation for more details: https://github.com/home-assistant/home-assistant/issues/23936

Thanks everyone for your help with this!

1 Like

Glad you got it working. For now, nest/google have stated that as long as you have a dev account, you can continue to use it. I love the nest so far and hope status quo will continue.

Just a piece of advice, if you ever have to remove the wires from the T2000, be very careful and take your time. I ended up damaging the connectors on the first one I removed.

Peace.

I’m on HA 0.98.5 and have OZW (generic linux install), I presume with the OZW command class updates mentioned further up in the thread.

I just went through the same process as @bachya did a few posts above, but Heat and Auto modes just aren’t working. It doesn’t accept the heating setpoint from HA, and HA doesn’t reflect the heating setpoint when the mode is changed on the unit itself. In your first picture above you actually see this same behavior, where you say you set the mode to Auto and the setpoint to 72F, but the temperature field in the state still reads 75. Later in the “Unit Testing” section, you set it to Auto on the unit itself and a setpoint of 65, but the temperature state still says 79.

I’m not convinced these things work entirely out-of-the-box without their ADC service. There’s something missing still where the heat mode isn’t working; I can hear the relay click when I switch it to Heat or Auto, through HA or from the unit, but the setpoint reported in HA (and send from HA to the unit) is always the cool setpoint and never the heat one. Heat is also never applied based on the setpoint even if it’s well into the region where you’d expect heating to happen.

I tailed OZW_Log.txt for a bit and saw that even if I changed the mode to Heat through HA (HA state and unit agree on the mode), setpoint changes still go out to the cooling setpoint only:

2019-09-19 04:45:26.111 Info, Node003, Received thermostat mode: Off
2019-09-19 04:45:26.111 Detail, Node003,   Expected reply and command class was received
2019-09-19 04:45:26.111 Detail, Node003,   Message transaction complete
2019-09-19 04:45:26.111 Detail,
2019-09-19 04:45:26.111 Detail, Node003, Removing current message
2019-09-19 04:45:26.112 Detail, Node003, Notification: ValueChanged
2019-09-19 04:45:29.449 Info, Node003, Value::Set - COMMAND_CLASS_THERMOSTAT_MODE - Mode - 0 - 1 - Heat
2019-09-19 04:45:29.449 Detail, Node003, Queuing (Send) ThermostatModeCmd_Set (Node=3): 0x01, 0x0a, 0x00, 0x13, 0x03, 0x03, 0x40, 0x01, 0x01, 0x25, 0x47, 0xc4
2019-09-19 04:45:29.449 Detail, Node003, Queuing (Send) ThermostatModeCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x40, 0x02, 0x25, 0x48, 0xcb 2019-09-19 04:45:29.449 Detail,
2019-09-19 04:45:29.449 Info, Node003, Sending (Send) message (Callback ID=0x47, Expected Reply=0x13) - ThermostatModeCmd_Set (Node=3): 0x01, 0x0a, 0x00, 0x13, 0x03, 0x03, 0x40, 0x01, 0x01, 0x25, 0x47, 0xc4
2019-09-19 04:45:29.463 Detail, Node003,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2019-09-19 04:45:29.463 Detail, Node003,   ZW_SEND_DATA delivered to Z-Wave stack
2019-09-19 04:45:29.477 Detail, Node003,   Received: 0x01, 0x05, 0x00, 0x13, 0x47, 0x00, 0xae
2019-09-19 04:45:29.478 Detail, Node003,   ZW_SEND_DATA Request with callback ID 0x47 received (expected 0x47)
2019-09-19 04:45:29.478 Info, Node003, Request RTT 28 Average Request RTT 44
2019-09-19 04:45:29.478 Detail,   Expected callbackId was received
2019-09-19 04:45:29.478 Detail,   Expected reply was received
2019-09-19 04:45:29.478 Detail,   Message transaction complete
2019-09-19 04:45:29.478 Detail,
2019-09-19 04:45:29.478 Detail, Node003, Removing current message
2019-09-19 04:45:29.478 Detail,
2019-09-19 04:45:29.478 Info, Node003, Sending (Send) message (Callback ID=0x48, Expected Reply=0x04) - ThermostatModeCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x40, 0x02, 0x25, 0x48, 0xcb
2019-09-19 04:45:29.542 Detail, Node003,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2019-09-19 04:45:29.542 Detail, Node003,   ZW_SEND_DATA delivered to Z-Wave stack
2019-09-19 04:45:29.557 Detail, Node003,   Received: 0x01, 0x05, 0x00, 0x13, 0x48, 0x00, 0xa1
2019-09-19 04:45:29.557 Detail, Node003,   ZW_SEND_DATA Request with callback ID 0x48 received (expected 0x48)
2019-09-19 04:45:29.557 Info, Node003, Request RTT 78 Average Request RTT 61
2019-09-19 04:45:29.557 Detail,   Expected callbackId was received
2019-09-19 04:45:29.767 Detail, Node003,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x03, 0x03, 0x40, 0x03, 0x01, 0xb0
2019-09-19 04:45:29.767 Detail,
2019-09-19 04:45:29.767 Info, Node003, Response RTT 288 Average Response RTT 265
2019-09-19 04:45:29.767 Detail, Node003, Refreshed Value: old value=0, new value=1, type=list
2019-09-19 04:45:29.767 Detail, Node003, Changes to this value are not verified
2019-09-19 04:45:29.767 Info, Node003, Received thermostat mode: Heat
2019-09-19 04:45:29.767 Detail, Node003,   Expected reply and command class was received
2019-09-19 04:45:29.767 Detail, Node003,   Message transaction complete
2019-09-19 04:45:29.767 Detail,
2019-09-19 04:45:29.767 Detail, Node003, Removing current message
2019-09-19 04:45:29.767 Detail, Node003, Notification: ValueChanged
2019-09-19 04:45:35.136 Info, Node003, Value::Set - COMMAND_CLASS_THERMOSTAT_SETPOINT - Cooling 1 - 2 - 1 - 76
2019-09-19 04:45:35.136 Detail, Node003, Queuing (Send) ThermostatSetpointCmd_Set (Node=3): 0x01, 0x0c, 0x00, 0x13, 0x03, 0x05, 0x43, 0x01, 0x02, 0x09, 0x4c, 0x25, 0x49, 0x8f
2019-09-19 04:45:35.137 Detail, Node003, Queuing (Send) ThermostatSetpointCmd_Get (Node=3): 0x01, 0x0a, 0x00, 0x13, 0x03, 0x03, 0x43, 0x02, 0x02, 0x25, 0x4a, 0xca
2019-09-19 04:45:35.137 Detail,
2019-09-19 04:45:35.137 Info, Node003, Sending (Send) message (Callback ID=0x49, Expected Reply=0x13) - ThermostatSetpointCmd_Set (Node=3): 0x01, 0x0c, 0x00, 0x13, 0x03, 0x05, 0x43, 0x01, 0x02, 0x09, 0x4c, 0x25, 0x49, 0x8f
2019-09-19 04:45:35.151 Detail, Node003,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2019-09-19 04:45:35.151 Detail, Node003,   ZW_SEND_DATA delivered to Z-Wave stack
2019-09-19 04:45:35.165 Detail, Node003,   Received: 0x01, 0x05, 0x00, 0x13, 0x49, 0x00, 0xa0
2019-09-19 04:45:35.166 Detail, Node003,   ZW_SEND_DATA Request with callback ID 0x49 received (expected 0x49)
2019-09-19 04:45:35.166 Info, Node003, Request RTT 28 Average Request RTT 44
2019-09-19 04:45:35.166 Detail,   Expected callbackId was received
2019-09-19 04:45:35.166 Detail,   Expected reply was received
2019-09-19 04:45:35.166 Detail,   Message transaction complete
2019-09-19 04:45:35.166 Detail,
2019-09-19 04:45:35.166 Detail, Node003, Removing current message
2019-09-19 04:45:35.166 Detail,
2019-09-19 04:45:35.166 Info, Node003, Sending (Send) message (Callback ID=0x4a, Expected Reply=0x04) - ThermostatSetpointCmd_Get (Node=3): 0x01, 0x0a, 0x00, 0x13, 0x03, 0x03, 0x43, 0x02, 0x02, 0x25, 0x4a, 0xca
2019-09-19 04:45:35.224 Detail, Node003,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2019-09-19 04:45:35.224 Detail, Node003,   ZW_SEND_DATA delivered to Z-Wave stack
2019-09-19 04:45:35.238 Detail, Node003,   Received: 0x01, 0x05, 0x00, 0x13, 0x4a, 0x00, 0xa3
2019-09-19 04:45:35.238 Detail, Node003,   ZW_SEND_DATA Request with callback ID 0x4a received (expected 0x4a)
2019-09-19 04:45:35.238 Info, Node003, Request RTT 71 Average Request RTT 57
2019-09-19 04:45:35.238 Detail,   Expected callbackId was received
2019-09-19 04:45:35.297 Detail, Node003,   Received: 0x01, 0x0c, 0x00, 0x04, 0x00, 0x03, 0x06, 0x43, 0x03, 0x02, 0x2a, 0x02, 0xf8, 0x60
2019-09-19 04:45:35.297 Detail,
2019-09-19 04:45:35.297 Info, Node003, Response RTT 131 Average Response RTT 198
2019-09-19 04:45:35.297 Detail, Node003, Refreshed Value: old value=75.0, new value=76.0, type=decimal
2019-09-19 04:45:35.297 Detail, Node003, Changes to this value are not verified
2019-09-19 04:45:35.297 Info, Node003, Received thermostat setpoint report: Setpoint Cooling 1 = 76.0F
2019-09-19 04:45:35.297 Detail, Node003,   Expected reply and command class was received
2019-09-19 04:45:35.297 Detail, Node003,   Message transaction complete
2019-09-19 04:45:35.298 Detail,
2019-09-19 04:45:35.298 Detail, Node003, Removing current message
2019-09-19 04:45:35.298 Detail, Node003, Notification: ValueChanged

All of the mode changes and setpoint changes were done within HA. The unit reflects the mode changes and the relay makes an audible click when entering Heat mode, but the setpoint is only for cooling. It’s probably obvious given that the endpoint/node given to us by default is one that’s literally labeled “cooling” whereas the other is “unused.” I’m at a loss as to how to get the “heating” bits enabled or visible though. Their manual mentions extra modes and configurations being available via their application but they offer no further detail.

1 Like

Uh oh, that’s not good. I haven’t had occasion to use heating mode yet this year… I suppose I’ll find out soon. :laughing:

1 Like

I’ve found that only the cooling climate entity is created and not the heating climate entity. I’ve edited the zwcfg file as seen below and was able to get the heat set point to take effect on the thermostat by changing the temperature on the heating climate entity.

			<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" innif="true" base="1">
				<Instance index="1" />
				<Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="F" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="68" />
				<Value type="decimal" genre="user" instance="1" index="2" label="Cooling 1" units="F" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="77" />
3 Likes

Nice! :tada: Now, for the all important question: does this mean you have to have two thermostat cards in Home Assistant?

EDIT: found this: https://github.com/enriqg9/dual-thermostat

How’d you get the changes to take effect? I tried editing the zwcfg_<homeid>.xml in the HA config directory but I didn’t see any new nodes or anything, and my changes didn’t survive a HA restart.

EDIT: I just found this thread that seems to answer the question. The zwcfg file gets written on OZW shutdown so you have to make changes after that. And @diaphanouscloak ninja’d me anyway, serves me right for not looking before posting. :slight_smile:

@bachya
I’m using the dual thermostat card as you’ve found.

@pokemane
I believe most recommend stopping HA before editing the zwcfg file. I’ve been able to get away with just stopping the Z-wave network before editing.

1 Like

Thanks! Everything’s going smoothly now, heating and cooling both work well with the dual thermostat card.

I wonder why the entities don’t populate properly on their own. Regardless, I appreciate you and @bachya replying to a 4-month thread necro and I’m glad it’s sorted. Hopefully this helps someone else too.