Plea for Help with Unmaintained Evohome HE App

Many thanks for the offer. I'm using the app and driver code posted in this topic above by @johnwill1. Just let me know if I can help with any more info.

@johnwill1 Can you post a clean copy of the code in one of the two sites I mentioned up above? I tried copying it from your post above but because it is not in a code block in the post the formatting gets all messed up and I makes it very hard to follow the code.

Otherwise I would want to back track and start with the original and merge in changes from @johnwill1 to get a good starting point.

1 Like

I can do that for you now, I won't trouble @johnwill1 !

Here's the driver code: Evohome Heating Zone Driver - Pastebin.com
And here's the App: Evohome Connect App Code - Pastebin.com

1 Like

lol - I just created account at pastebin. I'd love this app and driver to be working properly. I get by with it but because we are Heat Only in the UK, Heat, Cool, Fan modes etc are all redundant. Additionally it doesn't play well with dashboards.

1 Like

Thanks @johnwill1 - I was trying not to bother you after you were so helpful!

I don't know, sometimes you edge above 30C.... :wink:

yeah......fahnrenheit :laughing:

1 Like

@Simonfea I've just noticed something else in my copy of the driver....

In yours on pastebin Line 42 - capability "Thermostat" is commented out (//). That didn't affect mine but I removed slashes and that's what allowed the up/down arrows on a dashboard tile to work without error (though the device doesn't work properly in Homekit)

1 Like

I will make that change on my copy. Its a little more tricky than I thought since the same function name is used in both the driver and the app with different definitions. Just trying to see where the problem is exactly then I can fix it.

2 Likes

Thermostats are fun.... :slight_smile:

@jtp10181 I think everyone has butchered this app and driver a little from the ST port. I commented out a lot of the logging in either the app or driver as there's no option to disable it in preferences. Elsewhere where there was an option to disable debug logging but not info, I amended to add some of the events to the debug.

Am I right in saying you maintain the US version of this? We call it EvoHome but it's Honeywell

Sadly (Luckily) no, I look after the Mitsubishi flavour of thermostats... as best I can.. But sadly for you not Honeywell...

1 Like

Thanks @johnwill1 , I've removed the comments in my copy of the code.

@Simonfea Try this. I did not change the app at all just the driver but here is both for reference. It seems like it is having an issue deciding how to invoke the function so I made a second definition of it matching the Hubitat capability definition, and then redirected that to the main function. Hopefully that makes it less ambiguous.

Main Gist post where you can see rev history: Evohome (Connect) Β· GitHub

Import Links:

1 Like

Ahh my bad - I just checked, it's @csteele by the looks of it Total Connect Comfort - it uses a different login.

1 Like

It works! Thanks so much for your help.

2 Likes

What doesn't work in Homekit? Are you sharing it via the system app or Homebrigde?

I've shared it via the built in app. I get a tile in the Home app showing the current temperature of the room but can’t put the temp up or down using that. I assume it's because the expected functions of a thermostat - 'Off', 'Cool', 'Heat', 'Auto' aren't relevant to the system. We have 'Off', 'Auto', 'Economy', 'Away' and 'Custom' If I click 'Off' it turns every room off but if I try to set one zone to a different temperature I can't. 'Auto' on EvoHome just means that it's following the schedule whereas in Homekit 'Auto' is "keep between x degrees and y degrees" which the system doesn't do. We have central heating radiators and no cooling.

What I've done is created virtual switches 'Auto', 'Economy', 'Away' and using Rule Machine I trigger that function. On my HD+ dashboard the tiles for the individual rooms work fine as the up/down arrows do what they should, lowering raising the setpoint. I can't do that with the Homekit controls in Apple. I'm not sure why as I can in HD+ and also with SharpTools.

Does it not even show up as an option to change the temp, or does it not work? The code fix I just made is related to setting the heat setpoint so possibly had something to do with it. Any errors in logs?

Also I assume each zone (room) is a separate device in HE? But you said pressing Off on any of them in HK will turn all zones off?

The system has modes which apply to the entire system. It's probably easier for me to explain how it works with Honeywells own app:

Off - All zones to 5 degrees C (frost protection)
Auto - All zones follow their scheduled times and temperature set points (which are individual to each zone)
Economy - Same as Auto but the system knocks everything down by 3 degrees C
Away - All zones are permanently at a pre defined temperature 24/7 (15 degrees by default)
Custom - All zones follow the schedule for Saturday

In the Honeywell app temperatures can be adjusted/overridden for each zone so long as the mode is not 'Off' or 'Away'. Those overrides are cancelled automatically at the next scheduled setpoint change.

Now in this custom app for HE there are some differences. Unlike the Honeywell app it's possible while in 'Away' mode to override an individual zone to a different temperature. There's a comment in the code regarding this in the 'to do' section but actually I prefer it the way it is, as it allows all rooms to be set at the 'Away' temperature other than the ones in use (handy with our current gas prices and no need to modify a schedule). Although each Zone has the 'Away', 'Off', 'Auto' modes - selecting it on one sends it to every zone (as it should as that's how Honeywell intended)

In HD+ and SharpTools, the tile for the zone shows the current temperature, the setpoint temperature, the mode and has an up/down arrow. So that works - I can see what the temp is, what it will be when the setpoint is reached, whether it's set to 'Away', 'Auto' etc and importantly the arrows work and allow me to increase/lower the temperature.

The tile in the Apple Home app displays the current temperature. When I click it, it's showing 'Off' (it's actually currently on 'Away'). If I make the mistake of touching that 'Off' it will indeed turn all zones Off. 'Cool' and 'Heat' aren't relevant. If I select 'Heat' or 'Cool' and set a temperature it doesn't work, it errors first with 'mode not supported' in the app:

then 'failed to run method setThermostatSetpoint' in the driver:

As yet I've not updated my driver to your modified version as I only have issues with Homekit - all my dashboards work fine, my rules to increase and decrease set points have always worked.

I think for this app and driver to work properly would probably need a lot of work to scrap from preferences etc what's irrelevant to the UK system. I think that the UK EvoHome system just doesn't match up with what's expected of a thermostat in Apple/HE terms.