[SOLVED] MCP23017 Binding - general

Hello community,

I just started a few weeks ago with setting up openhabian (openHAB 2.5.2-1 (Release Build)) on my raspberry pi 4 and it seems to work fine. After that I installed the MCP23017-Binding with the main goal to switch relays on and of.

  1. My first step was to build a test setup (including relays, opt couplers, button) etc. which work perfect just using Python. So far, so good => Next step.
  2. I installed wiringpi and the MCP23017 binding.
  3. I build the following side map:
sitemap testsetup label="Testsetup" {
    Frame label="Testsetup" {
        Switch item=living_room_led_switch //mappings = ["ON"="ON", "OFF"="OFF"]
    }
}
  1. I build the following thing based on the official readme for the binding:
Thing mcp23017:mcp23017:chipA  "MCP23017 chip A" [address=20,bus=1] {
    Type output_pin : output#A0 [default_state="LOW", active_low="y"]

    Type input_pin : input#B0 [pull_mode="OFF"]
}
  1. I build the following items (also based on the official readme):
Switch living_room_led_switch "Living room LED switch"  {channel="mcp23017:mcp23017:chipA:output#A0"}
Contact living_room_led_contact "Living room LED contact"  {channel="mcp23017:mcp23017:chipA:input#B0"}
  1. Last but not least I implemented the following rule which is also based on the official readme:
rule "living_room_led contact"
when
    Item living_room_led_contact changed to OPEN
then
    living_room_led_switch.sendCommand(living_room_led_switch.state != ON ? ON : OFF)
end

Unfortunately it did not work. I got a switch which I can use on basic ui but nothing happens. As it works in python I think I’ve made some other mistake. It would be great, if someone could help me with it even if it is a good link with a longer readme than the official one.

Thanks a lot and best regards
BrainPain

Hello there,

is anything missing in my explanation?

Best regards
BrainPain

Hey, it is me again,

still trying to figure out what is going on. I searched for a solution and tryed:
https://community.openhab.org/t/solved-mcp23017-binding-does-not-work/87867

After I reboot everything I still get the following log:

2020-03-04 20:22:50.400 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.mcp23017.handler.Mcp23017Handler@1d6e0e9': null

java.lang.NullPointerException: null

	at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionPin(GpioControllerImpl.java:545) ~[?:?]

	at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:717) ~[?:?]

	at org.openhab.binding.mcp23017.handler.Mcp23017PinStateHolder.initializeOutputPin(Mcp23017PinStateHolder.java:71) ~[?:?]

	at org.openhab.binding.mcp23017.handler.Mcp23017PinStateHolder.getOutputPin(Mcp23017PinStateHolder.java:59) ~[?:?]

	at org.openhab.binding.mcp23017.handler.Mcp23017Handler.handleOutputCommand(Mcp23017Handler.java:108) ~[?:?]

	at org.openhab.binding.mcp23017.handler.Mcp23017Handler.handleCommand(Mcp23017Handler.java:80) ~[?:?]

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]

	at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [bundleFile:?]

	at com.sun.proxy.$Proxy143.handleCommand(Unknown Source) [?:?]

	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:74) [bundleFile:?]

	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:48) [bundleFile:?]

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]

	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_222]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

==> /var/log/openhab2/events.log <==

2020-03-04 20:22:50.426 [vent.ItemStateChangedEvent] - living_room_led_switch changed from OFF to ON

==> /var/log/openhab2/openhab.log <==

2020-03-04 20:25:43.446 [WARN ] [sitemap.internal.SitemapProviderImpl] - Filename `Testsetup.sitemap` does not match the name `testsetup` of the sitemap - please fix this as you might see unexpected behavior otherwise.

I don’t understand what to do. Please can anybody help me?

Thanks and regards
Michael

Solved by uninstalling the binding and installing it again via. Paper UI.

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.