Just purchased a number of the Aeotec ZWA038 wall switch. After a day aftet having it scanned, Openhab still doesn’t know what it is. Looked today and it is not in the list of devices in the Zwave. Binding. I guess I should have looked first. Anyway, these switches are lowest price. I have no skill at adding the device. Should I return these or wait until someone adds the device?
I also purchased this Aeotec Illumino wall switch (ZWA038) and after spending a few hours with the 3-way circuit got it installed just to find out that it’s not included in the Zwave binding database (lesson learned should have checked first). So I started reading up and see that there is a process to get it added. I was hopeful that with the device XML file I could upload and get it added to the device database https://www.opensmarthouse.org/zwavedatabase and be good to go thereafter but the comments by @anon71759204 hint that there is more work required beyond adding to the database. At this point I have crated my login and am waiting for permissions to edit the database. I’ll update here if I make any progress.
It is probably a work in progress , but what @anon71759204 was referring to are the parameter and Association tabs that require manual input based on the device manual (those are not added at the time I wrote this)
Needless to say that should not have happened. I’m running one system with that exact same snapshot. Is there anything in the logs to indicate an issue? There are three info level lines with the zwave binding.
2022-11-27 16:53:11.710 [INFO ] [zwave.handler.ZWaveControllerHandler] - Attempting to add listener when controller is null
2022-11-27 16:53:19.562 [INFO ] [ve.internal.protocol.ZWaveController] - Starting ZWave controller
2022-11-27 16:53:19.566 [INFO ] [ve.internal.protocol.ZWaveController] - ZWave timeout is set to 5000ms. Soft reset is false.
I am starting to thing the problem was caused by me copying the file over to /srv/openhab-addons before removing the binding via the UI? I decided to roll back the change by removing the .jar file and uninstalling the openhab-transport-serial feature and after restarting I am seeing the second error message below.
Here are the relevant logs:
[WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/usr/share/openhab/addons/org.openhab.binding.zwave-3.4.0-SNAPSHOT.jar
[WARN ] [core.thing.internal.ThingManagerImpl] - Initializing handler for thing 'zwave:device:fca672dfa4:node5' takes more than 5000ms.
[ERROR] [nternal.DiscoveryServiceRegistryImpl] - Cannot notify the DiscoveryListener 'org.openhab.core.config.discovery.internal.PersistentInbox' on Thing discovered event!
After roll-back:
[ERROR] [ore.thing.internal.ThingRegistryImpl] - bundle org.openhab.core.thing:3.3.0 (210)[org.openhab.core.thing.internal.ThingRegistryImpl(246)] : The deactivate method has thrown an exception
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Duplicate channels zwave:device:fca672dfa4:node5:scene_number
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?]
The second set looks like something related to the core. I don’t have a lot of ideas except to clean-cache and restart. You can check what is running in the console bundle:list and look for duplicates
I recovered my system from backup so it’s good to know the Amanda tutorial is solid! Then I followed the steps in the correct sequence with slightly different outcome but still not working smoothly.
java.lang.IllegalArgumentException: Duplicate channels zwave:device:fca672dfa4:node5:scene_number
at org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.deviceAdded(ZWaveDiscoveryService.java:234) [bundleFile:?]
at org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.ZWaveIncomingEvent(ZWaveDiscoveryService.java:257) [bundleFile:?]
at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:588) [bundleFile:?]
at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInitNodeThread.run(ZWaveController.java:494) [bundleFile:?]
Looking at my settings I see that my Things exist but when I try to go to the Things page I get the animated “please wait while we render the page” effect.
[ERROR] [rg.apache.cxf.jaxrs.utils.JAXRSUtils] - Problem with writing the data, class org.openhab.core.io.rest.Stream2JSONInputStream, ContentType: application/json
[ERROR] [internal.JSONResponseExceptionMapper] - Unexpected exception occurred while processing REST request.
java.lang.IllegalArgumentException: Duplicate channels zwave:device:fca672dfa4:node5:scene_number
at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:152) ~[?:?]
at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:144) ~[?:?]
at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:140) ~[?:?]
at org.openhab.core.thing.binding.builder.ThingBuilder.withChannel(ThingBuilder.java:75) ~[?:?]
at org.openhab.core.thing.util.ThingHelper.merge(ThingHelper.java:216) ~[?:?]
at org.openhab.core.thing.dto.ThingDTOMapper.map(ThingDTOMapper.java:77) ~[?:?]
at org.openhab.core.thing.ManagedThingProvider.toElement(ManagedThingProvider.java:58) ~[?:?]
at org.openhab.core.thing.ManagedThingProvider.toElement(ManagedThingProvider.java:1) ~[?:?]
at org.openhab.core.common.registry.AbstractManagedProvider.getElement(AbstractManagedProvider.java:85) ~[?:?]
at org.openhab.core.common.registry.AbstractManagedProvider.get(AbstractManagedProvider.java:79) ~[?:?]
at org.openhab.core.io.rest.core.internal.thing.ThingResource.convertToEnrichedThingDTO(ThingResource.java:735) ~[?:?]
at org.openhab.core.io.rest.core.internal.thing.ThingResource.lambda$0(ThingResource.java:298) ~[?:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
at java.util.HashMap$KeySpliterator.tryAdvance(HashMap.java:1642) ~[?:?]
<cut>
Anyway, thanks for the suggestions. I’m going to restore from backup again then let this sit for a bit while I decide what I’m going to do next.
Not being an expert I usually just extract what I can understand from the error messages. In this case it is
Somehow through your adventures a duplicate channel was created. I don’t know if your tried to delete the cache & this message still appeared. If yes you could try to delete via the karaf console openhab:links or get rid of node 5 entirety openhab:things
I am able to get the org.openhab.binding.zwave-3.4.0-SNAPSHOT.jar binding installed without errors now. However, when the new zwave thing appears in my inbox and I attempt to add it as a new thing I get this error:
[ERROR] [ore.internal.discovery.InboxResource] - Thing zwave:device:fca672dfa4:node5 unable to be approved: Duplicate channels zwave:device:fca672dfa4:node5:scene_number
Here are the steps I am following. My “recovered” state from backups includes the new Illumino switch (node5) so my initial steps include removing it from the binding.
Illumino switch (node5) “Remove device from controller”
Illumino switch (node5) “Delete Thing”
Stop openhab.service
Execute openhab-cli clean-cache
Start openhab.service
Install feature:install openhab-transport-serial via karaf console
Copy org.openhab.binding.zwave-3.4.0-SNAPSHOT.jar into /srv/openhab-addons/
Physically re-include the Illumino switch with my Aeotec Z-Stick Gen5 USB controller
By the time I get back to my desk the new item is waiting in the “Inbox” Added new thing 'zwave:device:fca672dfa4:node5' to inbox.
Clicking through the UI to add new thing generates the error that I’m running into: [ERROR] [ore.internal.discovery.InboxResource] - Thing zwave:device:fca672dfa4:node5 unable to be approved: Duplicate channels zwave:device:fca672dfa4:node5:scene_number
Somewhere that “duplicate channel” is hanging around after removing node5 and clearing the cache. I suspect that a fresh install would have no problems so my situation is an edge case where an unknown z-wave device is added and the artifacts are created within OH internals.
Ok I see it. it is a DB issue, so you will not be able to fix from your end. Something needs to be change between these two endpoints. Maybe delete one? edit: AFAIK only @chris can delete, so maybe change one to something like basic_number?? I’m not sure without the device manual