This is the forum archive of Homey. For more information about Homey, visit the Official Homey website.

The Homey Community has been moved to https://community.athom.com.

This forum is now read-only for archive purposes.

Honeywell Evohome app

24

Comments

  • jvreedejvreede Member
    Same here, would love to test!
  • aloftaloft Member
    Status update 26 May 2016

    I've successfully managed to update the quick action settings ( e.g. turn the heating off ) . I am now 'Homey-fying' the application, so it can be run from within Homey (and not with my userid and password hardcoded ;-) ).

    When this is complete, I will publish the code on github for testing. Expect this to take a week or maybe a bit longer. First release is only setting the quick actions, with a 'permanent' timing. 

    There is minimal error checking in it right now, so I expect it to crash ;-) 

    WANTED: While my coding skills are pretty rusty itself, my graphic skills are even more rusty. If anyone can provide an 'icon.svg' for a Evohome thermostat and the Evohome control panel, that would help! 

    In parallel I am further testing reading and sending commands to individual thermostats.

    What kind of triggers (when), conditions (and) and actions (then) would you like? Now is the time to submit feedback. 
  • bierrebierre Member
    @aloft keep up the good work! Waiting anxiously to test it ;-).
  • woeiwoei Member
    @aloft I don't have a evohome setup yet, but I am considering buying it in the fall. One of the things I would like, is override the temperature per zone, as I want to switch to a zone based setup.

    Also, I don;t know if it is possible to create "programs" in evohome. But if so, I would like to be able to change which program is being used. This is huge on the WAF. That way the evohome can operate standalone just fine based on programs like "At home", "On holiday", "no one home" etc. Which means, even in Homey doesn't function, the heating still works great and zone based.

    In this scenario homey would only have to determine which program should run and override a specific zone if required. (for example the bathroom at 7 AM in the morning).

    This would mean however, you should be able to grab the zones and programs through the API to be used in flows.

    Hope this makes sense :-) But i have no idea what possibilities the evohome API allows for.
  • ReflowReflow Member
    @aloft just made a svg with the following editor: https://svg-edit.github.io/svgedit/releases/svg-edit-2.8.1/svg-editor.html based on the original jpg icon from honeywell: http://getconnected.honeywell.com/nl/thermostats/evohome

    Here is the result: http://imgh.us/final-evohome.svg
  • WebsterWebster Member
    edited May 2016
    Created some svg images yesterday and send them to aloft

    so now we wait for the result  wink 
  • Aloft, maybe I can help, I made a virtual device integration in Fibaro.
    I just received the Homey, just for fun, so lets start integrating things
  • aloftaloft Member
    @boerremk ;
    I actually already received your script and used it as inspiration and reference for my current development. 

    I am almost done with the first version, I will test it on my own Homey next week to make sure I don't brick the Homey and then publish the code on Github for other testers.  If it works OK-ish, I will submit it to Homey's app-store.

    First version is 'quick action' only. But in parallel I am also developing the second version, where you can set the individual thermostats/zones. I've got that 70 % working as well, but Homey-fying that code will take a bit more time.

    I am sure there will be a working Evohome app beginning of June!  
  • Ok, if you have any questions about the script please let me know
  • aloftaloft Member
    edited May 2016
    I've tested the first release of the Evohome app, and it is now available on Github. As said, it is pretty rough code, so it might break things left and right. 

    Find the source on : https://github.com/ralfvd/nl.bevlogenheid.evohome

    Run it locally from your Mac or PC (or install it, but then you won't see any logging, which can help troubleshooting when things fail).

    Fill in your username and password in 'settings' and then use a trigger card to quickAction your Evohome.  Any chances should be displayed on the Evohome console within a couple of minutes ( The console only pulls information every so often). If you have the Evohome app on your phone, the changes should be quicker, but use refresh or restart the app on your phone.

    All feedback welcome. If you paste any debug information, be sure to edit it, part of the debug information contains private information (e.g. your email address, street address etc ).  

    Happy bug hunting and setting your Evohome system via Homey! 

    PS: Keep some time between setting quick Actions. Evohome's systems doesn't like it when you update too frequently (this is also an issue with the official Evohome phone app). Give the system some time to adapt.
  • aloftaloft Member
    I've run the first release myself now for a couple of days, and see no issues. Unfortunately, the way I connect to Evohome is not the preferred way within Homey ( I don't use the pairing option ), so this version will not be submitted to the App store.

    In parallel, I've started the second version, with the correct pairing option and adding the individual thermostats. I am able to pair the thermostats and currently working on getting all details correct, so the basic functionality is available. 

    The github version will continue to be the working 'quick action' release, so you can install that locally to already be able to control your Evohome system. As soon as the second release is in a non-crashing state, I'll update Github. 

    All feedback is appreciated!  
  • BasPostBasPost Member
    @aloft  thank you so much for your work, progress and updates.  
    When the second version is available I will start testing
  • aloftaloft Member
    edited June 2016
    I've just published version 0.3.2 on GitHub: https://github.com/ralfvd/nl.bevlogenheid.evohome

    It contains:

    Settings:  system settings and logging ( not all logging is shown yet )
    Devices: you can add and view your thermostats ( * )  ( current temperature and target temperature )
    Actions: set quickAction

    (*) : a bug will freeze the pairing when you add all devices at once. You can add multiple devices in one go, but not all remaining devices. 
    Another bug will crash the app when looking at the device card after pairing. After pairing: restart the app. 

    In the  devices view, you can set the temperature with the slider screen, but it will not be send to Evohome yet, somehow the API-call to Evohome responds with 'invalid URL'. Pending investigation.

    The quickActions work as expected.
     
    For now, you can 'run' or 'install' the app via the Athom-cli .   If you do a 'run', you will get a lot of output, this can be relevant when things go wrong ;-)

    Any feedback (crashes, freezes, etc) is welcome!  
  • Cool! (or Hot :smiley: )

    I'm trying it now. Still a lot of bugs as you mentioned, but it pairs with my Honeywell Round Connected thermostat (which is just like a single zone Evohome I guess). I get the temperature readout and get the quick-actions in flow.

    When I want to manually change the temperature setting I get the invalid URL error:
    WebAPI/api/devices/undefined/thermostat/changeableValues/heatSetpoint
    Set Device Temperature result: 400
    Response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
    <HTML><HEAD><TITLE>Bad Request</TITLE>
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
    <BODY><h2>Bad Request - Invalid URL</h2>
    <hr><p>HTTP Error 400. The request URL is invalid.</p>
    </BODY></HTML>
    
    19:07:44 undefined: new target temperature set: 14.5

    Keep up the good work!
  • aloftaloft Member
    edited June 2016
    Cool! (or Hot smiley )

    I'm trying it now. Still a lot of bugs as you mentioned, but it pairs with my Honeywell Round Connected thermostat (which is just like a single zone Evohome I guess). I get the temperature readout and get the quick-actions in flow.

    When I want to manually change the temperature setting I get the invalid URL error:
    WebAPI/api/devices/undefined/thermostat/changeableValues/heatSetpoint
    Set Device Temperature result: 400
    Response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
    <HTML><HEAD><TITLE>Bad Request</TITLE>
    <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
    <BODY><h2>Bad Request - Invalid URL</h2>
    <hr><p>HTTP Error 400. The request URL is invalid.</p>
    </BODY></HTML>
    
    19:07:44 undefined: new target temperature set: 14.5

    Keep up the good work!
    Great, thanks for testing.  Two remarks

    1) Setting the temperature is indeed not possible yet, it gives an error '400' as you can see

    2) However in your case, on the first line and in the log, it states: 'undefined'. That should give an ID number of your zone. Could you send me some more logging, e.g. from the start? It is rather strange that you are able to see the temperature, but this update has an 'undefined'. 

    Edit remark 2) I've found the issue, it actually was not specific to your setup, but also on mine setup due to a last minute change. I've reverted that. You will now see the zoneID if you load the new GitHub source.

    It will still give an 400 error, I am not sure why, the URL which I use to push the update with to the system, seems OK.
  • aloftaloft Member
    OK, and solved. GitHub version 0.3.3 will now be able to set target temperature via the device card. I will add action cards asap 

    Be aware that if you set a target temperature via the device card, it is on 'permanently'. There is no way yet to cancel that (that will be an action card). 
  • Yep, 0.3.3 not showing error '400' anymore when setting the temperature :)

    Could you also fix the insights-logging of the temperature? That way I can track the temperature in my living room.

    Since you are using the built-in capability 'measure_temperature' you only need to call module.exports.realtime(...) on every temperature change. It should automatically create the insights log for you, so no need to do Homey.manager('insights').createEntry( ...)  

    Good luck!
  • aloftaloft Member
    @gruijter_dev et al
    0.3.4 has been published on GitHub : https://github.com/ralfvd/nl.bevlogenheid.evohome
    - Added insights monitoring

    Next actions:
    - Tackle the pairing bug (so you don't need to restart the app after adding a thermostat/zone
    - Add action cards for setting and resetting the thermostat. That will make the thermostats reading and setting more useful ;-)
  • gruijter_devgruijter_dev Member
    edited June 2016
     
    I decided to de-install the device and the app completely before installing v0.3.4. Unfortunately I cannot pair anymore ....

    -------------------------------------------------
    Evohome app started
    []
    0
    09:12:26 Evohome app started
    pairing started
    pairing started
    TypeError: Cannot read property 'validateAccount' of undefined
        at EventEmitter.<anonymous> (/drivers/thermostat/driver.js:173:20)
        at emitTwo (events.js:87:13)
        at EventEmitter.emit (events.js:172:7)
        at eventListeners.clientDriverPairMessage (/opt/homey-client/system/types/manager/apps/bootstrap/homey-app/manager/drivers.js:1:3585)
        at /opt/homey-client/system/types/manager/apps/bootstrap/homey-app/helpers/client.js:1:978
        at Array.forEach (native)
        at process.<anonymous> (/opt/homey-client/system/types/manager/apps/bootstrap/homey-app/helpers/client.js:1:947)
        at emitTwo (events.js:87:13)
        at process.emit (events.js:172:7)
        at handleMessage (internal/child_process.js:695:10)
    TypeError: Cannot read property 'validateAccount' of undefined
        at EventEmitter.<anonymous> (/drivers/thermostat/driver.js:173:20)
        at emitTwo (events.js:87:13)
        at EventEmitter.emit (events.js:172:7)
        at eventListeners.clientDriverPairMessage (/opt/homey-client/system/types/manager/apps/bootstrap/homey-app/manager/drivers.js:1:3585)
        at /opt/homey-client/system/types/manager/apps/bootstrap/homey-app/helpers/client.js:1:978


    EDIT: DOH!, nevermind. I forgot that I have to enter my credentials first in the settings screen before trying to add a device..... :#

  • aloftaloft Member
     
    I decided to de-install the device and the app completely before installing v0.3.4. Unfortunately I cannot pair anymore ....

    -------------------------------------------------
    Evohome app started
    []
    0
    09:12:26 Evohome app started
    pairing started
    pairing started
    TypeError: Cannot read property 'validateAccount' of undefined
       

    EDIT: DOH!, nevermind. I forgot that I have to enter my credentials first in the settings screen before trying to add a device..... :#

    Hmmm, the pairing process should check whether you have entered your credentials. Good find! 
  • aloftaloft Member
    Although I am pretty sure that temperature in some of my zones have changed, it isn't logged in insights yet. 

    @gruijter_dev  how is the logging at your system ? 

  • Yes it is logged and I can see it in insights. Actually that is why I completely de-installed the app because I did not see anything happening at first also. On temperature changes the app logs every 10 minutes (I used some ice to cool the thermostat down :) ). 
  • AlleAlle Member
    Hi, Right after installing, the app crashes immediately. Any solution?
  • aloftaloft Member
    edited June 2016
    @alle can you execute --run instead of --install and send me the output you get?

    Or, if it works, go to the app settings, click on the red icon and send the output that shows in the pop-up.
  • AlleAlle Member
    edited June 2016
    @aloft Output from the settings:

    Stack trace:

    TypeError: Cannot read property 'getAllInformation' of undefined
    at Object.module.exports.updateState (/drivers/thermostat/driver.js:105:18)
    at module.exports.init (/drivers/thermostat/driver.js:68:14)
    at /homey-app/manager/drivers.js:1:1841
    at Array.forEach (native)
    at eventListeners.clientDriverInit (/homey-app/manager/drivers.js:1:712)
    at /homey-app/helpers/client.js:1:868
    at Array.forEach (native)
    at process.<anonymous> (/homey-app/helpers/client.js:1:835)
    at emitTwo (events.js:87:13)
    at process.emit (events.js:172:7)
  • aloftaloft Member
    @Alle ;

    and this is immediately after installing the app ? Or do you execute any actions (setting the settings, pairing the device) after installing the app ?  This error seems like you are trying to pair the system, without entering the username and password in the settings.
  • AlleAlle Member
    @aloft ;

    I did a hard reset and installed all apps again.. Evohome is working now!

    Thank you for creating this app!
  • AlleAlle Member
    edited June 2016
    Same error after 20 minutes 
    TypeError: Cannot read property 'getAllInformation' of undefined
        at Object.module.exports.updateState (/drivers/thermostat/driver.js:105:18)
        at module.exports.init (/drivers/thermostat/driver.js:68:14)
        at /homey-app/manager/drivers.js:1:1841
        at Array.forEach (native)
        at eventListeners.clientDriverInit (/homey-app/manager/drivers.js:1:712)
        at /homey-app/helpers/client.js:1:868
        at Array.forEach (native)
        at process.<anonymous> (/homey-app/helpers/client.js:1:835)
        at emitTwo (events.js:87:13)
        at process.emit (events.js:172:7)

    App stops immediately  after installing it again.
  • aloftaloft Member
    @alle I've uploaded an updated app on GitHub with some extra error checking which might help in your case. Please download that one and let me know if it helps. 
  • AlleAlle Member
    edited June 2016
    @aloft

    New version installed and running, but when i click on a zone the following error is showing:
    reset_temperature:driver.capabilities.undefined.get does not exist
Sign In or Register to comment.