Error in climate eq3btsmart - devices are unavailable

I am running homassistant Version 63.3 on a raspberry pi 3 with an external bluetooth dongle.
Since yesterday my three EQ3 BT Smart Thermostats worked just fine, bit since the weekend I get this error in the log und the component does show up in the frontend with status “unavailable”.
03

2018-02-20 13:32:51 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.wohnzimmerheizung fails
Traceback (most recent call last):
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 204, in async_update_ha_state
yield from self.async_device_update()
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 327, in async_device_update
yield from self.hass.async_add_job(self.update)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/homeassistant/components/climate/eq3btsmart.py", line 177, in update
self._thermostat.update()
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/eq3bt/eq3btsmart.py", line 163, in update
self._conn.make_request(PROP_WRITE_HANDLE, value)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/eq3bt/connection.py", line 76, in make_request
self._conn.waitForNotifications(timeout)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/bluepy/btle.py", line 516, in waitForNotifications
resp = self._getResp(['ntfy','ind'], timeout)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/bluepy/btle.py", line 378, in _getResp
self.delegate.handleNotification(hnd, data)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/eq3bt/connection.py", line 57, in handleNotification
self._callbacks[handle](data)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/eq3bt/eq3btsmart.py", line 121, in handle_notification
status = Status.parse(data)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/construct/core.py", line 247, in parse
return self.parse_stream(io.BytesIO(data), **kw)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/construct/core.py", line 264, in parse_stream
return self._parse(stream, context, "(parsing)")
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/construct/core.py", line 2354, in _parse
return self.subcon._parse(stream, context, path)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/construct/core.py", line 1881, in _parse
subobj = sc._parse(stream, context, path)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/construct/core.py", line 2354, in _parse
return self.subcon._parse(stream, context, path)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages/construct/core.py", line 587, in _parse
return self._decode(self.subcon._parse(stream, context, path), context, path)
TypeError: _decode() takes 3 positional arguments but 4 were given

I tried downgrading to 63.2, restarted several times, but that did not help.
Bluetooth is working fine with my Xiaomi Mi Flora Plant sensors.
Any ideas?

I downgraded to 63.1, where everything used to work just fine, but that didn’t fix the problem.

same here, 0.63.3 and 0.63.2 broke the eq3btsmart

I fixed this error by updating the version of python-eq3bt to 0.1.9

but after restarting HA it always installs 0.1.8?

Same here 0.1.8 keeps coming back after restarting, did an pip install python-eq3bt --upgrade

Sorry I did not make that clear. You have to edit the file eq3btsmart.py under the components/climate/ in your installation folder.
In it you have to change the requirements to
REQUIREMENTS = ['python-eq3bt==0.1.9']

Then Homeassistent keeps this Version installed.

1 Like

Thnx that works.