Evohome binding 2.0

I have used the Honeywell app for some time.
Until recently I even had the EvoHome binding 1.8 running
The error 500 started to occur when I upgraded the binding.

Strange, not sure what it could be. Please bear with me since Iā€™m releasing a new version shortly. Iā€™ll double check to make sure that there is logging available for these connection issues.

I had to reinstall my rpi with openhab 2.3.0, downloaded latest release of the evohome binding, and now i cannot do anything with the binding, if i drop it in addons, i can see to add a thing for it, but after clicking it, the page stays blank.

Edit: after putting the user openhab in the uucp group, it worked.

Adding to the uucp group, thatā€™s interesting info. Is that needed for all internet enabled bindings?

Well, thats the weird part, i did that so i could read my zwave stick :open_mouth:
So i donā€™t know, maybe.

I just found out that there is an update for the Evotouch WiFi version which shows which valves are open, and how far open in %, now thatā€™s a feature im missing in my old Evotouch, but now i wonder, can you see that with the evohome app?

I did another try using binding 2.2.2 v3.
In the openhab.log file I found the following error which might provide a clue.

2018-10-12 11:45:49.917 [ERROR] [org.eclipse.smarthome.core.thing    ] - [org.eclipse.smarthome.core.thing.internal.ThingManager(87)] The addThingHandlerFactory method has thrown an exception
java.lang.NoClassDefFoundError: org/openhab/binding/evohome/EvohomeBindingConstants
    at org.openhab.binding.evohome.internal.EvohomeHandlerFactory.supportsThingType(EvohomeHandlerFactory.java:47) ~[?:?]
    at org.eclipse.smarthome.core.thing.internal.ThingManager.lambda$9(ThingManager.java:979) ~[?:?]
    at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891) ~[?:?]
    at java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:404) ~[?:?]
    at org.eclipse.smarthome.core.thing.internal.ThingManager.lambda$8(ThingManager.java:978) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:?]
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:?]
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:?]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:?]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:?]
    at org.eclipse.smarthome.core.thing.internal.ThingManager.handleThingHandlerFactoryAddition(ThingManager.java:977) ~[?:?]
    at org.eclipse.smarthome.core.thing.internal.ThingManager.addThingHandlerFactory(ThingManager.java:948) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
    at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:229) ~[39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) ~[39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:650) ~[39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:506) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.inject.BindMethod.invoke(BindMethod.java:658) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1722) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1699) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:372) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:320) [39:org.apache.felix.scr:2.0.12]
  at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:291) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1215) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1136) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:945) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:881) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1167) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:127) [39:org.apache.felix.scr:2.0.12]
    at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [?:?]
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [?:?]
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [?:?]
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [?:?]
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [?:?]
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) [?:?]
    at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [?:?]
     at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:887) [39:org.apache.felix.scr:2.0.12]
     at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:874) [39:org.apache.felix.scr:2.0.12]
     at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:132) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:941) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:741) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:430) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:657) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:341) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:390) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.Activator.access$200(Activator.java:54) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:265) [39:org.apache.felix.scr:2.0.12]
 at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:254) [39:org.apache.felix.scr:2.0.12]
    at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:227) [39:org.apache.felix.scr:2.0.12]
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) [?:?]
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) [?:?]
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [?:?]
    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [?:?]
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [?:?]
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [?:?]
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [?:?]
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [?:?]
    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [?:?]
    at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [?:?]
    at org.eclipse.osgi.container.Module.start(Module.java:467) [?:?]
    at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
    at org.apache.karaf.bundle.command.Restart.doExecute(Restart.java:51) [43:org.apache.karaf.bundle.core:4.1.5]
    at org.apache.karaf.bundle.command.BundlesCommand.execute(BundlesCommand.java:52) [43:org.apache.karaf.bundle.core:4.1.5]
    at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:571) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:497) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:386) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:417) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) [12:org.apache.karaf.shell.core:4.1.5]
    at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) [12:org.apache.karaf.shell.core:4.1.5]
    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) [?:?]
 2018-10-12 11:45:49.940 [ERROR] [org.eclipse.smarthome.model.thing   ] - [org.eclipse.smarthome.model.thing.internal.GenericThingProvider(194)] The addThingHandlerFactory method has thrown an exception
java.lang.NoClassDefFoundError: org/openhab/binding/evohome/EvohomeBindingConstants
    at org.openhab.binding.evohome.internal.EvohomeHandlerFactory.supportsThingType(EvohomeHandlerFactory.java:47) ~[?:?]
    at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.isSupportedByThingHandlerFactory(GenericThingProvider.java:473) ~[?:?]
    at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThing(GenericThingProvider.java:393) ~[?:?]
    at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$26(GenericThingProvider.java:930) ~[?:?]
    at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]

Hi
Iā€™m back on my openhab 2 installation
winter is coming so it is time for activating evohome binding

but I hadnā€™t any successā€¦

I tried to put org.openhab.binding.evohome-2.2.0.jar file in the addons directory
/usr/share/openhab2/addons

I was expecting to see the binding in paperUI

I reboot the Pi, but no way to see evohome binding anywhere

  • not found in karaf boundle:list
  • not found any evohome issue in the events.log
  • no issue in paperUI for evohome neither in binding nor in things

Iā€™m running openhab 2.3.0-1 on a raspberry with stretch but started with openhabian SD

something is wrongā€¦
any suggestion?

You can try in karaf:
bundle:install https://github.com/Nebula83/openhab2-addons/releases/download/evohome-2.2.0-3/org.openhab.binding.evohome-2.2.0.jar

1 Like

Opsym, thank you for the hint!

I followed it and now in karaf I see the binding active

only Iā€™m confused as I canā€™t see the evohome-2.2.0.jar anywhereā€¦

in the meanwhile, let me go to understand how to use it

Want to say a missive thanks to your work on this one, it is working really well. Have it setup in my sitemap and working well. Only issue I have is that it has left me wanting more. Is there any chance of adding the hot water reading and allowing overrides to a certain time as well as the current perminant.

Hello Thanks for your work.

It work fine with my Evohome !

Is there a way to show remote relay activity, or radiator head battery level ?

Thanks in advance

Iā€™m about to buy a multizone heating solution like evohome. When i look at domoticz, they use the cloud and also offer connectivity through a honeywell usb device (HGI80). While https://github.com/openhab/openhab2-addons/pull/2342 is about to be merged, iā€™m wondering if support for the usb device is planned.
I just donā€™t like to be depend on cloud stuff for these devices.

background: https://www.domoticz.com/wiki/Evohome

@jonathanb Thanks! Iā€™m glad it works for you :slight_smile: Please see my https://github.com/Nebula83/openhab2-addons/issues for info on currently identified bug or enhancements. Give the item of you liking a +1, Iā€™ll use the amount of votes as a means to determine the next feature Iā€™ll be picking up.

@Beeckmans0 Honestly, I have no ideaā€¦ If it is exposed through the API I can create a channel for it. Please create an issue on github stating your wishes (a new issue for each please :slight_smile: ). We can discuss the details there.

@lsiepel Since I donā€™t own a HGI80, and have no plans to buying one, I donā€™t think itā€™s going to be in there soon. That is unless someone is willing to sponsor me one :grin: or is willing to do the work themselves ::wink:

I looked into the HG180 as I like the idea of not being cloud based as well. Product discontinued in 2016.

Thank you I can see both points are already there in the issues.

Thank you for the hard-work on this one as I would have no idea where to start,

These were the 1.9.0 channels, maybe these are already exposed?

EvoHome Type OpenhabType Read/Write From Version
LOCATION_NAME String Read 1.9.0
LOCATION_ID Number Read 1.9.0
WEATHER_CONDITION String Read 1.9.0
WEATHER_TEMPERATURE Number Read 1.9.0
WEATHER_HUMIDITY Number Read 1.9.0
WEATHER_UNIT String Read 1.9.0
WEATHER_PHRASE String Read 1.9.0
THERMOSTAT_TEMPERATURE Number Read 1.9.0
THERMOSTAT_SETPOINT_VALUE Number Read 1.9.0
DEVICE_NAME String Read 1.9.0
DEVICE_ID Number Read 1.9.0
THERMOSTAT_UNIT String Read 1.9.0
THERMOSTAT_MODE String Read 1.9.0
THERMOSTAT_SETPOINT_STATUS String Read 1.9.0
THERMOSTAT_SETPOINT_NEXTTIME DateTime Read 1.9.0

The new wifi version show how far the valve is opened, maybe that can be implemented too?
and battery low and comms failure.

What is your source? It is still being sold at somfy.nl and some other shops.

Currently only the crossed out oneā€™s are implemented. Weather is not available anymore. For the rest I suggest you open up an issue on my github so the rest can give a vote! Since I currently donā€™t have a system, itā€™s hard for me to test new channels, especially those like battery low and comms failure. I think Iā€™ll be buying a new set coming winter and that will most probably be a wifi version. When I do I can look into new stuff like valve percentage.

You mean are not crossed out?
well, i want to test, but donā€™t know how :smiley:
Anyways, not a problem to wait tho, as it are nice to haves for me, will open some new issues then.

@neil_renaud can you enlighten me, what those THERMOSTAT_UNIT and THERMOSTAT_MODE returned?

1 Like