NAD A/V Receiver Binding [4.0.0;4.2.0)

P.S. after removing the thing CPU is back to 50…60% but stays ~50% even after the binding is uninstalled. CPU backs to normal just after the openhab is restarted.

Well, that doesn’t sound good. The binding is created for OH 3.3 so I will need to create a version for 3.4.4 and 4.0 and see if that helps. Will post a link once that is done. Will need to wait till I get my NAD receiver back.

What NAD device are you connecting to the binding?

Actually it used to work on 3.4.4 and previous 3.x.x versions with this model T778.

I have not made any changes to the code in the past 9 months. Not sure what could be causing the issue for you if it was working on 3.x versions. Since you’re running a windows machine, what OS are you on Windows 11/10 Standard/Pro?

I’ve been running this on an RPI with no issues…

It is on Debian Bullseye.

Can you provide more detail on how you installed Openhab on your Debian system. For instance, did you use a package tool like APT or the Openhabian config tool? Any specific config changes that may not be typical. Which Java platform are you running. I’ll try to set up a VM with a similar config to test with…

FYI and still waiting to get my NAD AVR repaired :frowning: so it may be a while yet till I can test things out…

I did use openhanded-config tool to install the OH. Nothing special or different from the usual setup. It was a clean install. The plugin used to work, however after upgrade to 4.0.0 M5. it just stopped.

About the Java:
openhabian@openhabian:~$ java -version
openjdk version “17.0.8” 2023-07-18 LTS
OpenJDK Runtime Environment Zulu17.44+15-CA (build 17.0.8+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.44+15-CA (build 17.0.8+7-LTS, mixed mode, sharing)

The java error thrown in the log:

2023-08-07 13:37:43.874 [WARN ] [org.eclipse.jetty.server.HttpChannel] - /rest/things

org.apache.cxf.interceptor.Fault: ‘void org.openhab.core.library.types.DecimalType.(java.math.BigDecimal)’

at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162) ~[?:?]

at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128) ~[?:?]

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[?:?]

at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[?:?]

at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[?:?]

at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[?:?]

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[?:?]

at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[?:?]

at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[?:?]

at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[?:?]

at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[?:?]

at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[?:?]

at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[?:?]

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298) ~[?:?]

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:217) ~[?:?]

at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) ~[bundleFile:4.0.4]

at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273) ~[?:?]

at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedServlet.service(OsgiInitializedServlet.java:102) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[?:?]

at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) ~[?:?]

at org.ops4j.pax.web.service.spi.servlet.OsgiFilterChain.doFilter(OsgiFilterChain.java:100) ~[?:?]

at org.ops4j.pax.web.service.jetty.internal.PaxWebServletHandler.doHandle(PaxWebServletHandler.java:310) ~[?:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[?:?]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[?:?]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[?:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[?:?]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[?:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[?:?]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[?:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[?:?]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[?:?]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[?:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[?:?]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[?:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[?:?]

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234) ~[?:?]

at org.ops4j.pax.web.service.jetty.internal.PrioritizedHandlerCollection.handle(PrioritizedHandlerCollection.java:96) ~[?:?]

at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:722) ~[?:?]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[?:?]

at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[?:?]

at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[?:?]

at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) ~[?:?]

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) ~[?:?]

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[?:?]

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]

at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[bundleFile:9.4.50.v20221201]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[bundleFile:9.4.50.v20221201]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[bundleFile:9.4.50.v20221201]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[bundleFile:9.4.50.v20221201]

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) ~[bundleFile:9.4.50.v20221201]

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[bundleFile:9.4.50.v20221201]

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[bundleFile:9.4.50.v20221201]

at java.lang.Thread.run(Thread.java:833) ~[?:?]

Caused by: java.lang.NoSuchMethodError: ‘void org.openhab.core.library.types.DecimalType.(java.math.BigDecimal)’

at org.openhab.binding.nadavr.internal.state.NadAvrState.<init>(NadAvrState.java:66) ~[?:?]

at org.openhab.binding.nadavr.internal.connector.NadConnector.<init>(NadConnector.java:72) ~[?:?]

at org.openhab.binding.nadavr.internal.connector.NadIpConnector.<init>(NadIpConnector.java:53) ~[?:?]

at org.openhab.binding.nadavr.internal.handler.NadAvrHandler.<init>(NadAvrHandler.java:83) ~[?:?]

at org.openhab.binding.nadavr.internal.factory.NadAvrHandlerFactory.createHandler(NadAvrHandlerFactory.java:62) ~[?:?]

at org.openhab.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:129) ~[?:?]

at org.openhab.core.thing.internal.ThingManagerImpl.doRegisterHandler(ThingManagerImpl.java:530) ~[?:?]

at org.openhab.core.thing.internal.ThingManagerImpl.registerHandler(ThingManagerImpl.java:511) ~[?:?]

at org.openhab.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:926) ~[?:?]

at org.openhab.core.thing.internal.ThingManagerImpl.thingAdded(ThingManagerImpl.java:358) ~[?:?]

at org.openhab.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:213) ~[?:?]

at org.openhab.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:132) ~[?:?]

at org.openhab.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:1) ~[?:?]

at org.openhab.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:175) ~[?:?]

at org.openhab.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:1) ~[?:?]

at org.openhab.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:60) ~[?:?]

at org.openhab.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:79) ~[?:?]

at org.openhab.core.common.registry.AbstractProvider.notifyListenersAboutAddedElement(AbstractProvider.java:83) ~[?:?]

at org.openhab.core.common.registry.AbstractManagedProvider.add(AbstractManagedProvider.java:67) ~[?:?]

at org.openhab.core.common.registry.AbstractRegistry.add(AbstractRegistry.java:354) ~[?:?]

at org.openhab.core.io.rest.core.internal.thing.ThingResource.create(ThingResource.java:300) ~[?:?]

at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]

at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]

at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]

at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[?:?]

at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[?:?]

... 53 more

Same error on my build…

@DenDeXTeR51, @rlratchev I had to officially declare my NAD T787 dead - was unable to get it repaired. The good news is that I ended up trading it in on a T-778 and a C427 AM/FM Tuner (yes, I still use a tuner vs streaming for local stations).

I’ve been busy updating the binding to support these two models, and have an updated version included in the marketplace for both v4.0 and v3.0. I should be able to troubleshoot any issues folks discover.

These can be downloaded using the marketplace and installing from there. I would recommend you un-install the current binding first, then install it via the Marketplace.

Specifically, for v4.0 the binding was built with v4.0.4 and for v3.0 the binding was built with v3.4.6.

I also have this binding working with a v4.1.0 system.

The C427 is using a Serial to IP connection via a USR-TCP232-302 TCP server. If anyone needs help understanding how to use this to connect to an NAD AVR with a serial port, I’d be happy to share how I configured and set this up.

FYI: There are now two Marketplace posts - this one for V4.0 and another one for v3.0. This approach seems to be best way to allow folks to use the Marketplace to install this binding.

1 Like

Hi Dave, thank you very much for this update!

1 Like