I forgot to mention, this doesn't change fan modes from the built-in Thermostat tile. It will change to fan mode = 'on' but not to 'circulate' or 'auto.'
I think maybe the problem is with the Thermostat tile, but I'm not sure. When I try to change the fan mode to 'circulate' or 'auto' I get errors:
Summary
dev:902020-06-29 07:54:30.279 pm errorjava.lang.NullPointerException: Cannot invoke method and() on null object on line 385 (setThermostatFanMode)
dev:902020-06-29 07:54:30.205 pm debugsetting zwave thermostat fan mode null
dev:902020-06-29 07:54:30.204 pm debugsetThermostatFanMode( auto)
dev:902020-06-29 07:54:23.308 pm debugTranslated fan mode: on
dev:902020-06-29 07:54:23.306 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:1, off:false)
dev:902020-06-29 07:54:23.294 pm debugparse:zw device: 09, command: 4403, payload: 01 , isMulticast: false
dev:902020-06-29 07:54:23.180 pm debugparse:zw device: 09, command: 7006, payload: 01 01 04 , isMulticast: false
dev:902020-06-29 07:54:23.104 pm debugTranslated fan state: running
dev:902020-06-29 07:54:23.102 pm debugGot thermostat fan state report: ThermostatFanStateReport(fanOperatingState:1)
dev:902020-06-29 07:54:23.094 pm debugparse:zw device: 09, command: 4503, payload: 01 , isMulticast: false
dev:902020-06-29 07:54:23.004 pm debugsetting zwave thermostat fan mode 1
dev:902020-06-29 07:54:23.003 pm debugsetThermostatFanMode(on)
dev:902020-06-29 07:52:42.373 pm debuggot temp: 55.0
dev:902020-06-29 07:52:42.370 pm debugparse:zw device: 09, command: 3105, payload: 05 22 02 26 , isMulticast: false
dev:902020-06-29 07:51:08.628 pm errorjava.lang.NullPointerException: Cannot invoke method and() on null object on line 385 (setThermostatFanMode)
dev:902020-06-29 07:51:08.573 pm debugsetting zwave thermostat fan mode null
dev:902020-06-29 07:51:08.571 pm debugsetThermostatFanMode( circulate)
I'm pretty sure that's because the Thermostat tile is broken, asking the driver to set the fan mode to ' circulate
' instead of 'circulate
.' The same thing happens with 'auto.' The only one with the correct value is 'on.' I'm guessing that when something calls setThermostatFanMode( circulate)
, it fails, since there is no SET_THERMOSTAT_FAN_MODE[mode]
with a space in front. Maybe I could add those? Or maybe Hubitat could fix their Thermostat tile?
Edit: I did just that:
@Field static Map SET_THERMOSTAT_FAN_MODE=["auto":0x00,"on":0x01,"circulate":0x06, " auto":0x00, " on":0x01, " circulate":0x06]
and now it works! Goofy tile. I added the space in front of ' on' just in case...
And my style has spaces, I guess...
Here are the logs now:
Summary
dev:902020-06-29 08:12:50.177 pm debugTranslated fan mode: on
dev:902020-06-29 08:12:50.176 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:1, off:false)
dev:902020-06-29 08:12:50.172 pm debugparse:zw device: 09, command: 4403, payload: 01 , isMulticast: false
dev:902020-06-29 08:12:50.053 pm debugparse:zw device: 09, command: 7006, payload: 01 01 04 , isMulticast: false
dev:902020-06-29 08:12:49.974 pm debugTranslated fan state: running
dev:902020-06-29 08:12:49.973 pm debugGot thermostat fan state report: ThermostatFanStateReport(fanOperatingState:1)
dev:902020-06-29 08:12:49.970 pm debugparse:zw device: 09, command: 4503, payload: 01 , isMulticast: false
dev:902020-06-29 08:12:49.874 pm debugsetting zwave thermostat fan mode 1
dev:902020-06-29 08:12:49.873 pm debugsetThermostatFanMode(on)
dev:902020-06-29 08:12:41.336 pm debugTranslated fan mode: auto
dev:902020-06-29 08:12:41.335 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:0, off:false)
dev:902020-06-29 08:12:41.331 pm debugparse:zw device: 09, command: 4403, payload: 00 , isMulticast: false
dev:902020-06-29 08:12:41.246 pm debugparse:zw device: 09, command: 7006, payload: 01 01 04 , isMulticast: false
dev:902020-06-29 08:12:41.149 pm debugTranslated fan state: idle
dev:902020-06-29 08:12:41.148 pm debugGot thermostat fan state report: ThermostatFanStateReport(fanOperatingState:0)
dev:902020-06-29 08:12:41.144 pm debugparse:zw device: 09, command: 4503, payload: 00 , isMulticast: false
dev:902020-06-29 08:12:41.044 pm debugsetting zwave thermostat fan mode 0
dev:902020-06-29 08:12:41.043 pm debugsetThermostatFanMode( auto)
dev:902020-06-29 08:12:30.880 pm debugTranslated fan mode: circulate
dev:902020-06-29 08:12:30.879 pm debugGot thermostat fan mode report: ThermostatFanModeReport(fanMode:6, off:false)
dev:902020-06-29 08:12:30.875 pm debugparse:zw device: 09, command: 4403, payload: 06 , isMulticast: false
dev:902020-06-29 08:12:30.589 pm debugsetting zwave thermostat fan mode 6
dev:902020-06-29 08:12:30.588 pm debugsetThermostatFanMode( circulate)