ZWave Trane Thermostat Energy Savings Mode

I’ve recently converted from a Vera to using OpenHab and ZWave. One thing I was able to do on the Vera that I wasn’t able to do out of the box in to enable/disable the Energy Savings Mode of my thermostat. I used it in some of my scenes to adjust the thermostat when away or at night without needing to track the setpoint values or have hardcoded numbers.

I’ve done some tinkering with the thing definition for the trane_tzemt400bb32maa_00_000 zwave thing. I’ve found out that adding in a COMMAND_CLASS_BASIC channel, I can control the ESM mode. It would be nice if device manufacturers would document this kind of stuff.

I also attempted to add channels for the ESM Heating and Cooling setpoints, but they didn’t seem to work.

What do I need to provide for this to get included in the ZWave database that @chris maintains?

I would have expected the thermostat mode to allow you to do this so it would be good to understand why this doesn’t work - do you have a debug log of what happens when you change the mode, and also the setpoint if this also doesn’t work.

Also, the XML file produced for this device (in the userdata/zwave folder) would be useful to see.

I would have thought the thermostat mode would have worked too. I don’t think I have the debug logs anymore, but I’ll create some for you. Which modes would you like me to try? HEATING_ECON, COOLING_ECON and AWAY?

Here is the device xml file.
network_ceb9ee25__node_29.xml (12.5 KB)

I did some further testing with the additional setpoints I added. I thought they weren’t working as expected because they returned “0” as their value initially. I tried changing them and they appear to change the ESM setpoints. When I send the “BASIC” ON command, the normal heating setpoint is changed to the ESM value.

I tried the three MODES i mentioned and got “Unsupported mode” messages. I couldn’t upload the whole log, but here are the snippets about the thermostat mode. I can email you the whole log if you would like.

2017-02-25 10:36:48.223 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 29: Command received zwave:device:c7228c9e:node29:thermostat_mode --> 11
2017-02-25 10:36:48.224 [DEBUG] [lass.ZWaveThermostatModeCommandClass] - NODE 29: setValueMessage 11, modeType empty false
2017-02-25 10:36:48.245 [ERROR] [lass.ZWaveThermostatModeCommandClass] - NODE 29: Unsupported mode type 11
2017-02-25 10:36:48.245 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 29: Encapsulating message, endpoint 0
2017-02-25 10:36:48.245 [WARN ] [nverter.ZWaveThermostatModeConverter] - NODE 29: Generating message failed for command class = COMMAND_CLASS_THERMOSTAT_MODE, endpoint = 0
2017-02-25 10:36:48.245 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 29: No messages returned from converter

2017-02-25 10:36:57.393 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 29: Command received zwave:device:c7228c9e:node29:thermostat_mode --> 12
2017-02-25 10:36:57.393 [DEBUG] [lass.ZWaveThermostatModeCommandClass] - NODE 29: setValueMessage 12, modeType empty false
2017-02-25 10:36:57.393 [ERROR] [lass.ZWaveThermostatModeCommandClass] - NODE 29: Unsupported mode type 12
2017-02-25 10:36:57.393 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 29: Encapsulating message, endpoint 0
2017-02-25 10:36:57.393 [WARN ] [nverter.ZWaveThermostatModeConverter] - NODE 29: Generating message failed for command class = COMMAND_CLASS_THERMOSTAT_MODE, endpoint = 0
2017-02-25 10:36:57.394 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 29: No messages returned from converter

2017-02-25 10:37:00.528 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 29: Command received zwave:device:c7228c9e:node29:thermostat_mode --> 13
2017-02-25 10:37:00.528 [DEBUG] [lass.ZWaveThermostatModeCommandClass] - NODE 29: setValueMessage 13, modeType empty false
2017-02-25 10:37:00.528 [ERROR] [lass.ZWaveThermostatModeCommandClass] - NODE 29: Unsupported mode type 13
2017-02-25 10:37:00.529 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 29: Encapsulating message, endpoint 0
2017-02-25 10:37:00.529 [WARN ] [nverter.ZWaveThermostatModeConverter] - NODE 29: Generating message failed for command class = COMMAND_CLASS_THERMOSTAT_MODE, endpoint = 0
2017-02-25 10:37:00.529 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 29: No messages returned from converter

According to the XML (which is what the device is saying it supports), we have the following modes -:

                <modeType>AUTO</modeType>
                <modeType>COOL</modeType>
                <modeType>AUX_HEAT</modeType>
                <modeType>OFF</modeType>
                <modeType>HEAT</modeType>

This equates to the following values -:

        OFF(0, "Off"),
        HEAT(1, "Heat"),
        COOL(2, "Cool"),
        AUTO(3, "Auto"),
        AUX_HEAT(4, "Aux Heat"),
        RESUME(5, "Resume"),
        FAN_ONLY(6, "Fan Only"),
        FURNANCE(7, "Furnace"),
        DRY_AIR(8, "Dry Air"),
        MOIST_AIR(9, "Moist Air"),
        AUTO_CHANGEOVER(10, "Auto Changeover"),
        HEAT_ECON(11, "Heat Econ"),
        COOL_ECON(12, "Cool Econ"),
        AWAY(13, "Away"),
        MANUAL(31, "Manual");

So, according to the device, 11, 12 and 13 are not supported by the device - only 0, 1, 2, 3 and 4 it seems?

It would be interesting to set the BASIC class, and then read back the current mode to see what it says it’s set to…

Yes, that appears to be the only ones it likes.

I tried that tonight. Stared in normal mode with heat on. Sent a BASIC OFF to turn ESM on. Still reported Heat, but the Heating Setpoint reported the ESM value. Sent a BASIC ON to turn ESM back off. Still reported heat, but the Heating Setpoint returned to its original (non ESM) value.