Examples of typical programs
Below you have a database of typical programs ready to import during commissioning. Read instructions on how to import programs into your project here.
Remember that after importing the program from the list of programs below, you must configure it for your installation.Â
List of programs
- 1 Sending information about the light intensity to the BMSÂ
- 2 Group control 0-100 with BMS - when there is only one Vertex
- 3 Feedback to BMS on the status of the group
- 4 Feedback to BMS on the status of the group - when you have multiple Vertexes on site
- 5 Group control in the range 0-100 with BMS - when there are several Vertexes
- 6 Group control through BMS scenes - when there are several Vertexes
- 7 Feedback to the BMS about the status of the group's luminaires (scene controlled)
- 8 Triggering a relay in case of an emergency lighting error (or any other error in Vertex)
- 9 Change the sensor time from the BMS level
Sending information about the light intensity to the BMSÂ
[{"id":"b6999ee0.9f51f","type":"comment","z":"7400871b.0e1298","name":"Choose light sensor","info":"","x":210,"y":200,"wires":[]},{"id":"f3a7ef27.34ce3","type":"lightsensors","z":"7400871b.0e1298","name":"Light sensor","uid":"FC9E21087BFD7461","x":230,"y":260,"wires":[["ca77b833.89928"]]},{"id":"ca77b833.89928","type":"change","z":"7400871b.0e1298","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.LUX","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":460,"y":260,"wires":[["743410e7.196f3"]]},{"id":"26dde044.501fe","type":"modbus-write","z":"7400871b.0e1298","name":"Register: 500","showStatusActivities":false,"showErrors":false,"unitid":"admin","dataType":"HoldingRegister","adr":"500","quantity":"1","server":"c5a231d8.689ae","x":780,"y":260,"wires":[[],[]]},{"id":"743410e7.196f3","type":"rbe","z":"7400871b.0e1298","name":"","func":"rbe","gap":"","start":"","inout":"out","x":620,"y":260,"wires":[["26dde044.501fe"]]},{"id":"2aa6eaf0.af4496","type":"comment","z":"7400871b.0e1298","name":"Select Vertex's IP register number","info":"","x":820,"y":200,"wires":[]},{"id":"276cff0a.8b3888","type":"comment","z":"7400871b.0e1298","name":"Sending information about the light intensity to the BMS","info":"","x":560,"y":140,"wires":[]},{"id":"c5a231d8.689ae","type":"modbus-client","z":"","name":"IP_Vertexa","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"10.0.12.254","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectTimeout":"2000"}]
The above flow shows how to send information from the light sensor (dali2devs node) to the BMS via NodeRED. Change Node sets payload to payload.LUX. This means that it only transmits information about the illuminance level. This information is filtered by rbe node which will only send payload further if its different from previous, so if illuminance has changed this will pass payload further. After that it goes to BMS to revelant vertex by IP address and port number.
Group control 0-100 with BMS - when there is only one Vertex
[{"id":"dff8e3cb.ca5bd8","type":"vertex action","z":"7400871b.0e1298","name":"Grupa1","typeButton":"directv","bPayload":{"action":"setbrightness","group":"6a96a1eef91dff3a1a5dc9f9b6b23af5","param":0,"priority":"254"},"bState":"","defaultpriority":true,"x":670,"y":480,"wires":[["a5fc677a.cf8c18"]]},{"id":"650fe153.51edd8","type":"vertexmodbus","z":"7400871b.0e1298","name":"","registers":[{"r":"111","i":0}],"outputs":1,"x":320,"y":480,"wires":[["5c20fd8e.791664"]]},{"id":"5c20fd8e.791664","type":"switch","z":"7400871b.0e1298","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lte","v":"100","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":510,"y":480,"wires":[["dff8e3cb.ca5bd8"]]},{"id":"a5fc677a.cf8c18","type":"link out","z":"7400871b.0e1298","name":"Do Vertex Cluster","links":["3a9d1153.3c884e"],"x":855,"y":480,"wires":[]},{"id":"803960fe.cda748","type":"comment","z":"7400871b.0e1298","name":"Select a control group (GR1)","info":"","x":700,"y":420,"wires":[]},{"id":"1d79a1f1.e64dbe","type":"comment","z":"7400871b.0e1298","name":"Select register number (+1) for group control","info":"","x":290,"y":420,"wires":[]},{"id":"1df7c6d9.313de1","type":"comment","z":"7400871b.0e1298","name":"Group control 0-100 with BMS - when there is only one Vertex","info":"","x":520,"y":360,"wires":[]}]
This flow is for when we have only one node on site. First node (dali2devs) selects register number for group control and next switch node pushes forward payload for values less than or equal to 100. Next vertex action node sets brightness by direct value on selected group.
Feedback to BMS on the status of the group
[{"id":"3c92fd1.95e1f02","type":"vertex feedback","z":"31967c5.8c35184","name":"Grupa 1","primarygroup":"6a96a1eef91dff3a1a5dc9f9b6b23af5","x":300,"y":420,"wires":[["80b4b050.bf6c8"]]},{"id":"80b4b050.bf6c8","type":"function","z":"31967c5.8c35184","name":"","func":"var tmp;\nfor(var gr in msg.payload){\n\ttmp = msg.payload[gr].value\n}\nmsg.payload = tmp\n\nif(msg.payload!==null )\n{\nif(msg.payload==254)\n msg.payload=253;\n var valueDec = Math.pow(10,(((msg.payload-1)/84)-1));\n msg.payload =Math.round(valueDec);\n return msg;\n\n}\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":580,"y":420,"wires":[["9576df09.3b29c8"]]},{"id":"9576df09.3b29c8","type":"rbe","z":"31967c5.8c35184","name":"","func":"rbe","gap":"","start":"","inout":"out","x":810,"y":420,"wires":[["eca8eb3e.b9b9e"]]},{"id":"eca8eb3e.b9b9e","type":"modbus-write","z":"31967c5.8c35184","name":"Register: 820","showStatusActivities":false,"showErrors":false,"unitid":"admin","dataType":"HoldingRegister","adr":"820","quantity":"1","server":"1a9aaf8.230b951","emptyMsgOnFail":false,"keepMsgProperties":false,"x":1030,"y":420,"wires":[[],[]]},{"id":"dc7508ef.78328","type":"comment","z":"31967c5.8c35184","name":"Configure the Modbus server and select the register (0-1000)","info":"","x":1160,"y":380,"wires":[]},{"id":"ff1bb50.cb5dec8","type":"comment","z":"31967c5.8c35184","name":"Select a group for feedback (GR1)","info":"","x":360,"y":380,"wires":[]},{"id":"9b234620.cccc3","type":"comment","z":"31967c5.8c35184","name":"Feedback to BMS on the status of the group","info":"","x":690,"y":380,"wires":[]},{"id":"1a9aaf8.230b951","type":"modbus-client","name":"IP_Vertexa","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"10.0.12.254","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectTimeout":"2000"}]
Besides, we can transfer information about light illuminance, and we can also send general statuses to the BMS. To do that, we will need the vertex feedback node to get information from the device on-site and the function node to convert the JSON code into BMS information. As in the previous case, we will need the rbe node to send only this payload which is different from the previous one.
Feedback to BMS on the status of the group - when you have multiple Vertexes on site
This example shows exactly the same as sending feedback on the status of the group but in this case we have multiple vertexes and we need to filter them somehow. To do that we can use vertex feedback node and select vertex IP address to which the device is connected.
Group control in the range 0-100 with BMS - when there are several Vertexes
When we have several vertexes on site and we want to have group control in range 0-100 with BMS. We should use Filter by Vertex node to insert IP address for vertexes devices groups we want to control.
Group control through BMS scenes - when there are several Vertexes
We can control groups by scenes. To do that we need switch node to select one of the scene we want to activate. We have several vertexes in this case so we need to add Filter by Vertex node.
Feedback to the BMS about the status of the group's luminaires (scene controlled)
This example shows how our flow can give feedback to BMS about scene status with many vertexes on site. To select group from we want to get an information we should use vertex feedback node and then we can select vertex at Filter by Vertex node. Function node convert payload to select scene information from it and by switch node we can select scene we want to get feedback from. Next the change node changes name to keep our code clear.
Triggering a relay in case of an emergency lighting error (or any other error in Vertex)
Sometimes when an error occurs, it's good to have something to trigger a relay. To do that, we need to use the Modbus Read node, and then we can configure our Modbus server. It's important to remember that we should use only the first output of this node. From Modbus Read, the payload goes to a function node where it's converted into a message that will be understandable for the switch node, which decides if the error has been detected or not. Debug nodes are only for debugging.
Change the sensor time from the BMS level
There is a feature which we can use to change the sensor time from the BMS level. It’s useful when we have access to our system only through BMS.