Refactored Honeywell evohome custom_component (EU-only)


#161

I had a look through the logs, and (there are a few errors, including teh one below, but) TBH, I don’t think any of is the fault of my code.

2018-11-03 14:54:18 ERROR (MainThread) [homeassistant.components.sensor.template] Could not render template Hallway Temp: UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'

Maybe check your templates?


#162

Thank you. It works


#163

Could I be cheeky and ask what the default is?


#164

From memory (a while since I installed) think the default or starting temp was 50 degrees. I can’t find any reference in any of the documentation to a default though.


#165

Can’t see any issue with definition and they are still reporting the correct values. The definition is really straight forward;

  hallway_temp:
    value_template: '{{ states.climate.hallway.attributes["current_temperature"] | float }}'
    unit_of_measurement: '°C'
    friendly_name: "Hallway Temp"

For the moment they work, but I’ll need to do some more investigation.


#166

I just see now that the operating modes don’t work


#167

Confirmed. That’s not great - I’ll chase it now.


#168

Thanks @szaboist for spotting it - I will push a fix in a few secs.

FYI, the cause was that in HA, we have ./climate/init.py:

SUPPORT_TARGET_TEMPERATURE = 1
   ...
SUPPORT_OPERATION_MODE = 128
   ...
SUPPORT_AWAY_MODE = 1024

… whilst in ./water_heater/init.py:

SUPPORT_TARGET_TEMPERATURE = 1
SUPPORT_OPERATION_MODE = 2
SUPPORT_AWAY_MODE = 4

#169

I have to say thank you for your work.
Thanks :slight_smile: It works


#170

Firstly, thanks so much for your continued work on evohome @zxdavb!

I’m building out my evohome UI and would love to use the new thermostat lovelace control. It doesn’t seem to be working though - is there any reason for that or am I just doing it wrong? Pretty new to all this.

Thanks again.


#171

Sorry, I can’t help with this - it’s not something I’ve done & I don’t have the spare capacity. My focus now is to port the remaining functionality of the custom component into the HA version.

I could suggest you get the ‘official’ evohome component working first (although it isn’t a proper climate device), then go from there with the custom component.

Or maybe someone else could help.


#172

@azdavb, I’ve updated to the latest code set and I’m getting a message in the logs

2018-11-04 12:43:14 DEBUG (SyncWorker_11) [custom_components.evohome] update(1659230), self._status = {'dhwId': '1659230', 'temperatureStatus': {'temperature': 58.0, 'isAvailable': True}, 'stateStatus': {'state': 'Off', 'mode': 'FollowSchedule'}, 'activeFaults': []}

also

2018-11-04 12:43:14 WARNING (MainThread) [custom_components.evohome] target_temperature(1659230) = 58.0

This is showing up as

So I checked via the Evohome controller and the target temperature is 60 degree, the current temperature is 58 degrees, so something is slightly off.


#173

Correct - I alluded to this before.

The HA UI will not/can not show the current temperature for water heaters (this may change in the future), although it is recorded in the state attributes.

It does show target temp.

Honeywell’s restful API does not report target temperature for the DHW controller.

So, to square the circle, I did this hack:

def target_temperature(self):
    """Should return None, as there is no target temp exposed via the api."""
    return self.current_temperature

It is not ideal, and certainly won’t make it into the official version.

http://www.hiscorebob.lu/2017/11/home-assistant-plot-a-graph-with-objects-attributes/


#174

Got you, understood.


#175

Hi there,

I’ve read this whole thread, downloaded the git some days ago and followed all instructions. Unfortunately, I do not see my individual thermostats (as previously using the climate.honeywell component), but only one sensor that is called by the name of my location_id:

What am I missing? I am running HASSBIAN 0.80.1.


#176

It looks like you’re still using the official evohome component? What do you see when you open up the card, and click on the drop-down list box?

Execute this command: cat home-assistant.log | grep custom | head, and you should expect to see the following warning, You are using a custom component for evohome:

2018-11-06 16:30:33 WARNING (MainThread) [homeassistant.loader] You are using a custom component for evohome which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

If you don’t see this, then something is wrong with your custom_components folder.


#177

Works like a charm, but I did need to make a change to the evohome.py root file to make it work. Using the evohome component I got the following error in the HA log:
File “/config/custom_components/evohome.py”, line 266, in setup loc[GWS][0][‘gatewayInfo’] = ‘REDACTED’ IndexError: list index out of range
When I comment-out line 266 in the evohome.py file, it works without a problem… Using version HA 81.6 with config setting location_idx = 0


#178

Now that is interesting… The [0], above, is not the same as loc_idx. Seems that your list is length == 0 (i.e. = []).

I have never seen this before. Would you kindly add the 1st line before the other two (lines 260-261):

_LOGGER.info("ZX: %s",  client.installation_info)
# Redact any installation data we'll never need.
if client.installation_info[0]['locationInfo']['locationId'] != 'REDACTED':

… and PM me the results of cat home-assistant.log | grep ZX?


#179

Thanks for the hint. Works now. I installed the evohome.py file and its climate folder in a separate evohome subfolder instead of straight into the custom_components folder:

/custom_components/evohome/evohome.py = wrong
/custom_components/evohome.py = correct


#181

Hello! I can see all of my data coming through in the api in the logs but there aren’t climate entities set up for each zone? Just a climate.home … any idea why this could be? Thanks :slight_smile: