This page last changed on Feb 21, 2014 by sejtam.

I just installed OpenRemote-2.1.0-2014-06-17 on a Rhel VM..

My Aeon Stick seems to get recognized just fine:

uhci_hcd 0000:02:01.0: enabling device (0000 -> 0001)
uhci_hcd 0000:02:01.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
uhci_hcd 0000:02:01.0: UHCI Host Controller
uhci_hcd 0000:02:01.0: new USB bus registered, assigned bus number 2
uhci_hcd 0000:02:01.0: irq 19, io base 0x00002000
usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: UHCI Host Controller
usb usb2: Manufacturer: Linux 2.6.32-358.el6.x86_64 uhci_hcd
usb usb2: SerialNumber: 0000:02:01.0
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usb 2-1: new full speed USB device number 2 using uhci_hcd
usb 2-1: New USB device found, idVendor=0e0f, idProduct=0003
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1: Product: VMware Virtual USB Mouse
usb 2-1: Manufacturer: VMware
usb 2-1: configuration #1 chosen from 1 choice
input: VMware VMware Virtual USB Mouse as /devices/pci0000:00/0000:00:11.0/0000:02:01.0/usb2/2-1/2-1:1.0/input/input4
generic-usb 0003:0E0F:0003.0001: input,hidraw0: USB HID v1.10 Mouse VMware VMware Virtual USB Mouse on usb-0000:02:01.0-1/input0
input: VMware VMware Virtual USB Mouse as /devices/pci0000:00/0000:00:11.0/0000:02:01.0/usb2/2-1/2-1:1.1/input/input5
generic-usb 0003:0E0F:0003.0002: input,hidraw1: USB HID v1.10 Mouse VMware VMware Virtual USB Mouse on usb-0000:02:01.0-1/input1
usb 2-2: new full speed USB device number 3 using uhci_hcd
usb 2-2: New USB device found, idVendor=0e0f, idProduct=0002
usb 2-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 2-2: Product: VMware Virtual USB Hub
usb 2-2: configuration #1 chosen from 1 choice
hub 2-2:1.0: USB hub found
hub 2-2:1.0: 7 ports detected
usb 2-2.1: new full speed USB device number 4 using uhci_hcd
usb 2-2.1: New USB device found, idVendor=10c4, idProduct=ea60
usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-2.1: Product: CP2102 USB to UART Bridge Controller
usb 2-2.1: Manufacturer: Silicon Labs
usb 2-2.1: SerialNumber: 0001
usb 2-2.1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp210x
cp210x 2-2.1:1.0: cp210x converter detected
usb 2-2.1: reset full speed USB device number 4 using uhci_hcd
usb 2-2.1: cp210x converter now attached to ttyUSB0
usbcore: registered new interface driver cp210x
cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver
ip_tables: (C) 2000-2006 Netfilter Core Team

OpenRemote starts up with:

--------------------------------------------------------------------

DEPLOYING NEW CONTROLLER RUNTIME...

--------------------------------------------------------------------

INFO 2014-02-21 12:14:15,563 : No rule definitions found in '/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/rules'.
INFO 2014-02-21 12:14:15,563 : Initialized event processor : Drools Rule Engine
INFO 2014-02-21 12:14:15,574 : Initialized event processor : RRD4J Data Logger
INFO 2014-02-21 12:14:15,574 : Initialized event processor : EmonCMS Data Logger
INFO 2014-02-21 12:14:15,576 : Startup complete.

I have the zwave.jar file installed:

/opt/OpenRemote-Controller/webapps/controller/WEB-INF/lib
..
rw-rr- 1 root root 21857 Jun 17 2013 zmq.jar
rw-rr- 1 root root 46972 Jun 17 2013 zwave.jar
rw-rr- 1 root root 1643 Jun 17 2013 zwave.jar.orig

  1. cd /opt
  2. ls -l
    lrwxrwxrwx 1 root root 47 Feb 21 10:41 OpenRemote-Controller -> OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17
    drwxr-xr-x 10 root root 4096 Feb 21 10:44 OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17

I can apparently sync my crontroller just fine (at least it report success, and any panel
I create shows up on my webpanel)

Yet the zwave.log and zwave-debug.log files show no activity
with the Aeon stick:

DEBUG 2014-02-21 11:39:17,933 (Z-Wave): Building Z-Wave command
DEBUG 2014-02-21 11:39:17,934 (Z-Wave): Z-Wave command: nodeId = 3
DEBUG 2014-02-21 11:39:17,934 (Z-Wave): Z-Wave command: command = on
DEBUG 2014-02-21 11:39:28,768 (Z-Wave): Building Z-Wave command
DEBUG 2014-02-21 11:39:28,769 (Z-Wave): Z-Wave command: nodeId = 3
DEBUG 2014-02-21 11:39:28,769 (Z-Wave): Z-Wave command: command = on
DEBUG 2014-02-21 11:42:33,436 (Z-Wave): Building Z-Wave command
DEBUG 2014-02-21 11:42:33,436 (Z-Wave): Z-Wave command: nodeId = 3
DEBUG 2014-02-21 11:42:33,436 (Z-Wave): Z-Wave command: command = on
DEBUG 2014-02-21 11:48:33,720 (Z-Wave): Building Z-Wave command
DEBUG 2014-02-21 11:48:33,721 (Z-Wave): Z-Wave command: nodeId = 3
DEBUG 2014-02-21 11:48:33,721 (Z-Wave): Z-Wave command: command = on
DEBUG 2014-02-21 11:55:14,983 (Z-Wave): Building Z-Wave command
DEBUG 2014-02-21 11:55:14,984 (Z-Wave): Z-Wave command: nodeId = 3
DEBUG 2014-02-21 11:55:14,984 (Z-Wave): Z-Wave command: command = on
DEBUG 2014-02-21 12:08:21,795 (Z-Wave): Building Z-Wave command
DEBUG 2014-02-21 12:08:21,795 (Z-Wave): Z-Wave command: nodeId = 3

the device is /dev/USB0 (as shown in the dmesg output above):

[root@serverA zwave]# ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Feb 21 11:03 /dev/ttyUSB0

Inthe Designer, my zwave settings are
https://dl.dropboxusercontent.com/u/39837205/2014-02-21%2008.34.31%20pm.png

which also looks ok.

Why does the Controller not even try and talk to the Aeon?

http://www.openremote.org/display/docs/Discover+Controller+Z-Wave+Devices

says that the log should contain something like:

INFO (Z-Wave): Reader thread asked to start
INFO (Z-Wave): Writer thread asked to start
INFO (Z-Wave): Writer thread starting
DEBUG (Z-Wave): sending: 01 03 00 02 fe
DEBUG (Z-Wave): received: 18
DEBUG (Z-Wave): Received CAN, resend last frame

But i don't even see the first lines, so I don't think
this is a device access issue but somehow the controller
is not even aware (from the designer config synced) that it
should do zwave?

help !

I could imagine that there is a serial port permission problem. Try to add the current user to the dialout group:

sudo adduser <yourusername> dialout
Posted by rhitz at Feb 21, 2014 14:13

mailer@openremote.org wrote:
> > I could imagine that there is a serial port permission problem. Try to
> > add the current user to the dialout group:
> >
> > sudo adduser <yourusername> dialout

That was not it, as I had been running as root.

but I have now changed my setup to use a user 'openremote'
and added that user to the dialout and uucp groups..

But the error seems to be elsewhere..

I strace(1)d the Openremote Java process.

and I find:

> > # grep -i zwave *
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar.orig", {st_mode=S_IFREG|0644, st_size=1643, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:access("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", R_OK) = 0
> > o.s.30249:lstat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:open("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", O_RDONLY) = 32
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar.orig", {st_mode=S_IFREG|0644, st_size=1643, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:open("/opt/OpenRemote-Controller/webapps/controller/WEB-INF/lib/zwave.jar", O_RDONLY) = 76
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:access("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", R_OK) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:lstat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:open("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", O_RDONLY) = 77

so the zwave.jar file is found correctly it seems..

but then:

...
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/bin/org/openremote/controller/protocol/zwave/ZWaveCommandBuilder.class", 0x7fee6f316b60) = -1 ENOENT (No such file or directory)
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/classes/org/openremote/controller/protocol/zwave/ZWaveCommandBuilder.class", 0x7fee6f3175f0) = -1 ENOENT (No such file or directory)
> > o.s.30249:lstat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:lstat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/zwave.jar", {st_mode=S_IFREG|0644, st_size=46972, ...}) = 0
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/bin/org/openremote/controller/protocol/zwave/ZWaveGateway.class", 0x7fee6f314a00) = -1 ENOENT (No such file or directory)
> > o.s.30249:stat("/opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/classes/org/openremote/controller/protocol/zwave/ZWaveGateway.class", 0x7fee6f315490) = -1 ENOENT (No such file or directory)

and that goes on for each class.

It's curious.. I see no attempt by the controller to access /dev/ttyUSB0

The controller.xml file

<?xml version="1.0" encoding="UTF-8"?>
<openremote xmlns="http://www.openremote.org"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.openremote.org
 http://www.openremote.org/schemas/controller.xsd">
  <components>
    <switch id="26">
      <on />
      <off />
    </switch>
    <button id="24" />
  </components>
  <sensors />
  <commands />
  <config>
    <property name="controller.roundrobin.multicast.port" value="10000" />
    <property name="controller.roundrobin.tcpserver.port" value="20000" />
    <property name="controller.groupname" value="floor20" />
    <property name="multicast.port" value="3333" />
    <property name="controller.groupmember.autodetect.on" value="true" />
    <property name="amx_ni.port" value="50000" />
    <property name="zwave.commLayer" value="RXTX" />
    <property name="copy.lircd.conf.on" value="true" />
    <property name="irsend.path" value="/usr/local/bin/irsend" />
    <property name="controller.applicationname" value="controller" />
    <property name="multicast.address" value="224.0.1.100" />
    <property name="Macro.IR.Execution.Delay" value="500" />
    <property name="controller.roundrobin.multicast.address"
value="224.0.1.200" />
    <property name="zwave.comPort" value="/dev/ttyUSB0" />
    <property name="zwave.pad.port" value="7876" />
    <property name="lutron_homeworks.password" value="openremote" />
    <property name="lagarto_network.broadcast"
value="tcp://127.0.0.1:5001" />
    <property name="lircd.conf.path" value="/etc/lircd.conf" />
    <property name="lutron_homeworks.port" value="23" />
    <property name="lutron_homeworks.address" value="192.168.1.1" />
    <property name="zwave.pad.host" value="localhost" />
    <property name="lutron_homeworks.username" value="openremote" />
    <property name="webapp.port" value="18581" />
    <property name="protocol.zwave.classname"
value="org.openremote.controller.protocol.zwave.ZWaveCommandBuilder" />
    <property name="resource.upload.enable" value="true" />
    <property name="amx_ni.address" value="192.168.1.1" />
  </config>
</openremote>

the modeler_rules.drl file is empty

Ah, I turned on a LOT of debugging (ALL everywhere) and I get

> > TRACE [main]: Applied legacy resource path conversion to non-compatible URI '../webapps/controller/controller.xml'
> > Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/native/librxtxSerial.so which might have disabled stack guard. The VM will try to fix the stack guard now.
> > It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
> > java.lang.UnsatisfiedLinkError: /opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/native/librxtxSerial.so: /opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/native/librxtxSerial.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver
> > Exception in thread "Thread-3" java.lang.UnsatisfiedLinkError: /opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/native/librxtxSerial.so: /opt/OpenRemote-Controller-2.1.0_SNAPSHOT-2013-06-17/webapps/controller/WEB-INF/lib/native/librxtxSerial.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)

Now this old thread

> > http://www.openremote.org/display/forums/Zwave+rxtxSerial+dll+Can%27t+load+IA+32bit

points at http://www.cloudhopper.com/opensource/rxtx/ but that site
seems to be gone?

This is a RHEL6 x86_64

Linux serverA.koerber.org 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29
11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

Posted by sejtam at Feb 22, 2014 06:34

Yes, there seems to be a problem with the RXTX binary (librxtxSerial.so). You could install the RXTX library with the yum software package manager and copy the installed librxtxSerial.so file to the directory <OpenRemote>/webapps/controller/WEB-INF/lib/native.

Posted by rhitz at Feb 22, 2014 08:58

I haven't found a working copy of that library yet though. It's not in the packages on the RHEL-6 DVD...

Posted by sejtam at Feb 22, 2014 11:28

In this bug report Red Hat Fedora RXTX Bug Report I've seen the following command:

su -c 'yum update --enablerepo=epel-testing rxtx-2.2-0.6.20100211.el6

This could be useful for how to install it from an external repository.

Posted by rhitz at Feb 22, 2014 12:06
Document generated by Confluence on Jun 05, 2016 09:37