Cron-plus can't start a paused schedule again

Not wanting to make things more complicated, I just noticed these COMMANDS you can send the cron-plus node.

Import these and send them into the node and see what you are told/given.
(with a DEBUG on the last output of the `cron-plus- node.

[{"id":"7d1205182bc5af95","type":"inject","z":"613df62afc8a16bf","name":"Get list of schedules","props":[{"p":"payload","v":"","vt":"date"},{"p":"topic","v":"list-all","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"list-all","payload":"","payloadType":"date","x":2670,"y":590,"wires":[["c01b03c7715b3b2c"]]},{"id":"365b253e23606bc9","type":"inject","z":"613df62afc8a16bf","name":"export all dynamic schedules","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"export-all-dynamic\"}","payloadType":"json","x":2640,"y":670,"wires":[["c01b03c7715b3b2c"]]},{"id":"5a3f6b4a01dc48b5","type":"inject","z":"613df62afc8a16bf","name":"describe array of expressions","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"command\":\"describe\",\"expression\":\"0 0 2 29 FEB * 2020-2040\"},{\"command\":\"describe\",\"expression\":\"4 */7 * * * 1-4 *\"},{\"command\":\"describe\",\"expression\":\"0/20 * * * * MON *\"}]","payloadType":"json","x":2640,"y":630,"wires":[["c01b03c7715b3b2c"]]}]
1 Like

If it makes you feel any better, I had missed the ones in the link nodes too.

2 Likes

Yes the array counts from 0, for a total of 16 schedules, but when looking at the actual config exported from my cron-plus node, there were only 15 location entries, I haven't looked at what the discrepancy might be yet.

Indeed, this is how I am pulling the info from cron-plus when I'm doing it manually, injecting the commands, albeit perhaps in the wrong format/syntax, but they work.... except for start-all.... and that's not even all the time seemingly.

Note that the nodes you provided are for dynamic schedules and all mine are static schedules, even though they dynamically change with the solar patterns, they're still classed as static schedules.

Just noticed Steve has been cooking!

Don't know if it's related though, I shall wait and see what Steve has in store :slight_smile:

Any updates?

Anxiously waiting. :wink:

1 Like

Hahaha I know it! But Steve is a busy guy and the last time I had an issue with cron-plus, it took someone else to help find what was happening, which in turn enabled Steve to track it down properly and fix it, rather than my insane ramblings on here.

At the end of the day, it might not be anything to do with cron-plus, but something weird about my system as well.

Not sure if you know, but Steve originally wrote the cron-plus node!

Hang on a minute lads…. I’ve got a great idea….

Breaking it down into smaller bits to see which one is the problem?

Sounds like a good idea to me.

Right…. after some loooong messing around, experimenting with syntax, here’s the tl;dr first:

  • If you’re going to run the ā€˜start-all’ command in msg.payload, it HAS to be set JSON and {"command":"start-all"}
  • If you’re going to run the ā€˜start-all’ command in msg.topic, it HAS to be set to string and start-all
  • You CANNOT put start-all as a string in msg.payload
  • Conversely you CANNOT put {"command":"start-all"} as JSON in msg.topic

And after some messing around getting weird results, running ā€˜start-all’ at different times, I think I have a theory, which I am testing out next, the tl;dr of that is, you cannot resume a static schedule that has already been run that day!

I was trying to reset/resume/start-all AFTER the relevant schedules had already been passed through, and possibly more importantly, within the rest of the schedules that will run for this time around (not necessarily the ā€œsame dayā€, because ones like ā€˜Solar Midnight’, can actually come AFTER 12am the next day).

So now that I’ve cleared of my own confusion of what the syntax, format, and where to place the command should be, what I am going to try next is, connect my ā€˜Resume Schedules’ node that changes msg.payload to JSON {"command":"start-all"}, on one of the FIRST of the schedules like ā€˜Sunrise’ and see if it will work then.

@Steve-Mcl thoughts on this?

If it doesn’t work sending the ā€˜start-all’ command with one of the morning schedules, it does seem like there’s a bug that’s not allowing static schedules to be resumed, after they have already been passed through chronologically in the list of static schedules.

EDIT: Adding pic for clarity of where I have moved my ā€˜Resume Schedule’ node to.

Hey, good to hear what you discovered.

(Quickie though: what's tl;dr ?)

ā€œToo long, didn’t readā€ usually you write that to give a quick ā€œshort versionā€ and then also a long version, but as usual I waffled, and made it long anyway :smiley:

All good.

But hey, well done.

It will be interesting to see any further developments.

If you can't resume a schedule if it has already happened today: as you said, put one in .......
Well, you see to have it nutted out.

But I'm seeing a problem is if that one has occurred for that day and you paused it AFTER time time, how can you guarantee it will get restarted the next day?

My theory is (and I have no idea if this is true or not, I could be completely wrong), cron-plus is calculating all of the configured solar schedules once per schedule rotation (note, not per day, as again, some of the solar schedules in a rotation can occur the next day as well).

Once calculated for that rotation, you can resume a paused static schedule before it occurs, but once the pre-calculated time for that static schedule in the current rotation has occurred (paused or not), you cannot activate it back into the rotation.

So my thinking here is, if my theory is correct, let the rotation end, cron-plus re-calculates the new times for all of the static schedules for the next rotation, and then I resume them then.

That being said, thinking about it, I may have already tried to manually resume them the next day myself anyway, and it didn’t work, so I don’t know, I’ll give it a try anyway, and wait and see what Steve thinks.

Alright, that didn’t work however, one thing has become repeatable and would seem to be a bug @Steve-Mcl

Once a paused schedule’s time slot has been passed, it will no long respond to a ā€˜start-all’ command, nor a ā€˜start’ command referencing the specific schedules that have been paused, in the same way I would reference them to pause them in the first place.

So far example:

I can resume whichever schedule(s) have been paused immediately after they were paused, but before they occur (after the red line).

But once those schedules occur/have been passed in time (pink and blue points), regardless of whether or not they are currently paused or not, they cannot be resumed in any way shape or form, without resetting the cron-plus node.

What is the expected behaviour here?

Can you make a reproducible version of this so I can import and debug? Please do not include any HA nodes. Also, please include stepwise instructions on what/when to do things in order to hit the situation.

I very much appreciate your extended efforts to pin this down.

1 Like

Appreciate the help Steve!

While prepping the copy, and adjusting it so I don’t give you my EXACT co-ordinates, I realised I had the location set to ā€œFixed Locationā€ instead of ā€œLocation Per Scheduleā€, and it got me wondering, is it still storing the location per schedule anyway, and perhaps it hasn’t replicated the location for the new schedules I recently added.

Indeed, when I switched it from ā€œFixed Locationā€ to ā€œLocation Per Scheduleā€, look what I found:

Now there were only two like this, and I’d added a total of three new schedules, but maybe I switched to ā€œFixed Locationā€ mid way through adding?

Anyway, before I send you a copy Steve, I’m going to manually add the location to these two schedules and see if that helps things.

1 Like

Okay, that wasn’t it, and just made things even weirder in some ways. Here’s the isolated template:

[{"id":"83377da89619ca30","type":"cronplus","z":"daa1cc1b72cd1734","name":"Solar Events","outputField":"payload","timeZone":"","storeName":"","commandResponseMsgOutput":"fanOut","defaultLocation":"55.884532, -3.265735","defaultLocationType":"fixed","outputs":18,"options":[{"name":"Night End - Astronomical Dawn","topic":"Night End - Astronomical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"nightEnd"},{"name":"Nautical Dawn","topic":"Nautical Dawn","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"nauticalDawn"},{"name":"Civil Dawn - Golden Hour","topic":"Civil Dawn - Golden Hour","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"civilDawn"},{"name":"Sunrise","topic":"Sunrise","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"sunrise"},{"name":"Sunrise End","topic":"Sunrise End","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"sunriseEnd"},{"name":"Morning Golden Hour Ends","topic":"Morning Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"morningGoldenHourEnd"},{"name":"Solar Noon","topic":"Solar Noon","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"-60","solarType":"selected","solarEvents":"solarNoon"},{"name":"Check EGH","topic":"Check EGH","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"-30","solarType":"selected","solarEvents":"eveningGoldenHourStart"},{"name":"Evening Golden Hour Starts","topic":"Evening Golden Hour Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"eveningGoldenHourStart"},{"name":"Sunset Start","topic":"Sunset Start","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"sunsetStart"},{"name":"Sunset","topic":"Sunset","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"sunset"},{"name":"Early GHE","topic":"Early GHE","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"-15","solarType":"selected","solarEvents":"civilDusk"},{"name":"Civil Dusk - Golden Hour Ends","topic":"Civil Dusk - Golden Hour Ends","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"-5","solarType":"selected","solarEvents":"civilDusk"},{"name":"Nautical Dusk","topic":"Nautical Dusk","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"nauticalDusk"},{"name":"Astronomical Dusk - Night Starts","topic":"Astronomical Dusk - Night Starts","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"nightStart"},{"name":"Solar Midnight","topic":"Solar Midnight","payloadType":"default","payload":"","expressionType":"solar","expression":"0 * * * * * *","location":"55.884532, -3.265735","offset":"0","solarType":"selected","solarEvents":"nadir"}],"x":410,"y":380,"wires":[[],[],[],[],["5c1a25a6df4c4baf"],[],[],[],[],[],["06afb7865653d919"],[],[],[],[],["0ed91870ed533024"],[],["e9a276684548e0b9"]]},{"id":"5c1a25a6df4c4baf","type":"change","z":"daa1cc1b72cd1734","name":"Pause Late Schedules","rules":[{"t":"set","p":"payload","pt":"msg","to":"[{\"command\":\"pause\",\"name\":\"Evening Golden Hour Starts\"},{\"command\":\"pause\",\"name\":\"Civil Dusk - Golden Hour Ends\"}]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":760,"y":320,"wires":[["f08bb57fd9ec54a8"]]},{"id":"06afb7865653d919","type":"change","z":"daa1cc1b72cd1734","name":"Pause Early Schedules","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\":\"pause\",\"name\":\"Early GHE\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":760,"y":400,"wires":[["f08bb57fd9ec54a8"]]},{"id":"f08bb57fd9ec54a8","type":"link out","z":"daa1cc1b72cd1734","name":"link out 3","mode":"link","links":["e90d4488386de958"],"x":895,"y":360,"wires":[]},{"id":"e90d4488386de958","type":"link in","z":"daa1cc1b72cd1734","name":"link in 2","links":["bab5574a50b1fb39","f08bb57fd9ec54a8"],"x":305,"y":440,"wires":[["83377da89619ca30"]]},{"id":"0ed91870ed533024","type":"change","z":"daa1cc1b72cd1734","name":"Resume Schedules","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\":\"start-all\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":750,"y":460,"wires":[["bab5574a50b1fb39"]]},{"id":"bab5574a50b1fb39","type":"link out","z":"daa1cc1b72cd1734","name":"link out 4","mode":"link","links":["e90d4488386de958"],"x":875,"y":460,"wires":[]},{"id":"10643f04ed8460b1","type":"inject","z":"daa1cc1b72cd1734","name":"Start-All","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"start-all","payload":"","payloadType":"date","x":220,"y":360,"wires":[["83377da89619ca30"]]},{"id":"ddc8b3fbee7fe6f3","type":"inject","z":"daa1cc1b72cd1734","name":"List-Inactive","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"list-inactive\"}","payloadType":"json","x":230,"y":320,"wires":[["83377da89619ca30"]]},{"id":"e9a276684548e0b9","type":"debug","z":"daa1cc1b72cd1734","name":"debug 2","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":560,"wires":[]},{"id":"09bbdf7fc3173611","type":"inject","z":"daa1cc1b72cd1734","name":"List-all","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"command\":\"list-all\"}","payloadType":"json","x":210,"y":400,"wires":[["83377da89619ca30"]]}]

Hopefully that works @Steve-Mcl, I made it without the HA nodes, so ultimately without the check (I guess I could have added some random logic to choose either the early or late schedules), it will ultimately suspend all three of them.

Checking it the next day, the resume ā€˜start-all’ node to automatically start them again didn’t do its thing, and running a manual ā€˜list-inactive’ showed the three paused schedules:

{"_msgid":"5cfe5acf1354df09","payload":{"command":{"command":"list-inactive"},"result":[{"config":{"topic":"Early GHE","name":"Early GHE","index":11,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDusk","location":"55.884532, -3.265735","offset":"-15","isDynamic":false,"modified":false,"isRunning":false,"count":0},"status":{"type":"static","modified":false,"isRunning":false,"count":0,"limit":0,"nextDescription":"civilDusk in 5 hours 30 minutes 45 seconds","nextDate":"2025-08-12T20:28:10.172Z","nextDateTZ":"Aug 12, 2025, 16:28:10 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T14:57:24.733Z","serverTimeZone":"America/New_York","description":"Solar Events: 'civilDusk'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T20:43:10.172Z","timeOffset":"2025-08-12T20:28:10.172Z"}]}},{"config":{"topic":"Evening Golden Hour Starts","name":"Evening Golden Hour Starts","index":8,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"eveningGoldenHourStart","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":false,"count":1},"status":{"type":"static","modified":false,"isRunning":false,"count":1,"limit":0,"nextDescription":"eveningGoldenHourStart in 4 hours 8 minutes 25 seconds","nextDate":"2025-08-12T19:05:50.531Z","nextDateTZ":"Aug 12, 2025, 15:05:50 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T14:57:24.734Z","serverTimeZone":"America/New_York","description":"Solar Events: 'eveningGoldenHourStart'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T19:05:50.531Z","timeOffset":"2025-08-12T19:05:50.531Z"}]}},{"config":{"topic":"Civil Dusk - Golden Hour Ends","name":"Civil Dusk - Golden Hour Ends","index":12,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDusk","location":"55.884532, -3.265735","offset":"-5","isDynamic":false,"modified":true,"isRunning":false,"count":1},"status":{"type":"static","modified":false,"isRunning":false,"count":1,"limit":0,"nextDescription":"civilDusk in 5 hours 40 minutes 45 seconds","nextDate":"2025-08-12T20:38:10.172Z","nextDateTZ":"Aug 12, 2025, 16:38:10 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T14:57:24.735Z","serverTimeZone":"America/New_York","description":"Solar Events: 'civilDusk'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T20:43:10.172Z","timeOffset":"2025-08-12T20:38:10.172Z"}]}}]}}

Even more confusingly, manually injecting a ā€˜start-all’ actually managed to restart the schedules, but only two of the three, wtf:

{"_msgid":"7d7894d69ab5c756","payload":{"command":{"command":"list-inactive"},"result":[{"config":{"topic":"Early GHE","name":"Early GHE","index":11,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDusk","location":"55.884532, -3.265735","offset":"-15","isDynamic":false,"modified":false,"isRunning":false,"count":0},"status":{"type":"static","modified":false,"isRunning":false,"count":0,"limit":0,"nextDescription":"civilDusk in 5 hours 30 minutes 3 seconds","nextDate":"2025-08-12T20:28:10.172Z","nextDateTZ":"Aug 12, 2025, 16:28:10 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T14:58:06.272Z","serverTimeZone":"America/New_York","description":"Solar Events: 'civilDusk'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T20:43:10.172Z","timeOffset":"2025-08-12T20:28:10.172Z"}]}}]}}

So I am so confused…..

And for reference, here’s a ā€˜list-all’:

{"_msgid":"c90251b84ae9f41b","payload":{"command":{"command":"list-all"},"result":[{"config":{"topic":"Check EGH","name":"Check EGH","index":7,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"eveningGoldenHourStart","location":"55.884532, -3.265735","offset":"-30","isDynamic":false,"modified":false,"isRunning":true,"count":0},"status":{"type":"static","modified":false,"isRunning":true,"count":0,"limit":0,"nextDescription":"eveningGoldenHourStart in 3 hours 16 minutes 31 seconds","nextDate":"2025-08-12T18:35:50.531Z","nextDateTZ":"Aug 12, 2025, 14:35:50 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.695Z","serverTimeZone":"America/New_York","description":"Solar Events: 'eveningGoldenHourStart'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T19:05:50.531Z","timeOffset":"2025-08-12T18:35:50.531Z"}]}},{"config":{"topic":"Early GHE","name":"Early GHE","index":11,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDusk","location":"55.884532, -3.265735","offset":"-15","isDynamic":false,"modified":false,"isRunning":false,"count":0},"status":{"type":"static","modified":false,"isRunning":false,"count":0,"limit":0,"nextDescription":"civilDusk in 5 hours 8 minutes 51 seconds","nextDate":"2025-08-12T20:28:10.172Z","nextDateTZ":"Aug 12, 2025, 16:28:10 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.696Z","serverTimeZone":"America/New_York","description":"Solar Events: 'civilDusk'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T20:43:10.172Z","timeOffset":"2025-08-12T20:28:10.172Z"}]}},{"config":{"topic":"Evening Golden Hour Starts","name":"Evening Golden Hour Starts","index":8,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"eveningGoldenHourStart","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"eveningGoldenHourStart in 3 hours 46 minutes 31 seconds","nextDate":"2025-08-12T19:05:50.531Z","nextDateTZ":"Aug 12, 2025, 15:05:50 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.696Z","serverTimeZone":"America/New_York","description":"Solar Events: 'eveningGoldenHourStart'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T19:05:50.531Z","timeOffset":"2025-08-12T19:05:50.531Z"}]}},{"config":{"topic":"Sunset Start","name":"Sunset Start","index":9,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunsetStart","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunsetStart in 4 hours 35 minutes 20 seconds","nextDate":"2025-08-12T19:54:39.594Z","nextDateTZ":"Aug 12, 2025, 15:54:39 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.697Z","serverTimeZone":"America/New_York","description":"Solar Events: 'sunsetStart'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T19:54:39.594Z","timeOffset":"2025-08-12T19:54:39.594Z"}]}},{"config":{"topic":"Sunset","name":"Sunset","index":10,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunset","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunset in 4 hours 39 minutes 39 seconds","nextDate":"2025-08-12T19:58:58.652Z","nextDateTZ":"Aug 12, 2025, 15:58:58 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.697Z","serverTimeZone":"America/New_York","description":"Solar Events: 'sunset'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T19:58:58.652Z","timeOffset":"2025-08-12T19:58:58.652Z"}]}},{"config":{"topic":"Civil Dusk - Golden Hour Ends","name":"Civil Dusk - Golden Hour Ends","index":12,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDusk","location":"55.884532, -3.265735","offset":"-5","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"civilDusk in 5 hours 18 minutes 51 seconds","nextDate":"2025-08-12T20:38:10.172Z","nextDateTZ":"Aug 12, 2025, 16:38:10 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.698Z","serverTimeZone":"America/New_York","description":"Solar Events: 'civilDusk'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T20:43:10.172Z","timeOffset":"2025-08-12T20:38:10.172Z"}]}},{"config":{"topic":"Nautical Dusk","name":"Nautical Dusk","index":13,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nauticalDusk","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nauticalDusk in 6 hours 24 minutes 16 seconds","nextDate":"2025-08-12T21:43:35.649Z","nextDateTZ":"Aug 12, 2025, 17:43:35 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.698Z","serverTimeZone":"America/New_York","description":"Solar Events: 'nauticalDusk'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T21:43:35.649Z","timeOffset":"2025-08-12T21:43:35.649Z"}]}},{"config":{"topic":"Astronomical Dusk - Night Starts","name":"Astronomical Dusk - Night Starts","index":14,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nightStart","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nightStart in 7 hours 58 minutes 30 seconds","nextDate":"2025-08-12T23:17:48.994Z","nextDateTZ":"Aug 12, 2025, 19:17:48 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.699Z","serverTimeZone":"America/New_York","description":"Solar Events: 'nightStart'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-12T23:17:48.994Z","timeOffset":"2025-08-12T23:17:48.994Z"}]}},{"config":{"topic":"Solar Midnight","name":"Solar Midnight","index":15,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nadir","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nadir in 9 hours 10 seconds","nextDate":"2025-08-13T00:19:29.140Z","nextDateTZ":"Aug 12, 2025, 20:19:29 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.699Z","serverTimeZone":"America/New_York","description":"Solar Events: 'nadir'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T00:19:29.140Z","timeOffset":"2025-08-13T00:19:29.140Z"}]}},{"config":{"topic":"Night End - Astronomical Dawn","name":"Night End - Astronomical Dawn","index":0,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nightEnd","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nightEnd in 10 hours 9 minutes 7 seconds","nextDate":"2025-08-13T01:28:26.283Z","nextDateTZ":"Aug 12, 2025, 21:28:26 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.699Z","serverTimeZone":"America/New_York","description":"Solar Events: 'nightEnd'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T01:28:26.283Z","timeOffset":"2025-08-13T01:28:26.283Z"}]}},{"config":{"topic":"Nautical Dawn","name":"Nautical Dawn","index":1,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"nauticalDawn","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"nauticalDawn in 11 hours 39 minutes 6 seconds","nextDate":"2025-08-13T02:58:25.474Z","nextDateTZ":"Aug 12, 2025, 22:58:25 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.700Z","serverTimeZone":"America/New_York","description":"Solar Events: 'nauticalDawn'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T02:58:25.474Z","timeOffset":"2025-08-13T02:58:25.474Z"}]}},{"config":{"topic":"Civil Dawn - Golden Hour","name":"Civil Dawn - Golden Hour","index":2,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"civilDawn","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"civilDawn in 12 hours 38 minutes 45 seconds","nextDate":"2025-08-13T03:58:04.159Z","nextDateTZ":"Aug 12, 2025, 23:58:04 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.701Z","serverTimeZone":"America/New_York","description":"Solar Events: 'civilDawn'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T03:58:04.159Z","timeOffset":"2025-08-13T03:58:04.159Z"}]}},{"config":{"topic":"Sunrise","name":"Sunrise","index":3,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunrise","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunrise in 13 hours 22 minutes 38 seconds","nextDate":"2025-08-13T04:41:56.746Z","nextDateTZ":"Aug 13, 2025, 00:41:56 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.701Z","serverTimeZone":"America/New_York","description":"Solar Events: 'sunrise'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T04:41:56.746Z","timeOffset":"2025-08-13T04:41:56.746Z"}]}},{"config":{"topic":"Sunrise End","name":"Sunrise End","index":4,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"sunriseEnd","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"sunriseEnd in 13 hours 26 minutes 55 seconds","nextDate":"2025-08-13T04:46:14.385Z","nextDateTZ":"Aug 13, 2025, 00:46:14 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.702Z","serverTimeZone":"America/New_York","description":"Solar Events: 'sunriseEnd'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T04:46:14.385Z","timeOffset":"2025-08-13T04:46:14.385Z"}]}},{"config":{"topic":"Morning Golden Hour Ends","name":"Morning Golden Hour Ends","index":5,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"morningGoldenHourEnd","location":"55.884532, -3.265735","offset":"0","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"morningGoldenHourEnd in 14 hours 15 minutes 32 seconds","nextDate":"2025-08-13T05:34:51.351Z","nextDateTZ":"Aug 13, 2025, 01:34:51 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.702Z","serverTimeZone":"America/New_York","description":"Solar Events: 'morningGoldenHourEnd'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T05:34:51.351Z","timeOffset":"2025-08-13T05:34:51.351Z"}]}},{"config":{"topic":"Solar Noon","name":"Solar Noon","index":6,"payloadType":"default","payload":"","limit":null,"expressionType":"solar","solarType":"selected","solarEvents":"solarNoon","location":"55.884532, -3.265735","offset":"-60","isDynamic":false,"modified":true,"isRunning":true,"count":1},"status":{"type":"static","modified":false,"isRunning":true,"count":1,"limit":0,"nextDescription":"solarNoon in 20 hours","nextDate":"2025-08-13T11:19:19.429Z","nextDateTZ":"Aug 13, 2025, 07:19:19 EDT","timeZone":"America/New_York","serverTime":"2025-08-12T15:19:18.702Z","serverTimeZone":"America/New_York","description":"Solar Events: 'solarNoon'","solarState":{"state":"Day","direction":"fall","day":true,"night":false,"astrologicalTwilight":false,"nauticalTwilight":false,"civilTwilight":false,"goldenHour":false,"twilight":false,"morningTwilight":false,"eveningTwilight":false,"dawn":false,"dusk":false,"morningGoldenHour":false,"eveningGoldenHour":false},"solarStateOffset":{"state":"Day","direction":"fall","day":true,"night":false,"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":"2025-08-13T12:19:19.429Z","timeOffset":"2025-08-13T11:19:19.429Z"}]}}]}}