Hi all,
I am on OH 3.0.1.
Today I have spent the whole day trying to make the modbus binding work without getting it to work properly.
First of all, the good news: this configuration works (and is the only one that works):
Bridge modbus:serial:evolink [ port="/dev/ttyUSB0", id=10, baud=19200, stopBits="1", parity="even", dataBits=8, connectMaxTries=1, receiveTimeoutMillis=1000 ] {
Bridge poller holding1 [ start=0, length=6, refresh=600000, type="holding", maxTries=1 ] {
Thing data h0 [ readStart="0", readValueType="uint16", writeStart="0", writeValueType="uint16", writeType="holding" ]
Thing data h1 [ readStart="1", readValueType="uint16", writeStart="1", writeValueType="uint16", writeType="holding" ]
Thing data h2 [ readStart="2", readValueType="uint16", writeStart="2", writeValueType="uint16", writeType="holding" ]
Thing data h3 [ readStart="3", readValueType="uint16", writeStart="3", writeValueType="uint16", writeType="holding" ]
Thing data h4 [ readStart="4", readValueType="uint16", writeStart="4", writeValueType="uint16", writeType="holding" ]
Thing data h5 [ readStart="5", readValueType="uint16", writeStart="5", writeValueType="uint16", writeType="holding" ]
}
}
So far so good.
But I need to add more pollers, and as soon as I add more pollers to the Bridge (after a reboot):
Bridge modbus:serial:evolink [ port="/dev/ttyUSB0", id=10, baud=19200, stopBits="1", parity="even", dataBits=8, connectMaxTries=1, receiveTimeoutMillis=1000 ] {
Bridge poller holding1 [ start=0, length=6, refresh=600000, type="holding", maxTries=1 ] {
Thing data h0 [ readStart="0", readValueType="uint16", writeStart="0", writeValueType="uint16", writeType="holding" ]
Thing data h1 [ readStart="1", readValueType="uint16", writeStart="1", writeValueType="uint16", writeType="holding" ]
Thing data h2 [ readStart="2", readValueType="uint16", writeStart="2", writeValueType="uint16", writeType="holding" ]
Thing data h3 [ readStart="3", readValueType="uint16", writeStart="3", writeValueType="uint16", writeType="holding" ]
Thing data h4 [ readStart="4", readValueType="uint16", writeStart="4", writeValueType="uint16", writeType="holding" ]
Thing data h5 [ readStart="5", readValueType="uint16", writeStart="5", writeValueType="uint16", writeType="holding" ]
}
Bridge poller holding2 [ start=10, length=5, refresh=15000, type="holding", maxTries=1 ] {
Thing data h10 [ readStart="10", readValueType="uint16", writeStart="10", writeValueType="uint16", writeType="holding" ]
Thing data h11 [ readStart="11", readValueType="uint16", writeStart="11", writeValueType="uint16", writeType="holding" ]
Thing data h12 [ readStart="12", readValueType="uint16", writeStart="12", writeValueType="uint16", writeType="holding" ]
Thing data h13 [ readStart="13", readValueType="uint16", writeStart="13", writeValueType="uint16", writeType="holding" ]
Thing data h14 [ readStart="14", readValueType="uint16", writeStart="14", writeValueType="uint16", writeType="holding" ]
}
}
I get a lot of errors and all the Things remain OFFLINE:
2021-02-26 18:45:37.536 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/1 error: Could not get port identifier, maybe insufficient permissions. null. Connection SerialConnection@50fea4[portName=/dev/ttyUSB0,port=<null>]. Endpoint ModbusSerialSlaveEndpoint@8aeea1[portName=/dev/ttyUSB0]
2021-02-26 18:45:37.540 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - re-connect reached max tries 1, throwing last error: Could not get port identifier, maybe insufficient permissions. null. Connection SerialConnection@50fea4[portName=/dev/ttyUSB0,port=<null>]. Endpoint ModbusSerialSlaveEndpoint@8aeea1[portName=/dev/ttyUSB0]
2021-02-26 18:45:37.545 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection SerialConnection@50fea4[portName=/dev/ttyUSB0,port=<null>] for endpoint ModbusSerialSlaveEndpoint@8aeea1[portName=/dev/ttyUSB0]: Could not get port identifier, maybe insufficient permissions. null
Tried to increase the log level but the info provided is always the same:
connect try 1/1 error: Could not get port identifier, maybe insufficient permissions. null. Connection SerialConnection@50fea4[portName=/dev/ttyUSB0,port=<null>]. Endpoint ModbusSerialSlaveEndpoint@8aeea1[portName=/dev/ttyUSB0]
I also tried to stop and restart the binding from Karaf, but after doing this also the first configuration that works after a reboot doesn’t work anymore.
Is it correct that after stopping and restarting the modbus binding the Bridge remains always OFFLINE?
Sorry for the long post, but the configuration files are huge.