Issues getting the Z-Wave Driver module up and running

Hello all,

I am running into an issue when trying to set up the Z-Wave Driver module. I am following the steps listed in the readme, though I substituted the suggested /dev/ttyACM0 for /dev/ttyUSB0, since that appears to be the serial port that my stick is using (I am using the Aeotec Z-Stick Gen 7). All I ever get is an error message in the logs that Ignition is unable to open the serial port. I have tried the suggested port of /dev/ttyACM0 instead (though I don’t see how it could use that port, since it is not listed in the /dev/ directory) and I get the same result.

I am running the 8.1.15 stable release on Ubuntu 20.04 and the Z-Wave Driver module version is 1.0.0 (b2021020108). Ubuntu is installed directly on my hardware, not in a VM, so all the hardware ports should be directly accessible.

Any suggestions on what might be going on are greatly appreciated! Here’s the error from my gateway logs:

org.imdc.zwavedriver.zwave.PortException: Failed opening serial port '/dev/ttyUSB0'
at org.imdc.zwavedriver.zwave.ZWaveRawSerialPort.(
at org.imdc.zwavedriver.zwave.ZWaveRawSerialPort.(
at org.imdc.zwavedriver.zwave.ZWaveSerialPort.(
at org.imdc.zwavedriver.gateway.ZWaveMessages.startup(
at org.imdc.zwavedriver.gateway.ZWaveExecutor.startup(
at org.imdc.zwavedriver.gateway.GatewayHook.reloadConfig(
at org.imdc.zwavedriver.gateway.GatewayHook.recordUpdated(
at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.notifyRecordUpdated(
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl.doNotifyRecordUpdated(
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.recordUpdated(
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateMessage.notify(
at com.inductiveautomation.ignition.gateway.redundancy.RedundantPersistenceInterfaceImpl$RecordUpdateListener.receiveCall(
at com.inductiveautomation.ignition.gateway.redundancy.QueueableMessageReceiver.receiveCall(
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.dispatchMessage(
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl$
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$
at java.base/java.util.concurrent.Executors$ Source)
at java.base/ Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$ Source)
at java.base/ Source)

Whatever user Ignition is running as may not have permission to open the serial port.

Once you figure out what user it’s running under, try adding it the dialout group:

sudo usermod -a -G dialout $USER

(substitute $USER with the actual username Ignition runs as, or you’ll end up with your username)

That user has to log out and log in again before it takes effect, so if you’re running Ignition as a service maybe just restart.

1 Like

Thanks, that was quick fix!

Just a FYI, I have taken down the ZWave Driver for Ignition project from Github as there are much better tools to use these days. For example, you can use the ZWave to MQTT project:

1 Like