Difference between revisions of "NodeRED Plug-ins for RMM"

From ESS-WIKI
Jump to: navigation, search
(Introduction)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
TBD
+
= Introduction =
=Introduction=
 
[http://nodered.org/ Node-RED] is a visual wiring tool for the Internet of Things and is provided by [https://www.ibm.com/blogs/emerging-technology/ IBM Emerging Technologies]. [http://nodered.org/ Node-Red] has several features, including browser-based flow editing, built on [https://nodejs.org/en/ Node.js] and social development. Because of browser-based, the user can use it more easily. [http://nodered.org/ Node-Red] is based on [https://nodejs.org/en/ Node.js], so user can use its nodes by using JavaScript. [http://nodered.org/ Node-Red] also have many active communities. If the user finds bugs, he can find a solution and fix it easily. The user can use JSON format string to import or export the created flow easily.
 
<br>
 
RMM server provides many [https://en.wikipedia.org/wiki/Representational_state_transfer restful API]. But some API is maybe required complex parameter, it usually makes the user to call [https://en.wikipedia.org/wiki/Representational_state_transfer restful API] more difficultly. Hance RMM team creates several common nodes in [http://nodered.org/ Node-Red]. These nodes can help the user to use [https://en.wikipedia.org/wiki/Representational_state_transfer restful API] that RMM server provided more easily and fast.
 
  
<br>
+
[http://nodered.org/ Node-RED] is a visual wiring tool for the Internet of Things and is provided by [https://www.ibm.com/blogs/emerging-technology/ IBM Emerging Technologies]. [http://nodered.org/ Node-Red] has several features, including browser-based flow editing, built on [https://nodejs.org/en/ Node.js] and social development. Because of browser-based, the user can use it more easily. [http://nodered.org/ Node-Red] is based on [https://nodejs.org/en/ Node.js], so user can use its nodes by using JavaScript. [http://nodered.org/ Node-Red] also have many active communities. If the user finds bugs, he can find a solution and fix it easily. The user can use JSON format string to import or export the created flow easily.<br/>RMM server provides many [https://en.wikipedia.org/wiki/Representational_state_transfer restful API]. But some API is maybe required complex parameter, it usually makes the user to call [https://en.wikipedia.org/wiki/Representational_state_transfer restful API] more difficultly. Hance RMM team creates several common nodes in [http://nodered.org/ Node-Red]. These nodes can help the user to use [https://en.wikipedia.org/wiki/Representational_state_transfer restful API] that RMM server provided more easily and fast.
[[File:NodeRedSample.png|800px]]
 
  
=How to install NodeRed Plug-ins for RMM=
+
<br/>[[File:NodeRedSample.png|800px|NodeRedSample.png]]
# Install [https://nodejs.org Node.js]
+
 
##Download installer from [https://nodejs.org]
+
= How to install NodeRed Plug-ins for RMM =
 +
 
 +
#Install [https://nodejs.org Node.js]
 +
##Download installer from [https://nodejs.org [1]]
 
##Double-click to install [https://nodejs.org Node.js]
 
##Double-click to install [https://nodejs.org Node.js]
[[File:1.png|400px]]
 
[[File:nodejs2.png|400px]]
 
[[File:nodejs3.png|400px]]
 
  
# Install Node Red
+
[[File:1.png|400px|1.png]] [[File:Nodejs2.png|400px|Nodejs2.png]] [[File:Nodejs3.png|400px|Nodejs3.png]]
 +
 
 +
#Install Node Red
 
##Open '''cmd.exe''' and type '''npm install –g node-red'''
 
##Open '''cmd.exe''' and type '''npm install –g node-red'''
[[File:NodeRedInstaller.png|400px]]
+
 
# Install NodeRed Plug-ins for RMM
+
[[File:NodeRedInstaller.png|400px|NodeRedInstaller.png]]
 +
 
 +
#Install NodeRed Plug-ins for RMM
 
##Connect to [https://www.npmjs.com/package/node-red-contrib-rmm3.1 npm] side for node-red-contrib-rmm3.1
 
##Connect to [https://www.npmjs.com/package/node-red-contrib-rmm3.1 npm] side for node-red-contrib-rmm3.1
##Open '''cmd.exe''' and type '''npm install node-red-contrib-rmm3.1 '''
+
##Open '''cmd.exe''' and type '''npm install node-red-contrib-rmm3.1'''
[[File:NpmRMM.png|500px]]
+
 
 +
[[File:NpmRMM.png|500px|NpmRMM.png]]
 +
 
 +
= NodeRed Plug-ins Catogries =
 +
 
 +
[[File:Category.png|800px|Category.png]]
  
=NodeRed Plug-ins Catogries=
 
[[File:category.png|800px]]
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Category !! Description !! Nodes
+
! Category
 +
! Description
 +
! Nodes
 
|-
 
|-
| General || The settings of IP address, port number, login username/password of RMM server. Retrieval of device and sensor information.|| 1.ServerSetting<br>2.DeviceGet <br>3.SensorGet<br>4.FileDownload
+
| General
 +
| The settings of IP address, port number, login username/password of RMM server. Retrieval of device and sensor information.
 +
| 1.ServerSetting<br/>2.DeviceGet<br/>3.SensorGet<br/>4.FileDownload
 
|-
 
|-
| DeviceQuery || Device status and information querying, include software/hardware monitoring status, network status, hard disk status and etc.|| 1.SWData<br>2.HWData<br>3.HDDData<br>4.NetworkData<br>5.GWSensor<br>6.SUSIControl<br>7.HDDMonitor<br>8.ProcessMonitor<br>9.NetMonitor
+
| DeviceQuery
 +
| Device status and information querying, include software/hardware monitoring status, network status, hard disk status and etc.
 +
| 1.SWData<br/>2.HWData<br/>3.HDDData<br/>4.NetworkData<br/>5.GWSensor<br/>6.SUSIControl<br/>7.HDDMonitor<br/>8.ProcessMonitor<br/>9.NetMonitor
 
|-
 
|-
| DeviceCtrl || Remote control of RMM server managed devices.|| 1.PowerCtrl<br>2.ProtectCtrl<br>3.AcronisCtrl<br>4.ScreenShot<br>5.SUSICtrlSet  
+
| DeviceCtrl
 +
| Remote control of RMM server managed devices.
 +
| 1.PowerCtrl<br/>2.ProtectCtrl<br/>3.AcronisCtrl<br/>4.ScreenShot<br/>5.SUSICtrlSet
 
|-
 
|-
| Event || Manipulation of message notifying and event receiving from RMM server through long polling or [https://en.wikipedia.org/wiki/WebSocket websocket].|| 1.EmailSend<br>2.SMSSend<br>3.LongPolling<br>4.WSRetrieve<br>5.WSServer
+
| Event
 +
| Manipulation of message notifying and event receiving from RMM server through long polling or [https://en.wikipedia.org/wiki/WebSocket websocket].
 +
| 1.EmailSend<br/>2.SMSSend<br/>3.LongPolling<br/>4.WSRetrieve<br/>5.WSServer
 
|-
 
|-
| SQLCtrl || Transparent control of SQL database ([https://en.wikipedia.org/wiki/PostgreSQL PostgreSQL]) in RMM server.|| 1.SQLCreate<br>2.SQLInsert<br>3.SQLQuery<br>4.SQLDelete<br>5.SQLUpdate  
+
| SQLCtrl
 +
| Transparent control of SQL database ([https://en.wikipedia.org/wiki/PostgreSQL PostgreSQL]) in RMM server.
 +
| 1.SQLCreate<br/>2.SQLInsert<br/>3.SQLQuery<br/>4.SQLDelete<br/>5.SQLUpdate
 
|-
 
|-
| NoSQLCtrl || Transparent control of NoSQL database ([https://en.wikipedia.org/wiki/MongoDB MongoDB]) in RMM server.|| 1.NoSQLCreate<br>2.NoSQLInsert<br>3.NoSQLQuery<br>4.NoSQLDelete<br>5.NoSQLUpdate  
+
| NoSQLCtrl
 +
| Transparent control of NoSQL database ([https://en.wikipedia.org/wiki/MongoDB MongoDB]) in RMM server.
 +
| 1.NoSQLCreate<br/>2.NoSQLInsert<br/>3.NoSQLQuery<br/>4.NoSQLDelete<br/>5.NoSQLUpdate
 
|}
 
|}
<br>
 
  
=NodeRed Plug-ins Description=
+
 
 +
 
 +
= NodeRed Plug-ins Description =
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Node Name !! Description !! Input !! Output
+
! Node Name
 +
! Description
 +
! Input
 +
! Output
 
|-
 
|-
| ServerSetting || Set url, port, username and password for RMM server. The node support basic mode and OAuth mode. User can switch basic mode and OAuth mode. || A timer or button triggered events. || Message contains properties of msg.url, msg.port and msg.encodestr.
+
| ServerSetting
 +
| Set url, port, username and password for RMM server. The node support basic mode and OAuth mode. User can switch basic mode and OAuth mode.
 +
| A timer or button triggered events.
 +
| Message contains properties of msg.url, msg.port and msg.encodestr.
 
|-
 
|-
| DeviceGet || Retrieve device information list from RMM server. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Process Monitor information list.
+
| DeviceGet
 +
| Retrieve device information list from RMM server.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Process Monitor information list.
 
|-
 
|-
| SensorGet || Retrieve sensor id list for specific agent ID. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Sensor information list with JSON string format.
+
| SensorGet
 +
| Retrieve sensor id list for specific agent ID.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Sensor information list with JSON string format.
 
|-
 
|-
| FileDownload || Download a url link and save to specified path. || msg.downloadurl. || An entity file.
+
| FileDownload
 +
| Download a url link and save to specified path.
 +
| msg.downloadurl.
 +
| An entity file.
 
|-
 
|-
| SWData || Retrieve software and operation system information for specific agent ID. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Process Monitor information list.
+
| SWData
 +
| Retrieve software and operation system information for specific agent ID.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Process Monitor information list.
 
|-
 
|-
| HWData || Retrieve hardware monitor information of values for specific agent ID. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || SUSIIoT Information list.
+
| HWData
 +
| Retrieve hardware monitor information of values for specific agent ID.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| SUSIIoT Information list.
 
|-
 
|-
| HDDData || Retrieve hard disk information for specific agent ID. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || HDDMonitor Information list.
+
| HDDData
 +
| Retrieve hard disk information for specific agent ID.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| HDDMonitor Information list.
 
|-
 
|-
| NetworkData || Retrieve network information for specific agent ID. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || NetMonitor Information list.
+
| NetworkData
 +
| Retrieve network information for specific agent ID.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| NetMonitor Information list.
 
|-
 
|-
| GWSensor || Retreive the IoTGW sensor reported data from database, depend on sensorId existed. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Gatway sensor Information list.
+
| GWSensor
 +
| Retreive the IoTGW sensor reported data from database, depend on sensorId existed.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Gatway sensor Information list.
 
|-
 
|-
| SUSIControl || Retreive the SUSIControl reported data from database, depend on sensorId existed. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || SUSIIoT Information list.
+
| SUSIControl
 +
| Retreive the SUSIControl reported data from database, depend on sensorId existed.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| SUSIIoT Information list.
 
|-
 
|-
| HDDMonitor || Retreive the HDDMonitor reported data from database, depend on sensorId existed. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || HDDMonitor Information list.
+
| HDDMonitor
 +
| Retreive the HDDMonitor reported data from database, depend on sensorId existed.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| HDDMonitor Information list.
 
|-
 
|-
| ProcessMonitor || Retreive the ProcessMonitor reported data from database, depend on sensorId existed. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Process Monitor information list.
+
| ProcessMonitor
 +
| Retreive the ProcessMonitor reported data from database, depend on sensorId existed.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Process Monitor information list.
 
|-
 
|-
| NetMonitor || Retreive the NetMonitor reported data from database, depend on sensorId existed. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || NetMonitor Information list.
+
| NetMonitor
 +
| Retreive the NetMonitor reported data from database, depend on sensorId existed.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| NetMonitor Information list.
 
|-
 
|-
| PowerCtrl || Set device to power on, power off, sleep, hibernate, reboot. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| PowerCtrl
 +
| Set device to power on, power off, sleep, hibernate, reboot.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| ProtectCtrl || Set device to install/update McAfee, protect, unprotect, activate. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| ProtectCtrl
 +
| Set device to install/update McAfee, protect, unprotect, activate.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| AcronisCtrl || Set device to install/update Acronis, backup, recovery, activate. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| AcronisCtrl
 +
| Set device to install/update Acronis, backup, recovery, activate.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| ScreenShot || Retrieve current screenshot for specific device. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Get a relative path for specific device.
+
| ScreenShot
 +
| Retrieve current screenshot for specific device.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Get a relative path for specific device.
 
|-
 
|-
| SUSICtrlSet || Set SUSIIoT value to specific device. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| SUSICtrlSet
 +
| Set SUSIIoT value to specific device.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| EmailSend || Send the Email by using RMM 3.1 server. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| EmailSend
 +
| Send the Email by using RMM 3.1 server.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| SMSSend || Send the SMS by using SUSIAccess 3.1 server. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| SMSSend
 +
| Send the SMS by using SUSIAccess 3.1 server.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| LongPolling || Retrieve event from database, if event be generated and newer event id larger than "lasteventid". It will be kept 60s on this request without event be generated. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Get the event of system, operator and device when the event is occurred.
+
| LongPolling
 +
| Retrieve event from database, if event be generated and newer event id larger than "lasteventid". It will be kept 60s on this request without event be generated.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Get the event of system, operator and device when the event is occurred.
 
|-
 
|-
| WSRetrieve || Retrieve event from database by using websocket. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Get the event of system, operator and device when the event is occurred.
+
| WSRetrieve
 +
| Retrieve event from database by using websocket.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Get the event of system, operator and device when the event is occurred.
 
|-
 
|-
| WSServer || Provide a websocket server for port 9876, the node will broadcast when msg.payload entry. || msg.payload. || none
+
| WSServer
 +
| Provide a websocket server for port 9876, the node will broadcast when msg.payload entry.
 +
| msg.payload.
 +
| none
 
|-
 
|-
| SQLCreate || Create a table with the name, length and type of column under RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| SQLCreate
 +
| Create a table with the name, length and type of column under RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| SQLInsert || Insert data into an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| SQLInsert
 +
| Insert data into an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| SQLQuery || Query data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Query data from specific table.
+
| SQLQuery
 +
| Query data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Query data from specific table.
 
|-
 
|-
| SQLDelete || Delete data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Delete data from specific table.
+
| SQLDelete
 +
| Delete data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Delete data from specific table.
 
|-
 
|-
| SQLUpdate || Change data from a existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Update data from specific table.
+
| SQLUpdate
 +
| Change data from a existed table of RMM 3.1 [https://en.wikipedia.org/wiki/PostgreSQL postgreSQL] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Update data from specific table.
 
|-
 
|-
| NoSQLCreate || Create a table with the name, length and type of column under RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| NoSQLCreate
 +
| Create a table with the name, length and type of column under RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| NoSQLInsert || Insert data into an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || { "result" : true } or error code description.
+
| NoSQLInsert
 +
| Insert data into an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| { "result"&nbsp;: true } or error code description.
 
|-
 
|-
| NoSQLQuery || Delete data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Delete data from specific table.
+
| NoSQLQuery
 +
| Delete data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Delete data from specific table.
 
|-
 
|-
| NoSQLDelete || Delete data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Delete data from specific table.
+
| NoSQLDelete
 +
| Delete data from an existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Delete data from specific table.
 
|-
 
|-
| NoSQLUpdate || Change data from a existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database. || '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd. || Update data from specific table.
+
| NoSQLUpdate
 +
| Change data from a existed table of RMM 3.1 [https://en.wikipedia.org/wiki/MongoDB MongoDB] database.
 +
| '''ServerSetting''' Node or set msg.url, msg.port, msg.username, msg.pwd.
 +
| Update data from specific table.
 
|}
 
|}
<br>
+
 
=Demo Video Clips=
+
 
 +
 
 +
= Demo Video Clips =
 +
 
 
'''Advantech ESS Demo''' on '''YouTuBe''': [https://www.youtube.com/playlist?list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE WISE-PaaS/RMM Demo]
 
'''Advantech ESS Demo''' on '''YouTuBe''': [https://www.youtube.com/playlist?list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE WISE-PaaS/RMM Demo]
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Video Demo Title !! Link
+
! Video Demo Title
 +
! Link
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Event sending & receiving - websocket(client, server) || [https://www.youtube.com/watch?v=Df4drmq-eus&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=30 link]
+
| WISE-PaaS/RMM NodeRED - Event sending & receiving - websocket(client, server)
 +
| [https://www.youtube.com/watch?v=Df4drmq-eus&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=30 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Event receiving - Long polling || [https://www.youtube.com/watch?v=3TpG7JRDAOI&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=31 link]
+
| WISE-PaaS/RMM NodeRED - Event receiving - Long polling
 +
| [https://www.youtube.com/watch?v=3TpG7JRDAOI&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=31 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Device data query - SUSIControl data || [https://www.youtube.com/watch?v=PRVK6CL9eAU&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=32 link]
+
| WISE-PaaS/RMM NodeRED - Device data query - SUSIControl data
 +
| [https://www.youtube.com/watch?v=PRVK6CL9eAU&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=32 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Device data query - HWM, SWM, HDD, Network output to file || [https://www.youtube.com/watch?v=QAiwzo3X8yw&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=33 link]
+
| WISE-PaaS/RMM NodeRED - Device data query - HWM, SWM, HDD, Network output to file
 +
| [https://www.youtube.com/watch?v=QAiwzo3X8yw&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=33 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Device data query - GW Sensor || [https://www.youtube.com/watch?v=mr3-6n4_lzY&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=34 link]
+
| WISE-PaaS/RMM NodeRED - Device data query - GW Sensor
 +
| [https://www.youtube.com/watch?v=mr3-6n4_lzY&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=34 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Event sending - Email/SMS || [https://www.youtube.com/watch?v=3eLe5F5Chtc&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=13 link]
+
| WISE-PaaS/RMM NodeRED - Event sending - Email/SMS
 +
| [https://www.youtube.com/watch?v=3eLe5F5Chtc&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=13 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Installation - Node.js, NodeRED, plug-ins for RMM || [https://www.youtube.com/watch?v=bvDyKK84Ez0&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=14 link]
+
| WISE-PaaS/RMM NodeRED - Installation - Node.js, NodeRED, plug-ins for RMM
 +
| [https://www.youtube.com/watch?v=bvDyKK84Ez0&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=14 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - RMM server Database manipulation || [https://www.youtube.com/watch?v=wf6RRITnG6M&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=15 link]
+
| WISE-PaaS/RMM NodeRED - RMM server Database manipulation
 +
| [https://www.youtube.com/watch?v=wf6RRITnG6M&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=15 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Settings - Server settings, basic/OAuth authentication || [https://www.youtube.com/watch?v=UrYUMp_3R8k&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=16 link]
+
| WISE-PaaS/RMM NodeRED - Settings - Server settings, basic/OAuth authentication
 +
| [https://www.youtube.com/watch?v=UrYUMp_3R8k&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=16 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Device control - Power control || [https://www.youtube.com/watch?v=l3g29zWago0&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=17 link]
+
| WISE-PaaS/RMM NodeRED - Device control - Power control
 +
| [https://www.youtube.com/watch?v=l3g29zWago0&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=17 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Device control - Screenshot || [https://www.youtube.com/watch?v=_dQatugJbew&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=18 link]
+
| WISE-PaaS/RMM NodeRED - Device control - Screenshot
 +
| [https://www.youtube.com/watch?v=_dQatugJbew&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=18 link]
 
|-
 
|-
| WISE-PaaS/RMM NodeRED - Device control - SUSIcontrol || [https://www.youtube.com/watch?v=33ugQle-Nl4&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=19 link]
+
| WISE-PaaS/RMM NodeRED - Device control - SUSIcontrol
 +
| [https://www.youtube.com/watch?v=33ugQle-Nl4&list=PLhBpZ8HU3KsRRzudzSnv0fGUCAUza8yVE&index=19 link]
 
|}
 
|}
 +
 +
= Document =
 +
 +
*&nbsp;[http://ess-wiki.advantech.com.tw/wiki/images/0/0b/WISE-PaaS_RMM_3.x_NodeRed_PlugIns_UM_V1.5_20160930.pdf NodeRed Plug-ins User Menual Doc V1.5 for RMM]
 +
 +
= TLS/SSL =
 +
 +
*&nbsp;[https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener How to enable HTTPS].

Latest revision as of 09:33, 3 July 2017

Introduction

Node-RED is a visual wiring tool for the Internet of Things and is provided by IBM Emerging Technologies. Node-Red has several features, including browser-based flow editing, built on Node.js and social development. Because of browser-based, the user can use it more easily. Node-Red is based on Node.js, so user can use its nodes by using JavaScript. Node-Red also have many active communities. If the user finds bugs, he can find a solution and fix it easily. The user can use JSON format string to import or export the created flow easily.
RMM server provides many restful API. But some API is maybe required complex parameter, it usually makes the user to call restful API more difficultly. Hance RMM team creates several common nodes in Node-Red. These nodes can help the user to use restful API that RMM server provided more easily and fast.


NodeRedSample.png

How to install NodeRed Plug-ins for RMM

  1. Install Node.js
    1. Download installer from [1]
    2. Double-click to install Node.js

1.png Nodejs2.png Nodejs3.png

  1. Install Node Red
    1. Open cmd.exe and type npm install –g node-red

NodeRedInstaller.png

  1. Install NodeRed Plug-ins for RMM
    1. Connect to npm side for node-red-contrib-rmm3.1
    2. Open cmd.exe and type npm install node-red-contrib-rmm3.1

NpmRMM.png

NodeRed Plug-ins Catogries

Category.png

Category Description Nodes
General The settings of IP address, port number, login username/password of RMM server. Retrieval of device and sensor information. 1.ServerSetting
2.DeviceGet
3.SensorGet
4.FileDownload
DeviceQuery Device status and information querying, include software/hardware monitoring status, network status, hard disk status and etc. 1.SWData
2.HWData
3.HDDData
4.NetworkData
5.GWSensor
6.SUSIControl
7.HDDMonitor
8.ProcessMonitor
9.NetMonitor
DeviceCtrl Remote control of RMM server managed devices. 1.PowerCtrl
2.ProtectCtrl
3.AcronisCtrl
4.ScreenShot
5.SUSICtrlSet
Event Manipulation of message notifying and event receiving from RMM server through long polling or websocket. 1.EmailSend
2.SMSSend
3.LongPolling
4.WSRetrieve
5.WSServer
SQLCtrl Transparent control of SQL database (PostgreSQL) in RMM server. 1.SQLCreate
2.SQLInsert
3.SQLQuery
4.SQLDelete
5.SQLUpdate
NoSQLCtrl Transparent control of NoSQL database (MongoDB) in RMM server. 1.NoSQLCreate
2.NoSQLInsert
3.NoSQLQuery
4.NoSQLDelete
5.NoSQLUpdate


NodeRed Plug-ins Description

Node Name Description Input Output
ServerSetting Set url, port, username and password for RMM server. The node support basic mode and OAuth mode. User can switch basic mode and OAuth mode. A timer or button triggered events. Message contains properties of msg.url, msg.port and msg.encodestr.
DeviceGet Retrieve device information list from RMM server. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Process Monitor information list.
SensorGet Retrieve sensor id list for specific agent ID. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Sensor information list with JSON string format.
FileDownload Download a url link and save to specified path. msg.downloadurl. An entity file.
SWData Retrieve software and operation system information for specific agent ID. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Process Monitor information list.
HWData Retrieve hardware monitor information of values for specific agent ID. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. SUSIIoT Information list.
HDDData Retrieve hard disk information for specific agent ID. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. HDDMonitor Information list.
NetworkData Retrieve network information for specific agent ID. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. NetMonitor Information list.
GWSensor Retreive the IoTGW sensor reported data from database, depend on sensorId existed. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Gatway sensor Information list.
SUSIControl Retreive the SUSIControl reported data from database, depend on sensorId existed. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. SUSIIoT Information list.
HDDMonitor Retreive the HDDMonitor reported data from database, depend on sensorId existed. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. HDDMonitor Information list.
ProcessMonitor Retreive the ProcessMonitor reported data from database, depend on sensorId existed. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Process Monitor information list.
NetMonitor Retreive the NetMonitor reported data from database, depend on sensorId existed. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. NetMonitor Information list.
PowerCtrl Set device to power on, power off, sleep, hibernate, reboot. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
ProtectCtrl Set device to install/update McAfee, protect, unprotect, activate. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
AcronisCtrl Set device to install/update Acronis, backup, recovery, activate. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
ScreenShot Retrieve current screenshot for specific device. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Get a relative path for specific device.
SUSICtrlSet Set SUSIIoT value to specific device. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
EmailSend Send the Email by using RMM 3.1 server. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
SMSSend Send the SMS by using SUSIAccess 3.1 server. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
LongPolling Retrieve event from database, if event be generated and newer event id larger than "lasteventid". It will be kept 60s on this request without event be generated. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Get the event of system, operator and device when the event is occurred.
WSRetrieve Retrieve event from database by using websocket. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Get the event of system, operator and device when the event is occurred.
WSServer Provide a websocket server for port 9876, the node will broadcast when msg.payload entry. msg.payload. none
SQLCreate Create a table with the name, length and type of column under RMM 3.1 postgreSQL database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
SQLInsert Insert data into an existed table of RMM 3.1 postgreSQL database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
SQLQuery Query data from an existed table of RMM 3.1 postgreSQL database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Query data from specific table.
SQLDelete Delete data from an existed table of RMM 3.1 postgreSQL database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Delete data from specific table.
SQLUpdate Change data from a existed table of RMM 3.1 postgreSQL database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Update data from specific table.
NoSQLCreate Create a table with the name, length and type of column under RMM 3.1 MongoDB database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
NoSQLInsert Insert data into an existed table of RMM 3.1 MongoDB database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. { "result" : true } or error code description.
NoSQLQuery Delete data from an existed table of RMM 3.1 MongoDB database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Delete data from specific table.
NoSQLDelete Delete data from an existed table of RMM 3.1 MongoDB database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Delete data from specific table.
NoSQLUpdate Change data from a existed table of RMM 3.1 MongoDB database. ServerSetting Node or set msg.url, msg.port, msg.username, msg.pwd. Update data from specific table.


Demo Video Clips

Advantech ESS Demo on YouTuBe: WISE-PaaS/RMM Demo

Video Demo Title Link
WISE-PaaS/RMM NodeRED - Event sending & receiving - websocket(client, server) link
WISE-PaaS/RMM NodeRED - Event receiving - Long polling link
WISE-PaaS/RMM NodeRED - Device data query - SUSIControl data link
WISE-PaaS/RMM NodeRED - Device data query - HWM, SWM, HDD, Network output to file link
WISE-PaaS/RMM NodeRED - Device data query - GW Sensor link
WISE-PaaS/RMM NodeRED - Event sending - Email/SMS link
WISE-PaaS/RMM NodeRED - Installation - Node.js, NodeRED, plug-ins for RMM link
WISE-PaaS/RMM NodeRED - RMM server Database manipulation link
WISE-PaaS/RMM NodeRED - Settings - Server settings, basic/OAuth authentication link
WISE-PaaS/RMM NodeRED - Device control - Power control link
WISE-PaaS/RMM NodeRED - Device control - Screenshot link
WISE-PaaS/RMM NodeRED - Device control - SUSIcontrol link

Document

TLS/SSL