Please be aware that this is a legacy version of the support site. If you have software version 3.1.30 or higher go to MODERN Home

(Classic) Daylight Harvesting

Use light sensors to adapt luminaire power to the current daylight level. In daylight harvesting, the light intensity in the room is kept constant and luminaire power automatically adjusts to a given value of light intensity.

The quide applies to Vertex 3 with a software version 3.1.24 and newer.

How does the flow work?

When the motion sensor detects presence in the room, Presence action with priority 255 is triggered. Lights turn on. After this event, its priority changes to 0, which enables the Daylight Harvesting function (it also has priority 0). During Transistion period nothing happens. When the sensor does not detect any presence in the room, No presence action is triggered (initial priority is 254 and changes to 1 afterwards) and overrides any lower priority actions e.g daylight harvesting (priority 0). As a result, the lights turn off.

See also: Action priorities

Flow

[{"id":"a33e462751ce33df","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"46ec5aaf5504be19","type":"vertex action","z":"a33e462751ce33df","name":"","typeButton":"directv","bPayload":{"action":"setbrightnesslog","group":null,"param":0,"priority":"0"},"bState":"","defaultpriority":false,"x":750,"y":400,"wires":[["488e33fcbfd5bc2a"]]},{"id":"488e33fcbfd5bc2a","type":"vertex cluster","z":"a33e462751ce33df","rate":90,"x":890,"y":280,"wires":[]},{"id":"714ed327d54fb93e","type":"vertex daylightHarvesting","z":"a33e462751ce33df","name":"Daylight Harvesting","primarygroup":"fb3565668659d2c83c26a6e2fbad2a7c","target":"500","tolerance":"20","P":0.25,"I":0.03,"D":0,"min":-25,"max":25,"x":510,"y":400,"wires":[["46ec5aaf5504be19"]]},{"id":"3c3f21a4ee8cd654","type":"DALI2 Devs Common","z":"a33e462751ce33df","name":"Motion and light sensor","outputs":2,"uid":"008C699BDDC69077D7","devStatus":2,"devSettings":[{"instanceType":3,"isDisabled":false,"dali2t1":"40","dali2t2":"5","evenFilters":15},{"instanceType":4,"isDisabled":false,"evenFilters":1}],"savedSettings":[{"instanceType":3,"isDisabled":false,"dali2t1":"40","dali2t2":"5","evenFilters":7},{"instanceType":4,"isDisabled":false,"evenFilters":1}],"x":210,"y":340,"wires":[["32faf284606bb577"],["714ed327d54fb93e"]]},{"id":"32faf284606bb577","type":"vertex action","z":"a33e462751ce33df","name":"","typeButton":"motionsensor","bPayload":{"PRESENCE":{"action":"minlevel","group":null,"param":null,"priority":"255"},"TRANSITION":{"action":"noreact","group":null,"param":null,"priority":"0"},"NOPRESENCE":{"action":"setbrightness","group":null,"param":"0","priority":"254"}},"bState":"","defaultpriority":true,"x":490,"y":280,"wires":[["488e33fcbfd5bc2a"]]},{"id":"9f56e18b6c0c6b87","type":"comment","z":"a33e462751ce33df","name":"Select and configure the multi sensor","info":"## 1. In DALI2 Devs Common node, in the Serial Number field, select the multisensor.\n\n## 2. Clear 2nd checkbox to be able to program Light Sensor\n\n## 3. ","x":200,"y":300,"wires":[]},{"id":"63a0735d23c3a08d","type":"comment","z":"a33e462751ce33df","name":"Set luxes and tolerance (Do the quick calibration firstt!)","info":"","x":440,"y":440,"wires":[]},{"id":"be97bb8e83969abf","type":"comment","z":"a33e462751ce33df","name":"Mode: Direct Value ","info":"","x":750,"y":360,"wires":[]},{"id":"3a6d8557cce911f9","type":"comment","z":"a33e462751ce33df","name":"Action: Set brightness (scale logarithmic).","info":"","x":820,"y":440,"wires":[]},{"id":"f084dd42f8a9f910","type":"comment","z":"a33e462751ce33df","name":"Mode: Motion sensor","info":"","x":480,"y":240,"wires":[]}]

Instructions

  1. Find the following nodes in the Node-RED palette:

  • DALI2 Devs Common

  • Daylight Harvesting

  • vertex action x2

  • vertex cluster

2. Drag the nodes and drop them onto the workspace.

3. In the DALI2 Devs Common node, in the Device field, select the multisensor.

4. Make sure both motion and light sensors are enabled and configured as shown below.

5. Go to the first vertex action node connected to the motion sensor output. Select the Motion sensor mode and appropriate group. Configure the Presence, Transition and No presence state actions accordingly. Leave the default priority settings.

6. Go to the Daylight Harvesting node. Select the Feedback group which is controlled and gives feedback on the current intensity value (lux). Set the intensity in the Daylight Harvesting value [Lux] field and choose tolerance.

Note that the intensity in the Daylight Harvesting may not correspond to the actual brightness intensity on e.g. the desk. You should do a quick calibration. Use lux meter to measure the brightness intensity on the desk.

How to do the daylight harvesting calibration

  1. Set brightness in the vertex action node to get e.g. 500 lux on the desk - measure this using a lux meter.

  2. Note the Illuminance level below the DALI2 Devs Common node in the Node-RED workspace.

  3. Enter this value in the Daylight Harvesting Value field in the daylight harvesting node.

  4. If you need, check other configurations e.g. 1000 lux and create a table with values.

7. Go to the second vertex action node. Set the mode as a Direct Value and Set brightness (scale logarithmic) as the action. Select the same group as in the Daylight Harvesting node.

8. In the vertex action node, uncheck the Default priority checkbox and set the Priority to 0.

9. Link all nodes together. Then select Deploy and test your flow.


For Vertex 3 with a software version older than 3.1.24 and for Vertex 2, use the flow below.

Flow

[{"id":"ed4a20f0.80348","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"514b6074.211ac","type":"vertex action","z":"ed4a20f0.80348","name":"","typeButton":"directv","bPayload":{"action":"setbrightnesslog","group":"fb3565668659d2c83c26a6e2fbad2a7c","param":0,"priority":"0"},"bState":"","defaultpriority":false,"x":790,"y":400,"wires":[["2a49db2d.674194"]]},{"id":"2a49db2d.674194","type":"vertex cluster","z":"ed4a20f0.80348","rate":90,"x":930,"y":280,"wires":[]},{"id":"72163e12.b75b4","type":"vertex feedback","z":"ed4a20f0.80348","name":"","primarygroup":"fb3565668659d2c83c26a6e2fbad2a7c","x":220,"y":560,"wires":[["7249e875.363b58"]]},{"id":"3a0bb0c5.6ee7e","type":"vertex daylightHarvesting","z":"ed4a20f0.80348","name":"Daylight Harvesting","primarygroup":"fb3565668659d2c83c26a6e2fbad2a7c","target":"500","tolerance":"20","P":0.25,"I":0.03,"D":0,"min":-25,"max":25,"x":510,"y":400,"wires":[["514b6074.211ac"]]},{"id":"7249e875.363b58","type":"function","z":"ed4a20f0.80348","name":"daylight filter","func":"var tmp1;\nvar tmp;\nfor(var gr in msg.payload)\n{\n tmp = msg.payload[gr].valueType\n tmp1 = msg.payload[gr].value\n \n}\n\nif(tmp !==\"cct\"& tmp1 !==null )\n{\n return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":560,"wires":[["3a0bb0c5.6ee7e"]]},{"id":"89d05983.9a79b8","type":"DALI2 Devs Common","z":"ed4a20f0.80348","name":"Motion and light sensor","outputs":2,"uid":"008C699BDDC69077D7","devStatus":2,"devSettings":[{"instanceType":3,"isDisabled":false,"dali2t1":"40","dali2t2":"5","evenFilters":15},{"instanceType":4,"isDisabled":false,"evenFilters":1}],"savedSettings":[{"instanceType":3,"isDisabled":false,"dali2t1":"40","dali2t2":"5","evenFilters":7},{"instanceType":4,"isDisabled":false,"evenFilters":1}],"x":210,"y":340,"wires":[["9a8526c2.9f5088"],["3a0bb0c5.6ee7e"]]},{"id":"9a8526c2.9f5088","type":"vertex action","z":"ed4a20f0.80348","name":"","typeButton":"motionsensor","bPayload":{"PRESENCE":{"action":"minlevel","group":null,"param":null,"priority":"255"},"TRANSITION":{"action":"noreact","group":null,"param":null,"priority":"0"},"NOPRESENCE":{"action":"setbrightness","group":null,"param":"0","priority":"254"}},"bState":"","defaultpriority":true,"x":490,"y":280,"wires":[["2a49db2d.674194"]]},{"id":"53d4ae81.afdbe","type":"comment","z":"ed4a20f0.80348","name":"Select and configure the multi sensor","info":"## 1. In DALI2 Devs Common node, in the Serial Number field, select the multisensor.\n\n## 2. Clear 2nd checkbox to be able to program Light Sensor\n\n## 3. ","x":200,"y":300,"wires":[]},{"id":"f26af476.83c618","type":"comment","z":"ed4a20f0.80348","name":"Select the same group as in vertex action","info":"","x":180,"y":520,"wires":[]},{"id":"134f1166.cee7cf","type":"comment","z":"ed4a20f0.80348","name":"Set luxes and tolerance (Do the quick calibration firstt!)","info":"","x":480,"y":440,"wires":[]},{"id":"783e9532.bdc2cc","type":"comment","z":"ed4a20f0.80348","name":"Mode: Direct Value ","info":"","x":790,"y":360,"wires":[]},{"id":"3e784d2.2882bb2","type":"comment","z":"ed4a20f0.80348","name":"Action: Set brightness (scale logarithmic).","info":"","x":860,"y":440,"wires":[]},{"id":"140aaae0.9302f5","type":"comment","z":"ed4a20f0.80348","name":"Mode: Motion sensor","info":"","x":480,"y":240,"wires":[]},{"id":"1f827c11.bf3154","type":"comment","z":"ed4a20f0.80348","name":"Filter feedback messages","info":"","x":430,"y":600,"wires":[]}]

Configure vertex feedback and daylight filters nodes as follows.

Vertex feedback: In the Group field, select the same group as in the vertex action and daylight harvesting nodes.

Daylight filters: A function node filters empty feedback messages to ensure the correct behaviour of the Daylight Harvesting node.

Import the json file:

[ { "id": "371bb7be.4925", "type": "function", "z": "9af77758.0501b", "name": "daylight filter", "func": "var tmp1;\nvar tmp;\nfor(var gr in msg.payload)\n{\n tmp = msg.payload[gr].valueType\n tmp1 = msg.payload[gr].value\n \n}\n\nif(tmp !==\"cct\"& tmp1 !==null )\n{\n return msg;\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 610, "y": 1160, "wires": [ [ "c1015ed3.8e463" ] ] } ]