Aeotec Zwave Switch

Hi,

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?

Thanks.
Wes

Your device has 5 association groups and 15 parameters - it might be a challenge to find a volunteer … :slight_smile:

Thanks. I just saw it as a on/off switch that looked good and cheap.

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.

Great.

I bought like 10 of them. Hopefully this will work out. I also bought a thermostat. Certainly we need to check the bindings first.

Thanks.
Wes

It is probably a work in progress :wink:, 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)

Yes, it’s a work in progress… hoping to be done soon.

Update: Database entry completed.

The entry seems to be approved in the db. Does this mean one has to wait until this is merged into the OH stable version to become usable?

image

If you require stable then yes. However, it is in a zwave snapshot binding now. I also believe based on the timing it is in 3.4 milestone 5

I followed the steps mentioned in the [Z-Wave Binding] Updating ZWave DB to get new devices · Issue #1823 · openhab/org.openhab.binding.zwave · GitHub and now all my Things are gone, few are appearing in the inbox but seems like I’ll need to recover from backups. I have OH 3.3 and applied the org.openhab.binding.zwave-3.4.0-SNAPSHOT.jar so hopefully that wasn’t a mistake.

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) ~[?:?]

Wasn’t that step 1 :wink:

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.

ThingsAnimation

[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

Thanks a ton for work on this. I like the switches and I think others will too.

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.

  1. Illumino switch (node5) “Remove device from controller”
  2. Illumino switch (node5) “Delete Thing”
  3. Stop openhab.service
  4. Execute openhab-cli clean-cache
  5. Start openhab.service
  6. Install feature:install openhab-transport-serial via karaf console
  7. Copy org.openhab.binding.zwave-3.4.0-SNAPSHOT.jar into /srv/openhab-addons/
  8. Physically re-include the Illumino switch with my Aeotec Z-Stick Gen5 USB controller
  9. 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.
  10. 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
scene duplicates

PS- I was wrong above, it was not your adventures :wink:

I’ve removed the channel linked to the old SCENE_ACTIVATION command class.

2 Likes

Got the switch working as of commit Database update (#1824) · openhab/org.openhab.binding.zwave@d0fd9cd · GitHub

Thanks @chris and @apella12 for your assistance through this process.

1 Like