Daylight Harvesting - constant light control

Daylight Harvesting is a method used to optimize the use of natural daylight in indoor spaces. It involves the use of sensors and controls to automatically adjust artificial lighting levels based on the amount of available natural light. By dimming artificial lights when sufficient daylight is present, daylight harvesting systems can reduce energy consumption and create a more comfortable and sustainable environment.

Constant light control uses a feedback loop to maintain a consistent level of illumination in a space. It works by continuously adjusting the artificial lighting output based on real-time feedback from light sensors.

Get your prioirities right!

Priority is very important when it comes to Daylight Harvesting, here you will find an explanation of how it works, so that if for some reason you need to change priorities you will do it correctly.

When the motion sensor detects presence in the room, The Presence action with priority 255 is triggered and lights turn on. After this event, its priority changes to 0. As the default priority of Daylight Harvesting function is also 0 Daylight Harvesting is now active.

Usually when you set a scene you use priority to override daylight harvesting. You do this by giving the scene an initial priority is 254. Priority 254 changes to 1 after implementation blocking the daylight harvesting messages which have priority 0. We do the same thing for other actions such as the standby transition time or turning the lights off.

If you want more information on this topic go to: Action priorities

Import the ready made flow using the instructions here: or follow the instructions below.

[{"id":"cdafac4.f48035","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"277b01b5.a09f3e","type":"vertex action","z":"cdafac4.f48035","name":"","typeButton":"directv","bPayload":{"action":"setbrightnesslog","group":null,"param":0,"priority":"0"},"bState":"","defaultpriority":false,"x":750,"y":400,"wires":[["6e4445b.84719bc"]]},{"id":"6e4445b.84719bc","type":"vertex cluster","z":"cdafac4.f48035","rate":90,"x":890,"y":280,"wires":[]},{"id":"16b3b26f.431ade","type":"vertex daylightHarvesting","z":"cdafac4.f48035","name":"Daylight Harvesting","primarygroup":"fb3565668659d2c83c26a6e2fbad2a7c","target":"500","tolerance":"20","P":0.25,"I":0.03,"D":0,"min":"0","max":"100","x":510,"y":400,"wires":[["277b01b5.a09f3e"]]},{"id":"b56cc34a.c10de","type":"DALI2 Devs Common","z":"cdafac4.f48035","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":[["37ebdb29.320bb4"],["16b3b26f.431ade"]]},{"id":"37ebdb29.320bb4","type":"vertex action","z":"cdafac4.f48035","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":[["6e4445b.84719bc"]]},{"id":"6025afc5.e5c82","type":"comment","z":"cdafac4.f48035","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":"f000e34f.ad77d","type":"comment","z":"cdafac4.f48035","name":"Specify DH parameters","info":"","x":500,"y":440,"wires":[]},{"id":"27e3bb70.659bd4","type":"comment","z":"cdafac4.f48035","name":"Mode: Direct Value ","info":"","x":750,"y":360,"wires":[]},{"id":"4823f140.3961d","type":"comment","z":"cdafac4.f48035","name":"Action: Set brightness (scale logarithmic).","info":"","x":820,"y":440,"wires":[]},{"id":"7c6c5627.dbeaa8","type":"comment","z":"cdafac4.f48035","name":"Mode: Motion sensor","info":"","x":480,"y":240,"wires":[]}]
image-20240619-115902.png

 

Step-by-step instructions

  1. Find the following nodes in the palette on the left side of the Node-RED, drag them to your workspace and connect them as shown.

  • DALI2 Devs Common

  • Daylight Harvesting

  • vertex action x2

  • vertex cluster

2. Click the DALI2 Devs Common node to enter the configuration window, in the Serial Number field [2], select your sensor from the drop down list.

3. By default all instances are marked which means they are disabled. Enable motion sensor and light sensor by unchecking the is disabled checkbox [3] and set the Mode as Normal.

 

4. The upper output of the Motion and light sensor node is for motion detection. 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 [4].

Leave the default priority settings.

5. Go to the Daylight Harvesting node which is connected to the lower output of the Motion and light sensor node. Configure the feedback group to match the group chosen in step 5. This group provides feedback on the present intensity value in lux. Adjust the intensity in the "Daylight Harvesting Value [Lux]" field and select the desired tolerance [5].

Please be aware that the intensity setting within the Daylight Harvesting function may not necessarily align with the actual brightness on, for instance, a desk. To ensure accuracy, it's recommended to use a lux meter to measure the brightness intensity on the surface.

Daylight harvesting calibration:

  • Set brightness in the vertex action node to get e.g. 500 lux on the desk, and verify this with a lux meter.

  • Note the Illuminance level displayed below the DALI2 Devs Common node.

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

  • If necessary, explore alternative configurations, like 1000 lux, and compile a table of corresponding values for reference.

 

  1. In Advanced settings of the Daylight Harvesting node, you can change the PID output range. So that, e.g lights will not turn off, but dimm down to 10% when the light sensor value fall below given Daylight Harvesting Value [Lux]. Change the PID output range by defining PID output min and max values [6].

 

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 [7].

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

 

Don't forget to connect all your nodes and be sure that the vertex cluster node is present in your flow! 

Then click Deploy button at the upper-right corner of the Node-RED.