Option to set a delay before and after sunrise and sunset

@b3n.0
there are 2 solutions, go through node-red Mini-tuto Sun-Position Nore-red Mqtt pour piloter les volets en fonction de la position du soleil et des mois

by modifying the flow to have sunrise and sunset as below and by adding
in gladys in the device created for the azimuth and altitude 2 corresponding switches
that receive from the node-red flow
gladys/master/device/mqtt:sun/feature/mqtt:sunrise/state
gladys/master/device/mqtt:sun/feature/mqtt:sunset/state
then it’s just a matter of managing it in a scene by retrieving the state of the device
in the code of the minutedepuis minuit function, you need to pass the state to 1 in the payload to switch and adjust the « delay » node

[details=« Flow code »]

t[
    {
        "id": "dbd46647b51191ed",
        "type": "tab",
        "label": "Sun-Position",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "a0d0e562.7ad1d8",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 1",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 720,
        "y": 180,
        "wires": []
    },
    {
        "id": "9cc2d51.4ac0828",
        "type": "change",
        "z": "dbd46647b51191ed",
        "name": "azimuth",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.azimuth",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "gladys/master/device/mqtt:soleil/feature/mqtt:azimuth/state",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 240,
        "wires": [
            [
                "0a17f9d94c9dae35",
                "ddf8b5e66052a4dc"
            ]
        ]
    },
    {
        "id": "28e91.9d63d16f6",
        "type": "change",
        "z": "dbd46647b51191ed",
        "name": "altitude",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.altitude",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "gladys/master/device/mqtt:soleil/feature/mqtt:altitude/state",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 320,
        "wires": [
            [
                "ae57174554627c71",
                "58367a9aedab25dc"
            ]
        ]
    },
    {
        "id": "e921e01a.a0fa3",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 4",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 720,
        "y": 380,
        "wires": []
    },
    {
        "id": "e866e950.a7f798",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 3",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1160,
        "y": 180,
        "wires": []
    },
    {
        "id": "5b085e1b.4ec8a",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 6",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1160,
        "y": 380,
        "wires": []
    },
    {
        "id": "8eee70dd77c1369c",
        "type": "mqtt out",
        "z": "dbd46647b51191ed",
        "name": "",
        "topic": "",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "3c3eb52d.9fb296",
        "x": 1150,
        "y": 280,
        "wires": []
    },
    {
        "id": "0a17f9d94c9dae35",
        "type": "function",
        "z": "dbd46647b51191ed",
        "name": "round",
        "func": "msg.payload = Math.round(msg.payload)\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 930,
        "y": 240,
        "wires": [
            [
                "8eee70dd77c1369c",
                "e866e950.a7f798"
            ]
        ]
    },
    {
        "id": "ddf8b5e66052a4dc",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 2",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 920,
        "y": 180,
        "wires": []
    },
    {
        "id": "ae57174554627c71",
        "type": "function",
        "z": "dbd46647b51191ed",
        "name": "round",
        "func": "msg.payload = Math.round(msg.payload)\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 930,
        "y": 320,
        "wires": [
            [
                "5b085e1b.4ec8a",
                "8eee70dd77c1369c"
            ]
        ]
    },
    {
        "id": "58367a9aedab25dc",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 5",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 920,
        "y": 380,
        "wires": []
    },
    {
        "id": "56265aeb.99f034",
        "type": "sun-position",
        "z": "dbd46647b51191ed",
        "name": "",
        "positionConfig": "2831ba70.55a636",
        "rules": [
            {
                "valueLow": "0",
                "valueLowType": "num",
                "valueHigh": "360",
                "valueHighType": "num"
            }
        ],
        "onlyOnChange": "true",
        "topic": "",
        "outputs": 2,
        "start": "sunsetStart",
        "startType": "pdsTime",
        "startOffset": 0,
        "startOffsetType": "num",
        "startOffsetMultiplier": 60000,
        "end": "sunriseEnd",
        "endType": "pdsTime",
        "endOffset": 0,
        "endOffsetType": "num",
        "endOffsetMultiplier": 60000,
        "x": 470,
        "y": 280,
        "wires": [
            [
                "a0d0e562.7ad1d8",
                "9cc2d51.4ac0828",
                "28e91.9d63d16f6",
                "6b1f97b4cc4c5e53",
                "b10eedb2bb5656c1"
            ],
            [
                "e921e01a.a0fa3"
            ]
        ]
    },
    {
        "id": "664b1852987e09be",
        "type": "time-inject",
        "z": "dbd46647b51191ed",
        "name": "Period and Injection Interval.",
        "nameInt": "¹sunrise start - sunset end = timestamp ↻10min",
        "positionConfig": "2831ba70.55a636",
        "props": [
            {
                "p": "",
                "pt": "msgPayload",
                "v": "",
                "vt": "date",
                "o": "",
                "oT": "none",
                "oM": "60000",
                "f": 0,
                "fS": 0,
                "fT": "UNIX timestamp (ms)",
                "fI": "0",
                "next": true,
                "days": "*",
                "months": "*",
                "onlyOddDays": false,
                "onlyEvenDays": false,
                "onlyOddWeeks": false,
                "onlyEvenWeeks": false
            },
            {
                "p": "",
                "pt": "msgTopic",
                "v": "",
                "vt": "str",
                "o": "",
                "oT": "none",
                "oM": "60000",
                "f": 0,
                "fS": 0,
                "fT": "UNIX timestamp (ms)",
                "fI": "0",
                "next": false,
                "days": "*",
                "months": "*",
                "onlyOddDays": false,
                "onlyEvenDays": false,
                "onlyOddWeeks": false,
                "onlyEvenWeeks": false
            ]
        ],
        "injectTypeSelect": "interval-time",
        "intervalCount": "10",
        "intervalCountType": "num",
        "intervalCountMultiplier": 60000,
        "cron": "",
        "cronType": "cronexpr",
        "time": "sunriseStart",
        "timeType": "pdsTime",
        "offset": 0,
        "offsetType": "none",
        "offsetMultiplier": 60000,
        "timeEnd": "sunsetEnd",
        "timeEndType": "pdsTime",
        "timeEndOffset": 0,
        "timeEndOffsetType": "none",
        "timeEndOffsetMultiplier": 60000,
        "timeDays": "*",
        "timeOnlyOddDays": false,
        "timeOnlyEvenDays": false,
        "timeOnlyOddWeeks": false,
        "timeOnlyEvenWeeks": false,
        "timeMonths": "*",
        "timedatestart": "",
        "timedateend": "",
        "property": "",
        "propertyType": "none",
        "propertyCompare": "true",
        "propertyThreshold": "",
        "propertyThresholdType": "num",
        "timeAlt": "",
        "timeAltType": "entered",
        "timeAltDays": "*",
        "timeAltOnlyOddDays": false,
        "timeAltOnlyEvenDays": false,
        "timeAltOnlyOddWeeks": false,
        "timeAltOnlyEvenWeeks": false,
        "timeAltMonths": "*",
        "timeAltOffset": 0,
        "timeAltOffsetType": "none",
        "timeAltOffsetMultiplier": 60000,
        "once": true,
        "onceDelay": 0.1,
        "recalcTime": 2,
        "x": 220,
        "y": 280,
        "wires": [
            [
                "56265aeb.99f034"
            ]
        ]
    },
    {
        "id": "6b1f97b4cc4c5e53",
        "type": "change",
        "z": "dbd46647b51191ed",
        "name": "sunset",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.times.sunsetStart",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "gladys/master/device/mqtt:soleil/feature/mqtt:sunset/state",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 710,
        "y": 660,
        "wires": [
            [
                "8c99bc6da0a4d5b0",
                "3e97e9902da57988"
            ]
        ]
    },
    {
        "id": "b10eedb2bb5656c1",
        "type": "change",
        "z": "dbd46647b51191ed",
        "name": "sunrise",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.times.sunriseStart",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "gladys/master/device/mqtt:soleil/feature/mqtt:sunrise/state",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 500,
        "wires": [
            [
                "ac45aa2966444fcf",
                "bb2297c4afea4845"
            ]
        ]
    },
    {
        "id": "3e97e9902da57988",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 10",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 920,
        "y": 720,
        "wires": []
    },
    {
        "id": "e9dd4a4e8fcb034c",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 11",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1160,
        "y": 440,
        "wires": []
    },
    {
        "id": "870a1a0c309ea346",
        "type": "mqtt out",
        "z": "dbd46647b51191ed",
        "name": "",
        "topic": "",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "3c3eb52d.9fb296",
        "x": 1170,
        "y": 580,
        "wires": []
    },
    {
        "id": "8c99bc6da0a4d5b0",
        "type": "function",
        "z": "dbd46647b51191ed",
        "name": "minutes since midnight",
        "func": "// Input: msg.payload = \"2023-11-23T16:23:18.121Z\"\n\n// Convert the string to a Date object\nvar dateObj = new Date(msg.payload.value);\n\n// Extract the hours and minutes\nvar hours = dateObj.getUTCHours();\nvar minutes = dateObj.getUTCMinutes();\n\n// Calculate the total number of minutes since midnight\nvar minutesSinceMidnight = hours * 60 + minutes;\n\nmsg.topic = hours;\nmsg.payload = minutesSinceMidnight;\n\n// Return the message\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 940,
        "y": 660,
        "wires": [
            [
                "7134c8c9865f611d",
                "5efa49d45f363336"
            ]
        ]
    },
    {
        "id": "ac45aa2966444fcf",
        "type": "function",
        "z": "dbd46647b51191ed",
        "name": "minutes since midnight",
        "func": "// Input: msg.payload = \"2023-11-23T16:23:18.121Z\"\n\n// Convert the string to a Date object\nvar dateObj = new Date(msg.payload.value);\n\n// Extract the hours and minutes\nvar hours = dateObj.getUTCHours();\nvar minutes = dateObj.getUTCMinutes();\n\n// Calculate the total number of minutes since midnight\nvar minutesSinceMidnight = hours * 60 + minutes;\n\nmsg.payload = minutesSinceMidnight;\n\n// Return the message\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 940,
        "y": 500,
        "wires": [
            [
                "e9dd4a4e8fcb034c",
                "9de494cb30ca99c2"
            ]
        ]
    },
    {
        "id": "bb2297c4afea4845",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 12",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 920,
        "y": 440,
        "wires": []
    },
    {
        "id": "7134c8c9865f611d",
        "type": "debug",
        "z": "dbd46647b51191ed",
        "name": "debug 13",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1160,
        "y": 720,
        "wires": []
    },
    {
        "id": "9de494cb30ca99c2",
        "type": "delay",
        "z": "dbd46647b51191ed",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 1160,
        "y": 500,
        "wires": [
            [
                "870a1a0c309ea346"
            ]
        ]
    },
    {
        "id": "5efa49d45f363336",
        "type": "delay",
        "z": "dbd46647b51191ed",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second"1