OH2.1 to OH2.2 upgrade /dev/ttyACM0 does not exist in ZWAVE Binding

Hi i need some help :slight_smile:

After upgrading from 2.1.0 to 2.2.0 my ZWave-binding won’t recongnize my ZME_UZB1 anymore.
Looking up some posts here i think i can exclude the common mistakes.

I’m running OH2 exlusive on a little ATOM board in Ubuntu with openhabian.

Here is what i allready checked:

ls -l /dev/ttyA*
crw-rw---- 1 root dialout 166, 0 Jan 2 18:31 /dev/ttyACM0

sudo less /etc/group
tty:x:5:openhab,garion
dialout:x:20:openhab,garion

sudo nano /etc/default/openhab2
EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyS0:/dev/ttyS2:/dev/ttyACM0:/dev/ttyAMA0"

After the upgrade the binding complaind that “Serial Error: Port /dev/ttyACM0 does not exist”
But “ls /dev/ttyA*” says it exists depending on the USB-Stick is pluged in or not.

In the PaperUI the configfield for the serial interface in the binding was empty. By clicking the dropdown i could only choose between:

So i saved that, and now get the errror USB0 is in use, which is correct /dev/USB0 is my mysensors-serial-getway, which still works fine.

Now i have:

as an entry there and get the USB0 in use errror.

After that i used openhabian-config to make apt-get update / upgrade for Ubuntu and rebooted. Still no /dev/ttyACM0 in the dropdown.
Also to be sure let openhabian-config set the permissions for the serials again, and prepaired openhab for commen tty’s again and reboot. No /dev/ttyACM0 in the dropdown.
Between every step i checkd that /dev/ttyACM0 was still there in Ubuntu.

Summary:
Nothing was changed, it worked perfectly in OH2.1.0. I just let openhabian update it self, and then after a reboot upgraded from 2.1.0 to 2.2.0. Now it seams OH or JAVA won’t recongnize the /dev/tttyACM0 while ubuntu clearly can.
In 2.1.0 /dev/ttyAMC0 and /dev/ttyUSB0 where in the dropdown of the binding in paperUI. Now it only shows the /dev/USB0.
And even before i saved the wrong setting, the binding was complaining /dev/tttyACM0 dose not exist. I think because the old setting was still in the database, but 2.2.0 wasn’t able to bring the device over from Ubuntu into OH.

btw the binding is:

Any help would be very apriciated, because i have a nice collection of zwave devices that i hope to use again.

Cu Thomas

The zwave binding will report that the serial device doesn’t exist if it cannot read/write to it. So I’d recommend focusing on permission problems.

There is an option somewhere in openhabian-config to reset permissions. Have you tried running this yet?

Hi rlkoshak

thanks for the response.

The device is there in Ubuntu and it is RW for the group dialout.

User openhab which runs OH is in the group dialout and tty

And yes i used the coresponding option in openhabian-config, and checkt the permisions again. Nothing changed on the permission side.
As stated above i don’t even get /dev/ttyACM0 in the dropdown menu of the config section for the zwave-binding in paper-ui, or HABmin.

That is why i think JAVA can’t see the /dev/ttyACM0 from Ubuntu.
Even with

set.

I know my way around a Computer/Configs/a little programming, but i’m no linux java guru :slight_smile:
I don’t know where next/else to look :frowning:

Cu Thomas

I too am having this same problem. I have checked permissions for the ports, ensured openhab is in the tty and dialout groups, and checked /etc/default/openhab2 Java OPTs. Everything is according to the advice of the experts. OH2.2 simply doesn’t work on my RPI3. I’ll be keeping an eye out for OH2.2.1, hopefully it will solve this problem. Until then I will stick with v2.1

Did you try a restart of the system, I had similar issues (although not with the error message you saw) which where only solved after making all the changes you posted above AND doing a reboot.

Yes, I restarted OH, then when that didn’t work I rebooted the Pi. I have made a new, pristine SD card using the Openhabian 1.4 image. Tomorrow I will use that and see if it works.

I did also a complete system restart, after every major change.

cu Thomas

Have the same issue. tired run as root, but still not working.
I have another serial device ttyUSB0 that works, but not ACM0 (Zstick gen5)

It worked on 2.2 for some days, but then it stopped.

me@openhab:~$ dmesg |grep tty
[ 0.000000] console [tty0] enabled
[ 2.808661] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
[ 3.939847] usb 2-2: pl2303 converter now attached to ttyUSB0
me@openhab:~$

root 641 20.3 32.1 3099108 489168 ? Ssl 12:28 1:15 /usr/bin/java -Dopenhab.home=/usr/share/openhab2 -Dopenhab.conf=/etc/openhab2 -Dopenhab.runtime=/usr/share/openhab2/runtime -Dopenhab.userdata=/var/lib/openhab2 -Dopenhab.logdir=/var/log/openhab2 -Dfelix.cm.dir=/var/lib/openhab2/config -Djetty.host=0.0.0.0 -Djetty.http.compliance=RFC2616 -Dorg.ops4j.pax.web.listening.addresses=0.0.0.0 -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.awt.headless=true -XX:+UseG1GC -Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyACM0 -Djava.endorsed.dirs=/usr/lib/jvm/java-8-oracle/jre/jre/lib/endorsed:/usr/lib/jvm/java-8-oracle/jre/lib/endorsed:/usr/share/openhab2/runtime/lib/endorsed -Djava.ext.dirs=/usr/lib/jvm/java-8-oracle/jre/jre/lib/ext:/usr/lib/jvm/java-8-oracle/jre/lib/ext:/usr/share/openhab2/runtime/lib/ext -Dkaraf.instances=/var/lib/openhab2/tmp/instances -Dkaraf.home=/usr/share/openhab2/runtime -Dkaraf.base=/var/lib/openhab2 -Dkaraf.data=/var/lib/openhab2 -Dkaraf.etc=/var/lib/openhab2/etc -Dkaraf.logs=/var/log/openhab2 -Dkaraf.restart.jvm.supported=true -Djava.io.tmpdir=/var/lib/openhab2/tmp -Djava.util.logging.config.file=/var/lib/openhab2/etc/java.util.logging.properties -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -classpath /usr/share/openhab2/runtime/lib/boot/org.apache.karaf.diagnostic.boot-4.1.3.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.jaas.boot-4.1.3.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.main-4.1.3.jar:/usr/share/openhab2/runtime/lib/boot/org.osgi.core-6.0.0.jar org.apache.karaf.main.Main

I have spent the past few days doing a clean install of openhab2.2/openhabian1.4.

At first it went well. I installed the Zwave binding and configured the Things. Then I rewrote my config files using the new channel info.

The next step was the Mysensors binding. That took a couple of days. I had to enable the mysensors-serial-port through the karaf console, then install a jar file with the latest MySensors binding.

That went successful up until I rebooted the system. After a reboot the Zwave binding and the network binding disappeared. Completely gone. I had to reinstall them. When I did the Zwave serial port was once again not there. I couldn’t type in a serial port in the configuration window. It just gave me a dropdown list of /dev/ttyUSB0. If I unplugged the MySensors gateway and rebooted then I could manually enter a serial port (/dev/ttyACM0) but the system still insisted it didn’t exist. The same old problem as before. Basically all the work I had done for the past 3 days was gone.

At this point I have no idea how to proceed.

Hi.

When i think of it, I have not rebooted the system since i added the USB0 (LG TV binding)
I removed the USB to rs232 + the LG serial binding and rebooted. NOW ACM0 is back again inside OH and the Z-wave works again…

Could you try this as well Kchest?
Anyone know why this is happening?

Did some more testing.

Re added the LG Serial binding. every thing works.
Restarted OH and when it was back up online the ACM0 was gone again…
There must be a bug inside Nrjavaserial?

I’m not using ZWAVE, however while using the Intertechno binding in conjunction with a serial device at ttyACMO I do not see such behaviour after a restart!

Hi.

I also did some further testing.
I can confirm kchest.

Scenario 1:
Reboot of the system only Zwave pluged in:
/dev/ttyACM0 is in ubuntu /dev; In Paperui the config section of the binding has only an empty textfield, where you can type in /dev/ttyACM0. Save the settings and the OH log complains /dev/ttyACM0 does not exist even it is there in ubuntu.
Zwave Controller offline
No change after another reboot of the system.

Scenario 2:
Reboot of the system Zwave and MySensors-Serial-Gateway(Arduino pluged in via USB) pluged in:
/dev/ttyACM0 is in ubuntu /dev (Zwave) additionally there is an /dev/ttyUSB0 (the MySensorsgateway).
Now the config section of the binding has no textfiel at all, only a dropdown-menue with /dev/ttyUSB0 (see my pictures in the first post). if i dont save the settings OH log still complains /dev/ttyACM0 does not exist. Saving the settings with /dev/ttyUSB0 brings the in user error. Sure, ttyUSB0 is the mysensors getway and in use from the mysensors-binding.
Still reboot of the system inbetween every step, or not at all brings no difference.
Zwave Controller offline

Having no dropdown-menue in the Zwavebinding when the Zwave stick ist pluged in allone, strengthens my belive Java/OH2 isn’t getting the /dev/ttyACM0 form the OS (Ubuntu). And so i’am allowed to type what ever i want.
With both pluged in, Java recognices the MySensors-gateway on USB0 only and so the Binding finds a serialdevice and presents me with the dropdown of all found serial devices. In my case only /dev/ttyUSB0.

Is there any more information/merrit to this:

???

As stated before the OS Ubuntu finds them correct (one pluged in it shows one, the ohter pluged in it showes the other, both pluged in, it shows both). But it seams only the /dev/ttyUSB0 is found by Java.

And also stated before in OH 2.1.x both worked perfectly :slight_smile:

cu Thomas

FWIW, you can configure the port to use using text files only, see binding docs.
Upgrading might have removed or changed that file.

Check if java knows about serial device (do a ps and see if -Dgnu.io.rxtx.SerialPorts=… contains /dev/ttyACM0).
It’s usually injected by setting EXTRA_JAVA_OPTS= in /etc/default/openhab2, but I don’t know if that applies to your Ubuntu setup as well.

BTW, are you sure it’s /dev/ttyACM0 ?
For my RaZberry board (which is more or less the same as the ZME USB stick), it’s /dev/ttyAMA0.

Hello.

I don’t know if there is a bug, but it seams strange that ACM0 disappears when I add the second TTY.
Maybe it’s related to 64bit?

me@openhab:~$ uname -a
Linux openhab 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

@mstromi
Hi,

i think it depends on the architecture raspberrrypi (arm) it seams to be /dev/ttyAMA0. i have a intel atom board there it is
/dev/ttyACM0

For the rest of your post see my next post :slight_smile:

cu Thomas

Hi Mikael

That was my thought too. From looking for further answers to my problem i was searching here in the forum.
I found a lot of /dev/ttyXYZ does not exist or behaving strangely on PINE64 installations etc.
64bit did come up often around those problems.

I used my standard Ubuntu-Server stick for installation, and it is a 64bit Ubuntu.
So i did a fresh install with Ubuntu 16.04 LTS i386. Clean new openhabian install and startet to add my main bindings, copying my backup config back etc.
I added the two main players (mysensors-binding and usb/serial gateway, and zwave binding and usb/serial stick) first.
Everything seamed to work at first. 3 or 4 additional bindings/copying configs back later, the same problem on the i386 Ubuntu again. sudo sytemctl start openhab2.service and the log says /dev/ttyAMC0 does not exist. Multiple restarts of openhab2 or system reboots did not help, but…

I found a workaround for my problem:
When i remove the mysensors binding via the karaf-console and restart openhab2.service the zwave bindig loads fine, finds /dev/ttyACM0 and all is well. i just have to add the mysensor-bindig manually at runtime, and both work fine.

Linux and Java are not my field of expertise, so i’m not able to investigate further, who is to blame the mysensorsbindig, the zwavebinding, the nrjavaserial, or openhab2 itself.

I can life with that workaround, and hope it sorts itself out with OH2.2.1 or what ever comes next.

cu Thomas

1 Like

Oh big problems. As far as I can see Razberry does not even work in Debian Stretch,
@ThomDietrich is it possible to install latest oh in jessie? Guess it would be in a manual install.

See this thread:

https://forum.z-wave.me/viewtopic.php?f=3419&t=25337&start=10

I got it to work with stretch. However I had to manually do chmod a+r /dev/ttyAMA0

This would have to be done on each boot, so is there any other way to make this work?

I´m using a Razberry gen 1.

Best Regards, S

Hey @Seaside,
Just to answer the first question: One can still simply use the openHABian v1.3 image or go the manual setup path.

Of course a solution would be better and if you found one please contribute it to openHABian!

As per your boot problem: Please check the file /etc/udev/rules.d/99-com.rules

1 Like