home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.8k stars 30.5k forks source link

Honeywell EvoHome thermostat not working anymore #1582

Closed sanderkwantes closed 7 years ago

sanderkwantes commented 8 years ago

Home Assistant release (hass --version): 0.15.0

Python release (python3 --version): Python 3.4.3

Component/platform: Honeywell

Description of problem: Since a couple of days the Honeywell thermostat component doesn't update the current temperatures, neither does it update the temperature if set within the web frontend.

Expected:

Problem-relevant configuration.yaml entries and steps to reproduce:

thermostat:
  platform: honeywell
  username: xxx@xxx.xx
  password: xxxx

Traceback (if applicable):

16-03-20 11:50:01 homeassistant.core: BusHandler:Exception doing job
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/core.py", line 794, in job_handler
    func(arg)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/event.py", line 176, in pattern_time_change_listener
    action(now)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity_component.py", line 170, in _update_entity_states
    entity.update_ha_state(True)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity.py", line 145, in update_ha_state
    self.update()
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/thermostat/honeywell.py", line 166, in update
    for val in self.device.temperatures(force_refresh=self._master):
  File "/var/opt/homeassistant/lib/evohomeclient/__init__.py", line 73, in temperatures
    self._populate_full_data(force_refresh)
  File "/var/opt/homeassistant/lib/evohomeclient/__init__.py", line 44, in _populate_full_data
    self.location_id = self.full_data['locationID']
KeyError: 'locationID'

Additional info: I received an update for my iPhone EvoHome client a few days before the issue started. Maybe Honeywell have updated their API as well??

sanderkwantes commented 8 years ago

However i don't the know why the error appeared suddenly, after a reboot of the server it started working again. I'll keep the issue open, because it appeared suddenly.

juulie commented 8 years ago

Yea i've had this happen as well from time to time, even before version 0.15, restarting seems to help.

anarro commented 8 years ago

Hi, I try restarting but not work for me, my version is 0.13.1 and I try with 0.16, 0.17 and 0.18 but I have the same issue... if I not bad remember.. in March Honeywell made a some updates.. but I don't know any more..

INFO:homeassistant.loader:Loaded thermostat.honeywell from homeassistant.components.thermostat.honeywell INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): rs.alarmnet.com ERROR:homeassistant.components.thermostat:Error while setting up platform honeywell Traceback (most recent call last): File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity_component.py", line 98, in _setup_platform discovery_info) File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/thermostat/honeywell.py", line 92, in setup_platform return _setup_round(username, password, config, add_devices) File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/thermostat/honeywell.py", line 43, in _setup_round for i, zone in enumerate(zones): File "/home/pi/.homeassistant/lib/evohomeclient/init.py", line 73, in temperatures self._populate_full_data(force_refresh) File "/home/pi/.homeassistant/lib/evohomeclient/init.py", line 32, in _populate_full_data self._populate_user_info() File "/home/pi/.homeassistant/lib/evohomeclient/init.py", line 68, in _populate_user_info self.user_data = self._convert(response.content) File "/home/pi/.homeassistant/lib/evohomeclient/init.py", line 28, in _convert return json.loads(self.reader(object)[0]) File "/usr/lib/python3.4/json/init.py", line 318, in loads return _default_decoder.decode(s) File "/usr/lib/python3.4/json/decoder.py", line 343, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.4/json/decoder.py", line 361, in raw_decode raise ValueError(errmsg("Expecting value", s, err.value)) from None ValueError: Expecting value: line 1 column 1 (char 0)

thank you, and sorry for my bad language.

juulie commented 8 years ago

I actually bumped the evohome version to 0.2.5. Which seems to resolve some of the errors, it now shows up again in the states menu, only updating the state seems to work incorrectly. Aswell as pushing changes to the thermostate

anarro commented 8 years ago

Hi,

Good, now it works fine, today I update to last version, and now works good..¿?, I have checked logs and I see that my version is 0.2.5.

Atrejoe commented 8 years ago

Still happens on 0.30.2, similar to the originally mentioned stack trace:

16-10-14 18:38:02 homeassistant.core: BusHandler:Exception doing job
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/core.py", line 1224, in job_handler
    func(*args)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity_component.py", line 229, in _update_entity_states
    entity.update_ha_state(True)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity.py", line 166, in update_ha_state
    self.update()
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/climate/honeywell.py", line 181, in update
    for val in self.device.temperatures(force_refresh=self._master):
  File "/home/pi/.homeassistant/deps/evohomeclient/__init__.py", line 73, in temperatures
    self._populate_full_data(force_refresh)
  File "/home/pi/.homeassistant/deps/evohomeclient/__init__.py", line 44, in _populate_full_data
    self.location_id = self.full_data['locationID']
KeyError: 'locationID'
scholy commented 7 years ago

And still in 0.35.2, though the KeyError appears to have changed to id from locationID. HA is reading the current temp data correctly, the error's encountered when either setting a setpoint or activating away mode.

16-12-24 17:24:30 homeassistant.core: Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  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/core.py", line 1054, in execute_service
    service_handler.func(service_call)
  File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/__init__.py", line 210, in away_mode_set_service
    climate.turn_away_mode_on()
  File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/climate/honeywell.py", line 168, in turn_away_mode_on
    self.device.set_temperature(self._name, self._away_temp)
  File "/home/homeassistant/.homeassistant/deps/evohomeclient/__init__.py", line 167, in set_temperature
    self._set_heat_setpoint(zone, data)
  File "/home/homeassistant/.homeassistant/deps/evohomeclient/__init__.py", line 157, in _set_heat_setpoint
    task_id = self._get_task_id(response)
  File "/home/homeassistant/.homeassistant/deps/evohomeclient/__init__.py", line 108, in _get_task_id
    task_id = ret[0]['id']
KeyError: 'id'
balloobbot commented 7 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment :+1:

Atrejoe commented 7 years ago

Works