Evohome binding 2.0

I’ve created a build for the 2.2.0 version, it’s up on github: https://github.com/Nebula83/openhab2-addons/releases/tag/evohome-2.2.0-1
I just started testing myself so it doesn’t have much milage yet, please help me improve that :slight_smile:

1 Like

@VibroAxe @xAPPO @nick_wootton @app41 did you have a chance to look at the latest release? I’m very curious how it performs for you!

ciao jvanzuijlen
good news, I’m curious to see the last release running
but unfortunately my raspberry is down for a crash of the SD card
I decided to reinstall openhab from scratch on an usb disk, for sure I will set the stuff with all the last updated versions

be patient, hope I will be back in the next week…

Sorry dude, it’s on my list to get this loaded but i’m slightly behind on stuff atm. Hope to get it installed in the next few days!

Same here, will check asap.

Hi guys, thanks for the response! No worries, just wanted to check if you had seen it and maybe already had some time to toy around with it.

@app41: oof, that’s no fun… Good luck with the reinstall. Maybe consider an SSD? I hear a lot of crashing SD cards with openhab…

Sorry, I’ve also had a recent rebuild. I dropped in the new version on Friday night and so far it’s all working fine. I’ve NOT done any work on using the new channels so far I’m just using the temperature, current set point & set point status ones.

my .things file didn’t specify the individual zones, just the account, but I still had to enter the details in via the PaperUI. Once that was done auto discovery found the various zones as expected and allowed me to add them.

Think i done something wrong, or something got broken, i upgraded and fixed my items, but now they seem to show all the same values, ff check the logs.

edit: found the culprit, just a case of bad copy pasting :stuck_out_tongue:

any change you can implement these too?

String Bedroom_Radiator_Mode "Bedroom Radiator Mode [%s]"  { evohome="locationName=LOCATION_NAME,deviceName=DEVICE_NAME,type=THERMOSTAT_MODE" }
DateTime Bedroom_Radiator_Set_NextTime "Bedroom Radiator Set Time [%1$tT, %1$tF]"  { evohome="locationName=LOCATION_NAME,deviceName=DEVICE_NAME,type=THERMOSTAT_SETPOINT_NEXTTIME" }
1 Like

I changed a lot in the things file, so maybe it’s not compatible anymore. Can you post the things file you have? You can also check the Readme of the binding. It’s in the root of the evohome sources.

I will, but first I’d like to get the merge through. I can investigate how much effort it would be to implement these. I would expect not much. Is it essential for you or just nice to have?

no problem, these were in the old bind, so maybe you can get an idea on how to do it?
it is a nice to have things.

I did get an error btw, it was this:

2018-03-21 11:28:18.759 [ERROR] [nding.evohome.internal.api.ApiAccess] - Error in handling request
java.util.concurrent.ExecutionException: java.io.EOFException: HttpConnectionOverHTTP@c1ece2(l:/192.168.1.4:36558 <-> r:tccna.honeywell.com/199.62.84.94:443,closed=false)[HttpChannelOverHTTP@1d8bd16(exchange=HttpExchange@b7a11 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@246074(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@19f2dae(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of 0}]]]
	at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:653)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.openhab.binding.evohome.internal.api.ApiAccess.doRequest(ApiAccess.java:103)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.internal.api.ApiAccess.doRequest(ApiAccess.java:145)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.internal.api.ApiAccess.doAuthenticatedRequest(ApiAccess.java:174)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.internal.api.EvohomeApiClientV2.requestLocationsStatus(EvohomeApiClientV2.java:178)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.internal.api.EvohomeApiClientV2.update(EvohomeApiClientV2.java:110)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.handler.EvohomeAccountBridgeHandler.update(EvohomeAccountBridgeHandler.java:210)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.handler.EvohomeAccountBridgeHandler.access$4(EvohomeAccountBridgeHandler.java:209)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at org.openhab.binding.evohome.handler.EvohomeAccountBridgeHandler$2.run(EvohomeAccountBridgeHandler.java:204)[228:org.openhab.binding.evohome:2.2.0.201803070810]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_161]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)[:1.8.0_161]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)[:1.8.0_161]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)[:1.8.0_161]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_161]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_161]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_161]
Caused by: java.io.EOFException: HttpConnectionOverHTTP@c1ece2(l:/192.168.1.4:36558 <-> r:tccna.honeywell.com/199.62.84.94:443,closed=false)[HttpChannelOverHTTP@1d8bd16(exchange=HttpExchange@b7a11 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@246074(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@19f2dae(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of 0}]]]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:277)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1282)[71:org.eclipse.jetty.http:9.2.19.v20160908]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:182)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:129)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:89)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:123)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[72:org.eclipse.jetty.io:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[84:org.eclipse.jetty.util:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[84:org.eclipse.jetty.util:9.2.19.v20160908]
	... 1 more

now, i don’t know if its because of the binding itself, since my wunderground weather call failed too.

very cool! Thank you!

Just switched from the old one to this one and liking the fact that I can change temps! :smiley: :smiley: :smiley:

1 Like

I have the same thing locally. I’ll try running with one of the both to check if one causes the other.

First thanks for the all work on the binding!

The latest version itself works fine for me, however it stops working after 12 hours or so and I start getting these errors (restarting then makes it go away again):

2018-03-28 08:26:38.457 [ERROR] [nding.evohome.internal.api.ApiAccess] - Error in handling request
java.util.concurrent.ExecutionException: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) [75:org.eclipse.jetty.client:9.3.22.v20171030]
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) [75:org.eclipse.jetty.client:9.3.22.v20171030]
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:674) [75:org.eclipse.jetty.client:9.3.22.v20171030]
at org.openhab.binding.evohome.internal.api.ApiAccess.doRequest(ApiAccess.java:103) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.openhab.binding.evohome.internal.api.ApiAccess.doRequest(ApiAccess.java:145) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.openhab.binding.evohome.internal.api.ApiAccess.doAuthenticatedRequest(ApiAccess.java:174) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.openhab.binding.evohome.internal.api.EvohomeApiClientV2.setHeatingZoneOverride(EvohomeApiClientV2.java:143) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.openhab.binding.evohome.internal.api.EvohomeApiClientV2.cancelHeatingZoneOverride(EvohomeApiClientV2.java:137) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.openhab.binding.evohome.handler.EvohomeAccountBridgeHandler.cancelSetPointOverride(EvohomeAccountBridgeHandler.java:134) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.openhab.binding.evohome.handler.EvohomeHeatingZoneHandler.handleCommand(EvohomeHeatingZoneHandler.java:86) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [109:org.eclipse.smarthome.core:0.10.0.b1]
at com.sun.proxy.$Proxy196.handleCommand(Unknown Source) [256:org.openhab.binding.evohome:2.2.0.201803070810]
at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:72) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: org.eclipse.jetty.client.HttpResponseException: HTTP protocol violation: Authentication challenge without WWW-Authenticate header
at org.eclipse.jetty.client.AuthenticationProtocolHandler$AuthenticationListener.onComplete(AuthenticationProtocolHandler.java:114) ~[?:?]
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193) ~[?:?]
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:458) ~[?:?]
at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:405) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:277) ~[?:?]
at org.eclipse.jetty.http.HttpParser.handleContentMessage(HttpParser.java:599) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1526) ~[?:?]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1350) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:159) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:120) ~[?:?]
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:70) ~[?:?]
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:90) ~[?:?]
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:115) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) ~[?:?]
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:251) ~[?:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) ~[?:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) ~[?:?]
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) ~[?:?]
… 1 more

I’ve just added a new zone to evoHome. I can see it in the app and in the controller but the binding is not picking it up.

How to refresh it so it shows it?

thanks

in answer to my own question:
bundle:restart worked.

As a low-priority it should be able to do this itself.

For the tired and stupid amongst us - how do I use the ‘PermanentSetPoint’ and ‘CancelSetPoint’ items to override the pre-set schedule for a zone?

I assumed that I sent an update (lounge to 20.0 degrees):

zone_lounge_PermanentSetPoint.postUpdate(20.0)

that I could then cancel at any point later (lounge back to schedule):

zone_lounge_CancelSetPoint.sendCommand(ON)

But that doesn’t seem to work - nothing goes on or off.

My assumption is that any difference between the ‘CurrentSetPoint’ and ‘PermanentSetPoint’ will change the scheduled value for the zone until the ‘CancelSetPoint’ command is turned ON.

I’m also assuming that the ‘CancelSetPoint’ only has to flicked from the default OFF to ON and back to OFF again for only as long as it takes EvoHome to register that the override has been cancelled.

The ‘CurrentSetPoint’ and ‘SetPointStatus’ items all seem to be working and reporting their values correctly, so I know OH2 is talking to Honeywell.

Seems like the authentication dies. I’ll add in a re-authenticate when this exception occurs.

I’m not sure I entirely follow. Can you perhaps elaborate on these questions:

  1. How did you add the zone: PaperUI of things file?
  2. What do you mean with seeing it in the app and controller
  3. What doesn’t work in the binding?

Sorry if it comes across that I’m nitpicking, but I’d like to fix any usability issues that you ay come across.