Bug with node-red-contrib-cron-plus?

Hey all,

I am using Cron-Plus on Node-Red within Home Assistant and I'm running into an issue which I believe might be a bug. First up, versions:

Raspberry Pi: 4b/8GB
Home Assistant OS: 7.6
Home Assistant Core: 2022.4.5
Node-RED (Home Assistant 'Add-On'): 11.1.2 (shows in Home Assistant) / 2.2.2 (shows within Node-RED)
node-red-contrib-cron-plus: 1.5.6

tl;dr - Cron-Plus only triggers the 'Call Service' nodes on their respective solar event outputs once through one cycle of all solar events configured, and will never trigger them again until I "refresh" by forcing a 'Deploy'.

NOTE: Some of the data in here was captured on a different day while writing up this post.

Quick explanation of what I am doing/attempting to do, I use a Cron-Plus node with each of the solar events (even ones I don't use) configured individually as separate static schedules as seen below (my screen resolution is low so only two are visible but you get the idea). I have them all fanned out into separate outputs where I connect various Home Assistant 'Call Service' nodes to execute things at certain times.

The trouble I am having is that it seems that Cron-Plus will hit the 'Call Service' nodes on each of the outputs as expected when going through the various solar events but once and only once. After going through all of the solar events once, the 'Call Service' nodes are never triggered again the next day when expected.

Here is an example of when all of the solar events have already been triggered once and today, were not triggered again. I highlighted the wire for a particular solar event (Sunset Start) where you can see it has already passed but the 'Call Service' node still shows yesterday's date and time and wasn't triggered. Prior to this the Cron-Plus node had the correct next date and time shown underneath as expected for the Sunset Start event.

If I do anything so that I can push the 'Deploy' button for Node-RED, even making zero changes by moving a node's position, then moving it back and pressing 'Deploy', Cron-Plus will work again once through all solar events, triggering the 'Call Service' nodes as expected and then stop working again as before.

Here is everything fresh after pushing 'Deploy' having not yet reached their respective solar event time, note that 'Call Service' nodes weirdly don't normally say "No Connection" for their status if the corresponding 'Inject' node on the input to the Cron-Plus node is not there, instead after a Deploy the status of the 'Call Service' nodes without the inject nodes just keeps the date and time of when they were last triggered:

As you can see I have a web of stuff around the Cron-Plus node to try and test/gather some debug information. I have a separate inject node on the input configured so that I can manually trigger each individual solar event schedule output, these also do not work and do not trigger the relevant 'Call Service' as expected after I would consider Cron-Plus to be "dead" however, oddly again the message debug I put in place on the output of Cron-Plus does see something:

{"triggerTimestamp":1652515824884,"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"eveningGoldenHourStart in 16 hours 34 minutes 30 seconds","nextDate":"2022-05-15T00:44:55.586Z","nextDateTZ":"May 14, 2022, 19:44:55 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:10:24.889Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'eveningGoldenHourStart'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"eveningGoldenHourStart","time":"2022-05-15T00:44:55.586Z","timeOffset":"2022-05-15T00:44:55.586Z"}],"solarEvent":"nightEnd"},"config":{"topic":"Evening Golden Hour Starts","name":"Evening Golden Hour Starts","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"eveningGoldenHourStart","location":"32.769474 -96.855274","offset":"0"}}

You'll also notice that I have a debug wired to every single solar event static schedule output. What's weird is that the debug node sees the message output from the Cron-Plus node at the time expected for that solar event, even after I would consider 'Cron-Plus' to be dead however, the respective 'Call Service' node on the output is never triggered, here are two of those solar event outputs from the debug node when I would consider Cron-Plus to be dead and I still see the output from Cron-Plus, but the corresponding 'Call Service' node doesn't trigger:

{"triggerTimestamp":1652404546097,"status":{"type":"static","modified":false,"isRunning":true,"count":2,"limit":0,"nextDescription":"sunsetStart in 1 day 38 seconds","nextDate":"2022-05-14T01:16:24.706Z","nextDateTZ":"May 13, 2022, 20:16:24 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-13T01:15:46.109Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'sunsetStart'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":true,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":true},"solarTimes":[{"event":"sunsetStart","time":"2022-05-14T01:16:24.706Z","timeOffset":"2022-05-14T01:16:24.706Z"}],"solarEvent":"sunsetStart"},"config":{"topic":"Sunset Start","name":"Sunset Start","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunsetStart","location":"32.769474 -96.855274","offset":"0"}}
{"triggerTimestamp":1652404704155,"status":{"type":"static","modified":false,"isRunning":true,"count":2,"limit":0,"nextDescription":"sunset in 1 day 38 seconds","nextDate":"2022-05-14T01:19:03.081Z","nextDateTZ":"May 13, 2022, 20:19:03 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-13T01:18:24.165Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'sunset'","solarState":{"state":"Civil Twilight","direction":"fall","day":false,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":true,"goldenHour":true,"twilight":true,"morningTwilight":false,"eveningTwilight":true,"dawn":false,"dusk":true,"morningGoldenHour":false,"eveningGoldenHour":true},"solarTimes":[{"event":"sunset","time":"2022-05-14T01:19:03.081Z","timeOffset":"2022-05-14T01:19:03.081Z"}],"solarEvent":"sunset"},"config":{"topic":"Sunset","name":"Sunset","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunset","location":"32.769474 -96.855274","offset":"0"}}

In addition, I have three injects with commands to 'List Active', 'List Inactive', and 'Start All' respectively. Once all solar events have passed, pressing the 'List Inactive' injection and checking the command output shows that there are no inactive schedules, pressing 'List Active' shows that they are all active, if I press 'Start All' as a different attempt to see if I could get it to start working again as expect (V.S. "refreshing" via a 'Deploy') doesn't work. Here are the command outputs from the debug node connected to the command output of Cron-Plus when pressing these after I would consider Cron-Plus to be dead:

List Active -

{"command":{"command":"list-active"},"result":[{"config":{"topic":"Night End - Astronomical Dawn","name":"Night End - Astronomical Dawn","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nightEnd","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nightEnd in 1 hour 54 minutes 43 seconds","nextDate":"2022-05-14T09:56:07.434Z","nextDateTZ":"May 14, 2022, 04:56:07 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.750Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'nightEnd'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"nightEnd","time":"2022-05-14T09:56:07.434Z","timeOffset":"2022-05-14T09:56:07.434Z"}]}},{"config":{"topic":"Nautical Dawn","name":"Nautical Dawn","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nauticalDawn","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nauticalDawn in 2 hours 29 minutes 24 seconds","nextDate":"2022-05-14T10:30:48.438Z","nextDateTZ":"May 14, 2022, 05:30:48 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.754Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'nauticalDawn'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"nauticalDawn","time":"2022-05-14T10:30:48.438Z","timeOffset":"2022-05-14T10:30:48.438Z"}]}},{"config":{"topic":"Civil Dawn - Golden Hour","name":"Civil Dawn - Golden Hour","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDawn","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"civilDawn in 3 hours 2 minutes 7 seconds","nextDate":"2022-05-14T11:03:31.129Z","nextDateTZ":"May 14, 2022, 06:03:31 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.757Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'civilDawn'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"civilDawn","time":"2022-05-14T11:03:31.129Z","timeOffset":"2022-05-14T11:03:31.129Z"}]}},{"config":{"topic":"Sunrise","name":"Sunrise","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunrise","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunrise in 3 hours 29 minutes 12 seconds","nextDate":"2022-05-14T11:30:36.576Z","nextDateTZ":"May 14, 2022, 06:30:36 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.760Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'sunrise'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"sunrise","time":"2022-05-14T11:30:36.576Z","timeOffset":"2022-05-14T11:30:36.576Z"}]}},{"config":{"topic":"Sunrise End","name":"Sunrise End","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunriseEnd","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunriseEnd in 3 hours 31 minutes 57 seconds","nextDate":"2022-05-14T11:33:21.563Z","nextDateTZ":"May 14, 2022, 06:33:21 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.763Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'sunriseEnd'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"sunriseEnd","time":"2022-05-14T11:33:21.563Z","timeOffset":"2022-05-14T11:33:21.563Z"}]}},{"config":{"topic":"Morning Golden Hour Ends","name":"Morning Golden Hour Ends","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"morningGoldenHourEnd","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"morningGoldenHourEnd in 4 hours 3 minutes 57 seconds","nextDate":"2022-05-14T12:05:21.143Z","nextDateTZ":"May 14, 2022, 07:05:21 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.768Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'morningGoldenHourEnd'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"morningGoldenHourEnd","time":"2022-05-14T12:05:21.143Z","timeOffset":"2022-05-14T12:05:21.143Z"}]}},{"config":{"topic":"Solar Noon","name":"Solar Noon","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"solarNoon","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"solarNoon in 10 hours 23 minutes 44 seconds","nextDate":"2022-05-14T18:25:08.364Z","nextDateTZ":"May 14, 2022, 13:25:08 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.771Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'solarNoon'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"solarNoon","time":"2022-05-14T18:25:08.364Z","timeOffset":"2022-05-14T18:25:08.364Z"}]}},{"config":{"topic":"Evening Golden Hour Starts","name":"Evening Golden Hour Starts","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"eveningGoldenHourStart","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"eveningGoldenHourStart in 16 hours 43 minutes 31 seconds","nextDate":"2022-05-15T00:44:55.586Z","nextDateTZ":"May 14, 2022, 19:44:55 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.774Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'eveningGoldenHourStart'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"eveningGoldenHourStart","time":"2022-05-15T00:44:55.586Z","timeOffset":"2022-05-15T00:44:55.586Z"}]}},{"config":{"topic":"Sunset Start","name":"Sunset Start","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunsetStart","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunsetStart in 17 hours 15 minutes 31 seconds","nextDate":"2022-05-15T01:16:55.166Z","nextDateTZ":"May 14, 2022, 20:16:55 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.777Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'sunsetStart'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"sunsetStart","time":"2022-05-15T01:16:55.166Z","timeOffset":"2022-05-15T01:16:55.166Z"}]}},{"config":{"topic":"Sunset","name":"Sunset","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunset","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunset in 17 hours 18 minutes 16 seconds","nextDate":"2022-05-15T01:19:40.152Z","nextDateTZ":"May 14, 2022, 20:19:40 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.780Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'sunset'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"sunset","time":"2022-05-15T01:19:40.152Z","timeOffset":"2022-05-15T01:19:40.152Z"}]}},{"config":{"topic":"Civil Dusk - Golden Hour Ends","name":"Civil Dusk - Golden Hour Ends","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDusk","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"civilDusk in 17 hours 45 minutes 21 seconds","nextDate":"2022-05-15T01:46:45.599Z","nextDateTZ":"May 14, 2022, 20:46:45 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.783Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'civilDusk'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"civilDusk","time":"2022-05-15T01:46:45.599Z","timeOffset":"2022-05-15T01:46:45.599Z"}]}},{"config":{"topic":"Nautical Dusk","name":"Nautical Dusk","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nauticalDusk","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nauticalDusk in 18 hours 18 minutes 4 seconds","nextDate":"2022-05-15T02:19:28.291Z","nextDateTZ":"May 14, 2022, 21:19:28 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.786Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'nauticalDusk'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"nauticalDusk","time":"2022-05-15T02:19:28.291Z","timeOffset":"2022-05-15T02:19:28.291Z"}]}},{"config":{"topic":"Astronomical Dusk - Night Starts","name":"Astronomical Dusk - Night Starts","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nightStart","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nightStart in 18 hours 52 minutes 45 seconds","nextDate":"2022-05-15T02:54:09.295Z","nextDateTZ":"May 14, 2022, 21:54:09 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.789Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'nightStart'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"nightStart","time":"2022-05-15T02:54:09.295Z","timeOffset":"2022-05-15T02:54:09.295Z"}]}},{"config":{"topic":"Solar Midnight","name":"Solar Midnight","payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nadir","location":"32.769474 -96.855274","offset":"0","isDynamic":false,"modified":true},"status":{"type":"static","modified":false,"isRunning":true,"count":2,"limit":0,"nextDescription":"nadir in 22 hours 23 minutes 44 seconds","nextDate":"2022-05-15T06:25:08.364Z","nextDateTZ":"May 15, 2022, 01:25:08 CDT","timeZone":"America/North_Dakota/Center","serverTime":"2022-05-14T08:01:23.792Z","serverTimeZone":"America/Chicago","description":"Solar Events: 'nadir'","solarState":{"state":"Night","direction":"rise","day":false,"night":true,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarTimes":[{"event":"nadir","time":"2022-05-15T06:25:08.364Z","timeOffset":"2022-05-15T06:25:08.364Z"}]}}]}

List Inactive -

{"command":{"command":"list-inactive"},"result":[]}

Start All -
No command/debug output

Here is the configuration of EVERYTHING in the flow including all inject and debug nodes:

[{"id":"d32e4f05.9f1ee8","type":"tab","label":"Mode Selector","disabled":false,"info":""},{"id":"478d402.36f9ec","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Morning Mode","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.home_mode"],"data":"{\"option\": \"Morning\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":160,"wires":[[]]},{"id":"121a7957.96032f","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Evening Mode","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.home_mode"],"data":"{\"option\": \"Evening\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":280,"wires":[[]]},{"id":"df55fe85.4e955","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Night Mode","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.home_mode"],"data":"{\"option\": \"Night\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":710,"y":580,"wires":[[]]},{"id":"4dc735f9.6fd5c4","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Living Room Evening Lights ON","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.livingroom_evening_lights"],"data":"{ \"brightness_pct\": \"100\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":770,"y":220,"wires":[[]]},{"id":"b0b99d2a.2f1c3","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Loft Evening Lights ON","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.ikea_of_sweden_tradfri_bulb_gu10_ws_400lm_c539b7fe_level_light_color_on_off"],"data":"{ \"brightness_pct\": \"100\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":750,"y":460,"wires":[[]]},{"id":"92d2cde8.f09f58","type":"cronplus","z":"d32e4f05.9f1ee8","name":"Solar Events","outputField":"payload","timeZone":"America/North_Dakota/Center","persistDynamic":false,"commandResponseMsgOutput":"fanOut","outputs":16,"options":[{"name":"Night End - Astronomical Dawn","topic":"Night End - Astronomical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nightEnd"},{"name":"Nautical Dawn","topic":"Nautical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nauticalDawn"},{"name":"Civil Dawn - Golden Hour","topic":"Civil Dawn - Golden Hour","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"civilDawn"},{"name":"Sunrise","topic":"Sunrise","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunrise"},{"name":"Sunrise End","topic":"Sunrise End","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunriseEnd"},{"name":"Morning Golden Hour Ends","topic":"Morning Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"morningGoldenHourEnd"},{"name":"Solar Noon","topic":"Solar Noon","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"solarNoon"},{"name":"Evening Golden Hour Starts","topic":"Evening Golden Hour Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"eveningGoldenHourStart"},{"name":"Sunset Start","topic":"Sunset Start","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunsetStart"},{"name":"Sunset","topic":"Sunset","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunset"},{"name":"Civil Dusk - Golden Hour Ends","topic":"Civil Dusk - Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"civilDusk"},{"name":"Nautical Dusk","topic":"Nautical Dusk","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nauticalDusk"},{"name":"Astronomical Dusk - Night Starts","topic":"Astronomical Dusk - Night Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nightStart"},{"name":"Solar Midnight","topic":"Solar Midnight","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nadir"}],"x":350,"y":340,"wires":[["a4c29122.0894"],["a4c29122.0894"],["a4c29122.0894"],["a4c29122.0894"],["cde10d42.b2163","a4c29122.0894"],["478d402.36f9ec","a4c29122.0894"],["a4c29122.0894"],["121a7957.96032f","a4c29122.0894","4dc735f9.6fd5c4"],["a4c29122.0894","9acb0ff3.20ed1"],["b0b99d2a.2f1c3","a4c29122.0894","b22b3e19f024fd96"],["a4c29122.0894"],["a4c29122.0894"],["a4c29122.0894"],["a4c29122.0894"],[],["8f732c326377ea90"]]},{"id":"9acb0ff3.20ed1","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Outside Lights ON 100pct","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.outside_lights"],"data":"{ \"brightness_pct\": \"100\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":750,"y":340,"wires":[[]]},{"id":"cde10d42.b2163","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Outside Lights OFF","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.outside_lights"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":100,"wires":[[]]},{"id":"a4c29122.0894","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":720,"y":520,"wires":[]},{"id":"e250ccdf.cb3ee","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Night End - Astronomical Dawn\"}","payloadType":"json","x":90,"y":100,"wires":[["92d2cde8.f09f58"]]},{"id":"e115d6ff.c08b8","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Nautical Dawn\"}","payloadType":"json","x":90,"y":140,"wires":[["92d2cde8.f09f58"]]},{"id":"14aff3f1.bb57a4","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Civil Dawn - Golden Hour\"}","payloadType":"json","x":90,"y":180,"wires":[["92d2cde8.f09f58"]]},{"id":"b27a4855.20ff78","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Sunrise\"}","payloadType":"json","x":90,"y":220,"wires":[["92d2cde8.f09f58"]]},{"id":"ab1d261e.aabcf","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Sunrise End\"}","payloadType":"json","x":90,"y":260,"wires":[["92d2cde8.f09f58"]]},{"id":"8759787d.898c28","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Morning Golden Hour Ends\"}","payloadType":"json","x":90,"y":300,"wires":[["92d2cde8.f09f58"]]},{"id":"36088014.c43a","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Solar Noon\"}","payloadType":"json","x":90,"y":340,"wires":[["92d2cde8.f09f58"]]},{"id":"aaf8aec9.b43be8","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Evening Golden Hour Starts\"}","payloadType":"json","x":90,"y":380,"wires":[["92d2cde8.f09f58"]]},{"id":"94f69f40.385218","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Sunset Start\"}","payloadType":"json","x":90,"y":420,"wires":[["92d2cde8.f09f58"]]},{"id":"45fe7135.5ca14","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Sunset\"}","payloadType":"json","x":90,"y":460,"wires":[["92d2cde8.f09f58"]]},{"id":"10d8c005.4c8bf","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Civil Dusk - Golden Hour Ends\"}","payloadType":"json","x":90,"y":500,"wires":[["92d2cde8.f09f58"]]},{"id":"2c4572b8.a7d69e","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Nautical Dusk\"}","payloadType":"json","x":90,"y":540,"wires":[["92d2cde8.f09f58"]]},{"id":"371949cd.2814f6","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Astronomical Dusk - Night Starts\"}","payloadType":"json","x":90,"y":580,"wires":[["92d2cde8.f09f58"]]},{"id":"ed420b78.bd107","type":"inject","z":"d32e4f05.9f1ee8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"trigger\",\"name\":\"Solar Midnight\"}","payloadType":"json","x":90,"y":620,"wires":[["92d2cde8.f09f58"]]},{"id":"d7ef9238566306b6","type":"inject","z":"d32e4f05.9f1ee8","name":"9:30PM Daily Night Mode","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"30 21 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":420,"y":580,"wires":[["df55fe85.4e955"]]},{"id":"b22b3e19f024fd96","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Office Blind Close","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"cover","service":"close_cover","areaId":[],"deviceId":[],"entityId":["cover.window_blind_controller_current_value"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":400,"wires":[[]]},{"id":"a7f3647eda98f149","type":"inject","z":"d32e4f05.9f1ee8","name":"List Active","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"list-active\"}","payloadType":"json","x":250,"y":680,"wires":[["92d2cde8.f09f58"]]},{"id":"8f732c326377ea90","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":580,"y":680,"wires":[]},{"id":"4bc012b0593561b0","type":"inject","z":"d32e4f05.9f1ee8","name":"List Inactive","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"list-inactive\"}","payloadType":"json","x":250,"y":720,"wires":[["92d2cde8.f09f58"]]},{"id":"93085979a2cea0cd","type":"inject","z":"d32e4f05.9f1ee8","name":"Start All","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"start-all\"}","payloadType":"json","x":240,"y":760,"wires":[["92d2cde8.f09f58"]]},{"id":"b4b1f855.d1db78","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Here is the configuration of the flow without all the inject and debug node junk, only what I want to be there:

[{"id":"d32e4f05.9f1ee8","type":"tab","label":"Mode Selector","disabled":false,"info":""},{"id":"478d402.36f9ec","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Morning Mode","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.home_mode"],"data":"{\"option\": \"Morning\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":160,"wires":[[]]},{"id":"121a7957.96032f","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Evening Mode","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.home_mode"],"data":"{\"option\": \"Evening\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":280,"wires":[[]]},{"id":"df55fe85.4e955","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Night Mode","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"input_select","service":"select_option","areaId":[],"deviceId":[],"entityId":["input_select.home_mode"],"data":"{\"option\": \"Night\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":710,"y":580,"wires":[[]]},{"id":"4dc735f9.6fd5c4","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Living Room Evening Lights ON","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.livingroom_evening_lights"],"data":"{ \"brightness_pct\": \"100\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":770,"y":220,"wires":[[]]},{"id":"b0b99d2a.2f1c3","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Loft Evening Lights ON","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.ikea_of_sweden_tradfri_bulb_gu10_ws_400lm_c539b7fe_level_light_color_on_off"],"data":"{ \"brightness_pct\": \"100\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":750,"y":460,"wires":[[]]},{"id":"92d2cde8.f09f58","type":"cronplus","z":"d32e4f05.9f1ee8","name":"Solar Events","outputField":"payload","timeZone":"America/North_Dakota/Center","persistDynamic":false,"commandResponseMsgOutput":"fanOut","outputs":16,"options":[{"name":"Night End - Astronomical Dawn","topic":"Night End - Astronomical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nightEnd"},{"name":"Nautical Dawn","topic":"Nautical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nauticalDawn"},{"name":"Civil Dawn - Golden Hour","topic":"Civil Dawn - Golden Hour","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"civilDawn"},{"name":"Sunrise","topic":"Sunrise","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunrise"},{"name":"Sunrise End","topic":"Sunrise End","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunriseEnd"},{"name":"Morning Golden Hour Ends","topic":"Morning Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"morningGoldenHourEnd"},{"name":"Solar Noon","topic":"Solar Noon","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"solarNoon"},{"name":"Evening Golden Hour Starts","topic":"Evening Golden Hour Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"eveningGoldenHourStart"},{"name":"Sunset Start","topic":"Sunset Start","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunsetStart"},{"name":"Sunset","topic":"Sunset","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunset"},{"name":"Civil Dusk - Golden Hour Ends","topic":"Civil Dusk - Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"civilDusk"},{"name":"Nautical Dusk","topic":"Nautical Dusk","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nauticalDusk"},{"name":"Astronomical Dusk - Night Starts","topic":"Astronomical Dusk - Night Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nightStart"},{"name":"Solar Midnight","topic":"Solar Midnight","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nadir"}],"x":350,"y":340,"wires":[[],[],[],[],["cde10d42.b2163"],["478d402.36f9ec"],[],["121a7957.96032f","4dc735f9.6fd5c4"],["9acb0ff3.20ed1"],["b0b99d2a.2f1c3","b22b3e19f024fd96"],[],[],[],[],[],[]]},{"id":"9acb0ff3.20ed1","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Outside Lights ON 100pct","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.outside_lights"],"data":"{ \"brightness_pct\": \"100\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":750,"y":340,"wires":[[]]},{"id":"cde10d42.b2163","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Outside Lights OFF","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"light","service":"turn_off","areaId":[],"deviceId":[],"entityId":["light.outside_lights"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":100,"wires":[[]]},{"id":"d7ef9238566306b6","type":"inject","z":"d32e4f05.9f1ee8","name":"9:30PM Daily Night Mode","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"30 21 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":420,"y":580,"wires":[["df55fe85.4e955"]]},{"id":"b22b3e19f024fd96","type":"api-call-service","z":"d32e4f05.9f1ee8","name":"Office Blind Close","server":"b4b1f855.d1db78","version":5,"debugenabled":false,"domain":"cover","service":"close_cover","areaId":[],"deviceId":[],"entityId":["cover.window_blind_controller_current_value"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":730,"y":400,"wires":[[]]},{"id":"b4b1f855.d1db78","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

So I am at a loss here, I have tried various settings within the Cron-Plus node, e.g. I originally thought it might have been caused by an offset I was using on one of the solar event schedules that would essentially push it past the next expected solar event, so I removed that offset, no different. I tried checking the 'Persist Dynamic Schedules' option even though I know these are considered static schedules, no difference. I tried specifically setting the 'Timezone' instead of leaving blank for "none/system", made no difference either.

Is it a problem with the Cron-Plus node or the Call Service nodes? Since the output debug node shows the output from Cron-Plus but the Call Service node doesn't trigger? But I have other Call Service nodes that will work continuously as expected without needing to be "refreshed" such as the 'Night Mode' Call Service node connected to the "9:30PM Daily Night Mode" injection. Then again, the manual inject nodes on the input side of Cron-Plus also can't trigger the Call Service nodes, through Cron-Plus, on the corresponding output, after Cron-Plus itself is no longer able to as well. Why do these specific Call Service nodes attached to Cron-Plus stop responding?

Your help is sincerely appreciated as having to manually "refresh" Cron-Plus each night kinda defeats the purpose. Please let me know what you need, what you want me to do, anything to get this resolved.

Hi @LondonBenji

Firstly, can you confirm the following

  • node-red version (its on the hamburger menu of the node-red editor)
  • cron-plus version (as shown in palette manager)

These 2 statements tell me the issue is with Home Assistant or its (blue) nodes. I deduct that from the fact you still get debug messages from the cron-plus node but the service doesn't operate.

I see from your screenshot you are doing FULL deploys. In your current flow, that means any simple tweak or modification completely restarts every node in node-red

  • the cron schedules are destroyed and rebuilt
  • the injects will auto trigger - all at once
  • the HA service will disconnect / reconnect
    It is possible the fact HA is disconnecting/reconnecting AND you have injects triggering ALL schedules on start up is the issue. I recommend switching to "node" deploy mode unless you really need to do full deploys.

Other than that, the only other thing I can think is the service node doesn't like the payload or the topic. Try setting the topic to something simple like "Sunrise" or "Civil Dawn" etc. Also, change the payload to be a timestamp.

Lastly,
I imported your flow (i dont use HA like a lot of folk here so cant test that but) I can confirm cron-plus is doing what it is supposed to as far as I can see. On top of that, there are a lot of folk use it so would likely be reported by now (i suspect).

Hope that helps.

1 Like

Thanks Steve! I didn't want to tag you and bother you but I appreciate you chiming in! To confirm the version are as listed in the initial post but to clarify -

Node-RED: 2.2.2
node-red-contrib-cron-plus: 1.5.6

I see the option to do node deploy now but I don't think the injects auto trigger after doing a full deploy because none of the HA stuff reactions, unless the injects are happening before the HA nodes have a chance to start? I did initially try it with the flow completely clean of injects and debug nodes and it behaved the same, the injects and debugs were add after the fact because I couldn't get it to work properly. I did try removing them all again just in case but still no dice.

When I was writing this out and doing the various debugs it did indeed start looking like the problem was related to the Call Service nodes attached to the Cron Plus node, indeed I do still see debug messages from Cron Plus, but on the flip side I use Call Service nodes everywhere else on other flows (and one other within this flow) and they all always continue to respond, it's only the Call Service nodes attached to Cron Plus that only work once.

Would the payload change from the first time Cron Plus sends outputs to the the second time around?

Is there a way to debug the Call Service nodes themselves that are attached to the Cron Plus node, to see what they think of the consequent outputs from Cron Plus? Is there any other debug that I can add somehow?

I guess they do, this makes sense as to why Call Service nodes show "No Connection" once I attached an appropriate inject, I also added a message debug to the output of the Call Service nodes now and see this when I do a full deploy:

Call-Service attempted without connection to server.

I did a full deploy again and see if the Call Service nodes output anything once things stop working.

So I have been trying all sorts of things to no avail. After a great tip from the HA community I tried setting up a Catch node and logging it to a file, nothing, I also added a Debug node on the outputs of the specific Call Service nodes attached to Cron Plus, again, nothing after the first successful cycle of solar events has passed.

I changed the deploy method to 'Modified Nodes' only, moved one of the Call Service nodes, deployed, still not working, moved the Cron Plus node, deployed, still nothing.

I've added a mobile notification node to the output of Cron Plus but it's a Home Assistant Call Service node still. Is there another way of logging if Cron Plus has triggered that isn't a Home Assistant related node and doesn't require me to be looking at Node-RED at the precise solar event times?

Have you been in touch with the Webhooks developer who put together the Nodes to interface between NR and HA ?

Could you not put the flogger node on the output of each of the cronplus events as well as on the output of the HA service calls

Craig

1 Like

I appreciate the help! To be honest I still trying to work out who is responsible for what and the biggest issue is, I don't know what is broken, just that it's not working in the expected way.

I found the Write File node and set that up but still nothing. I have installed Flogger and will try and utilise that but while I have been troubleshooting this for months I have noticed that in the meantime node-red-contrib-sunevents v3.0 now supports the exact same functionality as Cron-Plus with regards to solar events, so I might swap them out and give that a try.

Just in case I am not being crazy, I noticed that sunevents v3.0 requires you to "prod" the sunevents node daily with a long/lat injection so that it keeps refreshing the solar events schedule..... I don't have to do that with Cron Plus right?

No you do not.

A little perspective from me (the author of CRON-PLUS), if you write the MSG's coming out of Cron+ to file you will see. The node does reliably fire every time. This is going to be some other external issue. Quite possibly the home automation nodes or your network or some other PC related problem. I say this because there are a lot of users of Cron+ and it is not a problem that has been highlighted - apart from once where we instructed the user to log cron events to file and low and behold they were firing - the issue was elsewhere.

1 Like

Thank you for the info, I might try some sort inject daily on the input side anyway but at the moment I do have a couple of the outputs from Cron Plus tied to a 'Write File' node and nothing is being written (or I cannot find the correct path to the file).

The reason why I am not sure where the issue exists is because it's only the Call Service nodes attached to the Cron-Plus node that only seem to be able to execute once. All other Call Service nodes in different flows and the same flow (but not attached to Cron-Plus) work daily just fine as expected.

So the problem exists somewhere between the Call Service nodes attached to Cron-Plus node, the Cron-Plus node itself, and/or something that I am doing in particular.

For reference, Home Assistant and the Node-RED add-on through Home Assistant are all running on the Raspberry Pi 4 which has a Nortek/GoControl HUSBZB-1 Z-Wave/ZigBee connected to it. So everything is internal to the Pi, which is connected via Ethernet anyway through the main router.

The router is a Ubiquiti USG-3 router, the main switch is a US-16-150W that connects everything together, I am a Network Engineer by trade so the network should be good, even if HA and Node-RED weren't running everything entirely internally to the RPi4.

OK are you running NR as a Hass Add In - i.e. as a docker container ? if so you should be able to specify the location for flogger to write its log files in the volume that you have exported for NR from within HA.

Are you running Portainer to control your containers ? If so you should be able to use it to see the real path on the PI for the data volumes that are mounted

I think you are asking for more pain if you move to a different node to generate the events - better off something you have tested thoroughly and are close to nailing down.

As the Author of the Cron-plus node is highly engaged on here (and is now employed as one of the NR developers !!!) pretty sure if you can find a bug in there he will be onto it pretty quickly.

Craig

2 Likes

NR as a HASS add-on, all on a RPi using the official HAOS image and installing NR through the official HA add-on store, everything stock and by the book as much as possible.

I setup a quick test to write a file and it went where I expected it, so the Catch node I have setup that is connected to a Write node that never seems to catch anything, nor the Write Node I setup on the output of Cron-Plus node after everything stops working.

If I tell NR to 'Restart Flows' it seems to have started working again like a full deploy, probably only for one cycle. Next I am going to setup a daily inject on the input of Cron-Plus, I realise this is not needed by Cron-Plus but at this point I'll try anything.

At the end of the day this may well not be an issue with Cron-Plus at all, but as mentioned there is a problem between the Call Service nodes, the Cron-Plus node and something I am doing.

Plenty of other users have no issue with Cron-Plus, plenty of users have no issues with Call Service nodes, I have no issues with other Call Service nodes, so I have no idea what the hell is going on.

Try adding a flogger node to Cron+ node-red-contrib-flogger (node) - Node-RED
It will not only log Cron+ outputs, but also add a timestamp to each entry, so that you can clearly check that it's working.

1 Like

Thanks Paul! Flogger was suggested earlier so I've added it to Node-RED through the 'Manage Pallets' section, will it be any different from using a 'Write File' node? I've cleaned things up and have attached one Write File node on the outputs of the Cron-Plus node writing to one file, and another Write File node connected to the outputs of the Call Service nodes that are in turn connected to the Cron-Plus node, writing to another file.

I will capture data for 48 hours and compare the two files, I can also compare the output from the first 24 hours to the second 24 hours and see if there is any difference there.

The main advantage is that you can add a timestamp to each entry, so you can see the time that each entry is added, but it also enables log rotation and log file size limits, to prevent any race conditions completely filling up your disk space.

flogger

An example log to show timestamp added...

2022/04/24 14:03:20Z INFO [stat/sonoff2/POWER:msg.payload] OFF
2022/04/25 07:00:00Z INFO [stat/sonoff2/POWER:msg.payload] ON
2022/04/25 07:02:30Z INFO [stat/sonoff2/POWER:msg.payload] OFF
2022/04/25 11:00:00Z INFO [stat/sonoff2/POWER:msg.payload] ON
2022/04/25 11:04:40Z INFO [stat/sonoff2/POWER:msg.payload] OFF

1 Like

Okay so… I am confused… I have this currently setup, a Write node to log directly connected to the outputs I use on Cron-Plus and another Write node to log connected to the outputs of the Call Service nodes.

BOTH Write nodes stopped logging after the first cycle… The contents are also identical.

cron_plus_has_triggered.txt (5.4 KB)

cron_plus_has_triggered.txt (5.4 KB)

This is freaking weird. I need to see whether or not a normal debug node can still see the output from Cron-Plus because I swear previously it could but I had the debug node attached to ALL Cron-Plus outputs and maybe I was only seeing debug from outputs I wasn’t using on Cron-Plus?!

Are you are sure they are not the same file uploaded twice?
Shouldn't the second uploaded file be -
call_service_has_triggered.txt

trigg

Your logfile would be much clearer if you had used flogger (as I said above), but even so, it looks as though it triggered 5 times. What triggers are missing, should there be more data after the 1653393607139 timestamp?

For some reason the forum kept reference back to the first filename. Let me try adding the second one again....

Nope, as soon as it has finished uploading the 'call_service_has_triggered.txt' file it changes the name to 'cron_plus_has_triggered.txt'.

Does Discourse hash the uploaded files or something and if it finds an identical file it just references the previous one? Because I mean they are literally identical except for the name.

This time around I tied the Write node to only the outputs I was actually using on Cron Plus with Call Service nodes, instead of all the outputs from Cron Plus. On the Call Service nodes side, I have more than five Call Service nodes but multiples are tied to one output from Cron Plus, so to avoid duplicate messages from Call Service nodes connected to the same output of Cron Plus, I only attached the Write node to the Call Service nodes that have unique connections to Cron Plus, if that rambling makes sense at all, to mirror only five outputs from the available Call Service nodes to the Write node.

@Steve-Mcl indeed there seems to be something fishy with the Fan out setting of the cron+ node

i imported @LondonBenji 's flow and removed the Home Assistant nodes and added Debug nodes on each output just to test the functionality.

Left it to run for more than a day.
All messages produced by the node were, for some strange reason, from the same output labeled Solar Midnight
Messages were repeated the next day as expected .. so no problem there (but again from the wrong output)

Test Flow

[{"id":"92d2cde8.f09f58","type":"cronplus","z":"d32e4f05.9f1ee8","name":"Solar Events","outputField":"payload","timeZone":"America/North_Dakota/Center","persistDynamic":false,"commandResponseMsgOutput":"fanOut","outputs":16,"options":[{"name":"Night End - Astronomical Dawn","topic":"Night End - Astronomical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nightEnd"},{"name":"Nautical Dawn","topic":"Nautical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nauticalDawn"},{"name":"Civil Dawn - Golden Hour","topic":"Civil Dawn - Golden Hour","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"civilDawn"},{"name":"Sunrise","topic":"Sunrise","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunrise"},{"name":"Sunrise End","topic":"Sunrise End","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunriseEnd"},{"name":"Morning Golden Hour Ends","topic":"Morning Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"morningGoldenHourEnd"},{"name":"Solar Noon","topic":"Solar Noon","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"solarNoon"},{"name":"Evening Golden Hour Starts","topic":"Evening Golden Hour Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"eveningGoldenHourStart"},{"name":"Sunset Start","topic":"Sunset Start","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunsetStart"},{"name":"Sunset","topic":"Sunset","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"sunset"},{"name":"Civil Dusk - Golden Hour Ends","topic":"Civil Dusk - Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"civilDusk"},{"name":"Nautical Dusk","topic":"Nautical Dusk","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nauticalDusk"},{"name":"Astronomical Dusk - Night Starts","topic":"Astronomical Dusk - Night Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nightStart"},{"name":"Solar Midnight","topic":"Solar Midnight","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"32.769474 -96.855274","offset":"0","solarType":"selected","solarEvents":"nadir"}],"x":250,"y":380,"wires":[["a4c29122.0894"],["7a7d1cc4aac56694"],["1a69b7ff6153de40"],["751b5fb4d84dd483"],["6325c364644afbdd"],["a8f5c49f4cbffd46"],["6cf6ba4f07cd4e68"],["2a16e6df59bc5340"],["1d1164fc70863bb2"],["c25164dcc59602a9"],["3301ee2961166c6a"],["16fce241ec3fae30"],["8a31c2c15ad39dee"],["90a3959d5dc17d3b"],["5444c9f1507af42b"],["6962c282074fbbec"]]},{"id":"a4c29122.0894","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":60,"wires":[]},{"id":"7a7d1cc4aac56694","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":107.27272727272725,"wires":[]},{"id":"1a69b7ff6153de40","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":154.54545454545456,"wires":[]},{"id":"751b5fb4d84dd483","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":201.8181818181818,"wires":[]},{"id":"6325c364644afbdd","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":249.09090909090907,"wires":[]},{"id":"a8f5c49f4cbffd46","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":296.3636363636363,"wires":[]},{"id":"6cf6ba4f07cd4e68","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":343.63636363636357,"wires":[]},{"id":"2a16e6df59bc5340","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":390.9090909090908,"wires":[]},{"id":"1d1164fc70863bb2","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":438.181818181818,"wires":[]},{"id":"c25164dcc59602a9","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":485.45454545454527,"wires":[]},{"id":"3301ee2961166c6a","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":532.7272727272725,"wires":[]},{"id":"16fce241ec3fae30","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":580,"wires":[]},{"id":"8a31c2c15ad39dee","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":640,"wires":[]},{"id":"90a3959d5dc17d3b","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":687.2727272727273,"wires":[]},{"id":"5444c9f1507af42b","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":734.5454545454547,"wires":[]},{"id":"6962c282074fbbec","type":"debug","z":"d32e4f05.9f1ee8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":780,"wires":[]}]

node-red-contrib-cron-plus v1.5.6
node-red v3.0.0-beta.2
nodejs v16.14.0

1 Like

Oh. That's not good. I will have to fix that.

Thanks Andy & @LondonBenji for discovering it out. I'll sort it tomorrow.

1 Like