OSRAM Lightify Openhab2 Binding

Groups defined on the Lightify/SMART+ gateway do not have any state that can be read. You can only write to the group and read state for individual devices. To have a group that reflects combined state you would have to define it as an openHAB group with the individual things as members. Things for gateway-defined groups can only show the state that the last command sent out by openHAB through them would set. There is no way for them to show external changes to the group nor can they respond to changes, whether from openHAB or elsewhere, made to individual members. Strictly one way Iā€™m afraid :frowning:

Hi Mike, thanks for your answer.

After your answer, iā€™ve got the idea to Group all GU10 LEDs Channels as one group - like this:

Group g3Stock_Buero_Licht  (g3StockBuero)
    Group:Dimmer:MAX g3Stock_Buero_Licht_Dimmer "Helligkeit [%d%%]"                     <light>  (g3Stock_Buero_Licht)
        Dimmer LichtBueroDimmer5 "Helligkeit"   <light>     (g3Stock_Buero_Licht_Dimmer)    {channel="osramlightify:tunable:7C-B0-**-B5-9C:dimmer"}
        Dimmer LichtBueroDimmer4 "Helligkeit"   <light>     (g3Stock_Buero_Licht_Dimmer)    {channel="osramlightify:tunable:7C-B0-**-B5-9A:dimmer"}
        Dimmer LichtBueroDimmer3 "Helligkeit"   <light>     (g3Stock_Buero_Licht_Dimmer)    {channel="osramlightify:tunable:7C-B0-**-B5-B2:dimmer"}
        Dimmer LichtBueroDimmer2 "Helligkeit"   <light>     (g3Stock_Buero_Licht_Dimmer)    {channel="osramlightify:tunable:7C-B0-**-B5-B5:dimmer"}
        Dimmer LichtBueroDimmer1 "Helligkeit"   <light>     (g3Stock_Buero_Licht_Dimmer)    {channel="osramlightify:tunable:7C-B0-**-B5-B0:dimmer"}
        Dimmer LichtBueroDimmer0 "Helligkeit"   <light>     (g3Stock_Buero_Licht_Dimmer)    {channel="osramlightify:tunable:7C-B0-**-B5-2C:dimmer"}

    Group:Dimmer:MAX g3Stock_Buero_Licht_Temperature  "Farbtemperatur (%): [%d %%]"     <light>  (g3Stock_Buero_Licht)
        Dimmer LichtBueroTemperature4 "Farbtemperatur (%)"  <colorlight>    (g3Stock_Buero_Licht_Temperature)    {channel="osramlightify:tunable:7C-B0-**-B5-9C:temperature"}
        Dimmer LichtBueroTemperature5 "Farbtemperatur (%)"  <colorlight>    (g3Stock_Buero_Licht_Temperature)    {channel="osramlightify:tunable:7C-B0-**-B5-9A:temperature"}
        Dimmer LichtBueroTemperature3 "Farbtemperatur (%)"  <colorlight>    (g3Stock_Buero_Licht_Temperature)    {channel="osramlightify:tunable:7C-B0-**-B5-B2:temperature"}
        Dimmer LichtBueroTemperature2 "Farbtemperatur (%)"  <colorlight>    (g3Stock_Buero_Licht_Temperature)    {channel="osramlightify:tunable:7C-B0-**-B5-B5:temperature"}
        Dimmer LichtBueroTemperature1 "Farbtemperatur (%)"  <colorlight>    (g3Stock_Buero_Licht_Temperature)    {channel="osramlightify:tunable:7C-B0-**-B5-B0:temperature"}
        Dimmer LichtBueroTemperature0 "Farbtemperatur (%)"  <colorlight>    (g3Stock_Buero_Licht_Temperature)    {channel="osramlightify:tunable:7C-B0-**-B5-2C:temperature"}

    Group:Number:MAX g3Stock_Buero_Licht_Kelvin "Farbtemperatur (K): [%d K]"     <light>  (g3Stock_Buero_Licht)
        Number LichtBueroAbsTemperature4 "Farbtemperatur (K)"  <colorlight>    (g3Stock_Buero_Licht_Kelvin)    {channel="osramlightify:tunable:7C-B0-**-B5-9C:absTemperature"}
        Number LichtBueroAbsTemperature5 "Farbtemperatur (K)"  <colorlight>    (g3Stock_Buero_Licht_Kelvin)    {channel="osramlightify:tunable:7C-B0-**-B5-9A:absTemperature"}
        Number LichtBueroAbsTemperature3 "Farbtemperatur (K)"  <colorlight>    (g3Stock_Buero_Licht_Kelvin)    {channel="osramlightify:tunable:7C-B0-**-B5-B2:absTemperature"}
        Number LichtBueroAbsTemperature2 "Farbtemperatur (K)"  <colorlight>    (g3Stock_Buero_Licht_Kelvin)    {channel="osramlightify:tunable:7C-B0-**-B5-B5:absTemperature"}
        Number LichtBueroAbsTemperature1 "Farbtemperatur (K)"  <colorlight>    (g3Stock_Buero_Licht_Kelvin)    {channel="osramlightify:tunable:7C-B0-**-B5-B0:absTemperature"}
        Number LichtBueroAbsTemperature0 "Farbtemperatur (K)"  <colorlight>    (g3Stock_Buero_Licht_Kelvin)    {channel="osramlightify:tunable:7C-B0-**-B5-2C:absTemperature"}

This groups allowed to receive the value from all lights and take the highest value to the group-item. Itā€™s a bit more complex, but itā€™s working like the ā€žoriginalā€œ groups.

But, there is one last point, i couldnā€™t figure out. Iā€™ve got a RGBW light stripe (Osram Flex) and the Thing seems to have 3 channels: color, temperature and absTemperature. Is there any way to make a On/Off-Switch ? Are there any way, to make an On/Off Switch without setting up a special rule for this Item?

You can link color items, dimmer items and switch items to the color channel of a light. Or all but color items to the brightness channel of a white-only light. The reason why things for gateway-defined groups have the extra channels is because thereā€™s no way to know what devices are in the group and telling people to use the color channel of power switches goes against all common sense!

on each startup i get a lots of error concering the Osram Lightify binding
the binding itself works without any problems
what can I do to remove the errors?

Iā€™m using
OSRAM Lightify Binding 2.3.0.201803021814
openHAB 2.3.0~20180518082719-1 (Build #1281)

2018-05-19 16:16:14.297 [ERROR] [org.openhab.binding.osramlightify   ] - [org.openhab.binding.osramlightify.firmware.LightifyFirmwareProvider(259)] Error during instantiation of the implementation object
java.lang.NoClassDefFoundError: org/eclipse/smarthome/core/thing/binding/firmware/Firmware$Builder
        at org.openhab.binding.osramlightify.internal.firmware.LightifyFirmwareProvider.<clinit>(LightifyFirmwareProvider.java:38) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:?]
        at java.lang.Class.newInstance(Class.java:442) ~[?:?]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:237) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) [39:org.apache.felix.scr:2.0.12]
        at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
        at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
        at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:72) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.inject.BindMethod.getServiceObject(BindMethod.java:651) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2201) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1714) [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.apache.felix.utils.extender.AbstractExtender.addingBundle(AbstractExtender.java:187) [39:org.apache.felix.scr:2.0.12]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469) [?:?]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415) [?:?]
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
        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.doStart(Module.java:578) [?:?]
        at org.eclipse.osgi.container.Module.start(Module.java:449) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
Caused by: java.lang.ClassNotFoundException: org.eclipse.smarthome.core.thing.binding.firmware.Firmware$Builder cannot be found by org.openhab.binding.osramlightify_2.3.0.201803021814
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) ~[?:?]
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
        ... 79 more
2018-05-19 16:16:14.377 [WARN ] [org.openhab.binding.osramlightify   ] - FrameworkEvent WARNING - org.openhab.binding.osramlightify
org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object
        at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:232) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
        at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
        at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:72) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.inject.BindMethod.getServiceObject(BindMethod.java:651) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2201) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1714) [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.apache.felix.utils.extender.AbstractExtender.addingBundle(AbstractExtender.java:187) [39:org.apache.felix.scr:2.0.12]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469) [?:?]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415) [?:?]
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
        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.doStart(Module.java:578) [?:?]
        at org.eclipse.osgi.container.Module.start(Module.java:449) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
2018-05-19 16:16:14.406 [ERROR] [org.openhab.binding.osramlightify   ] - [org.openhab.binding.osramlightify.firmware.LightifyFirmwareProvider(259)] Error during instantiation of the implementation object
java.lang.NoClassDefFoundError: Could not initialize class org.openhab.binding.osramlightify.internal.firmware.LightifyFirmwareProvider
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:?]
        at java.lang.Class.newInstance(Class.java:442) ~[?:?]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:237) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) [39:org.apache.felix.scr:2.0.12]
        at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:749) [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.apache.felix.utils.extender.AbstractExtender.addingBundle(AbstractExtender.java:187) [39:org.apache.felix.scr:2.0.12]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469) [?:?]
        at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415) [?:?]
        at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
        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.doStart(Module.java:578) [?:?]
        at org.eclipse.osgi.container.Module.start(Module.java:449) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [?:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
2018-05-19 16:16:14.891 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'osramlightify:power:84-18-26-00-00-0D-B5-8E' to inbox.
2018-05-19 16:16:15.015 [INFO ] [sages.LightifyGatewayFirmwareMessage] - osramlightify:gateway:017c2aef: firmware version = 1.2.2.0

Either use stable rather than dev openHAB or, judging by that log, file an issue against ESH to the effect that someone has broken an API. we only use the firmware API to report information though and I donā€™t think anything else even did that so nothing important should break butā€¦

i have upgrade to openHAB 2.3.0-1 (Release Build), but the error is still there.
The errors in the log appears as soon as the binding is installed using PaperUi and than they appear on each boot and shutdown of the the system
The binding itself works flawless, so thank you for your great work.
was just hoping you could advice me, what i can do to remove this errors from the log

Iā€™ll update the binding when I manage to find the time.

1 Like

I can confirm the firmware errors reported by Marcus, I get them as well on openHAB 2.3.0-1. Also for me everything just works flawlessly.

Hi Guys,

Could someone please point out how to define an osram lightbulb as a thing in .things file please? Specifically how do I specify the bridge? I tried this :
Thing osramlightify:rgbw:84-18-26-00-00-CA-2E-28 ā€œLamp1ā€ @ ā€œAirā€ [ bridge=ā€œosramlightify:gateway:037d3381ā€ ]

Bud bridge still =null in runtime and I canā€™t use items with it.

I do can append osram lights via inbox, and the use items with it. It just seems to be more appropriate for my scenario to have them defined in config file. I heard that some things canā€™t be defined in .things file - is this is the case?

Thanks,
Misha

Convert the JSON definition to a .things definition.

I tried that, but it didnā€™t work for my. My assumption is that the spaces in attribute names donā€™t work in thing files. (IEEE Adress being one of those if i recall correctly. )

Anyone else experiencing problems with steadily increasing CPU usage (asymptotic) when using this binding?
When I enable the binding, I get a very consistent graph until the system becomes unusable. If I restart the openhab2 service (dips seen in graph), CPU usage goes back to normal.


Switching off the binding, CPU usage back to normal (close to NIL)

Thanks, that what I am doing. I ended up with this in file.things:

Thing osramlightify:rgbw:84-18-26-00-00-CB-11-02 "Lamp1" @ "Air" [ bridgeUID="osramlightify:gateway:037d3381" ]

from that in presistentfile.json

  "osramlightify:rgbw:84-18-26-00-00-CB-11-02": {
    "class": "org.eclipse.smarthome.core.thing.internal.ThingImpl",
    "value": {
      "label": "light-kitchen-ceiling",
      "bridgeUID": {
        "segments": [
          "osramlightify",
          "gateway",
          "037d3381"
        ]
      },

Iā€™ve also tried to change bridgeUID to bridge but Iā€™m getting the same result - once I let openHab reload it it throws this exception:

18:50:13.219 [INFO ] [del.core.internal.ModelRepositoryImpl] - Refreshing model 'test.things'
18:50:13.231 [ERROR] [rnal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.osramlightify.handler.LightifyDeviceHandler@15ab656': null                                                                               
java.lang.NullPointerException: null
        at org.openhab.binding.osramlightify.internal.util.IEEEAddress.<init>(IEEEAddress.java:53) ~[?:?]

followed by that:


18:50:13.232 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'osramlightify:rgbw:84-18-26-00-00-CA-2E-28' changed from UNINITIALIZED (HANDLER_INITIALIZING_ERROR) to INITIALIZING               
18:50:13.238 [ERROR] [home.core.thing.internal.ThingManager] - Exception occurred while initializing handler of thing 'osramlightify:rgbw:84-18-26-00-00-CA-2E-28': null                          
java.lang.NullPointerException: null
        at org.openhab.binding.osramlightify.internal.util.IEEEAddress.<init>(IEEEAddress.java:53) ~[?:?]

My guess it that either bridge specification is incorrect or I have to specify this IEEE address somhow, but in json it has ā€œIEEE addressā€: ā€œ84:18:26:00:00:CB:11:02ā€. Tried to add it as IEEE_address or IEEEaddress to no avail.

Yeah, and after that the thing sits in this status:

osramlightify:rgbw:84-18-26-00-00-CA-2E-28 (Type=Thing, Status=INITIALIZING, Label=Lamp1, Bridge=null)

So, it openhab apparently created an object according to specs by failed to link it to the Bridge. Thasā€™s why I feel like the bridge= line in .things how to be spelled somehow differently.

I have problem that I need to restart the bundle inside karaf (bundle:restart xxx) in order the bundle works again.
The situation before restart is that the items receive the commands (100, 0) but nothing happens, no special log seen as well. When I use the lightify app the devices react normal.

log:set TRACE org/openhab/binding/osramlightify

Iā€™m not sure if this relates to this binding or not, but as the market place version is mentioned in this post, I thought Iā€™d leave a link to the issue I created in case someone else experiences the same:

With the Osram Lightify Binding, is there any easy way to get the Dimmer (Percent) level of a light? Iā€™m trying to eventually create a rule that will get the dimmer level and then increment + or - in 5% increments.

I tried this to get the current Dimmer Level, but it doesnā€™t want to return a value.

Number FF_LED_Dim_Level             "TV Dimm [%d %%]"       { channel="osramlightify:rgbw:84-18-26-00-00-04-EA-17:temperature"}

Well. Still struggling with this. Been googling and searching and tried this little rule, but still not sure how you can get the dimmer level of Color Bulb.

rule "Get Dimmer Value"
when
Item FF_Lightify_LED_TV changed
then
FF_LED_Dim_Level = (FF_Lightify_LED_TV.state as HSBType).getBrightness
end

Is org.openhab.binding.osramlightify-2.2.0-SNAPSHOT.jar the latest version?

Should it work with the GardenSpot devices? It doesnā€™t see mine.

@noctarius and @mjagdis

Has this binding been officially released yet?

If not, is 2.2.0.201712151711 the latest version? This version worked great for 3-4 days, then stopped responding until I went into the Karaf console and issued a bundle:restart command.