0.43.2 - Climate - Cant Set Mode or Fan Mode on CT100

Since upgrading to 0.43.2 I am unable to change any modes on my thermostat. Noticed this when I realized my fan wasn’t turning on periodically like I have it programmed. I have a CT100. Changing temperature setpoints works OK, but fan mode and operation mode do not. This is from both the front end and from automations.

If I change the fan mode, for example, from the front end, I can go into either the Heat or Cool climate controls, change from Auto Low to On Low, then I see it say “service climate/set_fan_mode called” then my On Low goes right back to Auto Low. Same for mode of operation. Same for any other mode to a different mode.

If I goto the thermostat itself and change the mode or turn the fan on, Hass reflects this. Its just control from Hass.

I have done a reboot on the thermostat and also have rebooted my Rpi3, healed the network, etc. No errors in any logs that I can find. Just today I removed the node from Hass, reset the CT100 (pressed the reset button to reboot it), then readded it. I still get the same behavior.

I also know its not automation related because I do not have any automations that would affect the heat/cool mode.

I didn’t have this issue before the upgrade. Any thoughts?

Just to add to this, I deleted and rebuilt Open Z-Wave (on Hassbian), removed and readded the CT100, and still have the same issues. Also, I can successfully change the mode and fan mode from the Open Z Wave CP. It just refuses to work via HASS.

EDIT: Forgot to mention I even did a factory reset of the CT100 just to be sure it wasn’t some lingering association. Did this after I removed the node.

Another update. After playing around, I do have log entries now for these operations. Anyone know the culprit here?

Fan Mode Errors:

    17-05-02 13:21:16 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
    Traceback (most recent call last):
      File "/usr/lib/python3.4/asyncio/tasks.py", line 233, in _step
        result = coro.throw(exc)
      File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/core.py", line 1015, in _event_to_service_call
        yield from service_handler.func(service_call)
      File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/__init__.py", line 345, in async_fan_mode_set_service
        yield from climate.async_set_fan_mode(fan)
      File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
        yield self  # This tells Task to wait for completion.
      File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
        value = future.result()
      File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
        raise self._exception
      File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/zwave.py", line 192, in set_fan_mode
        self.values.fan_mode.data = bytes(fan, 'utf-8')
      File "/srv/homeassistant/lib/python3.4/site-packages/openzwave-0.4.0.31-py3.4.egg/openzwave/value.py", line 292, in data
        self._network.manager.setValue(self.value_id, value)
      File "src-lib/libopenzwave/libopenzwave.pyx", line 2875, in libopenzwave.PyManager.setValue (src-lib/libopenzwave/libopenzwave.cpp:22875)
    TypeError: Expected str, got bytes

Mode Change Errors:

    17-05-02 13:25:21 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
    Traceback (most recent call last):
      File "/usr/lib/python3.4/asyncio/tasks.py", line 233, in _step
        result = coro.throw(exc)
      File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/core.py", line 1015, in _event_to_service_call
        yield from service_handler.func(service_call)
      File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/__init__.py", line 362, in async_operation_set_service
        yield from climate.async_set_operation_mode(operation_mode)
      File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
        yield self  # This tells Task to wait for completion.
      File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
        value = future.result()
      File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
        raise self._exception
      File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/zwave.py", line 197, in set_operation_mode
        self.values.mode.data = bytes(operation_mode, 'utf-8')
      File "/srv/homeassistant/lib/python3.4/site-packages/openzwave-0.4.0.31-py3.4.egg/openzwave/value.py", line 292, in data
        self._network.manager.setValue(self.value_id, value)
      File "src-lib/libopenzwave/libopenzwave.pyx", line 2875, in libopenzwave.PyManager.setValue (src-lib/libopenzwave/libopenzwave.cpp:22875)
    TypeError: Expected str, got bytes

Fixed in 0.44