Evohome client (August 2017 update)

For heating/cooling related questions in Domoticz
gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Friday 06 January 2017 18:28

Right...

Somehow in between copying files from linux to windows and back I managed to reset the lock time to 60. :oops:
So here is version 1.1.0.7 of the Evohome client for Domoticz

I've made use of the opportunity to update the README to include some instructions for building and using the client, and links toward the prebuilt versions. I've also included a new binary that SHOULD run on Rpi 2 and 3 (armv7l - 32bit) but this is currently unverified. I'd very much appreciate feedback on whether this is a good binary or not.

Gordon
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

AlexFL
Posts: 2
Joined: Sunday 02 April 2017 11:24
Target OS: -
Domoticz version:
Contact:

Re: Evohome client (release)

Post by AlexFL » Sunday 02 April 2017 11:41

Any idea why I'm getting this error with the prebuild pi binary?

[email protected]:~/domoticz/scripts/evo $ ./evo-client --init
./evo-client: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./evo-client)

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Sunday 02 April 2017 18:59

Apparently you have a different glibc version.

You can build from source yourself. Should not take more than a few minutes.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

AlexFL
Posts: 2
Joined: Sunday 02 April 2017 11:24
Target OS: -
Domoticz version:
Contact:

Re: Evohome client (release)

Post by AlexFL » Monday 03 April 2017 23:32

Thanks, will try:
ran sudo apt-get install json-c libcurl4-openssl-dev
got
E: Unable to locate package json-c

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Tuesday 04 April 2017 9:33

I think the correct package name is 'json-c-dev'

Edit: turns out Raspbian is quite behind on glibc. I've updated the binary with one that should work if you are running the newer Jessie based Raspbian OS which has glibc version 2.19 ('ldd --version'). If you're running original Wheezy based Raspbian OS building yourself is the only option I'm afraid.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

mschut
Posts: 134
Joined: Sunday 23 February 2014 22:40
Target OS: Raspberry Pi
Domoticz version: V3.5613
Location: Netherlands
Contact:

Re: Evohome client (release)

Post by mschut » Tuesday 04 April 2017 21:38

Hmm, to be honest I am getting a bit lost in the correct way to get the RFG100 connected.

If I am following the instuctions on the Wiki, should this work, or should I manually correct with newer version of the Evohome client? I am running on a Pi3 with Jesse.

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Tuesday 04 April 2017 22:49

It should work with those instructions. The client was originally created to be a plug in replacement for those python scripts. All I did was rename the original config file from evoconfig.py to evoconfig to get it running on my own system.

In essence all you need is:
  • your honeywell user name
  • matching password
  • the base URI to your Domoticz installation
Try run the client with '-v' ('--verbose') to get more information if something does not appear right to you.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

mschut
Posts: 134
Joined: Sunday 23 February 2014 22:40
Target OS: Raspberry Pi
Domoticz version: V3.5613
Location: Netherlands
Contact:

Re: Evohome client (release)

Post by mschut » Tuesday 04 April 2017 23:33

Really trying, however, I keep on getting:

Code: Select all

[email protected]_domoticz:~ $ sudo ///home/pi/evohome-client/evo-update.sh init
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): tccna.honeywell.com
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): tccna.honeywell.com
Traceback (most recent call last):
  File "///home/pi/evohome-client/evo-update.sh", line 29, in <module>
    client = EvohomeClient(evoconfig.usr,evoconfig.pw)
  File "/home/pi/evohome-client/evohomeclient2/__init__.py", line 18, in __init__
    self._login()
  File "/home/pi/evohome-client/evohomeclient2/__init__.py", line 76, in _login
    self.installation()
  File "/home/pi/evohome-client/evohomeclient2/__init__.py", line 86, in installation
    r = requests.get('https://tccna.honeywell.com/WebAPI/emea/api/v1/location/installationInfo?userId=%s&includeTemperatureControlSystems=True' % self.account_info['userId'], headers=self.headers)
TypeError: list indices must be integers, not str
If I use a incorrect username or password, I get an error earlier on. It seems to me this proves these settings are correct. If I use an incorrect URL, the error keeps the same. So, it seems to me I don't get as far as connecting to Domoticz. So, actually, I don't know whats wrong...

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Tuesday 04 April 2017 23:55

That's the python script, not the C++ client that this thread is about. The error does appear to indicate that you are receiving some unexpected output though. You might try to edit the script to dump that output to screen as it might tell what is wrong.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

Thelion
Posts: 25
Joined: Saturday 08 October 2016 12:15
Target OS: Raspberry Pi
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by Thelion » Wednesday 12 April 2017 20:16

Hi!

Running great on a RPi3. Much faster than the Python version.

I do have a request, which is possibly easy to implement. In stead of returning an error when connect fails or is too soon after the previous request, maybe it is possible to add a parameter, that retries the command at a given interval for a given number of times. I was thinking af a way to catch the error and according to the error, retry the command, but it would be easier of your client can handle that, in stead of inventing the wheel all over again.

I would like to hear your thought on that.

Regards,

Martijn

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Wednesday 12 April 2017 21:59

Hi Martijn,

The error of running too soon after a previous request (or command) is generated locally inside the client. This is the 'nice' factor that I installed to prevent your account from being locked out by Honeywell. I guess I could make the client go to sleep for the remaining time of the set time (50 seconds), but this would only be useful if you have your updates running at larger intervals than the one minute that is suggested by the wiki.

I actually don't get many connect errors myself and if I do they usually correspond to server maintenance notices. Most errors I see are "Internal server error" and I often get multiple of these errors in a row (I update every two minutes). I don't think that adding retry cycles to the code will fix that and whatever is still functional with the Honeywell server at that point might consider the retries as 'hammering' which is what I'm trying to prevent with the 50 second limit.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

Thelion
Posts: 25
Joined: Saturday 08 October 2016 12:15
Target OS: Raspberry Pi
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by Thelion » Saturday 22 April 2017 17:14

Hi Gordon,

The issue is that I have a Domoticz script running that changes the status of a zone in Evohome when certain conditions are met and the scripts checks if the status is visible in Domoticz. If not, It runs again after some time. This often results in an error per email from Evohome stating that some commands have not been processed.

Do you know if it is possible to "talk" to the RFG100 directly? In stead of the web-portal? That would be even more reliable.

Regards,

Martijn

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (release)

Post by gordonb3 » Saturday 22 April 2017 23:13

Hi Martijn.

If you really need to be able to read back if the command was accepted you can let the script delete the state file (/tmp/evo-lastup) that holds the last run time of the client. Just be careful not to overload your account at Honeywell by running that script every second or at an even higher rate.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by gordonb3 » Thursday 18 May 2017 17:46

New release: version 1.2.0

Changes to previous version:
  • fixed a minor issue related to daylight savings time.
  • client will now reflect "HeatingOff" state in the zone status.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

Mitchel
Posts: 8
Joined: Tuesday 06 June 2017 1:32
Target OS: Raspberry Pi
Domoticz version: 3.5877
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by Mitchel » Tuesday 06 June 2017 1:44

Good day,

I compiled client version 1.2.0 on a rPi Zero W running DietPi, and this worked. However, I cannot get my thermostat to show up properly in Domoticz. The client does create a lot of zone devices, but all of them show 0.0 C (actually I only got one zone, just the living room). I use a Round Connected Modulation with the RFG100 gateway. The client does get some information from the evohome server, since the schedules.json-file has been created accordingly, showing several id's and the set up thermostat's name.

Any help is much appreciated.

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by gordonb3 » Tuesday 06 June 2017 10:35

Hi,

Yes, like the original scripts the init procedure will create the maximum number of devices that this hardware type can have. That is a total of 14 devices in Domoticz. Once you're up and running it is totally safe to delete the ones you're not using.

I just ran the client to create new Evohome hardware in Domoticz and it does add my zones correctly. I don't think it should be any different for a Round thermostat that only has one zone. Could you try run the client with `-iv` ? This should spit out some additional information of what the client is doing to screen. Since you already ran the init procedure before, you should see something like this:

Code: Select all

connect to Domoticz server
got ID '12' for Evohome hardware with name 'evohome'
init mode enabled
create hardware in Domoticz
WARNING: hardware device evohome already exists
connect to Evohome server
retrieve Evohome installation info
retrieve status of Evohome heating system
read schedules from cache
start write of Evohome data to Domoticz:
 - change Evohome system name to 'EvoTouch'
 - change setmode script path to 'script:///opt/domoticz/scripts/evohome/evo-client --set-mode {status}'
 - change Evohome system status to 'Auto'
 - set name of zone device 210 to 'Woonkamer'
 - change zone script path to 'script:///opt/domoticz/scripts/evohome/evo-client --set-temp {deviceid} {mode} {setpoint} {until}'
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

Mitchel
Posts: 8
Joined: Tuesday 06 June 2017 1:32
Target OS: Raspberry Pi
Domoticz version: 3.5877
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by Mitchel » Tuesday 06 June 2017 13:23

-iv outputs the following:

Code: Select all

evo-client start: 2017-06-06 13:16:11
connect to Domoticz server
got ID '5' for Evohome hardware with name 'evohome'
init mode enabled
create hardware in Domoticz
WARNING: hardware device evohome already exists
connect to Evohome server
retrieve Evohome installation info
retrieve status of Evohome heating system
read schedules from cache
start write of Evohome data to Domoticz:
 - change Evohome system name to 'EvoTouch'
 - change setmode script path to 'script://home/root/evohome-client/evo-client --set-mode {status}'
 - change Evohome system status to 'Auto'
Now I see I also get a Segmentation fault on the terminal. So I think there is something wrong with the code. Maybe in the part where the zone name is set? I miss this in my log compared to yours.

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by gordonb3 » Tuesday 06 June 2017 14:53

Right.

There is a possibility that I may be accessing a json value ("name" ?) that does not exist in the Round Wireless output. Would you be willing to add some debug lines to the code so we can figure out at what point the segfault occurs?
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

Mitchel
Posts: 8
Joined: Tuesday 06 June 2017 1:32
Target OS: Raspberry Pi
Domoticz version: 3.5877
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by Mitchel » Tuesday 06 June 2017 14:57

Sure, would be nice if it works! Please advice what I should do.

gordonb3
Posts: 477
Joined: Friday 22 January 2016 11:15
Target OS: Linux
Domoticz version: custom
Location: The Netherlands
Contact:

Re: Evohome client (May 2017 update)

Post by gordonb3 » Tuesday 06 June 2017 15:33

patch

Save in the root project folder and run `patch -p1 RoundWireless.patch` - then run make again and execute the client. It will output some additional logging to screen to help identify what part of the application fails.
Excito B3 running Gentoo Linux, P1, Rfxtrx433 to read and control TFA, KaKu, EvoHome RFG100
Custom patched Domoticz v3.8000

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests