[SOLVED] [ERROR] [ore.common.registry.AbstractRegistry] - Cannot inform the listener "org.openhab.core.items.internal.ItemUIRegistryDelegate

  • Pi4 4GB
    • Hardware:PI$ 4GB
    • OS: Openhabian Install 2.5 refreshed today
    • Java Runtime Environment: whatever Openhabian Installed Zulu 8 I think
    • openHAB version:2.5
  • Issue of the topic: I have 3 garage openers based on 8266 chips and connected via HTTP binding.
    When any of the devices goes off the network Openhab logger repeats the following over and over until the device returns of OH ius restarted. Either stop the log error.

Is there a guide or some reccomendations how to determine where to start to understand messages that I dont find other post for similar issues?

I do not have a Things configured. The Item and sitemap config is as follows:

Switch GarageDoor3 "West Garage Door Status 3" <"">  
{http=">[ON:POST:http://192.168.1.50/device/activate]", autoupdate="false"}
String GarageDoor3Status "Current Position [%s]" <garagedoor> {http="<[http://192.168.1.50/device/status:2000:REGEX((.*?))]"
}
Switch GarageDoor2 "Middle Garage Door Status 2" <"">  
{http=">[ON:POST:http://192.168.1.10/device/activate]", autoupdate="false"}
String GarageDoor2Status "Current Position [%s]" <garagedoor> {http="<[http://192.168.1.10/device/status:2000:REGEX((.*?))]"
}
Switch GarageDoor1 "East GarageDoor Status 1" <"">  
{http=">[ON:POST:http://192.168.1.22/device/activate]", autoupdate="false"}
String GarageDoor1Status "Current Position [%s]" <garagedoor> {http="<[http://192.168.1.22/device/status:2000:REGEX((.*?))]"
}
//String GarageDoor1Status "Current Position [%s]" <GarageDoor1> {http="<[http://192.168.1.22/device/status:2000]"}

```csv
your code goes here

sitemap MainMenu label=“Main Menu”
{
Frame label=“Home”
{
Switch item=GarageDoor3 mappings=[ON=“Door”]
Text item=GarageDoor3Status
Switch item=GarageDoor2 mappings=[ON=“Door”]
Text item=GarageDoor2Status
Switch item=GarageDoor1 mappings=[ON=“Door”]
Text item=GarageDoor1Status
}
}

   * Rules code related to the issue

```csv
var Timer DGtimer = null

rule "GarageDoor1RecCmdON"
    when
        Item GarageDoor1 received command
    then
        logInfo("GarageDoor1", "Garage door 1 received command.")
        sendHttpGetRequest("http://192.168.1.22/device/status")
end        

rule "GarageDoor1OPEN_AJAR_15"
    when
        System started or
        Item GarageDoor1Status changed
    then
        if (GarageDoor1Status.state != "CLOSED") { 
            logInfo("Garage1DoorStatus", "State != CLOSED")
            DGtimer = createTimer(now.plusMinutes(15)) [|
                logInfo("Garage1DoorStatus", "Garage door 1 has been left AJAR or OPEN for 15 minutes!")
                sendBroadcastNotification("Garage door 1 has been left AJAR or OPEN for 15 minutes!")
            ]
        } else {
            logInfo("GarageDoor1Status", "State == CLOSED")
            if(DGtimer !== null) {
                DGtimer.cancel
                DGtimer = null
           }
        }
end
  • If logs where generated please post these here using code fences:
2020-02-24 22:54:14.493 [ERROR] [ore.common.registry.AbstractRegistry] - Cannot inform the listener "org.openhab.core.items.internal.ItemUIRegistryDelegate@1d5d8d0" about the "REMOVED" event: org/openhab/core/library/items/NumberItem

java.lang.NoClassDefFoundError: org/openhab/core/library/items/NumberItem

	at org.openhab.core.compat1x.internal.ItemMapper.mapToOpenHABItem(ItemMapper.java:50) ~[?:?]

	at org.openhab.core.items.internal.ItemUIRegistryDelegate.removed(ItemUIRegistryDelegate.java:128) ~[?:?]

	at org.openhab.core.items.internal.ItemUIRegistryDelegate.removed(ItemUIRegistryDelegate.java:1) ~[?:?]

	at org.eclipse.smarthome.core.common.registry.AbstractRegistry.notifyListeners(AbstractRegistry.java:349) ~[?:?]

	at org.eclipse.smarthome.core.common.registry.AbstractRegistry.notifyListenersAboutRemovedElement(AbstractRegistry.java:383) ~[?:?]

	at org.eclipse.smarthome.core.internal.items.ItemRegistryImpl.notifyListenersAboutRemovedElement(ItemRegistryImpl.java:373) ~[?:?]

	at org.eclipse.smarthome.core.internal.items.ItemRegistryImpl.notifyListenersAboutRemovedElement(ItemRegistryImpl.java:1) ~[?:?]

	at java.lang.Iterable.forEach(Iterable.java:75) [?:1.8.0_222]

	at org.eclipse.smarthome.core.common.registry.AbstractRegistry.removeProvider(AbstractRegistry.java:623) [bundleFile:?]

	at org.eclipse.smarthome.core.internal.items.ItemRegistryImpl.removeProvider(ItemRegistryImpl.java:416) [bundleFile:?]

	at org.eclipse.smarthome.core.common.registry.AbstractRegistry$ProviderTracker.removedService(AbstractRegistry.java:137) [bundleFile:?]

	at org.eclipse.smarthome.core.common.registry.AbstractRegistry$ProviderTracker.removedService(AbstractRegistry.java:1) [bundleFile:?]

	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:967) [osgi.core-6.0.0.jar:?]

	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:870) [osgi.core-6.0.0.jar:?]

	at org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:341) [osgi.core-6.0.0.jar:?]

	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:909) [osgi.core-6.0.0.jar:?]

	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:222) [org.eclipse.osgi-3.12.100.jar:?]

	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:927) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:892) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:135) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterService(AbstractComponentManager.java:969) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:823) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:805) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:584) [bundleFile:?]

	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.disposeComponents(ConfigurableComponentHolder.java:716) [bundleFile:?]

	at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:510) [bundleFile:?]

	at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:429) [bundleFile:?]

	at org.apache.felix.scr.impl.Activator.access$300(Activator.java:49) [bundleFile:?]

	at org.apache.felix.scr.impl.Activator$ScrExtension.destroy(Activator.java:292) [bundleFile:?]

	at org.apache.felix.scr.impl.AbstractExtender$1.run(AbstractExtender.java:216) [bundleFile:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_222]

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

	at org.apache.felix.scr.impl.AbstractExtender.destroyExtension(AbstractExtender.java:238) [bundleFile:?]

	at org.apache.felix.scr.impl.AbstractExtender.bundleChanged(AbstractExtender.java:132) [bundleFile:?]

	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.Module.doStop(Module.java:634) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.Module.stop(Module.java:498) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1675) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1594) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:270) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:147) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.Module.doStop(Module.java:636) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.Module.stop(Module.java:498) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202) [org.eclipse.osgi-3.12.100.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165) [org.eclipse.osgi-3.12.100.jar:?]

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

Thanks for any tips on how to debug such items or any reccomendations to resolve,

I’m not sure what the question here is. When the devices go offline OH can no longer connect to them over HTTP. So errors are to be expected.

Now this particular error though is an odd one. You don’t have any Number Items but apparently you used to? The error is saying that something about a problem that occurred when you removed one or more Number Items. And the error is coming from the compatability layer.

Look through your Items for anything that looks off with any Number Items. Then try clearing the cache.

I was looking for how to improve my skills at understanding the log messages or an answer for why this was happening. Clearing the cache resulted in a much easier to understand error message. I will make note to try the cache clearing option for future issues. I also recall that there are some log handling reccomendations or guidance that I need to read up on again and also realize I need a indicator for the device on/off line on the site map so time to learn a little coding for Openhab as so far I have only copied or tailored code from others projects. Oh well - I am sure I can find a project that included showing the device status!
Thanks for the prompt help!

2020-02-27 11:13:51.034 [INFO ] [rest.core.internal.item.ItemResource] - Received HTTP GET request at 'items/GarageDoor1' for the unknown item 'GarageDoor1'.

2020-02-27 11:13:51.542 [ERROR] [org.openhab.io.net.http.HttpUtil    ] - Fatal transport error: java.net.NoRouteToHostException: No route to host (Host unreachable)

Is this still a preferred way to HTTP to devices? I found a previous thread where you recomended using network binding linked switch to ping the device before the httt request.

I also like it better because I can also use the rule to change the door status to show offline in addition to Open/Closed/Ajar.

Thanks again

I don’t know if there is such a thing as a “preferred way”. It is a way to do it for sure.

But there is one thing that may not be clear about that example for you. It doesn’t ping the device before sending the request. In the background is periodically pings the device and sets a Switch Item to ON or OFF as appropriate. That Rule is just checking that Switch Item.