OPC-UA Service Folders Example
An example showing OPC-UA service folders.
[{"id":"b4792f36.7b37e","type":"tab","label":"NodeRed UA-Server","disabled":false},{"id":"0c7cfe180c3dd028","type":"OpcUa-Endpoint","endpoint":"opc.tcp://localhost:53881","secpol":"None","secmode":"None","none":true,"login":false,"usercert":false,"usercertificate":"","userprivatekey":""},{"id":"ab08549b.86da7","type":"OpcUa-Server","z":"b4792f36.7b37e","port":"53881","name":"TestServer","endpoint":"","users":"users.json","nodesetDir":"","folderName4PKI":"MYSERVER","autoAcceptUnknownCertificate":true,"registerToDiscovery":false,"constructDefaultAddressSpace":false,"allowAnonymous":true,"endpointNone":true,"endpointSign":true,"endpointSignEncrypt":true,"endpointBasic128Rsa15":true,"endpointBasic256":true,"endpointBasic256Sha256":true,"maxNodesPerBrowse":"10000","maxNodesPerHistoryReadData":"","maxNodesPerHistoryReadEvents":"","maxNodesPerHistoryUpdateData":"","maxNodesPerRead":"10000","maxNodesPerWrite":"","maxNodesPerMethodCall":"","maxNodesPerRegisterNodes":"","maxNodesPerNodeManagement":"","maxMonitoredItemsPerCall":"","maxNodesPerHistoryUpdateEvents":"","maxNodesPerTranslateBrowsePathsToNodeIds":"","maxConnectionsPerEndpoint":"","maxMessageSize":"","maxBufferSize":"","x":830,"y":40,"wires":[["88d21f70.acd4"]]},{"id":"11d9fbf5.027ab4","type":"inject","z":"b4792f36.7b37e","name":"TestAddVariable1","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddVariable1;datatype=Float","payload":"{\"opcuaCommand\":\"addVariable\"}","payloadType":"json","x":360,"y":40,"wires":[["ab08549b.86da7"]]},{"id":"a0cff67c.ed12d8","type":"inject","z":"b4792f36.7b37e","name":"AddVariable","props":[{"p":"payload","v":"{\"opcuaCommand\":\"addVariable\"}","vt":"json"},{"p":"topic","v":"ns=1;s=TestAddVariable2;datatype=Float","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddVariable2;datatype=Float","payload":"{\"opcuaCommand\":\"addVariable\"}","payloadType":"json","x":350,"y":120,"wires":[["ab08549b.86da7"]]},{"id":"c9d8f5da.7c4d48","type":"inject","z":"b4792f36.7b37e","name":"AddFolder","props":[{"p":"payload","v":"{\"opcuaCommand\":\"addFolder\"}","vt":"json"},{"p":"topic","v":"ns=1;s=TestAddFolder","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddFolder","payload":"{\"opcuaCommand\":\"addFolder\"}","payloadType":"json","x":340,"y":80,"wires":[["ab08549b.86da7"]]},{"id":"7c267cc5.2bd7c4","type":"inject","z":"b4792f36.7b37e","name":"SetFolder","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddFolder","payload":"{\"opcuaCommand\":\"setFolder\"}","payloadType":"json","x":340,"y":160,"wires":[["ab08549b.86da7"]]},{"id":"fc451b2b.c44f78","type":"inject","z":"b4792f36.7b37e","name":"ADD TestTrend with init value 2.3","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestTrend;datatype=Float;value=2.3","payload":"{\"opcuaCommand\":\"addVariable\"}","payloadType":"json","x":250,"y":220,"wires":[["ab08549b.86da7"]]},{"id":"1a28d476.c9f36c","type":"inject","z":"b4792f36.7b37e","name":"InstallHistorian","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestTrend;datatype=Float","payload":"{\"opcuaCommand\":\"installHistorian\"}","payloadType":"json","x":200,"y":260,"wires":[["ab08549b.86da7"]]},{"id":"88d21f70.acd4","type":"debug","z":"b4792f36.7b37e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1070,"y":40,"wires":[]},{"id":"6d396647.df2e98","type":"inject","z":"b4792f36.7b37e","name":"AddFolder (ns=5)","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=5;s=TestAddFolder","payload":"{\"opcuaCommand\":\"addFolder\"}","payloadType":"json","x":300,"y":420,"wires":[["ab08549b.86da7"]]},{"id":"7635b266.fa1c8c","type":"inject","z":"b4792f36.7b37e","name":"Register Namespace","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"www.test.com","payload":"{\"opcuaCommand\":\"registerNamespace\"}","payloadType":"json","x":320,"y":380,"wires":[["ab08549b.86da7"]]},{"id":"b5a4ee65.8d2","type":"inject","z":"b4792f36.7b37e","name":"TestAddVariable1 (ns=5)","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=5;s=TestAddVariable1;datatype=Float","payload":"{\"opcuaCommand\":\"addVariable\"}","payloadType":"json","x":330,"y":460,"wires":[["ab08549b.86da7"]]},{"id":"bf91c51c.a9a3b8","type":"inject","z":"b4792f36.7b37e","name":"DiscreteAlarm","props":[{"p":"payload","v":"{\"opcuaCommand\":\"installDiscreteAlarm\"}","vt":"json"},{"p":"topic","v":"ns=1;s=TestAddVariable1;datatype=Float","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddVariable1;datatype=Float","payload":"{\"opcuaCommand\":\"installDiscreteAlarm\"}","payloadType":"json","x":290,"y":580,"wires":[["394b5110.24d50e"]]},{"id":"394b5110.24d50e","type":"function","z":"b4792f36.7b37e","name":"Alarm parameters","func":"msg.priority = 500;\nmsg.alarmText = \"New alarm\";\n\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":580,"wires":[["ab08549b.86da7"]]},{"id":"930e2e83.1cccd","type":"inject","z":"b4792f36.7b37e","name":"LimitAlarm","props":[{"p":"payload","v":"{\"opcuaCommand\":\"installLimitAlarm\"}","vt":"json"},{"p":"topic","v":"ns=1;s=TestAddVariable1;datatype=Float","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddVariable1;datatype=Float","payload":"{\"opcuaCommand\":\"installLimitAlarm\"}","payloadType":"json","x":280,"y":620,"wires":[["7a2ebbea.8ca284"]]},{"id":"7a2ebbea.8ca284","type":"function","z":"b4792f36.7b37e","name":"Limit parameters","func":"// Limits\nmsg.hh = 10.0;\nmsg.h = 9.0;\nmsg.l = 1.0;\nmsg.ll = 0.1;\nmsg.priority=500;\nmsg.alarmText=\"Node-red limit alarm\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":620,"wires":[["ab08549b.86da7"]]},{"id":"598af9d9.76baf8","type":"OpcUa-Client","z":"b4792f36.7b37e","endpoint":"0c7cfe180c3dd028","action":"history","deadbandtype":"a","deadbandvalue":1,"time":10,"timeUnit":"s","certificate":"n","localfile":"","localkeyfile":"","securitymode":"None","securitypolicy":"None","folderName4PKI":"","useTransport":false,"maxChunkCount":"","maxMessageSize":"","receiveBufferSize":"","sendBufferSize":"","name":"Client for LocalServer","x":1480,"y":340,"wires":[["d0171bdc.65e588"]]},{"id":"fee43798.36af38","type":"inject","z":"b4792f36.7b37e","name":"Read history values","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":830,"y":340,"wires":[["7357a90f.2086b8"]]},{"id":"7357a90f.2086b8","type":"function","z":"b4792f36.7b37e","name":"Read history parameters","func":"msg.topic=\"ns=1;s=TestTrend\";\nmsg.aggregate=\"raw\";\nmsg.end = Date.now() + (2 * 60 * 60); // GMT + 2h\nmsg.start = 1638132240000; // msg.end - (6 * 60 * 60); // 10 min\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":340,"wires":[["598af9d9.76baf8"]]},{"id":"d0171bdc.65e588","type":"debug","z":"b4792f36.7b37e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1710,"y":340,"wires":[]},{"id":"555a9045.67e46","type":"inject","z":"b4792f36.7b37e","name":"Read history min","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":820,"y":400,"wires":[["e2e73b4f.e06f58"]]},{"id":"e2e73b4f.e06f58","type":"function","z":"b4792f36.7b37e","name":"Read history parameters","func":"msg.topic=\"ns=1;s=TestTrend\";\nmsg.aggregate=\"min\";\nmsg.end = Date.now() + (2 * 60 * 60); // GMT + 2h\nmsg.start = 1638132240000; // msg.end - (6 * 60 * 60); // 10 min\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":400,"wires":[["598af9d9.76baf8"]]},{"id":"7f190d30.3d7dc4","type":"inject","z":"b4792f36.7b37e","name":"Read history max","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":820,"y":460,"wires":[["857853f.6226cb"]]},{"id":"857853f.6226cb","type":"function","z":"b4792f36.7b37e","name":"Read history parameters","func":"msg.topic=\"ns=1;s=TestTrend\";\nmsg.aggregate=\"max\";\nmsg.end = Date.now() + (2 * 60 * 60); // GMT + 2h\nmsg.start = 1638132240000; // msg.end - (6 * 60 * 60); // 10 min\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":460,"wires":[["598af9d9.76baf8"]]},{"id":"2d708cc4.543dd4","type":"inject","z":"b4792f36.7b37e","name":"Read history ave","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":820,"y":520,"wires":[["cc1bd491.ccf018"]]},{"id":"cc1bd491.ccf018","type":"function","z":"b4792f36.7b37e","name":"Read history parameters","func":"msg.topic=\"ns=1;s=TestTrend\";\nmsg.aggregate=\"ave\";\nmsg.end = Date.now() + (2 * 60 * 60); // GMT + 2h\nmsg.start = 1638132240000; // msg.end - (6 * 60 * 60); // 10 min\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":520,"wires":[["598af9d9.76baf8"]]},{"id":"96a96e74.72ec","type":"inject","z":"b4792f36.7b37e","name":"Read history interpolative","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":850,"y":580,"wires":[["ca022f7a.76cdf"]]},{"id":"ca022f7a.76cdf","type":"function","z":"b4792f36.7b37e","name":"Read history parameters","func":"msg.topic=\"ns=1;s=TestTrend\";\nmsg.aggregate=\"interpolative\";\nmsg.end = Date.now() + (2 * 60 * 60); // GMT + 2h\nmsg.start = 1638132240000; // msg.end - (6 * 60 * 60); // 10 min\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":580,"wires":[["598af9d9.76baf8"]]},{"id":"3369c6e5.64934a","type":"function","z":"b4792f36.7b37e","name":"Read history 1h to now","func":"msg.topic=\"ns=1;s=TestTrend\";\nmsg.aggregate=\"raw\";\n// Default end time is now\n// Default start time is now - 1h\nmsg.numValuesPerNode = 10;\nmsg.returnBounds = false;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":300,"wires":[["598af9d9.76baf8"]]},{"id":"8f29731c.4dc8a","type":"inject","z":"b4792f36.7b37e","name":"Read history values","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":830,"y":300,"wires":[["3369c6e5.64934a"]]},{"id":"1141a26ab5c68eeb","type":"OpcUa-Rights","z":"b4792f36.7b37e","accessLevelCurrentRead":true,"accessLevelCurrentWrite":false,"accessLevelStatusWrite":false,"accessLevelHistoryRead":false,"accessLevelHistoryWrite":false,"accessLevelSemanticChange":true,"role":"b","permissionBrowse":true,"permissionRead":true,"permissionWrite":false,"permissionWriteAttribute":false,"permissionReadRole":true,"permissionWriteRole":false,"permissionReadHistory":true,"permissionWriteHistory":false,"permissionInsertHistory":false,"permissionModifyHistory":false,"permissionDeleteHistory":false,"permissionReceiveEvents":false,"permissionCall":false,"permissionAddReference":false,"permissionRemoveReference":false,"permissionDeleteNode":false,"permissionAddNode":true,"name":"","x":420,"y":740,"wires":[["cb8006ec5ef10910"]]},{"id":"0bf9b16e0a015983","type":"inject","z":"b4792f36.7b37e","name":"AddVariable","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestObserver;datatype=Float","payload":"{\"opcuaCommand\":\"addVariable\"}","payloadType":"json","x":190,"y":780,"wires":[["1141a26ab5c68eeb"]]},{"id":"cb8006ec5ef10910","type":"link out","z":"b4792f36.7b37e","name":"SERVER","mode":"link","links":["9980f42b9d5f6da3"],"x":815,"y":700,"wires":[]},{"id":"9980f42b9d5f6da3","type":"link in","z":"b4792f36.7b37e","name":"SERVER","links":["cb8006ec5ef10910"],"x":595,"y":20,"wires":[["ab08549b.86da7"]]},{"id":"6446e30ac5237b82","type":"inject","z":"b4792f36.7b37e","name":"AddFolder","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=Observer","payload":"{\"opcuaCommand\":\"addFolder\"}","payloadType":"json","x":180,"y":740,"wires":[["1141a26ab5c68eeb"]]},{"id":"4f663e4d768f8ccd","type":"comment","z":"b4792f36.7b37e","name":"Under TestVariable1","info":"Look Limit and State variables\nUaExpert Events drag and drop server\n\nAlso alarm objects are there\nExplore HighLimit\nChange LimitState over HighLimit\nYou will see Alarm and Event message on event view\n\nChange AlarmState to true","x":280,"y":540,"wires":[]},{"id":"270d4e73c8fa5866","type":"inject","z":"b4792f36.7b37e","name":"SetFolder","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"ns=1;s=TestAddFolder","payload":"{\"opcuaCommand\":\"setFolder\"}","payloadType":"json","x":180,"y":700,"wires":[["cb8006ec5ef10910"]]},{"id":"4f10447ab151e8e1","type":"inject","z":"b4792f36.7b37e","name":"List namespaces","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"opcuaCommand\":\"getNamespaces\"}","payloadType":"json","x":300,"y":500,"wires":[["ab08549b.86da7"]]},{"id":"94e359d185651cdd","type":"OpcUa-Rights","z":"b4792f36.7b37e","accessLevelCurrentRead":true,"accessLevelCurrentWrite":false,"accessLevelStatusWrite":false,"accessLevelHistoryRead":false,"accessLevelHistoryWrite":false,"accessLevelSemanticChange":true,"role":"a","permissionBrowse":true,"permissionRead":true,"permissionWrite":false,"permissionWriteAttribute":false,"permissionReadRole":true,"permissionWriteRole":false,"permissionReadHistory":true,"permissionWriteHistory":false,"permissionInsertHistory":false,"permissionModifyHistory":false,"permissionDeleteHistory":false,"permissionReceiveEvents":false,"permissionCall":false,"permissionAddReference":false,"permissionRemoveReference":false,"permissionDeleteNode":false,"permissionAddNode":true,"name":"","x":620,"y":780,"wires":[[]]}]