I perfected a bit my function for a chandelier dealing both with the lights to turn on and the ones to turn off, made it easily adaptable for a bigger chandelier :
// Sparing chandelier lights one per day
// the function finds today’s light which should be on
// and builds an array with on and off lights
// all chandelier lights are supposed to be named in sequence (chand1, chand2,…)
var newmsg = {};
var lgt_basename = ‘light.salleam’; //what is your chandelier lights name without the number
var lgt_many = 4; // how many lights on the chandelier
var today = new Date();
var today_day = today.getDate();
var lightnum = 0;
var m_out = [];
lightnum = (today_day % lgt_many) + 1;
var lighton = lgt_basename + lightnum;
for (var i = 1; i <= lgt_many; i++) {
if (i != lightnum) {
newmsg = {};
newmsg.payload = {
domain: ‘light’,
service: ‘turn_off’,
data: {
entity_id: lgt_basename + i,
}
}
m_out.push(newmsg);
} else {
newmsg = {};
newmsg.payload = {
domain: ‘light’,
service: ‘turn_on’,
data: {
entity_id: lighton,
brightness_pct: 30
}
}
m_out.push(newmsg);
Copy to clipboard
}
}
return m_out;
A big thank you to @code-in-progress for pointing me in the right direction.
[{"id":"c010e2e8.d83ef","type":"inject","z":"5e828dc1.ea29c4","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":1040,"wires":[["3dbd950c.539a22"]]},{"id":"3dbd950c.539a22","type":"function","z":"5e828dc1.ea29c4","name":"Which bulb on today ?","func":"// Sparing chandelier lights one per day\n// the function finds today's light which should be on\n// and builds an array with on and off lights\nvar newmsg={};\nvar lgt_basename = 'light.salleam'; \nvar lgt_many = 4; // how many lights on the chandelier\nvar today = new Date();\nvar today_day = today.getDate();\nvar lightnum = 0;\nvar m_out=[];\nlightnum = (today_day % lgt_many) +1;\nvar lighton = lgt_basename + lightnum;\n\nfor (var i = 1; i <= lgt_many ; i++) {\n if (i != lightnum) {\n newmsg ={};\n newmsg.payload = {\n domain: 'light',\n service: 'turn_off',\n data: {\n entity_id: lgt_basename + i,\n }\n } \n m_out.push(newmsg);\n } else {\n newmsg ={};\n newmsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: {\n entity_id: lighton,\n brightness_pct: 30\n }\n }\n m_out.push(newmsg);\n\n }\n}\n\n\nreturn m_out;","outputs":4,"noerr":0,"x":320,"y":1040,"wires":[["c7d70946.b50708"],["c7d70946.b50708"],["c7d70946.b50708"],["c7d70946.b50708"]]},{"id":"c7d70946.b50708","type":"api-call-service","z":"5e828dc1.ea29c4","name":"","server":"b6132cbb.43484","version":1,"debugenabled":false,"service_domain":"homeassistant","service":"","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":600,"y":1040,"wires":[[]]},{"id":"b6132cbb.43484","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]