Giter Site home page Giter Site logo

thingsboard / thingsboard-gateway Goto Github PK

View Code? Open in Web Editor NEW
1.6K 1.6K 782.0 11.53 MB

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

Home Page: https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/

License: Apache License 2.0

Shell 0.84% Dockerfile 0.16% Python 98.62% PLpgSQL 0.38%
aws aws-iot bacnet ble can can-bus gateway iot iot-gateway mqtt mqtt-broker odbc opc-ua sigfox thingsboard

thingsboard-gateway's Introduction

ThingsBoard IoT Gateway

The Thingsboard IoT Gateway is an open-source solution that allows you to integrate devices connected to legacy and third-party systems with Thingsboard.

Thingsboard is an open-source IoT platform for data collection, processing, visualization, and device management. See What is Thingsboard? if you are new platform user.

What is ThingsBoard IoT Gateway?
Getting started with ThingsBoard IoT Gateway

What is ThingsBoard IoT Gateway?

Gateway features

Thingsboard IoT Gateway provides following features:

  • OPC-UA connector to collect data from devices that are connected to OPC-UA servers.
  • MQTT connector to collect data that is published to external MQTT brokers.
  • Modbus connector to collect data from Modbus servers and slaves.
  • BLE connector to collect data from BLE devices.
  • Request connector to collect data from HTTP API.
  • REST connector to collect data using REST API.
  • CAN connector to collect data using CAN protocol.
  • BACnet connector to collect data from devices using BACnet protocol.
  • SNMP connector to collect data from SNMP managers objects.
  • ODBC connector to collect data from ODBC databases.
  • FTP connector to collect data from files via FTP.
  • Socket connector to collect data from devices using sockets.
  • XMPP connector to collect data from XMPP devices.
  • Custom connector to collect data from custom protocols.
  • Persistence of collected data to guarantee data delivery in case of network and hardware failures.
  • Automatic reconnect to Thingsboard cluster.
  • Simple yet powerful mapping of incoming data and messages to unified format.
  • Remote logging feature to monitor the gateway status through the ThingsBoard WEB interface.
  • RPC gateway methods to control and get information from the gateway through ThingsBoard WEB interface.
  • Remote shell to control operating system with ThingsBoard IoT Gateway from your ThingsBoard platform instance.
  • Device renaming/removing handling to keep the device list in actual state.
  • Gateway Configurator easy-to-use CLI configurator.
  • HOT Reload for developers.

Architecture

The IoT Gateway is built on top of Python, however is different from similar projects that leverage OSGi technology. The idea is distantly similar to microservices architecture.
The gateway supports custom connectors to connect to new devices or servers and custom converters for processing data from devices.
Especially, when we are talking about language APIs and existing libraries to work with serial ports, GPIOs, I2C, and new modules and sensors that are released every day.

The Gateway provides simple integration APIs, and encapsulates common Thingsboard related tasks: device provisioning, local data persistence and delivery, message converters and other.
For processing data from devices you also can write custom converter, it will receive information from device and send it to converter to convert to unified format before sending it to the ThingsBoard cluster.

Support

Don't forget to star the repository to show your ❤️ and support.

Licenses

This project is released under Apache 2.0 License.

thingsboard-gateway's People

Contributors

agtokty avatar anirudh-mehta avatar ashvayka avatar coderpuppy avatar devaskim avatar donghbcn avatar felix-ma avatar ikulikov avatar imbeacon avatar iqihao avatar jeffreylauck avatar joerg555 avatar kevin-ox avatar kevinpoole avatar lgw666 avatar lukaszduss avatar m-krasikov avatar mircopz avatar mp-loki avatar mursisoy avatar pbrkr avatar samson0v avatar slibutti avatar thesamabo avatar volodymyr-babak avatar wilterdinkrobert avatar xunyuw avatar ysimonx avatar zhufeng88 avatar zwoabier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thingsboard-gateway's Issues

I want to use individual KVs on extend MQTT

Hi~
This question is related with #40

I also operate to send individual KVs like as below.

  • Topic : v1/usr/openhouse/down

  • Payload : {"cmdId":11809,"humidity":["2018-05-14 13:05:53",35.2]}

  • Topic : v1/usr/openhouse/down

  • Payload : {"cmdId":11809,"temperature":["2018-05-14 13:05:44",33.2]

So I writed mqtt-config.json as below.

  "brokers": [
    {   
      "host": "test.sktiot.com",
      "port": 1883,
      "ssl": false,
      "retryInterval": 3000,
      "credentials": {
        "type": "basic",
        "username": "xxxx",
        "password": "xxxx"
      },  
      "mapping": [
        {
          "topicFilter": "v1/usr/openhouse/down",
          "converter": {
            "type": "json",
            "filterExpression": "$[?(@.humidity)]",
            "deviceNameJsonExpression": "${$.cmdId}",
            "deviceTypeJsonExpression": "SF_TempHumi",
            "attributes": [
            ],
            "timeseries": [
              {
                "type": "double",
                "key": "humidity",
                "value": "${$.humidity[1]}"
              }
            ]
          }
        },
        {
          "topicFilter": "v1/usr/openhouse/down",
          "converter": {
            "type": "json",
            "filterExpression": "$[?(@.temperature)]",
            "deviceNameJsonExpression": "${$.cmdId}",
            "deviceTypeJsonExpression": "SF_TempHumi",
            "timeseries": [
              {
                "type": "double",
                "key": "temperature",
                "value": "${$.temperature[1]}"
              }
            ]
          }
        }
      ],
      ...
      ...
[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.c.m.MqttJsonConverter - kaizen json message: {"cmdId":11809,"temperature":["2018-05-14 13:25:27",33.2]}
[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.c.m.MqttJsonConverter - kaizen Data before filtering {"cmdId":11809,"temperature":["2018-05-14 13:25:27",33.2]}
[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.c.m.MqttJsonConverter - kaizen Data after filtering [{"cmdId":11809,"temperature":["2018-05-14 13:25:27",33.2]}], $[?(@.temperature)

[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.l.MqttTelemetryMessageListener - v1/usr/openhouse/down,{"cmdId":11809,"humidity":["2018-05-14 13:05:53",35.2]}
[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.c.m.MqttJsonConverter - json message: {"cmdId":11809,"humidity":["2018-05-14 13:05:53",35.2]}
[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.c.m.MqttJsonConverter - Data before filtering {"cmdId":11809,"humidity":["2018-05-14 13:05:53",35.2]}
[MQTT Call: d5681eba-9f33-4148-8939-354ece59e6e2] INFO  o.t.g.e.m.c.c.m.MqttJsonConverter - Data after filtering [], **$[?(@.temperature)]**

In that case, I success to send temperature data but humidity doesn't send to ThingsBoard because it was filtered. So I think It has some problem such as TB-Gateway only use last "filterExpression".
Is it right? or Is there anything I'm doing wrong?

I used TB-Gateway 1.4.1 latest version and I just added log file.
Anyone please help me and give a guide.

Thank you.

TB-Gateway logging level

How can the default tb-gateway logging level be changed with the help of some entry in the tb-gateway.yml file ?

using custom plugin

after customizing plugin of tb-gateway, can i implement it by simply placing it inside jar to

tb-gateway\lib\tb-gateway.jar\BOOT-INF\classes\org\thingsboard\gateway\extensions\

or is re-compiling required?

Timeout Error Connecting to Thingsboard (MQTT)

Hi,

I'm having an issue connecting to my Thingsboard Server (my own instance). I am getting a time out error appearing in my /var/log/tb-gateway/tb-gateway.log

2018-06-06 13:46:51,051 [main] ERROR o.t.g.s.gateway.MqttGatewayService - Unable to connect to ThingsBoard. Connection timed out after [10000] milliseconds

My tb-gateway.yml looks as follows:

server:
  # Server bind address
  address: "0.0.0.0"
  # Server bind port
  port: "9090"

# Check new version updates parameters
updates:
  # Enable/disable updates checking.
  enabled: "${UPDATES_ENABLED:true}"

gateways:
  tenants:
    -
      label: "Tenant"
      reporting:
        interval: 60000
      persistence:
        type: file
        path: storage
        bufferSize: 1000
      connection:
        host: "${GATEWAY_HOST:My_Own_Host_IP}"
        port: 1883
        retryInterval: 3000
        maxInFlight: 1000
        security:
          accessToken: "${GATEWAY_ACCESS_TOKEN:My_Own_Token}"
      remoteConfiguration: true
      extensions:
        -
          id: "http"
          type: "HTTP"
extensionConfiguration: http-config.json

Do I need to set up my own MQTT broker? The instructions in the documentation seem to suggest that all I need to do is change the host IP and add my access token and the gateway should appear in my thingboard devices page.

Any help would be greatly appreciated!

Thanks,

Alex

Thingsboard-gateway device connected, but not created in thingsboard devices.

Hi,
I in running thingsboard application and thingsboard gate way application on the same machine. I am establishing a gateway between mqtt mosquitto and thingsboard application. when i am publishing the data i am getting device connected in thingsboard gateway log but the device is not getting created.
The log i am getting is,

2018-04-13 12:14:43,481 [MQTT Call: cbb9442b-ec70-4178-a88d-92452c60dcb2] INFO o.t.g.s.gateway.MqttGatewayService - [Niks] Device Connected!
2018-04-13 12:14:43,786 [pool-4-thread-1] INFO o.t.g.service.MqttMessageSender - Outgoing queue is not empty. [1] messages are still in progress
2018-04-13 12:14:43,786 [pool-4-thread-1] INFO o.t.g.service.MqttMessageSender - Waiting until all messages are sent before going to the next bucket
2018-04-13 12:14:44,791 [pool-4-thread-1] INFO o.t.g.service.MqttMessageSender - Outgoing queue is not empty. [1] messages are still in progress

I am continuously getting outgoing queue is not empty. [1] messages are still in progress.

my thingsboard gateway.yml configuration is.

server:

Server bind address

address: "0.0.0.0"

Server bind port

port: "9090"

Check new version updates parameters

updates:

Enable/disable updates checking.

enabled: "${UPDATES_ENABLED:true}"

gateways:
tenants:
-
label: "tenant"
reporting:
interval: 60000
persistence:
type: file
path: storage
bufferSize: 1000
connection:
host: "${GATEWAY_HOST:localhost}"
port: 1883
retryInterval: 3000
maxInFlight: 100
security:
accessToken: "${GATEWAY_ACCESS_TOKEN:yWcNs3hZ9ch4rPpI9t79}"
remoteConfiguration: true
extensions:
-
id: "http"
type: "HTTP"
extensionConfiguration: http-config.json
-
id: "mqtt"
type: "MQTT"
extensionConfiguration: mqtt-config.json

Please help me the solve this issue.

commanding custom mathematic tb-extension

Hi!

I'm in need of calculation properties, and so i plan to create tb-gateway extension, which takes data in, calculates value based on it, and if it is in treshold range sends it forward. This acts as a kind of advanced filter (it possibly alerts if treshold is exceeded).

So, question:

i know tb and gateway use mqtt beetween them to transfer settings and data, so i was wondering if i could use for example mqtt from widget to control treshold limits of the extension

the aim is to reduce strain of server, since there will be lot of useless raw data needed only to monitor if tresholds get exceeded

Can the widgets shown on this page be used in community edition?

hi,

Can the widgets used on this page be exported/used in community edition of TB? Currently we are evaluating TB and doing a pilot project ( a POC ) for one of our customers. We'd definitely want to go for the Professional ( paid ) edition once we have this customer but till then we need to get a dashboard up as per their requirements. This page has something similar. How can these widgets be used in our current community edition? Is that even possible?

How to explore data from OPC-UA devices?

I met a problem in my exploration, The opc-ua server can connection successful.
But cannot read tag value in devices, No changes have been made to any of the gateway files.
Does KEPServer the expiration have an impact?

Please help me check where is a problem.
Thanks!

mqtt filter mapping not working

when i use mqtt config mappings, only other filter expression gets applied. rest are ignored. this is causing serious problems, since i cannot get different messages in.

{
	"brokers": [
		{	
			"host": "xxxxxxxxx",
			"port": xxxx,
			"ssl": xxxx,
			"retryInterval": xxxx,
			"credentials": {
				"type": "xxxx",
				"username": "xxxx",
				"password": "xxxx"
			},		  
			"mapping": 
			[			
				{
					"topicFilter": "sensor",
					"converter": {
						"type": "json",
						"filterExpression": "[?(@.tsmId == 1111)]",
						"deviceNameJsonExpression": "${$.tsmTuid}",
						"attributes": [
						  {
							"type": "string",
							"key": "Gateway",
							"value": "${$.tsmGw}"
						  }
						],
						"timeseries": [
							{						
								"type": "double",
								"key": "tsmId",
								"value": "${$.tsmId}"
							},
							{
								"type": "double",
								"key": "lght",
								"value": "${$.lght}"
							},
							{
								"type": "double",
								"key": "humd",
								"value": "${$.humd}"
							},
							{
								"type": "double",
								"key": "airp",
								"value": "${$.airp}"
							},
							{
								"type": "double",
								"key": "temp",
								"value": "${$.temp}"
							}
						]
					}
				},			
				{
					"topicFilter": "sensor",
					"converter": {
						"type": "json",
						"filterExpression": "[?(@.tsmId == 1110)]",
						"deviceNameJsonExpression": "${$.tsmTuid}",
						"attributes": [
						  {
							"type": "string",
							"key": "Gateway",
							"value": "${$.tsmGw}"
						  }
						],
						"timeseries": [
							{
								"type": "double",
								"key": "Activity level",
								"value": "${$.activityLevel}"
							},
							{
								"type": "double",
								"key": "Energy level",
								"value": "${$.energyLevel}"
							},
							{
								"type": "double",
								"key": "Battery level",
								"value": "${$.batl}"
							}
						]
					}				
				}
			]
		}
	]
}

so, when data with tsmid 1111 comes in, it is ignored.

tb-config extensions

when configuring tb-gateway.yml, what are possible extensions? i went through source code and didn't find parser of any kind regarding this.

also, there is no documentation on web page about changing extension, and what extensions are available to put here.

if i copy mqtt folder and name it mqtt-foo, can i choose it like this:

extensions:        
        -
          id: "mqtt-foo"
          type: "MQTT_FOO"
          extensionConfiguration: mqtt-foo-config.json

OPC-UA not connecting/keystore poblem

tb-gateway.log
Hello!

I discovered a potential bug, while following example.
I have gateway and thingsboard on version 1.4.0, both installed on same computer.
i try to connect to prosys opcua server on raspberry pi, and i am using default keystore and certification.

however, when starting tb-gateway, log shows error messages

ERROR o.t.gateway.util.ConfigurationTools - Keystore configuration: 
[KeystoreConfiguration(type=PKCS12, location=example.pfx, fileContent=, 
password=secret, alias=gateway, keyPassword=password)] is invalid!
java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded. 
Such issues can arise if a bad key is used during decryption.

when using jks, error is:

ERROR o.t.gateway.util.ConfigurationTools - Keystore configuration: 
[KeystoreConfiguration(type=JKS, location=example.jks, fileContent=, password=secret, 
alias=gateway, keyPassword=password)] is invalid!
java.security.UnrecoverableKeyException: Cannot recover key

and apparently caused by this, opcua tries to connect to null (i've tried ip with and without the opc.tcp:// header)

INFO  o.t.g.e.opc.OpcUaServerMonitor - Initializing OPC-UA server connection to [null:4840]!

POM Update

paho client version 1.1.1 is now available in maven repo. POM can be updated now to use the same instead of 1.1.1-SNAPSHOT

Can't build from sources.

How fix this?

$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Thingsboard Gateway 1.4.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.thingsboard.common:data:jar:1.4.1-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for nl.jk5.netty-mqtt:netty-mqtt:jar:2.0.0TB is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.190 s
[INFO] Finished at: 2018-04-18T21:24:48+04:00
[INFO] Final Memory: 13M/208M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project gateway: Could not resolve dependencies for project org.thingsboard:gateway:jar:1.4.1-SNAPSHOT: The following artifacts could not be resolved: org.thingsboard.common:data:jar:1.4.1-SNAPSHOT, nl.jk5.netty-mqtt:netty-mqtt:jar:2.0.0TB: Could not find artifact org.thingsboard.common:data:jar:1.4.1-SNAPSHOT -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

Custom gateway create device problem

I was trying to implement a python script that would do an interface between Vera Lite (Z-wave controller) and Thingsboard via MQTT, but got across a very specific problem.

I have published correct JSON to topic v1/gateway/connect. Althought device appeared to be created successfully, it was not possible to send telemetry or attributes through v1/gateway/attributes or v1/gateway/telemetry topics.
When I checked log it was always returning this message:

Failed to process publish msg [v1/gateway/connect][-1]
java.lang.IllegalArgumentException: messageId: -1 (expected: 1 ~ 65535)_

After several hours of looking for a problem got this:

There is a special Message Id set to header during publish. Problem is that many mqtt client implementations (python, lua, newest nodejs) does not have implemented this feature, so it makes it complicated to create a custom gateway not based on Java. Is it really needed to set message id during publishing message?

Thank you for response in advance

What is the specific meaning of "deviceNodePattern" and "deviceNamePattern" in the tutorial?

Now, I'm going to connect tb-gateway with a third-party opc ua server (milo), and I don't know how to match the fields here?

https://thingsboard.io/docs/iot-gateway/getting-started/

Step 9.4. Explore data from devices
`**{
"deviceNodePattern": "Channel1\.Device\d+$",

"deviceNamePattern": "Device ${_System._DeviceId}",

"attributes": [
{"key":"Tag1", "type": "string", "value": "${Tag1}"}
],
"timeseries": [
{"key":"Tag2", "type": "long", "value": "${Tag2}"}
]
}`**

Unable to compile. Missing artificat in Jenkins repo

I cloned the repo and issued 'mvn clean install'. Got this error. If you go to the jenkins repository, indeed the jar is missing. So for the moment, it's not possible to build the IoT Gateway from the sources on github.

[ERROR] Failed to execute goal on project gateway: Could not resolve dependencies for project org.thingsboard:gateway:jar:1.2.1: Could not find artifact org.thingsboard.common:data:jar:1.3.0 in jenkins (http://repo.jenkins-ci.org/releases) -> [Help 1]

Thingsboard gateway not reconnecting

Hi,
I'm using thingsboard gateway 1.2.2 and thingsboard 1.4.0, if the thingsboard restarts, the gateway doesn't reconnect automatically. I have to restart it manually.
How can I resolve the problem?

Modbus Support (Feature suggestion)

Hello!

First excuse me if it's not the place to make a suggestion.
I think will be good to support modbus TCP as many industrial devices (PLC's) doesn't have the capabilty to do OPC-UA and modbus is a widely used protocol.
I have no idea how to implement it (no javascript knowledge) so asking here..

Congratulations for the great project!

opcua telemetry data on thingsboard gui

After configuring opc-config.json, i ran into this problem:

if i use
"deviceNodePattern": "Objects\.Raspberry\ Pi\.Application\d+$",
"deviceNamePattern": "Device ${_System._DeviceId}",

(this should be the correct path)

log gives these messages:

2018-04-19 11:31:02,010 [pool-4-thread-1] INFO o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-04-19 11:31:02,557 [http-nio-0.0.0.0-9090-ClientPoller-1] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524126662557; nextExpiration=1524126662556; keyCount=0; hasEvents=false; eval=false
2018-04-19 11:31:02,557 [http-nio-0.0.0.0-9090-ClientPoller-0] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524126662557; nextExpiration=1524126662556; keyCount=0; hasEvents=false; eval=false
2018-04-19 11:31:03,557 [http-nio-0.0.0.0-9090-ClientPoller-1] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524126663557; nextExpiration=1524126663557; keyCount=0; hasEvents=false; eval=false
2018-04-19 11:31:03,557 [http-nio-0.0.0.0-9090-ClientPoller-0] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524126663557; nextExpiration=1524126663557; keyCount=0; hasEvents=false; eval=false
2018-04-19 11:31:04,558 [http-nio-0.0.0.0-9090-ClientPoller-0] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524126664558; nextExpiration=1524126664557; keyCount=0; hasEvents=false; eval=false
2018-04-19 11:31:04,558 [http-nio-0.0.0.0-9090-ClientPoller-1] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524126664558; nextExpiration=1524126664557; keyCount=0; hasEvents=false; eval=false

if using
"deviceNodePattern": "Objects",
"deviceNamePattern": "Objects",

log shows this:

2018-04-19 11:34:56,142 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=91}, name=ReferenceTypes, fqn=Types.ReferenceTypes)
2018-04-19 11:34:56,142 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-19 11:34:56,142 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-19 11:34:56,142 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=3345
2018-04-19 11:34:56,143 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=90}, name=DataTypes, fqn=Types.DataTypes)
2018-04-19 11:34:56,143 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-19 11:34:56,143 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-19 11:34:56,143 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=3346
2018-04-19 11:34:56,146 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=87}, name=Views, fqn=Views)
2018-04-19 11:34:56,146 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-19 11:34:56,146 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-19 11:34:56,146 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=3347
2018-04-19 11:34:56,147 [pool-7-thread-1] INFO o.t.g.e.opc.OpcUaServerMonitor - Device scan cycle completed in 189 ms

Have i understood correctly use of the device node/name patterns, and why can't i see them in telemetry data or devices on web gui?

Device type field in the GUI is not working

Hello,

Right now we are testing the Thingsboard IoT Gateway GUI. We have noticed that it has a device type filter, but if we set that field with some valid value (like ${$.type}) it doesn't change the type when a device reports to thingsboard.

We are using mosquitto with the tb-gateway and we have this configured:

image

When a device reports to thingsboard for the first time, it has a default type even if a dtype is present in the json like this:
"dtype": "Truck"

Error: Too many publishes in progress

When the tb-gateway (GW) loses the connection with the server for a period of time such that (I suspect) the number of messages not transmitted are greater than the "maxInFlight" parameter, then the connection is re-established the GW generate this error in the log:

2017-05-10 00:11:07,311 [MQTT Call: 452a5e28-9587-47bd-a61f-6d03124f6b21] WARN  o.t.g.service.MqttGatewayService - [Sensor_Verde][1370] Failed to publish device telemetry!
org.eclipse.paho.client.mqttv3.MqttException: Too many publishes in progress
	at org.eclipse.paho.client.mqttv3.internal.ClientState.send(ClientState.java:498)
	at org.eclipse.paho.client.mqttv3.internal.ClientComms.internalSend(ClientComms.java:136)
	at org.eclipse.paho.client.mqttv3.internal.ClientComms.sendNoWait(ClientComms.java:165)
	at org.eclipse.paho.client.mqttv3.MqttAsyncClient.publish(MqttAsyncClient.java:1126)
	at org.thingsboard.gateway.service.MqttGatewayService.publishAsync(MqttGatewayService.java:334)
	at org.thingsboard.gateway.service.MqttGatewayService.onDeviceTelemetry(MqttGatewayService.java:198)
	at org.thingsboard.gateway.extensions.mqtt.client.MqttBrokerMonitor.onDeviceData(MqttBrokerMonitor.java:181)
	at org.thingsboard.gateway.extensions.mqtt.client.listener.MqttTelemetryMessageListener.messageArrived(MqttTelemetryMessageListener.java:42)
	at org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:469)
	at org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:380)
	at org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:184)
	at java.lang.Thread.run(Thread.java:745)

and in the server-side user interface Device telemetry data does not arrive.

Restart the tb-gateway service does not fix anything.
The only way I found to fix the problem is to delete the GW and create it again in the Thingsboard console user interface, which has the effect of losing all historical data.

build fails due to dependency issues

I downloaded the lasted versions of thingsboard and gateway per instructions while things board build succeeds, gateway fails:[INFO] Scanning for projects... I have both projects under common thingsboard directory.

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Thingsboard Gateway 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.thingsboard.common:data:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.eclipse.paho:org.eclipse.paho.client.mqttv3:jar:1.1.1-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.675 s
[INFO] Finished at: 2017-09-29T16:18:28+01:00
[INFO] Final Memory: 11M/150M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project gateway: Could not resolve dependencies for project org.thingsboard:gateway:jar:1.0.0: The following artifacts could not be resolved: org.thingsboard.common:data:jar:1.1.0, org.eclipse.paho:org.eclipse.paho.client.mqttv3:jar:1.1.1-SNAPSHOT: Failure to find org.thingsboard.common:data:jar:1.1.0 in https://repo.eclipse.org/content/repositories/paho-snapshots/ was cached in the local repository, resolution will not be reattempted until the update interval of Eclipse Paho Repo has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

OPC-UA gateway timeseries configuration handling error

While testing the OPC-UA, noticed that the attribute mappings and time series mappings doesn't work correctly.

While investigating the code in OpcUaDevice.java noticed following issue (lines 100-118):

public List<KvEntry> getAffectedAttributes(NodeId tagId, DataValue dataValue) {
        List<AttributesMapping> attributes = getAttributesMapping(tagId);
        if (attributes.size() > 0) {
            return getKvEntries(attributes);
        } else {
            return Collections.emptyList();
        }
    }

public List<TsKvEntry> getAffectedTimeseries(NodeId tagId, DataValue dataValue) {
        List<AttributesMapping> attributes = getAttributesMapping(tagId);
        if (attributes.size() > 0) {
            return getKvEntries(attributes).stream()
                    .map(kv -> new BasicTsKvEntry(dataValue.getSourceTime().getJavaTime(), kv))
                    .collect(Collectors.toList());
        } else {
            return Collections.emptyList();
        }
}

that in the getAffectedTimeseries the code is working against attribute mappings not against time series mappings.

The getAffectedTimeseries should me more like

public List<TsKvEntry> getAffectedTimeseries(NodeId tagId, DataValue dataValue) {
        List<TimeseriesMapping> tsattributes = getTimeseriesMapping(tagId);
        if (tsattributes.size() > 0) {
            return getKvEntries(tsattributes).stream()
                    .map(kv -> new BasicTsKvEntry(dataValue.getSourceTime().getJavaTime(), kv))
                    .collect(Collectors.toList());
        } else {
            return Collections.emptyList();
        }
}

opcua data problem

Hi @mp-loki

i contionuously get this in my log:

2018-04-25 13:52:37,995 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=2422
2018-04-25 13:52:37,996 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=2264}, name=SoftwareVersion, fqn=Objects.Server.ServerStatus.BuildInfo.SoftwareVersion)
2018-04-25 13:52:37,996 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-25 13:52:37,996 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-25 13:52:37,996 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=2423
2018-04-25 13:52:38,000 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=2265}, name=BuildNumber, fqn=Objects.Server.ServerStatus.BuildInfo.BuildNumber)
2018-04-25 13:52:38,000 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-25 13:52:38,000 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-25 13:52:38,000 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=2424
2018-04-25 13:52:38,001 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=2266}, name=BuildDate, fqn=Objects.Server.ServerStatus.BuildInfo.BuildDate)
2018-04-25 13:52:38,001 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-25 13:52:38,001 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-25 13:52:38,001 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=2425
2018-04-25 13:52:38,003 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=2992}, name=SecondsTillShutdown, fqn=Objects.Server.ServerStatus.SecondsTillShutdown)
2018-04-25 13:52:38,003 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-25 13:52:38,003 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected
2018-04-25 13:52:38,003 [ua-netty-event-loop-1] TRACE o.e.m.o.s.client.UaTcpStackClient - writeAndFlush succeeded for request=BrowseRequest, requestHandle=2426
2018-04-25 13:52:38,005 [pool-7-thread-1] TRACE o.t.g.e.opc.OpcUaServerMonitor - Scanning node: OpcUaNode(nodeId=NodeId{ns=0, id=2993}, name=ShutdownReason, fqn=Objects.Server.ServerStatus.ShutdownReason)
2018-04-25 13:52:38,005 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientSessionManager - getSession(), currentState=Active
2018-04-25 13:52:38,005 [pool-7-thread-1] TRACE o.e.m.o.s.c.ClientChannelManager - getChannel(), currentState=Connected

doesn't matter if i use:

Objects\\.Server
Objects\/Server
Objects/Server

all of those return same log messages:
getSession(), currentState=Active
getChannel(), currentState=Connected
writeAndFlush succeeded for request=BrowseRequest, requestHandle=2425
Scanning node: OpcUaNode.....

but i never get that data to thingsboard. What am i doing wrong?

-Quirosaur

ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds

2018-05-02 14:22:08,331 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:11,339 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:14,350 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:17,358 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:20,367 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:23,376 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:26,386 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:29,396 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:32,406 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:35,417 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:38,425 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:41,436 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:44,444 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:47,455 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:50,464 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:53,473 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:56,483 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:22:59,496 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:23:02,504 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:23:05,514 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-05-02 14:23:08,524 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds

i'm having this problem with gateway.

tb-gateway.out.log

thingsboard.log

tb-gateway.yml.txt

mqtt-config.json.txt

thingsboard.yml.txt

The gateway connects opuca server to fail:UnrecognizedPropertyException: Unrecognized field "fileName"

Hello!
I have gateway and thingsboard on version 1.4.0, both installed on same computer.
I tried to use the gateway to connect to OpenOpcUa server with the following error.

`14:23:33.806 [pool-3-thread-1] INFO o.t.g.service.TenantServiceRegistry - [Tenant] Updating extension configuration

14:23:33.885 [pool-3-thread-1] INFO o.t.g.service.TenantServiceRegistry - Initializing extension: [opc][OPC UA]

14:23:33.891 [pool-3-thread-1] INFO o.t.g.e.opc.DefaultOpcUaService - Initializing OPC-UA service!
14:23:33.975 [pool-3-thread-1] ERROR o.t.gateway.util.ConfigurationTools - Failed to load class org.thingsboard.gateway.extensions.opc.conf.OpcUaConfiguration configuration from {"servers":[{"applicationName":"Thingsboard OPC-UA client","applicationUri":"","host":"localhost","port":23562,"scanPeriodInSeconds":10,"timeoutInMillis":5000,"security":"Basic128Rsa15","identity":{"type":"anonymous"},"keystore":{"type":"PKCS12","location":"example.pfx","password":"secret","alias":"gateway","keyPassword":"secret","fileName":"example.pfx",
"file":"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"},

"mapping":[{"deviceNodePattern":"Channel1\.Device\d+$","deviceNamePattern":"Device ${_System._DeviceId}","attributes":[{"key":"Tag1","type":"string","value":"${Tag1}"}],"timeseries":[{"key":"Tag2","type":"long","value":"${Tag2}"}]}]}]}

14:23:33.980 [pool-3-thread-1] ERROR o.t.g.e.opc.DefaultOpcUaService - OPC-UA service configuration failed!
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "fileName" (class org.thingsboard.gateway.util.KeystoreConfiguration), not marked as ignorable (6 known properties: "alias", "location", "type", "password", "fileContent", "keyPassword"])
at [Source: N/A; line: -1, column: -1] (through reference chain: org.thingsboard.gateway.extensions.opc.conf.OpcUaConfiguration["servers"]->java.util.ArrayList[0]->org.thingsboard.gateway.extensions.opc.conf.OpcUaServerConfiguration["keystore"]->org.thingsboard.gateway.util.KeystoreConfiguration["fileName"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:834)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1093)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1477)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1455)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:282)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:287)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:259)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3770)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2099)
at com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:2596)
at org.thingsboard.gateway.util.ConfigurationTools.readConfiguration(ConfigurationTools.java:39)
at org.thingsboard.gateway.extensions.opc.DefaultOpcUaService.init(DefaultOpcUaService.java:54)
at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:81)
at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.updateConfiguration(MqttHandlerImpl.java:164)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.onGatewayAttributesGet(MqttHandlerImpl.java:145)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.lambda$onMessage$0(MqttHandlerImpl.java:88)
at java.util.concurrent.Executors$RunnableAdapter.call$$$capture(Executors.java:511)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
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)
14:23:33.985 [pool-3-thread-1] INFO o.t.g.service.TenantServiceRegistry - Failed to read configuration attribute
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "fileName" (class org.thingsboard.gateway.util.KeystoreConfiguration), not marked as ignorable (6 known properties: "alias", "location", "type", "password", "fileContent", "keyPassword"])
at [Source: N/A; line: -1, column: -1] (through reference chain: org.thingsboard.gateway.extensions.opc.conf.OpcUaConfiguration["servers"]->java.util.ArrayList[0]->org.thingsboard.gateway.extensions.opc.conf.OpcUaServerConfiguration["keystore"]->org.thingsboard.gateway.util.KeystoreConfiguration["fileName"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:834)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1093)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1477)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1455)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:282)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:287)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:259)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3770)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2099)
at com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:2596)
at org.thingsboard.gateway.util.ConfigurationTools.readConfiguration(ConfigurationTools.java:39)
at org.thingsboard.gateway.extensions.opc.DefaultOpcUaService.init(DefaultOpcUaService.java:54)
at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:81)
at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.updateConfiguration(MqttHandlerImpl.java:164)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.onGatewayAttributesGet(MqttHandlerImpl.java:145)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.lambda$onMessage$0(MqttHandlerImpl.java:88)
at java.util.concurrent.Executors$RunnableAdapter.call$$$capture(Executors.java:511)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
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)
14:23:33.989 [pool-3-thread-1] WARN o.t.g.s.gateway.MqttHandlerImpl - Failed to update extension configurations [[]]
java.lang.RuntimeException: Failed to update configuration
at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:97)
at org.thingsboard.gateway.service.DefaultTenantManagerService.lambda$init$0(DefaultTenantManagerService.java:64)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.updateConfiguration(MqttHandlerImpl.java:164)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.onGatewayAttributesGet(MqttHandlerImpl.java:145)
at org.thingsboard.gateway.service.gateway.MqttHandlerImpl.lambda$onMessage$0(MqttHandlerImpl.java:88)
at java.util.concurrent.Executors$RunnableAdapter.call$$$capture(Executors.java:511)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
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: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "fileName" (class org.thingsboard.gateway.util.KeystoreConfiguration), not marked as ignorable (6 known properties: "alias", "location", "type", "password", "fileContent", "keyPassword"])
at [Source: N/A; line: -1, column: -1] (through reference chain: org.thingsboard.gateway.extensions.opc.conf.OpcUaConfiguration["servers"]->java.util.ArrayList[0]->org.thingsboard.gateway.extensions.opc.conf.OpcUaServerConfiguration["keystore"]->org.thingsboard.gateway.util.KeystoreConfiguration["fileName"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:834)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1093)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1477)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1455)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:282)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:287)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:259)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3770)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2099)
at com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:2596)
at org.thingsboard.gateway.util.ConfigurationTools.readConfiguration(ConfigurationTools.java:39)
at org.thingsboard.gateway.extensions.opc.DefaultOpcUaService.init(DefaultOpcUaService.java:54)
at org.thingsboard.gateway.service.TenantServiceRegistry.updateExtensionConfiguration(TenantServiceRegistry.java:81)
... 11 common frames omitted`

The data in opc-ua server is not collected. The thingsboard panel does not display telemetry data.

Hello, I use the third-party opc-ua server (milo) and tb-gateway and thingsboard for the test of data collection.Milo and TB -gateway were successfully connected, and tb-gateway and thingsboard were successful, but there was no telemetry data.The log files of the three are as follows:
@mp-loki @ashvayka

opc-server(milo).txt
tb-gateway.txt
thingsboard.txt

2018-04-24_154439

tb-gateway.yml:

gateways:
tenants:
-
label: "Tenant"
reporting:
interval: 60000
persistence:
type: file
path: storage
bufferSize: 1000
connection:
host: localhost
port: 1882
retryInterval: 3000
maxInFlight: 1000
security:
accessToken: "4cq1eFC25o6ZpSLkyXec"
remoteConfiguration: false
extensions:
-
id: "opc-ua"
type: "OPC UA"
extensionConfiguration: opc-config.json

opc-config.json:
{
"servers": [
{
"applicationName": "Thingsboard OPC-UA client",
"applicationUri": "",
"host": "192.168.56.1",
"port": 12686,
"scanPeriodInSeconds": 10,
"timeoutInMillis": 5000,
"security": "None",
"identity": {
"type": "anonymous"
},
"keystore": {
"type": "PKCS12",
"location": "example.pfx",
"fileContent": "",
"password": "secret",
"alias": "gateway",
"keyPassword": "secret"
},
"mapping": [
{
"deviceNodePattern": "Objects\.HelloWorld\.Dynamic",
"deviceNamePattern": "Device1",
"attributes":[
{
"key": "Boolean val",
"type": "boolean",
"value":"${Boolean}"
}
],
"timeseries":[
{
"key": "Double Val",
"type":"double",
"value":"${Double}"
}
]
}
]
}
]
}

Milo address space:
c

Gateway not working on thingsboard - Ubuntu 16.04

Problem

I have the EMQ mqtt broker running fine on my ubuntu build, and can run everything it is expected to.
I am trying to connect my EMQ broker to Thingsboard using the gateway, however Thingsboard does not acknowledge the gateways connection, yet my EMQ broker does as shown:

screenshot from 2018-04-03 16-54-03

screenshot from 2018-04-03 16-54-48

screenshot from 2018-04-03 16-55-10

The Broker is running on port 1883. The gateway.yml is correct here:

tb-gateway-yml

And finally my mqtt json config file(which I had to download from here because the default file is not accepted by the Thingsboard UI):

mqtt-json-config

My Gateway always displays 'Not sync':

gateway

What am I doing wrong here?

maven compile error

[ERROR] thingsboard-gateway-1.4.0.1\src\main\java\org
thingsboard\gateway\service\MqttMessageSender.java:[131,21] Error: Cannot find symbol
[ERROR] Symbol: Method isConnected()
[ERROR] Location: Type is MqttClient Variables tbClient

Is this project used https://github.com/jk-5/netty-mqtt
? but the interface MqttClient does not have the method isConnected,how to fix it.

Custom timestamp when using mqtt

I think it should be possible to set custom timestamps when using mqtt (or other backends), not just using the one that corresponds to when the message arrives to the gateway.

Thingsboard mapping - splitting telemetry data correctly into attributes and timeseries

Whenever I post the telemetry data from sensors ( through thingsboard gateway ), I am also adding the time (unix time as well as datetime in ISO8601 format) to json data. For example

{"MAC": "00-14-22-01-23-45","UNIX_TIME": 1519404687,"ISO8601_DATETIME": "2018-
02-23T16:52:38+00:00","VOLTAGE": 3.452}

I was just curious - If we were to split the above data into attributes and timeseries, would it be correct ( in a strict sense ) to split it like this

Attributes: MAC
Timeseries: UNIX_TIME, ISO8601 and VOLTAGE

Or would the UNIX_TIME and ISO8601 go under attributes? Because (logically and technically speaking) they are attributes of the posted data? I am no expert in deciding that so It would be great to hear from others. I want to use these in the mapping and want to make sure that I start off right. Thanks

Thingsboard push button to device from dashboard

I'm using Thingsboard on cloud and thingsboard gateway on my raspberry pi.

How can i send and receive push of a button from the dashboard to a device connected, and read it's status?

| tb | tb-gw | device |
| ---------------> ?? |
| ?? <--------------- |

Thanks

Code base errors

I got successful maven build.

However, this is lots of code errors in the code base. The errors are categories to four types.

  1. Eclipse complains log object does not define.
    e.g. log.info("[{}:{}] MQTT broker connection established!", configuration.getHost(), configuration.getPort());

  2. Eclipse complains final variables not initialized. "The blank final field nodeId may not have been initialized"

  3. Object function setter & getter function undefines. I saw properties but there is not explicitly setter and getter for those properties.

4 Object not constructor. I saw some objects only has properties (some of them define as final), However, this is not constructors for those objects.

Do you I missing some setting here?

Thingsboard backup

Hello,
I am using thngsboard 1.4.0, and i would like to create a backup about it. So I would like, the backup contain every rule, plugin, dashboard, customer, and device with telemetry data.
How can I do it?

ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds

2018-04-25 15:55:32,601 [pool-4-thread-1] INFO  o.t.g.service.MqttMessageSender - ThingsBoard MQTT connection failed. Reconnecting in [3000] milliseconds
2018-04-25 15:55:32,750 [http-nio-0.0.0.0-9090-ClientPoller-0] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524660932750; nextExpiration=1524660932748; keyCount=0; hasEvents=false; eval=false
2018-04-25 15:55:32,750 [http-nio-0.0.0.0-9090-ClientPoller-1] DEBUG o.apache.tomcat.util.net.NioEndpoint - timeout completed: keys processed=0; now=1524660932750; nextExpiration=1524660932749; keyCount=0; hasEvents=false; eval=false

thingsboard.yml.txt
tb-gateway.log.txt
tb-gateway.yml.txt
mqtt-config.json.txt

Gateway not publish data via Modbus extension or TB can't display it.

I'm trying to test chain modbus slave- tbgateway-tb, but something going wrong. Steps:

  • connect tbgateway to tb -OK
  • configure modbus extension via tb GUI -OK
  • tbgateway successfuly pooling modbus slave -OK
  • in TB appeared device configured on gateway -OK
    but timeseries and attributes don't update.
    attributes and timeseries gets only one time after restart tbgateway service
    in gateway telemetry i see attributes uploaded -0; devices online -0 ; telemetry uploaded -0;
    In gateway log looks like all ok.
    tb-gateway.log
    In thingsboard log i see WARN logs like:
    o.t.s.t.mqtt.MqttTransportHandler - [mqtt19] Failed to subscribe to [v1/gateway/rpc][AT_MOST_ONCE]
    and

o.t.s.t.mqtt.MqttTransportHandler - [mqtt19] Failed to process publish msg [v1/gateway/connect][7]

Telemetry timeseries needs to contain all the key-value pairs

Using the MQTT extension, I'm unable to read telemetry data if the JSON string does not contain all the entries from the mqtt-config.json file.
Conf file extract example:

"timeseries": [
              {
                "type": "double",
                "key": "Temperature",
                "value": "${$.temp}"
              },
	      {
                "type": "double",
                "key": "Voltage",
                "value": "${$.volt}"
              }
            ]

If I send {"volt":8.14, "temp":23.9} (I can shuffle KV pairs), it works, the gateway and the TB dashboard both update. However, if I want to send individual KVs, like {"volt":2.27}, the gateway will reject the message and won't route it to TB.

Is there anything I'm doing wrong? It seems like the gateway mapper has to find all the registered KVs before it aknowledges a MQTT message.

The gateway reports the following error when it fails to decode the previous JSON:

2018-02-12 06:55:40,673 [MQTT Call: cbd029dd-0b71-4e65-88aa-78e535fc2a0d] INFO  o.t.g.e.m.c.l.MqttTelemetryMessageListener - [cRIO/abcd/Telemetry] Failed to decode message: [123, 34, 118, 111, 108, 116, 34, 58, 48, 46, 50, 52, 125]
java.lang.RuntimeException: Failed to apply expression $.temp
	at org.thingsboard.gateway.util.converter.AbstractJsonConverter.apply(AbstractJsonConverter.java:77)
	at org.thingsboard.gateway.util.converter.AbstractJsonConverter.eval(AbstractJsonConverter.java:48)
	at org.thingsboard.gateway.extensions.mqtt.client.conf.mapping.MqttJsonConverter.getKvEntries(MqttJsonConverter.java:114)
	at org.thingsboard.gateway.extensions.mqtt.client.conf.mapping.MqttJsonConverter.parse(MqttJsonConverter.java:100)
	at org.thingsboard.gateway.extensions.mqtt.client.conf.mapping.MqttJsonConverter.convert(MqttJsonConverter.java:84)
	at org.thingsboard.gateway.extensions.mqtt.client.listener.MqttTelemetryMessageListener.messageArrived(MqttTelemetryMessageListener.java:42)
	at org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:469)
	at org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:380)
	at org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:184)
	at java.lang.Thread.run(Thread.java:748)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.