Page 3 of 3

Re: Honeywell API

PostPosted: Sat Dec 26, 2015 5:58 pm
by howartp
Right, I've started to knock up a quick plugin based on the API at https://github.com/watchforstock/evohome-client.

It is purely in Alpha stage, but it takes your auth details then pulls down your zones, temperatures and setpoints and creates devices for them (with temperature and setpoint as states).

They should display in control pages and function in any regular 'if device state....' wherever the UI allows.

There's one action that refreshes the data when you execute it.

If you see an error in the log saying "No JSON object could be decoded" just execute the action again (or reload the plugin) - there seems to be a timeout with downloading the data so sometimes it fails once or twice then works the next time.

If you want to try it, do let me know if you have problems. It does need tidying up, and the other features (update setpoint, backup/restore schedule, quick actions) adding.

https://www.dropbox.com/s/fb3sbt49hfvj5 ... n.zip?dl=1

Peter

Re: Honeywell API

PostPosted: Sat Dec 26, 2015 6:07 pm
by colinpartridge
howartp wrote:
Right, I've started to knock up a quick plugin based on the API at https://github.com/watchforstock/evohome-client.


If you want to try it, do let me know if you have problems. It does need tidying up, and the other features (update setpoint, backup/restore schedule, quick actions) adding.

https://www.dropbox.com/s/fb3sbt49hfvj5 ... n.zip?dl=1

Peter


Hi Peter
Good to see some work done with this system, I'm getting the following error..
Code: Select all
Traceback (most recent call last):
  File "plugin.py", line 49, in runConcurrentThread
  File "/Library/Application Support/Perceptive Automation/Indigo 6/Plugins/Evohome.indigoPlugin/Contents/Server Plugin/evohomeclient2/__init__.py", line 2, in <module>
<type 'exceptions.ImportError'>: No module named requests


Seems like I'm missing a Python Module called requests. FYI my Indigo install is running on 10.9.5

Colin

Re: Honeywell API

PostPosted: Sat Dec 26, 2015 6:23 pm
by howartp
Sorry, i fixed that then uploaded the wrong version!

https://www.dropbox.com/s/fb3sbt49hfvj5 ... n.zip?dl=1

(To those who know better, yes i'm temporarily packing it in the plugin till I sort it out properly!!)

Peter

Re: Honeywell API

PostPosted: Sun Dec 27, 2015 2:19 am
by colinpartridge
Thanks Peter that works better now. Looking forward to seeing where you take this.

Colin

Re: Honeywell API

PostPosted: Sun Dec 27, 2015 12:52 pm
by petematheson
All working for me here! Nice work so far. I'll see if my brother in law has done anything so far :)

Re: Honeywell API

PostPosted: Sun Dec 27, 2015 1:53 pm
by howartp
Version 1.0.2

(Note, you will need to delete your existing Evohome devices. After this release, I'm hoping you won't need to do this again because I've changed how I track them)

https://www.dropbox.com/s/fb3sbt49hfvj5 ... n.zip?dl=1

    More states available in the devices
    Located and dealt with the error for "couldn't decode JSON".
    New device for the controller, showing the status of the plugin and last-refreshed time for the data
    You can now rename devices (Indigo) and zones (Evohome) to your preferred notation; the plugin tracks them by both their ID's instead now.

Note I'm leaving this plugin in this thread for now - I've reached out to Nick as I hadn't realised he'd already written a Honeywell plugin for wifi thermostats (despite this thread being related to it!). Once I've heard back from Nick, I'll decide how to proceed.

Peter

Re: Honeywell API

PostPosted: Mon Dec 28, 2015 5:08 pm
by howartp
Version 1.0.4

(Sorry, you will need to delete your existing Evohome devices again. After this release, I'm definitely hoping (!) you won't need to do this again)

https://www.dropbox.com/s/fb3sbt49hfvj5 ... n.zip?dl=1

    Increase, decrease and set temperatures per zone, plus cancel override

I've not heard from Nick yet but I'll wait until after Christmas in case he's away before I get Matt/Jay to make me a subforum on the plugin section.

Peter

Re: Honeywell API

PostPosted: Tue Dec 29, 2015 3:08 am
by colinpartridge
HI Peter
Got the following error after installing..
Code: Select all
Traceback (most recent call last):
  File "plugin.py", line 58, in runConcurrentThread
<type 'exceptions.KeyError'>: 'key doDebug not found in dict'


Reloading didn't appear to fix it, however toggling debug mode from Normal to Debugging On seem to do the trick.

Nice additions though. It would be nice to be able to monitor the boiler relay trigger but I don't know wether thats available.

Colin

Re: Honeywell API

PostPosted: Tue Dec 29, 2015 3:25 am
by howartp
I don't think boiler relay is available but I'll look.

I'll work out how to fix that error later.


Sent from my iPhone using Tapatalk

Re: Honeywell API

PostPosted: Tue Dec 29, 2015 11:58 am
by petematheson
Looking good so far! Nice work. Assume you know a bit of Python already or have a lot of spare time?

Re: Honeywell API

PostPosted: Tue Dec 29, 2015 6:39 pm
by howartp
petematheson wrote:
Looking good so far! Nice work. Assume you know a bit of Python already or have a lot of spare time?

I've coded in various languages over my 31 years, so I'm not afraid of adapting to new.

I got familiar with Python and Indigo plugins 18-24 months ago when I wrote the start of the SkyRemote plugin (for Sky+ HD Boxes) but the unpublished API for that is a huge beast and I've not had time to finish it.

The unpublished API for Evohome, on the other hand, is exceptionally well written - all I really needed to do was wrap it up in Indigo plugin code.

I'm away tomorrow but I hope Friday to add a device representing boiler relay, and to add import/export (backup/restore) of schedules.

The API doesn't tell me the boiler state (that I can find so far), but if I compare each temp with each setpoint, I can determine roughly if the boiler is calling for heat.

(I already compare the temp/setpoint and change the icon in the UI per zone if the zone is calling for heat - have you spotted that neat little feature?)

I'm looking forward to schedules, because it will let you import a summer/winter schedule, or for someone on different shifts each week, import different shift patterns.

Peter


Sent from my iPhone using Tapatalk

Re: Honeywell API

PostPosted: Thu Dec 31, 2015 7:28 am
by petematheson
Seem to have an issue with it not updating. All of my TRVs are reporting their state as of when I installed the plugin.
ImageUploadedByTapatalk1451568502.679066.jpg
ImageUploadedByTapatalk1451568502.679066.jpg (57.63 KiB) Viewed 7885 times

Re: Honeywell API

PostPosted: Thu Dec 31, 2015 7:49 am
by howartp
Have you set a schedule to run the refresh action?

I've not scheduled anything in the plugin itself.


Sent from my iPhone using Tapatalk

Re: Honeywell API

PostPosted: Thu Dec 31, 2015 7:52 am
by petematheson
Ahh gotcha, no I haven't. I'll do that then. I also had to toggle the logging setting to get it to pull in all of the thermostats into indigo again.

Cheers !

Re: Honeywell API

PostPosted: Thu Dec 31, 2015 6:37 pm
by howartp