Hi,
it seems to be a problem in Pi4J. Tried you to restart openhab?
Hi,
it seems to be a problem in Pi4J. Tried you to restart openhab?
Yes, restarted rebooted several times.
I don’t see a pi4J installed.
But tests with java manually works with
https://www.abelectronics.co.uk/kb/article/17/io-pi-tutorial-1—the-blinking-led
Installed pi4j manually, but nothing changed
http://pi4j.com/install.html
Put the pi4J jar file in addons, see that it is loaded, but also no changes.
2017-04-17 11:56:20.436 [DEBUG] [org.openhab.binding.mcp23017 ] - BundleEvent STOPPING - org.openhab.binding.mcp23017
2017-04-17 11:56:20.448 [DEBUG] [org.openhab.binding.mcp23017 ] - ServiceEvent UNREGISTERING - {org.osgi.service.event.EventHandler}={event.topics=openhab/*, component.name=org.openhab.binding.mcp23017.binding, component.id=8, service.id=297, service.bundleid=204, service.scope=bundle} - org.openhab.binding.mcp23017
2017-04-17 11:56:20.459 [DEBUG] [ng.mcp23017.internal.MCP23017Binding] - mcp23017 deactivated
2017-04-17 11:56:20.477 [DEBUG] [ng.mcp23017.internal.MCP23017Binding] - removeBindingProvider: [Test1, Testout1, Testout2, Test2]
2017-04-17 11:56:20.481 [ERROR] [org.openhab.binding.mcp23017 ] - [org.openhab.binding.mcp23017.binding(8)] The removeBindingProvider method has thrown an exception
java.lang.NullPointerException
at com.pi4j.io.gpio.impl.GpioControllerImpl.unprovisionPin(GpioControllerImpl.java:916)
at org.openhab.binding.mcp23017.internal.MCP23017Binding.unBindGpioPin(MCP23017Binding.java:255)
at org.openhab.binding.mcp23017.internal.MCP23017Binding.removeBindingProvider(MCP23017Binding.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_121]
at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.inject.BaseMethod$NotResolved.invoke(BaseMethod.java:576)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.inject.BindMethod.invoke(BindMethod.java:655)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1837)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.DependencyManager.close(DependencyManager.java:1600)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.SingleComponentManager.disposeImplementationObject(SingleComponentManager.java:352)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.SingleComponentManager.deleteComponent(SingleComponentManager.java:152)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:813)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:787)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:579)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.disposeComponents(ConfigurableComponentHolder.java:706)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:523)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:452)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.Activator.access$300(Activator.java:54)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.scr.impl.Activator$ScrExtension.destroy(Activator.java:306)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.utils.extender.AbstractExtender$2.run(AbstractExtender.java:290)[32:org.apache.felix.scr:2.0.6]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.felix.utils.extender.AbstractExtender.destroyExtension(AbstractExtender.java:312)[32:org.apache.felix.scr:2.0.6]
at org.apache.felix.utils.extender.AbstractExtender.bundleChanged(AbstractExtender.java:186)[32:org.apache.felix.scr:2.0.6]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:902)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:165)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.Module.publishEvent(Module.java:466)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.Module.doStop(Module.java:624)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.Module.stop(Module.java:488)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.framework.EquinoxBundle.stop(EquinoxBundle.java:419)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.apache.karaf.bundle.command.Restart.doExecute(Restart.java:44)[38:org.apache.karaf.bundle.core:4.0.8]
at org.apache.karaf.bundle.command.BundlesCommand.execute(BundlesCommand.java:54)[38:org.apache.karaf.bundle.core:4.0.8]
at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:83)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:67)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:87)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:274)[55:org.apache.karaf.shell.core:4.0.8]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
2017-04-17 11:56:20.539 [DEBUG] [org.openhab.binding.mcp23017 ] - ServiceEvent UNREGISTERING - {org.openhab.model.item.binding.BindingConfigReader, org.openhab.binding.mcp23017.MCP23017BindingProvider}={component.name=org.openhab.binding.mcp23017.genericbindingprovider, component.id=9, service.id=122, service.bundleid=204, service.scope=bundle} - org.openhab.binding.mcp23017
2017-04-17 11:56:20.549 [DEBUG] [org.openhab.core.compat1x ] - ServiceEvent UNREGISTERING - {org.eclipse.smarthome.model.item.BindingConfigReader}={service.id=292, service.bundleid=184, service.scope=singleton} - org.openhab.core.compat1x
2017-04-17 11:56:20.563 [DEBUG] [org.openhab.binding.mcp23017 ] - BundleEvent STOPPED - org.openhab.binding.mcp23017
2017-04-17 11:56:20.567 [DEBUG] [org.openhab.binding.mcp23017 ] - BundleEvent STARTING - org.openhab.binding.mcp23017
2017-04-17 11:56:20.602 [DEBUG] [org.openhab.binding.mcp23017 ] - ServiceEvent REGISTERED - {org.openhab.model.item.binding.BindingConfigReader, org.openhab.binding.mcp23017.MCP23017BindingProvider}={component.name=org.openhab.binding.mcp23017.genericbindingprovider, component.id=195, service.id=331, service.bundleid=204, service.scope=bundle} - org.openhab.binding.mcp23017
2017-04-17 11:56:20.615 [DEBUG] [org.openhab.core.compat1x ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.model.item.BindingConfigReader}={service.id=332, service.bundleid=184, service.scope=singleton} - org.openhab.core.compat1x
2017-04-17 11:56:20.620 [DEBUG] [ernal.MCP23017GenericBindingProvider] - Process binding configuration in context mcp23017.items
2017-04-17 11:56:20.623 [DEBUG] [ernal.MCP23017GenericBindingProvider] - Process binding configuration in context mcp23017.items
2017-04-17 11:56:20.627 [DEBUG] [ernal.MCP23017GenericBindingProvider] - Process binding configuration in context mcp23017.items
2017-04-17 11:56:20.630 [DEBUG] [ernal.MCP23017GenericBindingProvider] - Process binding configuration in context mcp23017.items
2017-04-17 11:56:20.637 [DEBUG] [org.openhab.binding.mcp23017 ] - ServiceEvent REGISTERED - {org.osgi.service.event.EventHandler}={event.topics=openhab/*, component.name=org.openhab.binding.mcp23017.binding, component.id=194, service.id=333, service.bundleid=204, service.scope=bundle} - org.openhab.binding.mcp23017
2017-04-17 11:56:20.647 [DEBUG] [ng.mcp23017.internal.MCP23017Binding] - addBindingProvider: [Test1, Testout1, Testout2, Test2]
2017-04-17 11:56:20.651 [ERROR] [org.openhab.binding.mcp23017 ] - [org.openhab.binding.mcp23017.binding(194)] The addBindingProvider method has thrown an exception
java.lang.RuntimeException: Could not instantiate I2CBus
at com.pi4j.io.i2c.impl.I2CProviderImpl.getBus(I2CProviderImpl.java:74)
at com.pi4j.io.i2c.impl.I2CProviderImpl.getBus(I2CProviderImpl.java:112)
at com.pi4j.io.i2c.I2CFactory.getInstance(I2CFactory.java:76)
at com.pi4j.gpio.extension.mcp.MCP23017GpioProvider.<init>(MCP23017GpioProvider.java:113)
at com.pi4j.gpio.extension.mcp.MCP23017GpioProvider.<init>(MCP23017GpioProvider.java:108)
at org.openhab.binding.mcp23017.internal.MCP23017Binding.bindGpioPin(MCP23017Binding.java:222)
at org.openhab.binding.mcp23017.internal.MCP23017Binding.addBindingProvider(MCP23017Binding.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_121]
at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224)
.........
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)[55:org.apache.karaf.shell.core:4.0.8]
at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.run(ConsoleSessionImpl.java:274)[55:org.apache.karaf.shell.core:4.0.8]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
Caused by: java.io.IOException: Cannot open file handle for /dev/i2c-1 got -1 back.
at com.pi4j.io.i2c.impl.I2CBusImpl.open(I2CBusImpl.java:123)
at com.pi4j.io.i2c.impl.I2CProviderImpl.getBus(I2CProviderImpl.java:69)
... 111 more
2017-04-17 11:56:20.853 [DEBUG] [ng.mcp23017.internal.MCP23017Binding] - mcp23017 activated and properly configured 4121842
2017-04-17 11:56:20.853 [INFO ] [b.core.service.AbstractActiveService] - mcp23017 Refresh Service has been started
2017-04-17 11:56:20.860 [DEBUG] [org.openhab.binding.mcp23017 ] - BundleEvent STARTED - org.openhab.binding.mcp23017
So Still don’t know why…
Hmmm. Can you try 1.9.0 version of binding? Both versions use the same code base.
I mean to read anywhere, that 1.9.0 works nicely and 1.10.0 not.
EDIT: Found where i read it: Mcp23017
Alexander could you point to direct link for this addon?
Is there plan to deploy it with OH2 snapshot?
Previously I successfully used it with OH1.8 but now I would like to switch to OH2.
Hi @StNick,
Or take a look here: https://www.openhab.org/downloads.html
Section openHAB Runtime 1.x
There is already a PR for OH2 for this binding: https://github.com/openhab/openhab2-addons/pull/1961
Currenty i try to figure out how to write an generic I2C binding. This can be then extended then with another I2C devices.
Kind regards,
Alexander.
Thank you for quick reply. I’v just found 1.10 version on maven repo.
I have exactly the same proplem, as previous writer
I use OPENHABIAN distribution OH2
If I try to add user to gpio group it says:
BUT inspite of this fact - GPIO works!
Hi @StNick,
@jarek_bobek had the same problem: Mcp23017
Please try 1.9.0 version.
Kind regards,
Alexander
Looks like I have huge problems with this “OPENHABIAN”
First of all I need to check that I2C works.
If not, I will erase OPENHABIAN and will install manually RASPBIAN + OH2
@falkena
Ok, I made couple tweaks to proceed further.
So far I have such error
2017-04-22 20:25:40.106 [ERROR] [org.openhab.binding.mcp23017 ] - [org.openhab.binding.mcp23017.binding(5)] Error during instantiation of the implementation object
java.lang.NoClassDefFoundError: Could not initialize class com.pi4j.io.gpio.RaspiGpioProvider
at com.pi4j.platform.Platform.getGpioProvider(Platform.java:130)
at com.pi4j.platform.Platform.getGpioProvider(Platform.java:123)
at com.pi4j.io.gpio.GpioFactory.getDefaultProvider(GpioFactory.java:109)
at com.pi4j.io.gpio.impl.GpioControllerImpl.<init>(GpioControllerImpl.java:56)
at com.pi4j.io.gpio.GpioFactory.getInstance(GpioFactory.java:91)
at org.openhab.binding.mcp23017.internal.MCP23017Binding.<init>(MCP23017Binding.java:85)
at sun.reflect.GeneratedConstructorAccessor156.newInstance(Unknown Source)
But I see my device using this command…
sudo i2cdetect -y 1
What can be reason?
It seems, that binding can not find at least parts of embed Pi4J library. Details under:
Are you using 1.10 or 1.9 version of binding?
Kind regards,
Alexander
1.9 version,
what is the rules of resolving embed libs?
How to diagnose the root cause?
Can you plese send me via PM your log-file?
Yep, you suggested run this example, how to build it?
Have compilation errors
in my case module located here
[21:25:17] openhabian@openHABianPi:~/pi4j/pi4j/pi4j-example/src/main/java$ sudo find / -iname MCP23017GpioProvider*
/home/openhabian/pi4j/pi4j/pi4j-gpio-extension/src/main/java/com/pi4j/gpio/extension/mcp/MCP23017GpioProvider.java
Where can we find the 1.9 jar file ?
Here: https://www.openhab.org/downloads.html
Or see above:[quote=“falkena, post:25, topic:16123”]
Sure: https://bintray.com/openhab/mvn/download_file?file_path=org%2Fopenhab%2Fdistro%2Fopenhab%2F1.9.0%2Fopenhab-1.9.0-addons.zip
Or take a look here: https://www.openhab.org/downloads.html
Section openHAB Runtime 1.x
[/quote]
hi daniel
I have same error like you
Have you fixed it yet?
and how to fix it?
thanks you for Any your answer?
Hi all,
I’ve also faced such error
java.lang.RuntimeException: Could not instantiate I2CBus
This one and GPIO access issues were fixed by adding openhab user to GPIO and I2C groups:
sudo adduser openhab gpio
sudo adduser openhab i2c
To verify that commands take an action run such command:
pi@raspberrypi:~ $ sudo groups openhab
openhab : openhab i2c gpio
We can see groups i2c and gpio in the list.
By the way, this works both for verison 1.9 and version 1.11 of plugin.
Is there any update, I am new to OH Trying to build a all wired system.
If OH2 is not supporting I2C I’ll have to find something els