I desperate need help, and most probably from somone who actually know how to get symlinks to work on a Rpi3 with openhab 2.5Release (hasslefree). Sorry if I may sound a bit harsh, but I have been struggling quite alot with this issue before, and had to give up. Today I have spend well, aprox 8 hours, getting nowhere trying to breake this issue.
Short story - Untill this morning, I was running openhab 2.5M2. I knew from earlier, that I never had the symlinks to work. But since I stay away from changing anything, I could reboot and my devices were still running fine.
This morning I spend some time backup my system prepare it to update to openhab 2.5release. After the backup, I simply choose option 03 in openhabian-config to update to openhab 2.5Release.
Things went well… Well, at least untill the system started to read the things file for my Nilan Ventilation system, running modbus serial slave… The system could no longer connecte the the USB0 interface.
After this, I needed to get the symlinks to work, cause no matter what I tried, I could get the modbus binding to connect to my RS485 USB dongle anymore. (The serial slave works fine, but as soon as the Poller starts, I get an error with the USB port I have specified).
I have read probably all threads about this damn symlinks option here on the forum. None of them have helped me. I have tried probably all kinds of combinations. I have rebooted, cleared cache/tmp what seem a zillion times. Nothing seem to work for my modbus serial slave device.
EDIT:
Forgot to post the lsusb:
[00:56:20] openhabian@openHABianPi:~$ lsusb
Bus 001 Device 011: ID 152d:9561 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 010: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB
Bus 001 Device 009: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 008: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
This is my symlinks file located at /etc/udev/rules.d/99-usb-serial.rules:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0658", ATTRS{idProduct}=="0200", SYMLINK+="ttyUSB-ZStick", GROUP="dialout", MODE="0666"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB-RS485", GROUP="dialout", MODE="0666"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", SYMLINK+="ttyUSB-DVBT", GROUP="dialout", MODE="0666"
I have 3 USB devices connected (and a 4-port active USB hub, but I have tried running without as well).
This is my Extra Java opts Symlink PATH in Java, located at /etc/default/openhab2
#########################
## JAVA OPTIONS
## Additional options for the JAVA_OPTS environment variable.
## These will be appended to the execution of the openHAB Java runtime in front of all other options.
##
## A couple of independent examples:
## EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0"
## EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyS0:/dev/ttyS2:/dev/ttyACM0:/dev/ttyAMA0"
## EXTRA_JAVA_OPTS="-Djna.library.path=/lib/arm-linux-gnueabihf/ -Duser.timezone=Europe/Berlin -Dgnu.io.rxtx.SerialPorts=/dev/ttyS0"
EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB-Zstick:/dev/ttyUSB-RS485:/dev/ttyUSB-DVBT"
EXTRA_JAVA_OPTS="-Xms250m -Xmx350m"
A listning of USB tty from putty looks like this:
[00:30:27] openhabian@openHABianPi:~$ ls -al /dev | grep tty
crw-rw-rw- 1 root tty 5, 2 Jan 2 00:30 ptmx
lrwxrwxrwx 1 root root 7 Jan 1 23:52 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Jan 1 23:52 serial1 -> ttyS0
crw-rw-rw- 1 root tty 5, 0 Jan 1 23:52 tty
crw--w---- 1 root tty 4, 0 Jan 1 23:52 tty0
crw--w---- 1 root tty 4, 1 Jan 1 23:52 tty1
crw--w---- 1 root tty 4, 10 Jan 1 23:52 tty10
crw--w---- 1 root tty 4, 11 Jan 1 23:52 tty11
crw--w---- 1 root tty 4, 12 Jan 1 23:52 tty12
crw--w---- 1 root tty 4, 13 Jan 1 23:52 tty13
crw--w---- 1 root tty 4, 14 Jan 1 23:52 tty14
crw--w---- 1 root tty 4, 15 Jan 1 23:52 tty15
crw--w---- 1 root tty 4, 16 Jan 1 23:52 tty16
crw--w---- 1 root tty 4, 17 Jan 1 23:52 tty17
crw--w---- 1 root tty 4, 18 Jan 1 23:52 tty18
crw--w---- 1 root tty 4, 19 Jan 1 23:52 tty19
crw--w---- 1 root tty 4, 2 Jan 1 23:52 tty2
crw--w---- 1 root tty 4, 20 Jan 1 23:52 tty20
crw--w---- 1 root tty 4, 21 Jan 1 23:52 tty21
crw--w---- 1 root tty 4, 22 Jan 1 23:52 tty22
crw--w---- 1 root tty 4, 23 Jan 1 23:52 tty23
crw--w---- 1 root tty 4, 24 Jan 1 23:52 tty24
crw--w---- 1 root tty 4, 25 Jan 1 23:52 tty25
crw--w---- 1 root tty 4, 26 Jan 1 23:52 tty26
crw--w---- 1 root tty 4, 27 Jan 1 23:52 tty27
crw--w---- 1 root tty 4, 28 Jan 1 23:52 tty28
crw--w---- 1 root tty 4, 29 Jan 1 23:52 tty29
crw--w---- 1 root tty 4, 3 Jan 1 23:52 tty3
crw--w---- 1 root tty 4, 30 Jan 1 23:52 tty30
crw--w---- 1 root tty 4, 31 Jan 1 23:52 tty31
crw--w---- 1 root tty 4, 32 Jan 1 23:52 tty32
crw--w---- 1 root tty 4, 33 Jan 1 23:52 tty33
crw--w---- 1 root tty 4, 34 Jan 1 23:52 tty34
crw--w---- 1 root tty 4, 35 Jan 1 23:52 tty35
crw--w---- 1 root tty 4, 36 Jan 1 23:52 tty36
crw--w---- 1 root tty 4, 37 Jan 1 23:52 tty37
crw--w---- 1 root tty 4, 38 Jan 1 23:52 tty38
crw--w---- 1 root tty 4, 39 Jan 1 23:52 tty39
crw--w---- 1 root tty 4, 4 Jan 1 23:52 tty4
crw--w---- 1 root tty 4, 40 Jan 1 23:52 tty40
crw--w---- 1 root tty 4, 41 Jan 1 23:52 tty41
crw--w---- 1 root tty 4, 42 Jan 1 23:52 tty42
crw--w---- 1 root tty 4, 43 Jan 1 23:52 tty43
crw--w---- 1 root tty 4, 44 Jan 1 23:52 tty44
crw--w---- 1 root tty 4, 45 Jan 1 23:52 tty45
crw--w---- 1 root tty 4, 46 Jan 1 23:52 tty46
crw--w---- 1 root tty 4, 47 Jan 1 23:52 tty47
crw--w---- 1 root tty 4, 48 Jan 1 23:52 tty48
crw--w---- 1 root tty 4, 49 Jan 1 23:52 tty49
crw--w---- 1 root tty 4, 5 Jan 1 23:52 tty5
crw--w---- 1 root tty 4, 50 Jan 1 23:52 tty50
crw--w---- 1 root tty 4, 51 Jan 1 23:52 tty51
crw--w---- 1 root tty 4, 52 Jan 1 23:52 tty52
crw--w---- 1 root tty 4, 53 Jan 1 23:52 tty53
crw--w---- 1 root tty 4, 54 Jan 1 23:52 tty54
crw--w---- 1 root tty 4, 55 Jan 1 23:52 tty55
crw--w---- 1 root tty 4, 56 Jan 1 23:52 tty56
crw--w---- 1 root tty 4, 57 Jan 1 23:52 tty57
crw--w---- 1 root tty 4, 58 Jan 1 23:52 tty58
crw--w---- 1 root tty 4, 59 Jan 1 23:52 tty59
crw--w---- 1 root tty 4, 6 Jan 1 23:52 tty6
crw--w---- 1 root tty 4, 60 Jan 1 23:52 tty60
crw--w---- 1 root tty 4, 61 Jan 1 23:52 tty61
crw--w---- 1 root tty 4, 62 Jan 1 23:52 tty62
crw--w---- 1 root tty 4, 63 Jan 1 23:52 tty63
crw--w---- 1 root tty 4, 7 Jan 1 23:52 tty7
crw--w---- 1 root tty 4, 8 Jan 1 23:52 tty8
crw--w---- 1 root tty 4, 9 Jan 1 23:52 tty9
crw-rw-rw- 1 root dialout 166, 0 Jan 2 00:30 ttyACM0
crw-rw---- 1 root dialout 204, 64 Jan 1 23:52 ttyAMA0
crw------- 1 root root 5, 3 Jan 1 23:52 ttyprintk
crw-rw---- 1 root dialout 4, 64 Jan 1 23:52 ttyS0
crw-rw-rw- 1 root dialout 188, 0 Jan 1 23:52 ttyUSB0
lrwxrwxrwx 1 root root 7 Jan 1 23:52 ttyUSB-RS485 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Jan 1 23:52 ttyUSB-ZStick -> ttyACM0
crw-rw---- 1 root tty 7, 0 Jan 1 23:52 vcs
crw-rw---- 1 root tty 7, 1 Jan 1 23:52 vcs1
crw-rw---- 1 root tty 7, 2 Jan 1 23:52 vcs2
crw-rw---- 1 root tty 7, 3 Jan 1 23:52 vcs3
crw-rw---- 1 root tty 7, 4 Jan 1 23:52 vcs4
crw-rw---- 1 root tty 7, 5 Jan 1 23:52 vcs5
crw-rw---- 1 root tty 7, 6 Jan 1 23:52 vcs6
crw-rw---- 1 root tty 7, 128 Jan 1 23:52 vcsa
crw-rw---- 1 root tty 7, 129 Jan 1 23:52 vcsa1
crw-rw---- 1 root tty 7, 130 Jan 1 23:52 vcsa2
crw-rw---- 1 root tty 7, 131 Jan 1 23:52 vcsa3
crw-rw---- 1 root tty 7, 132 Jan 1 23:52 vcsa4
crw-rw---- 1 root tty 7, 133 Jan 1 23:52 vcsa5
crw-rw---- 1 root tty 7, 134 Jan 1 23:52 vcsa6
crw-rw---- 1 root tty 7, 64 Jan 1 23:52 vcsu
crw-rw---- 1 root tty 7, 65 Jan 1 23:52 vcsu1
crw-rw---- 1 root tty 7, 66 Jan 1 23:52 vcsu2
crw-rw---- 1 root tty 7, 67 Jan 1 23:52 vcsu3
crw-rw---- 1 root tty 7, 68 Jan 1 23:52 vcsu4
crw-rw---- 1 root tty 7, 69 Jan 1 23:52 vcsu5
crw-rw---- 1 root tty 7, 70 Jan 1 23:52 vcsu6
[00:30:43] openhabian@openHABianPi:~$
Two of my symlinks are showen, (I have no idea why the third isn´t. But at first this isn´t important, cause I dont use that DVBT dongle yet. It is my plan when I have this update up running fully).
The two symlinks however, doesnt seem like they are attached to the dialout group. And I have no idea why not. The rules file above specificly says group dialout. And yet I see them for root only…
This may be the cause of my problem… I really have no idea anymore. I´m stucked here, and desperatly need my Nilan device up running.
My Zwave dongle connects fine to dev/ttyACM0, (dont ask why. I have no idea).
In my thing file for my Nilan (modbus device), I have tried almost all possible USB ports as well as the symlink. Bu not matter what I try, I end up with the modbus poller cant connect to the device on the specified USB port
Bridge modbus:serial:myNilan [ port="/dev/ttyUSB0", id=30, baud=19200, stopBits="1.0", parity="even", dataBits=8, encoding="rtu" ] {
Bridge poller appRegisters [ start=000, length=4, refresh=6000, type="input" ] {
Thing data inp000 [ readStart="000", readValueType="int16" ]
Thing data inp001 [ readStart="001", readValueType="int16" ]
Thing data inp002 [ readStart="002", readValueType="int16" ]
Thing data inp003 [ readStart="003", readValueType="int16" ]
}
Bridge poller 100Registers [ start=100, length=16, refresh=6000, type="input" ] {
Thing data inp100 [ readStart="100", readValueType="int16" ]
Thing data inp101 [ readStart="101", readValueType="int16" ]
Thing data inp103 [ readStart="103", readValueType="int16" ]
Thing data inp105 [ readStart="105", readValueType="int16" ]
Thing data inp106 [ readStart="106", readValueType="int16" ]
Thing data inp107 [ readStart="107", readValueType="int16" ]
Thing data inp114 [ readStart="114", readValueType="int16" ]
Thing data inp115 [ readStart="115", readValueType="int16" ]
}
Bridge poller inputRegisters [ start=200, length=23, refresh=6000, type="input" ] {
Thing data inp200 [ readStart="200", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp202 [ readStart="202", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp203 [ readStart="203", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp204 [ readStart="204", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp207 [ readStart="207", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp208 [ readStart="208", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp209 [ readStart="209", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp210 [ readStart="210", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp215 [ readStart="215", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp221 [ readStart="221", readValueType="int16", readTransform="JS(divide100.js)" ]
}
Bridge poller 400Registers [ start=400, length=10, refresh=6000, type="input" ] {
Thing data inp400 [ readStart="400", readValueType="int16" ]
Thing data inp401 [ readStart="401", readValueType="int16" ]
Thing data inp402 [ readStart="402", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
Thing data inp403 [ readStart="403", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
Thing data inp404 [ readStart="404", readValueType="int16" ]
Thing data inp405 [ readStart="405", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
Thing data inp406 [ readStart="406", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
Thing data inp407 [ readStart="407", readValueType="int16" ]
Thing data inp408 [ readStart="408", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
Thing data inp409 [ readStart="409", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
}
Bridge poller statusRegisters [ start=1000, length=4, refresh=6000, type="input" ] {
Thing data inp1000 [ readStart="1000", readValueType="int16" ]
Thing data inp1001 [ readStart="1001", readValueType="int16" ]
Thing data inp1002 [ readStart="1002", readValueType="int16" ]
Thing data inp1003 [ readStart="1003", readValueType="int16" ]
}
Bridge poller airflowRegisters [ start=1100, length=5, refresh=6000, type="input" ] {
Thing data inp1100 [ readStart="1100", readValueType="int16" ]
Thing data inp1101 [ readStart="1101", readValueType="int16" ]
Thing data inp1102 [ readStart="1102", readValueType="int16" ]
Thing data inp1103 [ readStart="1103", readValueType="int16" ]
Thing data inp1104 [ readStart="1104", readValueType="int16" ]
}
Bridge poller airRegisters [ start=1200, length=7, refresh=6000, type="input" ] {
Thing data inp1200 [ readStart="1200", readValueType="int16" ]
Thing data inp1201 [ readStart="1201", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp1202 [ readStart="1202", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp1203 [ readStart="1203", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp1204 [ readStart="1204", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp1205 [ readStart="1205", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data inp1206 [ readStart="1206", readValueType="int16", readTransform="JS(divide100.js)" ]
}
Bridge poller displayRegisters [ start=2000, length=12, refresh=6000, type="input" ] {
Thing data inp2000 [ readStart="2000", readValueType="int16" ]
Thing data inp2001 [ readStart="2001", readValueType="int16" ]
Thing data inp2002 [ readStart="2002", readValueType="int16" ]
Thing data inp2003 [ readStart="2003", readValueType="int16" ]
Thing data inp2004 [ readStart="2004", readValueType="int16" ]
Thing data inp2005 [ readStart="2005", readValueType="int16" ]
Thing data inp2006 [ readStart="2006", readValueType="int16" ]
Thing data inp2007 [ readStart="2007", readValueType="int16" ]
Thing data inp2008 [ readStart="2008", readValueType="int16" ]
Thing data inp2009 [ readStart="2009", readValueType="int16" ]
Thing data inp2010 [ readStart="2010", readValueType="int16" ]
Thing data inp2011 [ readStart="2011", readValueType="int16" ]
}
Bridge poller holdingRegisters [ start=100, length=28, refresh=6000, type="holding" ] {
Thing data hol100 [ readStart="100", readValueType="int16" ]
Thing data hol102 [ readStart="102", readValueType="int16" ]
Thing data hol103 [ readStart="103", readValueType="int16" ]
Thing data hol123 [ readStart="123", readValueType="int16", writeStart="123", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol125 [ readStart="125", readValueType="int16", writeStart="125", writeValueType="int16", writeType="holding" ]
Thing data hol126 [ readStart="126", readValueType="int16", writeStart="126", writeValueType="int16", writeType="holding" ]
}
Bridge poller fanRegisters [ start=200, length=3, refresh=6000, type="holding" ] {
Thing data hol200 [ readStart="200", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data hol201 [ readStart="201", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data hol202 [ readStart="202", readValueType="int16", readTransform="JS(divide100.js)" ]
}
Bridge poller timeRegisters [ start=300, length=6, refresh=6000, type="holding" ] {
Thing data hol300 [ readStart="300", readValueType="int16" ]
Thing data hol301 [ readStart="301", readValueType="int16" ]
Thing data hol302 [ readStart="302", readValueType="int16" ]
Thing data hol303 [ readStart="303", readValueType="int16" ]
Thing data hol304 [ readStart="304", readValueType="int16" ]
Thing data hol305 [ readStart="305", readValueType="int16" ]
}
Bridge poller ProgSelRegisters [ start=500, length=2, refresh=6000, type="holding" ] {
Thing data hol500 [ readStart="500", readValueType="int16", writeStart="500", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
}
Bridge poller ProgUserFuncActRegisters [ start=600, length=7, refresh=6000, type="holding" ] {
Thing data hol600 [ readStart="600", readValueType="int16", writeStart="600", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol601 [ readStart="601", readValueType="int16", writeStart="601", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol602 [ readStart="602", readValueType="int16", writeStart="602", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol603 [ readStart="603", readValueType="int16", writeStart="603", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol604 [ readStart="604", readValueType="int16", writeStart="604", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol605 [ readStart="605", readValueType="int16", writeStart="605", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
}
Bridge poller controlRegisters [ start=1001, length=7, refresh=6000, type="holding" ] {
Thing data hol1001 [ readStart="1001", readValueType="int16", writeStart="1001", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol1002 [ readStart="1002", readValueType="int16", writeStart="1002", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol1003 [ readStart="1003", readValueType="int16", writeStart="1003", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol1004 [ readStart="1004", readValueType="int16", writeStart="1004", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1005 [ readStart="1005", readValueType="int16" ]
Thing data hol1006 [ readStart="1006", readValueType="int16", readTransform="JS(divide100.js)" ]
Thing data hol1007 [ readStart="1007", readValueType="int16" ]
}
Bridge poller AirFlowExhMoRegisters [ start=1100, length=2, refresh=6000, type="holding" ] {
Thing data hol1100 [ readStart="1100", readValueType="int16" ]
Thing data hol1101 [ readStart="1101", readValueType="int16", writeStart="1101", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
}
Bridge poller AirTempRegisters [ start=1200, length=8, refresh=6000, type="holding" ] {
Thing data hol1200 [ readStart="1200", readValueType="int16", writeStart="1200", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1201 [ readStart="1201", readValueType="int16", writeStart="1201", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1202 [ readStart="1202", readValueType="int16", writeStart="1202", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1203 [ readStart="1203", readValueType="int16", writeStart="1203", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1204 [ readStart="1204", readValueType="int16", writeStart="1204", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1205 [ readStart="1205", readValueType="int16", writeStart="1205", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
}
Bridge poller AirQuaRhRegisters [ start=1910, length=4, refresh=6000, type="holding" ] {
Thing data hol1910 [ readStart="1910", readValueType="int16", writeStart="1910", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol1911 [ readStart="1911", readValueType="int16", writeStart="1911", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
Thing data hol1912 [ readStart="1912", readValueType="int16", writeStart="1912", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
Thing data hol1913 [ readStart="1913", readValueType="int16", writeStart="1913", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
}
}
I did try create the Modbus serial slave through PaperUI. It went only with ttyS0. But as soon as I add the Poller to the bridge, I get the same error again. The poller cant connect to ttyS0.
So I´m simply stucked here… I have no idea what to do anymore. All help appreciated. But please notice. I have already read the theads about how to create symlinks etc… So dont waste your (and my) time pointing me to these threads again, please. They do no good.
EDIT:
This is the error I´m facing:
2020-01-02 01:22:15.069 [ERROR] [et.wimpi.modbus.net.SerialConnection] - Could not get port identifier, maybe insufficient permissions. gnu.io.NoSuchPortException: null
2020-01-02 01:22:15.071 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/1 error: Could not get port identifier, maybe insufficient permissions. null. Connection SerialConnection@127bb62[portName=/dev/ttyUSB0,port=<null>]. Endpoint ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0]
2020-01-02 01:22:15.073 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - re-connect reached max tries 1, throwing last error: Could not get port identifier, maybe insufficient permissions. null. Connection SerialConnection@127bb62[portName=/dev/ttyUSB0,port=<null>]. Endpoint ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0]
2020-01-02 01:22:15.075 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection SerialConnection@127bb62[portName=/dev/ttyUSB0,port=<null>] for endpoint ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0]: Could not get port identifier, maybe insufficient permissions. null
2020-01-02 01:22:15.077 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0] -- aborting request ModbusPollerThingHandlerImpl.ModbusPollerReadRequest@1f4daa7[slaveId=30,functionCode=READ_INPUT_REGISTERS,start=0,length=4,maxTries=3] [operation ID 3603656d-7fd0-4d66-bcd2-41726bce1b71]
2020-01-02 01:22:15.080 [ERROR] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:myNilan:appRegisters:inp000 'Modbus Data' had ModbusConnectionException error on read: ModbusConnectionException(Error connecting to endpoint=ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0])
2020-01-02 01:22:15.085 [ERROR] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:myNilan:appRegisters:inp001 'Modbus Data' had ModbusConnectionException error on read: ModbusConnectionException(Error connecting to endpoint=ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0])
2020-01-02 01:22:15.089 [ERROR] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:myNilan:appRegisters:inp002 'Modbus Data' had ModbusConnectionException error on read: ModbusConnectionException(Error connecting to endpoint=ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0])
2020-01-02 01:22:15.093 [ERROR] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:myNilan:appRegisters:inp003 'Modbus Data' had ModbusConnectionException error on read: ModbusConnectionException(Error connecting to endpoint=ModbusSerialSlaveEndpoint@bca5a8[portName=/dev/ttyUSB0])