Transfer ODBC data from RMM to Influxdb
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 information as below.
Type : Basic
URL: RMM server url
Username: RMM server account
Password: RMM server password
Node-RED “ServerSetting” node
5.Edit ODBC_Handler node,input RMM Agent device id
Node-RED “ODBC_Handler” node
6.Edit ODBC-SensorGet node, input RMM Agent device id
Node-RED “ODBC_Handler” node
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 “influxdb out” node - 2