Evohome binding 2.0

oh2bindings
evohome
honeywell
Tags: #<Tag:0x00007f01476dfc78> #<Tag:0x00007f01476df958> #<Tag:0x00007f01476df610>

(Michael Cumming) #81

I am having problems getting evohome to connect to mytotalconnectcomfort.com. Does this portal work with evohome?

From the log:

09:08:27.182 [ERROR] [ohome.internal.api.EvohomeApiClientV2] - Authorization failed


(jvanzuijlen) #82

@timwelch I’m not sure what you mean by “Holding down the Display Settings button”. Could you check the status of your account Thing and check if it’s online? If it is you should get your zones autodetected. Take the id you get from that e.g. evohome:display:myplace:1234567 so the id is 1234567. You can also see the id’s if you enable TRACE logging on the binding in Karaf and analyze the raw response data but that’s somewhat more involved, and not really the user interface to finding your display id.

@mjcumming Yes, this should work (I’m using the same). How are you providing your credentials: things file or PaperUI?


(Michael Cumming) #83

PaperUI is where I configured the credentials.

Mike


(Michael Cumming) #84

@jvanzuijlen - can get this binding to connect using a .things file - paperui did not work.

I am not sure what to put in the your_display_alias and your_zone_alias?

Bridge evohome:account:your_account_alias [ username=“your_user_name”, password=“your_password” ]
{
display your_display_alias [ id=“1234” ]
heatingzone your_zone_alias [ id=“5678” ]
}


(Tim Welch) #85

It’s definitely coming online but nothing more. I’ve enabled trace logged and it appears to be showing some bad API requests…

2018-05-23 08:35:09.305 [DEBUG] [nding.evohome.internal.api.ApiAccess] - Requesting: [https://tccna.honeywell.com/WebAPI/emea/api/v1/userAccount]
2018-05-23 08:35:09.579 [DEBUG] [nding.evohome.internal.api.ApiAccess] - Response: HttpContentResponse[HTTP/1.1 400 Bad Request - 167 bytes]
2018-05-23 08:35:09.583 [TRACE] [nding.evohome.internal.api.ApiAccess] - 
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=UTF-8
Expires: -1
Server: Microsoft-IIS/8.5
Server: Web1
Date: Tue, 22 May 2018 20:35:08 GMT
Content-Length: 167
Set-Cookie: NSC_UDDOB-XfcBqj-TTM-WT=ffffffff090ecc1a4f4f58455a465a4a42378b;expires=Tue, 22-May-2018 20:37:09 GMT;path=/;secure;httponly
[
  {
    "code": "UnsupportedClientVersion",
    "message": "Values provided by API aren't supported by client or field filled by client is not supported."
  }
]
==> /var/log/openhab2/events.log <==
2018-05-23 08:35:09.600 [hingStatusInfoChangedEvent] - 'evohome:account:a7f92577' changed from INITIALIZING to ONLINE

I definitely don’t appear to be getting my zones autodetected after the account comes online.

Cheers, Tim


(jvanzuijlen) #86

@mjcumming Ok, good that you are able to make it work. Not sure why the PaperUI does not work for you. Maybe strange characters in your password? Hard to check this since you probably wouldn’t (and shouldn’t!) share that :wink: May I can log the username and password before authenticating. Since I don’t feel comfortable logging plain text passwords that will probably an MD5 of SHA hashed one, but then you can still do the same hashing and see if it matches.

your_display_alias and your_zone_alias are values that you can freely choose. so maybe my_home and living_room respectively. It makes you channel names somewhat more friendly. OpenHAB generally generates a random value for these when it autodetects them.

@timwelch Looking at https://tccna.honeywell.com/WebAPI/emea/api/v1/userAccount and the fact that you are New Zealand based makes me think that it maybe is correct that you are not getting anything back. EMEA is for Europe, Middle East, and Afrika. Let me check if I can fix that. Thanks for the details!


(jvanzuijlen) #87

@timwelch Could you enable TRACE logging and send me the response to the Requesting: [https://tccna.honeywell.com/Auth/OAuth/Token] call? Remove the token values but leave the rest, please. For me (based in Holland) I get this back:

Response: HttpContentResponse[HTTP/1.1 200 OK - 1454 bytes]
2018-05-23 08:57:39.287 [DEBUG] [evohome.internal.api.ApiAccess:107  ] - 
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
Expires: -1
Server: Microsoft-IIS/8.5
Server: Web1
Date: Wed, 23 May 2018 06:57:38 GMT
Content-Length: 1454
Set-Cookie: NSC_UDDOB-TTM-WT=ffffffff090ecc1c45525d5f4f58455e445a4a42378b;expires=Wed, 23-May-2018 06:59:38 GMT;path=/;secure;httponly

{"access_token":"ACCESS","token_type":"bearer","expires_in":3599,"refresh_token":"REFRESH","scope":"EMEA-V1-Basic EMEA-V1-Anonymous"}

(Tim Welch) #88

@jvanzuijlen I get this…

2018-05-23 18:25:23.550 [DEBUG] [nding.evohome.internal.api.ApiAccess] - Requesting: [https://tccna.honeywell.com/Auth/OAuth/Token]
2018-05-23 18:25:25.043 [DEBUG] [nding.evohome.internal.api.ApiAccess] - Response: HttpContentResponse[HTTP/1.1 200 OK - 1412 bytes]
2018-05-23 18:25:25.045 [TRACE] [nding.evohome.internal.api.ApiAccess] - 
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
Expires: -1
Server: Microsoft-IIS/8.5
Server: Web1
Date: Wed, 23 May 2018 06:25:24 GMT
Content-Length: 1412
Set-Cookie: NSC_UDDOB-TTM-WT=ffffffff090ecc1d45525d5f4f58455e445a4a42378b;expires=Wed, 23-May-2018 06:27:24 GMT;path=/;secure;httponly
{"access_token":"xxxx","token_type":"bearer","expires_in":3599,"refresh_token":"xxxx"}

Tokens replaced with xxxx


(jvanzuijlen) #89

I think you snipped off the scope bit; which is the bit I was interested in :wink:
Edit: hm, I changed the Token request to request for APAC instead of EMEA, and I don’t seem to get the scope back as well. I think I need to add a region selection option to the credentials bit. I’ll try to get that in as well. Would you be willing to test this out when I release the next version with that option available?


(Tim Welch) #90

@jvanzuijlen absolutely willing to test! Nope, I don’t see any “scope” in my logs.


(jvanzuijlen) #91

Sweet! If you have the time, could you have a look at my PM?


(Michael Cumming) #92

@jvanzuijlen No funny characters in the password - just standard alpha numeric

Sorry to be dense :slight_smile: still new to OpenHAB but i don’t understand how to configure the id values (understand the alias) but how do I reference a particular thermostat in the TotalConnect account?

06:59:22.494 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - ‘evohome:account:Queen’ changed from OFFLINE (COMMUNICATION_ERROR): Authentication failed to ONLINE
06:59:22.509 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - ‘evohome:display:Queen:Main_Level’ changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
06:59:22.509 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - ‘evohome:display:Queen:Main_Level’ changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Status not found, check the display id
06:59:22.509 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - ‘evohome:heatingzone:Queen:Main_Level’ changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
06:59:22.509 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - ‘evohome:heatingzone:Queen:Main_Level’ changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Status not found, check the zone id


(jvanzuijlen) #93

Sorry to be dense

Not at all, the learning curve is quite steep. I found that as well and I write software for a living :slight_smile:

[…] how do I reference a particular thermostat in the TotalConnect account?

When you provide the account Thing your credentials, you should see all the configured displays and zones in your inboc in PaperUI. Does that work for you?


(Rick) #94

I’m experiencing a potential issue with the autodiscovery when using custom Thing names. It might be an issue with Openhab, or just the way Openhab works.

I’m using the following thing file:

    Bridge evohome:account:evohome_account [ username="x@y.com", password="****" ]
    {
        display             Evotouch                "Honeywell EvoTouch"        @   "Begane grond"          [ id="2596419" ]
        heatingzone         Woonkamer               "Heating zone Woonkamer"    @   "Begane grond"          [ id="2596418" ]
    }

Because i’m using other labels for the display and the heatingzone things, resp: Evotouch & Woonkamer, the autodiscovery finds two new devices:

Thuis-extra ONLINE
evohome Display

evohome:display:evohome_account:2596419

Woonkamer (Thuis) - extra ONLINE
evohome Heating Zone

evohome:heatingzone:evohome_account:2596418

Obviously if i change the thing file to the following, the devices aren’t discovered anymore and the things are working, but i’m not able to use a custom thing name in my item definition.

    Bridge evohome:account:evohome_account [ username="x@y.com", password="****" ]
    {
        display             2596419              "Honeywell EvoTouch"        @   "Begane grond"          [ id="2596419" ]
        heatingzone         2596418              "Heating zone Woonkamer"    @   "Begane grond"          [ id="2596418" ]
    }

Does anyone know if there’s a way around this apart from disabling autodiscovery for this binding?


(Pop Eating) #95

Probably im really a newbie, but i cant find in paper UI bindings a way to configure evohome bindings with user/password


(jvanzuijlen) #96

Here’s what you do:

  1. Drop the binding in the addons folder
  2. Go to paper UI
  3. Select Inbox, click on +
  4. Select evohome binding (optionally select Add Manually)
  5. Select “evohome Account”
  6. Fill in the fields
  7. Click the tickmark.
  8. Done!

(Pop Eating) #97

I finally got it up and working
i got a minimal setup for the moment, for every room i show temperature, desired temperature and so on, and everything its showing correctly as expected

i only got an error (probably is not a real error) with the canceloverride functionality:
if i click the “Cancel a set point override” switch in PaperUI (both using the automatically created item or the manually added items) it goes to ON then revert to OFF (i think it is the correct way) and log the following:

2018-06-03 12:44:39.744 [ome.event.ItemCommandEvent] - Item 'evohome_heatingzone_popland_1993342_CancelSetPoint' received command ON

2018-06-03 12:44:39.753 [vent.ItemStateChangedEvent] - evohome_heatingzone_popland_1993342_CancelSetPoint changed from OFF to ON

2018-06-03 12:44:40.000 [ome.event.ItemCommandEvent] - Item 'evohome_heatingzone_popland_1993342_CancelSetPoint' received command OFF

2018-06-03 12:44:40.016 [ome.event.ItemCommandEvent] - Item 'LivingZoneCancelSetPoint' received command OFF

2018-06-03 12:44:40.021 [vent.ItemStateChangedEvent] - evohome_heatingzone_popland_1993342_CancelSetPoint changed from ON to OFF

instead if i use the switch i added to sitemap via item:

Switch LivingZoneCancelSetPoint   { channel="evohome:heatingzone:popland:1993342:CancelSetPoint" }

the switch stays ON and it logs:

2018-06-03 12:49:26.733 [INFO ] [rest.core.internal.item.ItemResource] - Received HTTP POST request at 'items/LivingZoneSetPointCancel' for the unknown item 'LivingZoneSetPointCancel'.

i am probably missing something about naming/linking… any clue?


(Pop Eating) #98

Seems i fixed it, in my sitemap i changed:

Switch   label="Cancel override"      item=LivingZoneCancelSetPoint

wich referred to the item that i added to items file

to

Switch   label="Cancel override"      item=evohome_heatingzone_popland_1993342_CancelSetPoint

which refer to the autolinked items

it now works, but im still confused, since in paperUI i had both working!


(¯\_(ツ)_/¯) #99

LivingZoneCancelSetPoint and
LivingZoneSetPointCancel


(Pop Eating) #100

Ok, i make you waste time! i owe you a beer!