By default, the serial connection on the openHAB system is done with nrjavaserial.
Unfortunately there are some issues with this provider, so some (unstable) COM-connections can lock up after a while. See here:
In my case I had big problems with the connection to my smart meter trough an optical probe. As “workaround” I had to restart the whole openHAB instance after some hours. This was very frustrating.
Now there is a “real workaround”, which I found here in the forum more or less by accident.
So I want to share this here. I am very happy with it. On my system it is working since weeks without any issues. It should work with all bindings that need a serial connection.
The way it is done is very simple. See following steps:
Check if the PureJavaComm provicer is active: openhab> bundle:list | grep ConnectorIO
Result should be like this: 351 x Active x 80 x 184.108.40.206107051005 x ConnectorIO PureJavaComm serial port provider
Reboot your system.
Now you should be able to change the port identifier in the thing configuration:
purejavacomm uses different port identifiers (ttyUSB0) from rxtx (/dev/ttyUSB0). So in my case the prefix “/dev/” is no more needed in the configuration.
Your serial device should already get online and work like expected.
If you see exceptions in log or it is still unstable just uninstall rxtx bundles (la -l|grep rxtx, then remove bundle without rfc in the name). bundle:uninstall XXX
Where XXX is the ID of your bundle.
See also here:
So at the end it should look like this.
openhab> la -l|grep rxtx
339 x Installed x 80 x 3.2.0.M3 x mvn:org.openhab.core.bundles/org.openhab.core.io.transport.serial.rxtx.rfc2217/3.2.0.M3
If you use rfc ports at the same time then they will fail without main part of rxtx.
This is it. Any comments on this are very welcome.
Please beware, I am not a Linux or openHAB specialist.
So everything I said before can be wrong. I am just explaining a way how to work with a different serial provider. In my case I am a lot more happier with the alternative.
All thanks and credits to @splatch who developed this. Thank you very much.
thank you very much for your workaround. I followed all your steps and it looks like I have ttyUSB0 available in OpenHAB now. However, I still receive the “No provider for port ttyUSB0 found” error. The smartmeter readout in OpenHAB won’t even start anymore, even after a reboot.
I stopped the service as it didn’t work but after that I keep getting the “No provider” error all the time. I tried reinstalling the smartmeter binding but no luck yet.
gives me readings from the optolink.
EDIT: I followed this advice
Now I get a reading from /dev/ttyUSB0 again. ttyUSB0 still gives me the error message. I wonder how long it will work now until I get the error again. The workaround does not seem to be active. I can see the port ttyUSB0 in the thing configuration but it says “No provider found”.
Thank you, @Sascha_ . I cleaned the cache and have the smartmeter on ttyUSB0 online now. Let’s see if the problem has been fixed now.
Thank you all for being such active community members. Happy new year!
Quick question on this: If I’m on a plain 3.3.0 Release Build, still experiencing this problem just yesterday after reboot, being able to fix it with this workaround, does it mean my installation misses something? Doesn’t your comment above mean that the nrjavaserial-bug should be gone in OH 3.3.0 Release Build? Or am I misunderstanding something?
Hmm, very odd: I just had one manifestation of the problem yesterday (Z-Wave stick not getting online after reboot), even though I have the version of nrjavaserial installed (as part of my 3.3.0 release build), which you state should already contain the fix (254 │ Active │ 80 │ 5.2.1.OH1 │ nrjavaserial)
I think I’ll then wait for 3.4, since I fear a bit installing “something manually” which cause problems later on in the process with the automatic update to 3.4.
Yes, question your hardware setup. You might have reached the limits of your raspberry. I think the power consumption of your USB devices is high? Do you know how much they need?
When booting, your load on the raspberry is also very high…
What power supply are you using? I like the raspberry, but I think for your needs and for “production” use you need to invest a little more in your hardware.
I personally like the odroid C4 this has a 12V power supply. Bit i am also very careful when adding external devices.
The best think might be a thin PC…
When did your issue start?
Did you also try the alternative provider described in this topic?
I’m a bit reluctant, because I fear this will impact potential future upgrades. If this is not the case (does anyone know for sure?) I might give it a try.
Though, just wondering, why not putting the alternative java into e.g. OH 3.4? Won’t this solve the problem root-cause based?
I haven’t measured the power consumption, but the Amber Wireless AMB8465 and the Aeotec Z-Wave Gen5+ don’t even get warm, so they can’t draw that much power. I mean, I can’t rule it out, but (even though I’m not a pro) I believe we’re looking at the nrjavaserial bug described above, don’t you think? The description fits 100%.
The original Raspberry 2,4 A power supply, so that looks ok to me.
It existed from day 1 onwards when I got the Aeotec Z-Wave Gen5+.