Difference between revisions of "Transfer ODBC data from RMM to Influxdb"

From ESS-WIKI
Jump to: navigation, search
Line 34: Line 34:
  
 
<span style="font-size:medium;">[[File:Node-red ServerSettings.jpg|upright|Node-red ServerSettings.jpg]]</span>
 
<span style="font-size:medium;">[[File:Node-red ServerSettings.jpg|upright|Node-red ServerSettings.jpg]]</span>
 +
 +
<span style="font-size:medium;"></span>
  
  

Revision as of 11:24, 18 January 2018

Transfer ODBC data from RMM to Influxdb with Node-RED User guide


1.install “NodeRed Server IoT Gateway_v1.1.2.exe

 

2.Copy “node-red-contrib-rmm3.1”  folder to path: “C:\Program Files (x86)\Advantech\NodeRed Server\nodejs\node_modules”, and restart NodeRed service

 

3.Open node-red and import flow. Import flow from "" 匯入以下flow。

 

[{"id":"f9570582.8b9a08","type":"ServerSetting","z":"b33839c.55bc0c8","sa_credential":"","location":{"protocol":"http:","hostname":"127.0.0.1","port":"1880"},"url":"127.0.0.1","port":"8080","encodestr":"YWRtaW4kYWRtaW4=","flag":"encode","connectype":"basic","user":"admin","x":336,"y":261,"wires":[["ec1579ad.ea58b8"]]},{"id":"bb11585b.e07ab8","type":"inject","z":"b33839c.55bc0c8","name":"","topic":"","payload":"","payloadType":"date","repeat":"3600","crontab":"","once":false,"x":159,"y":259,"wires":[["f9570582.8b9a08"]]},{"id":"ec1579ad.ea58b8","type":"ODBC-SensorGet","z":"b33839c.55bc0c8","deviceid":"0000000BABB4B249","x":548,"y":341,"wires":[["51f5e222.eb3acc"]]},{"id":"51f5e222.eb3acc","type":"ODBC_Handler","z":"b33839c.55bc0c8","deviceid":"0000000BABB4B249","x":728,"y":197,"wires":[["7340f73d.a94d08"]]},{"id":"7340f73d.a94d08","type":"function","z":"b33839c.55bc0c8","name":"Data parse For RMM3.3","func":"var msgtemp = {\"payload\":{}};\nmsg.payload = JSON.parse(msg.payload);\nvar data_set = msg.sensornum; //The number of sensor id.\nvar itemlist = msg.payload.result.itemList;\nvar data_number = msg.payload.result.totalsize;\n\nfor (i=0; i<data_number; i+=data_set)\n{\n    for(j=i; j<i+data_set; j++)\n    {\n        var tempid = itemlist[j].sensorId;\n        var array = tempid.split(\"/\");\n        if (array[3] == \"TIME\")\n        {\n            var tempv = itemlist[j].opTS.slice(0, -4);\n            var n_date = covert_date(tempv);\n            msgtemp.payload[\"time\"] = new Date(n_date).getTime();\n        }\n        else\n        {\n            var tempv = itemlist[j].val;\n            msgtemp.payload[tempid] = tempv;\n        }\n    }\n    node.send(msgtemp);\n    msgtemp = {\"payload\":{}}\n}\n\nfunction covert_date(get_date)\n{\n    var new_date = \"\";\n    get_date = get_date.replace(/\\s+/g, \"T\");\n    new_date = get_date + \"Z\";\n    return new_date;\n} \n","outputs":1,"noerr":0,"x":981,"y":205,"wires":[["3008bcae.c627d4","2d7a101.84d16f"]]},{"id":"3008bcae.c627d4","type":"influxdb out","z":"b33839c.55bc0c8","influxdb":"6f47f9fb.27d7e8","name":"ODBC_data","measurement":"ODBC","precision":"ms","retentionPolicy":"","x":1224,"y":143,"wires":[]},{"id":"2d7a101.84d16f","type":"debug","z":"b33839c.55bc0c8","name":"","active":true,"console":"false","complete":"payload","x":1206,"y":366,"wires":[]},{"id":"6f47f9fb.27d7e8","type":"influxdb","z":"","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"ODBC_data","name":"","usetls":false,"tls":""}]

 

4.Edit ServerSetting node, input below information.

Type : Basic

URL: RMM server url

Username: RMM server account

Password: RMM server password

 

Node-RED “ServerSetting” node

Node-red ServerSettings.jpg


5.Edit ODBC_Handler node,input RMM Agent device id

Node-RED “ODBC_Handler” node

Node-red ODBCHandler.jpg





6.Edit ODBC-SensorGet node, input RMM Agent device id

Node-RED “ODBC_Handler” node

Node-red ODBCHandler.jpg





7.Edit influxdb out node, input information as below. Remember to create influx datebase by self.

Note: Time Precision must set milliseconds(ms). 需設定為Milliseconds(ms)

Node-RED “influxdb out” node - 1

Node-red InfluxdbOut 1.jpg

Node-RED “influxdb out” node - 2

Node-red InfluxdbOut 2.jpg