Hi, been using node red for some years now but I've become stuck.
Basically I had a flow using Hue Magic hue light node to turn on some lights in the garden if motion detected (I use the function node to set the payload with the brightness and colour) and then automatically turn off after 5 minutes of no motion. Here is the flow in question:
[
    {
        "id": "3b65ef53ef04260d",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "c7af6971269d3a96",
        "type": "api-current-state",
        "z": "3b65ef53ef04260d",
        "name": "Lux Level <= 5",
        "server": "819762069142e0b9",
        "version": 3,
        "outputs": 2,
        "halt_if": "5",
        "halt_if_type": "num",
        "halt_if_compare": "lte",
        "entity_id": "sensor.patio_sensor_illuminance",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": 0,
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 320,
        "y": 200,
        "wires": [
            [
                "ae7e8ac258fd7685"
            ],
            []
        ]
    },
    {
        "id": "ae7e8ac258fd7685",
        "type": "function",
        "z": "3b65ef53ef04260d",
        "name": "Patio Brightness",
        "func": "\nvar brightness = Number();\nvar setColour = String();\nvar currentDate = new Date();\nvar currentTime = (currentDate.getHours()<10?'0':'') + currentDate.getHours() +\":\" +\n                    (currentDate.getMinutes()<10?'0':'') + currentDate.getMinutes()\n                  \nvar isNightTime = currentTime > \"22:45\" || currentTime < \"06:00\";                  \n    \n    if (!isNightTime)\n    {\n        brightness = 40\n    \n    }\n    else\n    {\n        brightness = 5\n    \n    }\n    \n    msg.payload = {\"on\":true, \n                   \"brightness\":brightness};\n    \n\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 540,
        "y": 260,
        "wires": [
            [
                "4f1a5b41ce60acd0"
            ]
        ]
    },
    {
        "id": "8e20ebba20455d71",
        "type": "stoptimer",
        "z": "3b65ef53ef04260d",
        "duration": "3",
        "units": "Minute",
        "payloadtype": "bool",
        "payloadval": "false",
        "name": "Turn off Patio lights after 3 minutes",
        "x": 920,
        "y": 380,
        "wires": [
            [
                "a088b31fe5ad7514"
            ],
            []
        ],
        "outputLabels": [
            "off",
            ""
        ]
    },
    {
        "id": "4f1a5b41ce60acd0",
        "type": "hue-light",
        "z": "3b65ef53ef04260d",
        "name": "PL1",
        "bridge": "bffaf6c.ff5b208",
        "lightid": "c1b99a5a-4ab3-4d5f-ba60-5b9a06be7c55",
        "colornamer": true,
        "skipevents": false,
        "initevents": false,
        "x": 710,
        "y": 320,
        "wires": [
            [
                "8e20ebba20455d71"
            ]
        ]
    },
    {
        "id": "9721278e6ad47bcc",
        "type": "server-state-changed",
        "z": "3b65ef53ef04260d",
        "name": "Patio Sensor",
        "server": "819762069142e0b9",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "binary_sensor.patio_sensor_motion",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "habool",
        "haltifstate": "true",
        "halt_if_type": "bool",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": "0.5",
        "forType": "num",
        "forUnits": "seconds",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 130,
        "y": 120,
        "wires": [
            [
                "c7af6971269d3a96"
            ],
            []
        ]
    },
    {
        "id": "a088b31fe5ad7514",
        "type": "api-call-service",
        "z": "3b65ef53ef04260d",
        "name": "Turn off Patio lights ",
        "server": "819762069142e0b9",
        "version": 5,
        "debugenabled": true,
        "domain": "light",
        "service": "turn_off",
        "areaId": [],
        "deviceId": [],
        "entityId": [
            "light.pl1"
        ],
        "data": "",
        "dataType": "jsonata",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [],
        "queue": "none",
        "x": 1170,
        "y": 460,
        "wires": [
            []
        ]
    },
    {
        "id": "819762069142e0b9",
        "type": "server",
        "name": "Home Assistant",
        "version": 4,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": "at: ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "h23",
        "statusTimeFormat": "h:m"
    },
    {
        "id": "bffaf6c.ff5b208",
        "type": "hue-bridge",
        "name": "Philips hue",
        "bridge": "192.168.1.91",
        "key": "xxxxxx",
        "worker": "1",
        "disableupdates": false
    }
]
But due to some issues I've decided to go down the Hue API V2 route and managed to get a flow working to turn on a light. But I still need to turn the lights off automatically after a certain time. So I was thinking of using philipshue-events node by yadomi.
I thought there would be a simple way of listening to the events and match the light guid with the on state as per this example:
{
  "creationtime": "2021-10-18T17:04:55Z",
  "data": [
    {
      "id": "e706416a-8c92-46ef-8589-3453f3235b13",
      "on": { "on": true },
      "owner": {
        "rid": "3f4ac4e9-d67a-4dbd-8a16-5ea7e373f281",
        "rtype": "device"
      },
      "type": "light"
    }
  ],
  "id": "9de116fc-5fd2-4b74-8414-0f30cb2cbe04",
  "type": "update"
}
My thought process would be if the id = the lights guid and the on state = true I could then start the timer using the stoptimer node and then call the Hue APi again to turn off the light.
I have 3 lights so I would need 3 timers (maybe 2), I wrote a small bit of Js in the function node which is included in this flow:
[
    {
        "id": "988c6b12.5820a8",
        "type": "tab",
        "label": "test 4",
        "disabled": false,
        "info": ""
    },
    {
        "id": "eff1e6728336513a",
        "type": "function",
        "z": "988c6b12.5820a8",
        "name": "HUE API V2",
        "func": "// you can copy the user key from the hue config node out of Huemagic\nvar user = \"\";\n\n\nif(msg.endpoint === undefined)\n msg.url = \"https://192.168.1.91/clip/v2/resource\";\nelse if(msg.topic === undefined)\n msg.url = \"https://192.168.1.91/clip/v2/resource/\" + msg.endpoint;\nelse\n msg.url = \"https://192.168.1.91/clip/v2/resource/\" + msg.endpoint + \"/\" + msg.topic;\n\nmsg.headers = {};\n\nmsg.headers['hue-application-key'] = user;\nmsg.headers['Content-Type'] = 'application/json';\nmsg.headers['Accept'] = 'application/json';\n\nif(msg.payload != undefined)\n msg.headers['ContentLength'] = JSON.stringify(msg.payload).length;\n\nif(msg.verb === undefined)\n msg.method = \"get\";\nelse\n msg.method = msg.verb;\n\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1130,
        "y": 120,
        "wires": [
            [
                "eeebf175d527703f"
            ]
        ]
    },
    {
        "id": "eeebf175d527703f",
        "type": "http request",
        "z": "988c6b12.5820a8",
        "name": "https request HUE API V2",
        "method": "use",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "",
        "tls": "4bc31af9bd03bbdc",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1370,
        "y": 120,
        "wires": [
            [
                "a4afb3c3cccfbbd9"
            ]
        ]
    },
    {
        "id": "c56c22aea1a2f7b3",
        "type": "api-current-state",
        "z": "988c6b12.5820a8",
        "name": "Lux Level <= 10",
        "server": "819762069142e0b9",
        "version": 3,
        "outputs": 2,
        "halt_if": "400",
        "halt_if_type": "num",
        "halt_if_compare": "lte",
        "entity_id": "sensor.shed_interior_sensor_illuminance",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": 0,
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 320,
        "y": 120,
        "wires": [
            [
                "be8ca08cb4d303aa"
            ],
            []
        ]
    },
    {
        "id": "ad536497a95e358f",
        "type": "server-state-changed",
        "z": "988c6b12.5820a8",
        "name": "Mancave motion",
        "server": "819762069142e0b9",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "binary_sensor.shed_interior_sensor_motion",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "habool",
        "haltifstate": "true",
        "halt_if_type": "bool",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": "0.1",
        "forType": "num",
        "forUnits": "seconds",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [],
        "x": 100,
        "y": 120,
        "wires": [
            [
                "c56c22aea1a2f7b3",
                "be8ca08cb4d303aa"
            ],
            []
        ]
    },
    {
        "id": "bea7e0e8ddaa9864",
        "type": "change",
        "z": "988c6b12.5820a8",
        "name": "Shed light on",
        "rules": [
            {
                "t": "set",
                "p": "endpoint",
                "pt": "msg",
                "to": "light",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "e7514da3-6846-4f41-b2de-0b8981c28a76",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"on\":{\"on\":true},\"dimming\":{\"brightness\":50},\"dynamics\":{\"duration\":1000},\"color\":{\"xy\":{\"x\":0.3,\"y\":0.3}}}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "verb",
                "pt": "msg",
                "to": "put",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 790,
        "y": 120,
        "wires": [
            [
                "eff1e6728336513a"
            ]
        ]
    },
    {
        "id": "be8ca08cb4d303aa",
        "type": "function",
        "z": "988c6b12.5820a8",
        "name": "Mancave Brightness",
        "func": "var brightness = Number();\nvar setColourX = Number();\nvar setColourY = Number();\n\nvar currentDate = new Date();\nvar currentTime = (currentDate.getHours() < 10 ? '0' : '') + currentDate.getHours() + \":\" +\n(currentDate.getMinutes() < 10 ? '0' : '') + currentDate.getMinutes()\n\nbrightness = 40\nsetColourX = 0.3\nsetColourY = 0.3\n\nmsg.payload = {\n    \"on\": {\n        \"on\": true\n    },\n    \"dimming\": {\n        \"brightness\": 50\n    },\n    \"dynamics\": {\n        \"duration\": 1000\n    },\n    \"color\": {\n        \"xy\": {\n            \"x\": 0.3,\n            \"y\": 0.3\n        }\n    }\n};\n\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 580,
        "y": 120,
        "wires": [
            [
                "bea7e0e8ddaa9864"
            ]
        ]
    },
    {
        "id": "a8167b5772523342",
        "type": "philipshue-events",
        "z": "988c6b12.5820a8",
        "bridge": "f397567560dcf393",
        "x": 100,
        "y": 200,
        "wires": [
            [
                "40a462c02de10305"
            ]
        ]
    },
    {
        "id": "83e910890883354a",
        "type": "switch",
        "z": "988c6b12.5820a8",
        "name": "",
        "property": "topic",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "e7514da3-6846-4f41-b2de-0b8981c28a76",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 470,
        "y": 200,
        "wires": [
            [
                "0e55037c8d554695"
            ],
            []
        ]
    },
    {
        "id": "4e354bc74817855f",
        "type": "change",
        "z": "988c6b12.5820a8",
        "name": "Shed light off",
        "rules": [
            {
                "t": "set",
                "p": "endpoint",
                "pt": "msg",
                "to": "light",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "e7514da3-6846-4f41-b2de-0b8981c28a76",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"on\":{\"on\":false}}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "verb",
                "pt": "msg",
                "to": "put",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1030,
        "y": 200,
        "wires": [
            [
                "eff1e6728336513a"
            ]
        ]
    },
    {
        "id": "0e55037c8d554695",
        "type": "stoptimer",
        "z": "988c6b12.5820a8",
        "duration": "20",
        "units": "Second",
        "payloadtype": "bool",
        "payloadval": "false",
        "name": "Turn off Shed Lights after 3 minutes",
        "x": 760,
        "y": 200,
        "wires": [
            [
                "4e354bc74817855f"
            ],
            []
        ],
        "outputLabels": [
            "off",
            ""
        ]
    },
    {
        "id": "40a462c02de10305",
        "type": "function",
        "z": "988c6b12.5820a8",
        "name": "function 2",
        "func": "\n\n\nif( msg.payload.data[0].id == 'e7514da3-6846-4f41-b2de-0b8981c28a76'\n   && msg.payload.data[0].on == true ){\n     msg.topic = 'e7514da3-6846-4f41-b2de-0b8981c28a76'\n}\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 320,
        "y": 200,
        "wires": [
            [
                "83e910890883354a"
            ]
        ]
    },
    {
        "id": "a4afb3c3cccfbbd9",
        "type": "debug",
        "z": "988c6b12.5820a8",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1590,
        "y": 120,
        "wires": []
    },
    {
        "id": "4bc31af9bd03bbdc",
        "type": "tls-config",
        "name": "",
        "cert": "",
        "key": "",
        "ca": "",
        "certname": "",
        "keyname": "",
        "caname": "",
        "servername": "",
        "verifyservercert": false
    },
    {
        "id": "819762069142e0b9",
        "type": "server",
        "name": "Home Assistant",
        "version": 4,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": "at: ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "h23",
        "statusTimeFormat": "h:m"
    },
    {
        "id": "f397567560dcf393",
        "type": "philipshue-events-config",
        "address": "192.168.1.91",
        "applicationkey": ""
    }
]
Any help would be appreciated
Thanks
Darren

 ...
 ...
