thingsboard / thingsboard-gateway

Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with ThingsBoard IoT Platform using Modbus, CAN bus, BACnet, BLE, OPC-UA, MQTT, ODBC and REST protocols
https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/
Apache License 2.0
1.73k stars 841 forks source link

[Modbus RTU error] Port [ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1] #133

Closed yangchengjian closed 5 years ago

yangchengjian commented 5 years ago
2018-10-26 15:31:27,529 [pool-1-thread-12] INFO  o.t.g.s.gateway.MqttGatewayService - Configuration updates arrived! {"configuration":"[{\"id\":\"modbus\",\"type\":\"MODBUS\",\"configuration\":{\"servers\":[{\"transport\":{\"type\":\"rtu\",\"timeout\":3000,\"portName\":\"ttyUSB0\",\"encoding\":\"rtu\",\"parity\":\"none\",\"baudRate\":9600,\"dataBits\":8,\"stopBits\":1},\"devices\":[]}]}}]"}
2018-10-26 15:31:27,530 [pool-1-thread-12] INFO  o.t.g.service.TenantServiceRegistry - [Tenant] Updating extension configuration
2018-10-26 15:31:27,543 [pool-1-thread-12] INFO  o.t.g.service.TenantServiceRegistry - Initializing extension: [modbus][MODBUS]
2018-10-26 15:31:27,544 [pool-1-thread-12] INFO  o.t.g.e.modbus.DefaultModbusService - [Tenant] Initializing Modbus service
2018-10-26 15:31:27,545 [pool-1-thread-12] DEBUG o.t.g.e.modbus.DefaultModbusService - [Tenant] Modbus service configuration [ModbusConfiguration(servers=[ModbusServerConfiguration(transport=ModbusRtuTransportConfiguration(portName=ttyUSB0, timeout=3000, encoding=rtu, baudRate=9600, dataBits=8, stopBits=1.0, parity=none), devices=[])])]
2018-10-26 15:31:28,066 [pool-1-thread-12] ERROR o.t.g.extensions.modbus.ModbusClient - MBS[ttyUSB0] connection failed!
java.io.IOException: Port [ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:80)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2018-10-26 15:31:28,068 [pool-1-thread-12] ERROR o.t.g.e.modbus.DefaultModbusService - [Tenant] Modbus service initialization failed
java.lang.RuntimeException: MBS connection failed!
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Port [ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:80)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    ... 12 common frames omitted
2018-10-26 15:31:28,075 [pool-1-thread-12] INFO  o.t.g.service.TenantServiceRegistry - Failed to read configuration attribute
java.lang.RuntimeException: MBS connection failed!
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Port [ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:80)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    ... 12 common frames omitted
2018-10-26 15:31:28,078 [pool-1-thread-12] WARN  o.t.g.s.gateway.MqttGatewayService - Failed to update extension configurations [[]]
java.lang.RuntimeException: Failed to update configuration
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:99)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: MBS connection failed!
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    ... 9 common frames omitted
Caused by: java.io.IOException: Port [ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:80)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    ... 12 common frames omitted
2018-10-26 15:31:28,189 [pool-2-thread-1] DEBUG o.t.g.service.MqttMessageSender - Sending message [{deviceId='null', payload={"modbusExtensionError":"java.lang.RuntimeException: MBS connection failed!\n\tat org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)\n\tat java.util.ArrayList.forEach(ArrayList.java:1257)\n\tat org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)\n\tat org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)\n\tat org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)\n\tat org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)\n\tat org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)\n\tat org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: java.io.IOException: Port [ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]\n\tat com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)\n\tat com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:80)\n\tat org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)\n\t... 12 more\n"}, timestamp=0, topic='v1/devices/me/telemetry'id=7933ec6d-6894-4d31-a3f3-ed6d898e8654, messageId=115}]
2018-10-26 15:31:28,191 [pool-2-thread-1] DEBUG o.t.g.service.MqttMessageSender - Sending message [{deviceId='null', payload={"modbusExtensionStatus":"Failure"}, timestamp=0, topic='v1/devices/me/telemetry'id=696496b2-0fcc-4ab7-a08a-182e7d8ea767, messageId=116}]
2018-10-26 15:31:28,193 [pool-2-thread-1] DEBUG o.t.g.service.MqttMessageSender - Waiting until all messages are sent before going to the next bucket
2018-10-26 15:31:28,250 [pool-3-thread-1] DEBUG o.t.g.service.MqttMessageReceiver - Successfully sent message: [null]
2018-10-26 15:31:28,256 [pool-3-thread-1] DEBUG o.t.g.service.MqttMessageReceiver - Successfully sent message: [null]
yangchengjian commented 5 years ago

Why even "ttyUSB0" in Valid ports but still reporting an error?

steveohara commented 5 years ago

Shouldn't you be using "/dev/ttyUSB0" as the port identifier?

yangchengjian commented 5 years ago

@steveohara I tried it too, but reported the same error

2018-10-28 11:03:37,478 [pool-1-thread-2] INFO  o.t.g.s.gateway.MqttGatewayService - Configuration updates arrived! {"configuration":"[{\"id\":\"mod\",\"type\":\"MODBUS\",\"configuration\":{\"servers\":[{\"transport\":{\"type\":\"rtu\",\"timeout\":3000,\"portName\":\"/dev/ttyUSB0\",\"encoding\":\"rtu\",\"parity\":\"none\",\"baudRate\":9600,\"dataBits\":8,\"stopBits\":1},\"devices\":[]}]}}]"}
2018-10-28 11:03:37,973 [pool-1-thread-2] INFO  o.t.g.service.TenantServiceRegistry - [Tenant] Updating extension configuration
2018-10-28 11:03:37,981 [pool-1-thread-2] INFO  o.t.g.service.TenantServiceRegistry - Initializing extension: [mod][MODBUS]
2018-10-28 11:03:37,982 [pool-1-thread-2] INFO  o.t.g.e.modbus.DefaultModbusService - [Tenant] Initializing Modbus service
2018-10-28 11:03:37,984 [pool-1-thread-2] DEBUG o.t.g.e.modbus.DefaultModbusService - [Tenant] Modbus service configuration [ModbusConfiguration(servers=[ModbusServerConfiguration(transport=ModbusRtuTransportConfiguration(portName=/dev/ttyUSB0, timeout=3000, encoding=rtu, baudRate=9600, dataBits=8, stopBits=1.0, parity=none), devices=[])])]
2018-10-28 11:03:38,004 [pool-1-thread-2] ERROR o.t.g.extensions.modbus.ModbusClient - MBS[/dev/ttyUSB0] connection failed!
java.io.IOException: Port [/dev/ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:96)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2018-10-28 11:03:38,006 [pool-1-thread-2] ERROR o.t.g.e.modbus.DefaultModbusService - [Tenant] Modbus service initialization failed
java.lang.RuntimeException: MBS connection failed!
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Port [/dev/ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:96)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    ... 12 common frames omitted
2018-10-28 11:03:38,010 [pool-1-thread-2] INFO  o.t.g.service.TenantServiceRegistry - Failed to read configuration attribute
java.lang.RuntimeException: MBS connection failed!
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Port [/dev/ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:96)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    ... 12 common frames omitted
2018-10-28 11:03:38,012 [pool-1-thread-2] WARN  o.t.g.s.gateway.MqttGatewayService - Failed to update extension configurations [[]]
java.lang.RuntimeException: Failed to update configuration
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:99)
    at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.updateConfiguration(MqttGatewayService.java:520)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.onGatewayAttributesUpdate(MqttGatewayService.java:512)
    at org.thingsboard.gateway.service.gateway.MqttGatewayService.lambda$onMessage$17(MqttGatewayService.java:429)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: MBS connection failed!
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:119)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.thingsboard.gateway.extensions.modbus.DefaultModbusService.init(DefaultModbusService.java:64)
    at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:83)
    ... 9 common frames omitted
Caused by: java.io.IOException: Port [/dev/ttyUSB0] cannot be opened or does not exist - Valid ports are: [ttyAMA0,ttyUSB0,ttyUSB1]
    at com.ghgande.j2mod.modbus.net.SerialConnection.open(SerialConnection.java:127)
    at com.ghgande.j2mod.modbus.facade.ModbusSerialMaster.connect(ModbusSerialMaster.java:96)
    at org.thingsboard.gateway.extensions.modbus.ModbusClient.connect(ModbusClient.java:110)
    ... 12 common frames omitted
steveohara commented 5 years ago

If you login to the device shell, can you access the port from the command line? Does it in fact exist? Does the user that you application is running as have privileges to open the port? Is the port being used by another process? If you run modpoll, do you get the same results?

yangchengjian commented 5 years ago

I can open the port and get data through Python

#!/usr/bin/env python
# -*- coding: utf_8 -*-

import serial

import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu

#PORT = 1
PORT = "/dev/ttyUSB0"

def main():
    """main"""
    logger = modbus_tk.utils.create_logger("console")

    try:
        #Connect to the slave
        master = modbus_rtu.RtuMaster(
            serial.Serial(port=PORT, baudrate=9600, bytesize=8, parity='N', stopbits=1, xonxoff=0)
        )
        master.set_timeout(5.0)
        master.set_verbose(True)
        logger.info("connected")

       # logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 2))

        #send some queries
        #logger.info(master.execute(1, cst.READ_COILS, 0, 10))
        #logger.info(master.execute(1, cst.READ_DISCRETE_INPUTS, 0, 8))
        #logger.info(master.execute(1, cst.READ_INPUT_REGISTERS, 100, 3))
        #logger.info(master.execute(1, cst.READ_HOLDING_REGISTERS, 100, 12))
        #logger.info(master.execute(1, cst.WRITE_SINGLE_COIL, 7, output_value=1))
        #logger.info(master.execute(1, cst.WRITE_SINGLE_REGISTER, 100, output_value=54))
        #logger.info(master.execute(1, cst.WRITE_MULTIPLE_COILS, 0, output_value=[1, 1, 0, 1, 1, 0, 1, 1]))
        #logger.info(master.execute(1, cst.WRITE_MULTIPLE_REGISTERS, 100, output_value=xrange(12)))

    except modbus_tk.modbus.ModbusError as exc:
        logger.error("%s- Code=%d", exc, exc.get_exception_code())

if __name__ == "__main__":
    main()
pi@raspberrypi:~ $ python modbus.py
2018-10-28 11:16:43,324 INFO    modbus_rtu.__init__ MainThread  RtuMaster /dev/ttyUSB0 is opened
2018-10-28 11:16:43,325 INFO    modbus.main MainThread  connected
2018-10-28 11:16:43,594 INFO    modbus_rtu.__init__ MainThread  RtuMaster /dev/ttyUSB0 is opened
2018-10-28 11:16:43,594 INFO    modbus_rtu.__init__ MainThread  RtuMaster /dev/ttyUSB0 is opened
2018-10-28 11:16:43,596 INFO    modbus.main MainThread  connected
2018-10-28 11:16:43,596 INFO    modbus.main MainThread  connected
2018-10-28 11:16:43,598 DEBUG   modbus.execute  MainThread  -> 1-3-0-1-0-2-149-203
2018-10-28 11:16:43,598 DEBUG   modbus.execute  MainThread  -> 1-3-0-1-0-2-149-203
2018-10-28 11:16:43,637 DEBUG   modbus.execute  MainThread  <- 1-3-4-1-29-0-0-107-201
2018-10-28 11:16:43,637 DEBUG   modbus.execute  MainThread  <- 1-3-4-1-29-0-0-107-201
2018-10-28 11:16:43,639 INFO    modbus.main MainThread  (285, 0)
2018-10-28 11:16:43,639 INFO    modbus.main MainThread  (285, 0)
2018-10-28 11:16:43,914 INFO    modbus_rtu.__init__ MainThread  RtuMaster /dev/ttyUSB0 is opened
2018-10-28 11:16:43,914 INFO    modbus_rtu.__init__ MainThread  RtuMaster /dev/ttyUSB0 is opened
2018-10-28 11:16:43,914 INFO    modbus_rtu.__init__ MainThread  RtuMaster /dev/ttyUSB0 is opened
2018-10-28 11:16:43,916 INFO    modbus.main MainThread  connected
2018-10-28 11:16:43,916 INFO    modbus.main MainThread  connected
2018-10-28 11:16:43,916 INFO    modbus.main MainThread  connected
2018-10-28 11:16:43,917 DEBUG   modbus.execute  MainThread  -> 1-3-0-0-0-2-196-11
2018-10-28 11:16:43,917 DEBUG   modbus.execute  MainThread  -> 1-3-0-0-0-2-196-11
2018-10-28 11:16:43,917 DEBUG   modbus.execute  MainThread  -> 1-3-0-0-0-2-196-11
2018-10-28 11:16:43,956 DEBUG   modbus.execute  MainThread  <- 1-3-4-1-6-1-29-218-87
2018-10-28 11:16:43,956 DEBUG   modbus.execute  MainThread  <- 1-3-4-1-6-1-29-218-87
2018-10-28 11:16:43,956 DEBUG   modbus.execute  MainThread  <- 1-3-4-1-6-1-29-218-87
2018-10-28 11:16:43,957 INFO    modbus.main MainThread  (262, 285)
2018-10-28 11:16:43,957 INFO    modbus.main MainThread  (262, 285)
2018-10-28 11:16:43,957 INFO    modbus.main MainThread  (262, 285)
steveohara commented 5 years ago

j2mod uses jSerialComm to handle access to the serial port and this error originates from there. I would take a look at the source code of SerialPort.openPort to see what the problem might be. You might find yourself having to look at the native code here as well because jSerialComm is a JNI library.

Does the problem go away if you run as root?

hasikp1 commented 5 years ago

Just pass port as ttyUSB0, and change ownership and group in all files of /usr/share/tb-gateway to root