The tricky part of sunrise and sunset, is they change 'at midnight'.
So if you are trying to get a future one, if it has not happened yet today, you get a future one, otherwise you have the past one, which webcore could push ahead by 24 hours, which is not exactly right.
So what to do?
if you schedule these (sunrise or sunsets) at a top level (not indented level) of a piston, you could add at the end of your piston
if time happens daily at 3:00:00 AM
then (nothing listed)
ie all you are doing is forcing the piston to run at 3:00, where it will use today's values for sunrise, sunset for future runs (so always accurate).
You could have chosen 12:01:00 AM, or 12:30, etc. You may not want to use 1 or 2 AM due to daylight savings times adjustments, but likely even those work.
Here is an example of my use (my mode controller)