Hi !
I have migrated my system from OH1.8 to OH2.3 and most of the issues I have solve, except Modbus.
So in OH1.8 I have following config:
serial.went_temp.connection=/dev/ttyUSB0:9600:8:even:1:rtu serial.went_temp.id=10 serial.went_temp.start=16 serial.went_temp.type=input serial.went_temp.length=6 serial.went_temp.valuetype=int16
and item:
Number Went_Temp_Zewn_M (Wentylacja) {modbus=“went_temp:0”}
On OH1.8 I have no problem with such config. On OH 2.3 I have tested few buddings: 1.12 (installed via PaperUI), 1.9.0 - no luck . I got std problem with lack of connections:
> 2018-10-11 21:17:50.955 [ERROR[ t.wimpi.modbus.io.ModbusRTUTransport] - Last request: 0a 03 00 04 00 03 45 71
> 2018-10-11 21:17:50.958 [ERROR] [t.wimpi.modbus.io.ModbusRTUTransport] - failed to read: CRC Error in received frame: 0 bytes:
> 2018-10-11 21:17:50.961 [ERROR] [pi.modbus.io.ModbusSerialTransaction] - execute try 1/3 error: I/O exception - failed to read. Request: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@b1071 (unit id 10 & transaction 54). Serial parameters: SerialParameters@7e8781[portName=/dev/ttyUSB0,baudRate=9600,flowControlIn=none,flowControlOut=none,databits=8,stopbits=1,parity=even,encoding=rtu,echo=false,receiveTimeoutMillis=1500]
As I understand it should work as it was on OH1 when I use modbus binding <2.0 ?
Today I have tried with new modbus 2.4 and io.modbus 2.4
BTW. Should I used both ?
I have deleted all in modbus.cfg + restarted bindding via Karaf
Based on manual I wrote thing file:
Bridge modbus:serial:went [ port="/dev/ttyUSB0", id= "10", baud=9600, stopBits="1", parity="none", dataBits=8, encoding="rtu" ] {
Bridge poller input [ start=16, length=1, refresh=10000, type="input" ] {
Thing data temp [ readStart="16", readValueType="int16" ]
}
}
+item:
Number Went_Temp_Zewn_M "Temp [%.1f °C]" <temperature> (Wentylacja) {channel="modbus:data:went:input:temp:number"}
and got:
2018-10-12 18:00:49.832 [hingStatusInfoChangedEvent] - 'modbus:serial:went' changed from UNINITIALIZED to INITIALIZING
2018-10-12 18:00:49.837 [hingStatusInfoChangedEvent] - 'modbus:serial:went' changed from INITIALIZING to ONLINE
2018-10-12 18:00:49.845 [hingStatusInfoChangedEvent] - 'modbus:poller:went:input' changed from UNINITIALIZED to INITIALIZING
2018-10-12 18:00:49.854 [hingStatusInfoChangedEvent] - 'modbus:poller:went:input' changed from INITIALIZING to ONLINE
2018-10-12 18:00:49.874 [hingStatusInfoChangedEvent] - 'modbus:data:went:input:temp' changed from UNINITIALIZED to INITIALIZING
2018-10-12 18:00:49.881 [hingStatusInfoChangedEvent] - 'modbus:data:went:input:temp' changed from INITIALIZING to ONLINE
==> /var/log/openhab2/openhab.log <==
2018-10-12 18:01:19.856 [ERROR] [et.wimpi.modbus.net.SerialConnection] - open port failed: gnu.io.PortInUseException: Modbus Serial Master
==> /var/log/openhab2/events.log <==
2018-10-12 18:01:19.917 [hingStatusInfoChangedEvent] - 'modbus:data:went:input:temp' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusConnectionException) with read. Request: ModbusPollerThingHandlerImpl.ModbusPollerReadRequest@7ec9ce[slaveId=10,functionCode=READ_INPUT_REGISTERS,start=16,length=1,maxTries=3]. Description: ModbusConnectionException(Error connecting to endpoint=ModbusSerialSlaveEndpoint@414459[portName=/dev/ttyUSB0]). Message: Error connecting to endpoint ModbusSerialSlaveEndpoint@414459[portName=/dev/ttyUSB0]
2018-10-12 18:01:19.921 [hingStatusInfoChangedEvent] - 'modbus:poller:went:input' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error with read: org.openhab.io.transport.modbus.ModbusConnectionException: Error connecting to endpoint ModbusSerialSlaveEndpoint@414459[portName=/dev/ttyUSB0]
and then just got:
2018-10-12 18:03:39.946 [ERROR] [et.wimpi.modbus.net.SerialConnection] - open port failed: gnu.io.PortInUseException: Modbus Serial Master
2018-10-12 18:04:19.969 [ERROR] [et.wimpi.modbus.net.SerialConnection] - open port failed: gnu.io.PortInUseException: Modbus Serial Master
Any tips how to migrate this simple config from OH1 to OH2 ?