Troubleshooting zwave

Hi.

I am new.

I am to the point where I installed the controller on a Raspberry Pi 3 and linked it to a designer account. I am able to create panels with UI elements, sync them up to my controller, and view the panels with the Android app. All is well and good with this, as far as I can tell. I do get a constant and recurring "Unable to retrieve controller identity, retrying in 1,000 milliseconds" but I'm ignoring that for now.

My next step is discovering my already-paired z-wave devices. I have an Aeon Labs Z-Wave Z-Stick Gen5, which when I plug into my Raspberry Pi running Jessie, I see two new entries under /dev:

/dev/serial
/dev/ttyACM0

I do not see anything whose name resembles anything with USB.

lsusb:

Bus 001 Device 004: ID 0658:0200 Sigma Designs, Inc. << **** This appears when the stick is plugged in
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

When I try, on the designer, "config for controller" -> z-wave and enter in /dev/ttyACM0, it accepts this but I still do not see any devices when I go device -> new -> discovered devices wizard. Should I be seeing devices here?

I recall instructions for copying over a natively installed librxtxserial.so over to webapps/controller/WEB-INF/lib/native when I previously had version 2.1.0 installed, but I do not see a native directory here with 2.5.0. Should there be one? I created this directory and copied the files over anyway.

My logs/zwave/zwave.log files shows just multiple instances of this:

INFO 2016-06-16 04:37:09,906 (Z-Wave):

Hi.

I did end up following these instructions by Rainer Hitz:

Here are a few steps to make sure that the serial port in combination with OpenRemote Controller 2.0.X is running on Linux:

Update RXTX

sudo apt-get install librxtx-java

cp /usr/lib/jni/librxtxSerial.so [path to OpenRemote Controller]/\

OpenRemote-Controller-2.0.2/webapps/controller/WEB-INF/lib/native/librxtxSerial.so

Check if user is part of dialout group

id

Add user to dialout group

sudo usermod -a -G dialout username

Make sure the serial port is recognized by RXTX library

export JAVA_OPTS=-Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0

But I still get the same results. Anyone have any ideas?

Thanks!

I think my problem boils down to the fact that I never get a /dev/ttyUSB0 when I plug in the Aeon Labs Z-Wave Stick Gen5. Like I said I only get:

/dev/ttyAMC0
/dev/ttyAMA0

Both of which, when specified as the zwave.comPort in controller.xml get me:

gnu.io.NoSuchPortException
        at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:269)
        at org.openremote.controller.protocol.zwave.ZWaveGatewayRxtx$ZWaveConnectionThread.run(ZWaveGatewayRxtx.java:108)

Again, any troubleshooting tips whatsoever would be appreciated. Thanks!

Note that the following instructions are only needed if a razberryZ-Wave module (/dev/ttyAMA0) is attached to the GPIO pins (disabling the serial console is __not__ needed for USB Z-Wave interfaces).

On the Raspberry Pi you have to deactivate the serial console:

Raspbian wheezy (see https://github.com/lurch/rpi-serial-console) :

sudo wget https://raw.githubusercontent.com/lurch/rpi-serial-console/master/rpi-serial-console

rpi-serial-console status

sudo rpi-serial-console disable

Note that this script doesn’t work on Raspbian jessie. I think it should also be possible to deactivate the serial console by means of raspi-config (see Raspbian jessie).

Raspbian jessie :

Thanks!

I disabled the serial port in raspi-config as described, and rebooted the device.

I've tried all of /dev/ttyAMA0, /dev/ttyACM0, /dev/serial1, /dev/serial/by-id/usb-0658_0200-if00 for the zwave.comPort in controller.xml and also somewhere buried in building_modeler.xml. Unfortunately I still get:

gnu.io.NoSuchPortException
        at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:269)
        at org.openremote.controller.protocol.zwave.ZWaveGatewayRxtx$ZWaveConnectionThread.run(ZWaveGatewayRxtx.java:108)

Am I supposed to go through the instructions at http://www.openremote.org/display/forums/New+Z-Wave+2.0.0+Release and add one switch and one sensor? I tried doing that, not sure if I did it right. Seems to be I should not be getting this error otherwise.

You can detect which serial device was assigned after you’ve plugged in the USB stick with the following command :

dmesg | grep USB

cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device

After that you have to adjust the JAVA_OPTS variable :

export JAVA_OPTS=-Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0

I just want to make sure that all settings are consistent.

Yep, OK.

I show:

cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device

along with a bunch of others:

dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
hub 1-0:1.0: USB hub found
usbhid: USB HID core driver
usb 1-1: new high-speed USB device number 2 using dwc_otg
usb 1-1: New USB device found, idVendor=0424, idProduct=9514
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 1-1:1.0: USB hub found
usb 1-1.1: new high-speed USB device number 3 using dwc_otg
usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:e6:27:08
usb 1-1.3: new full-speed USB device number 4 using dwc_otg
usb 1-1.3: New USB device found, idVendor=0658, idProduct=0200
usb 1-1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

I think the USB you’re seeing is showing the device is being found - but there’s another driver that enables its use via Serial.

There’s a driver I had to load mentioned here http://www.openremote.org/pages/viewpage.action?pageId=22882425 before it would show up as ttyUSB0

usbserial.ko is the name - try following the instructions to get it loaded up and see if you get the ttyUSB0

Ok, thanks! That looks promising, and would make sense. I'll have to give that a shot when I can find the time.

I read through that first link and then a few other links down from that. What I gathered was to install usbserial.ko and cp210x.ko. I found these in a few places on my system but the only ones that worked with insmod were in /lib/modules/4.4.13-v7+/kernel/drivers/usb/serial. The others just returned a “bad module” type of error.

Anyway, I an insmod on these and rebooted but everything still looks the same. I get no /dev/ttyUSB0 or anything that looks like that.

Another link (http://www.openremote.org/pages/viewpage.action?pageId=23592977&focusedCommentId=23593011#comment-23593011) shows some horrifically painfully in-depth material on how to get usb/serial/openremote built and running on QNAP. Is this really the path that I need to go down? I didn’t see any mention of anything of this sort on any of the install-openremote-on-raspberry-pi pages here.

Anyone got any further ideas on how to troubleshoot? Do you want to ssh into my box to take a peek?

I’ve verified that the serial port communication works with the current OpenRemote controller and Raspberry Pi Raspbian version.

System:

Raspberry Pi 3

Raspbian Jessie (Version May 2016)

OpenRemote controller 2.5.0

Aeon Labs Z-Stick GEN5

If you want to install OpenRemote controller 2.5.0 see https://github.com/openremote/Controller/releases/download/v2.5.0/OpenRemote_Controller.zip and http://www.openremote.com/professional-designer

Here’s what I did:

1.) Copied OpenRemote controller to the Raspberry Pi
2.) Plugged in the USB stick
3.) Adjusted the Z-Wave serial port setting in the OpenRemote designer --> /dev/ttyACM0

Note that no other configuration steps were necessary. Serial port configuration has been simplified with the new OpenRemote controller version 2.5.0 because the serial Java library RXTX has been replaced by nrjavaserial.

Ok. This is good news, thanks for the info! I have been using OpenRemote "Pro" 1.4.x or something like that because that is what I thought I had to use with a "pro" designer account or whatever. I'll have to try 2.5.0 and see if it works.

Thanks!

Hi Rainer,

can you confirm that the value for the zwave.commLayer will still remain RXTX (in the light of what you have mentioned about 2.5 using nrjavaserial library instead of the RXTX)? There are only 2 options available for this setting: RXTX or PAD

i can get the Zstick Gen 5 to work on windows machine with 2.5 controller but still having the same problem on Ubuntu. The error I get is (i have confirmed the Zstick shows up as ttyACM0 by dmesg):

OpenRemote Z-Wave protocol version : ‘3.0.0’

ERROR 2016-06-26 08:05:30,500 (Z-Wave): Serial_Port_RXTX : Failed to configure the serial port [Name: ‘/dev/ttyACM0’, Communication Layer: RXTX] because it does not exist.
ERROR 2016-06-26 08:05:30,503 (Z-Wave): Serial_Port : Failed to open the serial port [COM port: /dev/ttyACM0, Communication Layer: RXTX].

Yes RXTX is still the correct setting for zwave.commLayer because nrjavaserial is a fork of RXTX.

On Ubuntu you have to make sure that the user is part of the dialout group otherwise you’ll encounter serial port access rights problems.

Check if user is part of dialout group

id

Add user to dialout group

sudo usermod -a -G dialout

Replace with your Ubuntu account username.

Ok, so I switched over to OpenRemote controller 2.5.0 and I do believe I am seeing communciation to and from my Z-Stick GEN5. Thanks!

I am learning the rest of the system at a user-level to understand how to put together some simple devices/switches/sensors and will be testing that out later. I feel this will likely work, I see lots of good stuff in the zwave log and whatnot (though I am not at home so I can’t actually see my lights turn on and off!).

I do have a question about the “Discovered Devices Wizard” on the designer. How is this supposed to work? Should it report back the devices that my stick finds? I currently see an empty list, and I don’t see any interaction to and from my controller (at least, I don’t see any log entries).

Thanks for all your time!

Thanks I will give this a try on Ubuntu.

It works almost out of the box on the Rasberry Pi like you have mentioned without any additional configuration.

Unfortunately the “Discovered Devices Wizard” doesn’t work anymore in the OpenRemote controller 2.5.0 release.

A file is generated for each discovered device in the /webapps/controller/zwave directory. Currently you have to edit theses files manually in order to configure the discovered devices and also figure out which commands are supported (see http://www.openremote.org/display/forums/New+Z-Wave+2.0.0+Release).

Note that extended Z-Wave device discovery is on our roadmap for an upcoming 3.0 release. We’ll implement an extended Z-Wave device database that will simplify Z-Wave device configuration. In most cases it will be no longer necessary to configure Z-Wave associations and parameters manually. With the help of the Z-Wave device database it will be possible to configure the device automatically with meaningful settings after it has been included to the network. In addition all commands will be created automatically.