Skip to content

Conversation

@agent462
Copy link
Contributor

I worked with a user on Facebook why their scheduler was never starting. After some debugging and back and forth they would have a manual playlist running and the scheduled playlist would just dump log entries over and over (after turning on higher level logging):

2025-12-30T18:02:01.007887-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:55.009 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T18:02:01.007923-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:55.009 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 18:00:00 2025: 10 'Start Playlist' - '"Christmas Music Show - All Ages - 2025" "true" "false" '
2025-12-30T18:02:01.007964-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:56.008 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T18:02:01.008010-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:56.008 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 18:00:00 2025: 10 'Start Playlist' - '"Christmas Music Show - All Ages - 2025" "true" "false" '
2025-12-30T18:02:01.008046-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:57.008 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T18:02:01.008090-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:57.008 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 18:00:00 2025: 10 'Start Playlist' - '"Christmas Music Show - All Ages - 2025" "true" "false" '
2025-12-30T18:02:01.008126-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:58.007 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T18:02:01.008162-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:58.007 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 18:00:00 2025: 10 'Start Playlist' - '"Christmas Music Show - All Ages - 2025" "true" "false" '
2025-12-30T18:02:01.008194-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:59.007 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T18:02:01.008232-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:01:59.007 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 18:00:00 2025: 10 'Start Playlist' - '"Christmas Music Show - All Ages - 2025" "true" "false" '
2025-12-30T18:02:01.008269-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:02:00.007 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T18:02:01.008301-05:00 FPP-BareMetal-Primary fppd[1423]: 2025-12-30 18:02:00.007 (1423) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 18:00:00 2025: 10 'Start Playlist' - '"Christmas Music Show - All Ages - 2025" "true" "false" '

Root Cause

Commit 7dc7962 added priority checking but used a value that would make manual playlists always take precedence over scheduled playlists.

Manual playlists were set to -1 while scheduled playlists use entry index (0-99). Since -1 is lower (higher priority), scheduled playlists could never take priority over manual ones.

I have set the default value to an artifically high level to overcome. I have also added some debug logging to make what is happening more clear in logs.

To replicate on Master

  • Turn on Schedule Logging to Excessive
  • Start a Manual Playlist
  • Schedule a Playlist to start
  • Schedule playlist will never start until Manual Playlist completes
  • You will see logging like the users above

After Fix

  • Turn on Schedule Logging to Excessive
  • Start a Manual Playlist
  • Schedule a Playlist to start
  • Scheduled playlist will take over immediately on scheduled time.
  • You will see logging like below
2025-12-30T19:06:10.388636-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:56.006 (15420) [Command] /opt/fpp/src/commands/Commands.cpp:537: No preset found for name "PLAYLIST_START_TMINUS_004"
2025-12-30T19:06:10.388663-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:56.006 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 19:03:00 2025:  0 'Start Playlist' - '"test" "true" "false" '
2025-12-30T19:06:10.388690-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:57.110 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:452: Scheduled Item running in 3 seconds:
2025-12-30T19:06:10.388716-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:57.110 (15420) [Command] /opt/fpp/src/commands/Commands.cpp:537: No preset found for name "PLAYLIST_START_TMINUS_003"
2025-12-30T19:06:10.388745-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:57.110 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 19:03:00 2025:  0 'Start Playlist' - '"test" "true" "false" '
2025-12-30T19:06:10.388771-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:58.009 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:452: Scheduled Item running in 2 seconds:
2025-12-30T19:06:10.388796-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:58.009 (15420) [Command] /opt/fpp/src/commands/Commands.cpp:537: No preset found for name "PLAYLIST_START_TMINUS_002"
2025-12-30T19:06:10.388821-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:58.009 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 19:03:00 2025:  0 'Start Playlist' - '"test" "true" "false" '
2025-12-30T19:06:10.388869-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:59.011 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:452: Scheduled Item running in 1 second:
2025-12-30T19:06:10.388895-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:59.011 (15420) [Command] /opt/fpp/src/commands/Commands.cpp:537: No preset found for name "PLAYLIST_START_TMINUS_001"
2025-12-30T19:06:10.388921-06:00 FPP-test fppd[15420]: 2025-12-30 19:02:59.011 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 19:03:00 2025:  0 'Start Playlist' - '"test" "true" "false" '
2025-12-30T19:06:10.388946-06:00 FPP-test fppd[15420]: 2025-12-30 19:03:00.012 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:489: Checking scheduled 'Start Playlist'
2025-12-30T19:06:10.388979-06:00 FPP-test fppd[15420]: 2025-12-30 19:03:00.012 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 19:03:00 2025:  0 'Start Playlist' - '"test" "true" "false" '
2025-12-30T19:06:10.389005-06:00 FPP-test fppd[15420]: 2025-12-30 19:03:00.012 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:529: Stopping manual playlist (priority 1000000) for scheduled item (priority 0)
2025-12-30T19:06:10.389030-06:00 FPP-test fppd[15420]: 2025-12-30 19:03:00.208 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:586: Starting Scheduled Playlist:
2025-12-30T19:06:10.389058-06:00 FPP-test fppd[15420]: 2025-12-30 19:03:00.208 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:421: Tue Dec 30 19:03:00 2025:  0 'Start Playlist' - '"test" "true" "false" '
2025-12-30T19:06:10.389109-06:00 FPP-test fppd[15420]: 2025-12-30 19:05:00.008 (15420) [Schedule] /opt/fpp/src/Scheduler.cpp:452: Scheduled Items running in 17700 seconds:

…ually started playlists because manual playlists always had a lower (higher priority) value
@agent462
Copy link
Contributor Author

Closing until I understand what Remote Falcon does. Will do further testing.

@agent462 agent462 closed this Dec 31, 2025
@agent462
Copy link
Contributor Author

OK, I tested Remote Falcon and it works as expected with this change.

@agent462 agent462 reopened this Dec 31, 2025
@OnlineDynamic
Copy link
Collaborator

I'm not sure this is the behaviour we want though - think the idea was that manually triggered playlist would take preference over scheduled

@agent462
Copy link
Contributor Author

agent462 commented Jan 1, 2026

I assumed based on the comments in the code that were already there that scheduled should take priority over manual. I think users sometimes start manual things and then expect their schedule to take over; the user I worked with on FB did and they said that's how it worked in the past and was a major frustration considering the change in Nov.

In the current scenario, how would a scheduled playlist ever start when a manual one is ran and maybe accidentally put on repeat?

@kevinsaucier
Copy link

So, I'm the user here. My pre show playlist gets kicked off via MQTT or REST so it can be played from a few minutes past sunset until my show starts via the schedule. This has worked as expected for years and even seems to work occasionally on v9.x, though I'm not sure how that would be. Why would it have changed?

Seems like some sort of No Override option would be a better solution than a hard coded 'run forever'.

@cybercop23
Copy link
Contributor

it can be played from a few minutes past sunset

Why not just let the scheduler do that and there's no issues then?
image

@kevinsaucier
Copy link

Its not as simple as a schedule. I have a number of things being down prior to the manual playlist starting (power ups, pings, lights, etc) so I don't want it to just kick off arbitrarily.

I think the bigger question is why a breaking change was introduced when it's been working for years. Was this in response to some issue? Shouldn't a change like this have been set up as an option?

@agent462
Copy link
Contributor Author

agent462 commented Jan 1, 2026

Even using the scheduler for that, I think there is a gap in logic here to make sure people know what's happening. Maybe there should be a global option in scheduler that is something to the effect of "Schedules will start over manually started playlists". The scheduler has the whole concept of priority but manual sort of blows that away.

The additional logging would also be helpful.

@OnlineDynamic
Copy link
Collaborator

Not at my machine tonight but pretty sure I made the default priority -1 on starting playlists but the function allows you to pass a higher priority so you can force a playlist to be highrer than the scheduled ones if required, will look properly tomorrow to see if its just a case of exposing the priority setting in the api calls

@OnlineDynamic
Copy link
Collaborator

Have had a chat with the other dev's on this and implemented a new approach with brings back the old behaviour but now allows a new set of settings to enable the user to let manually started items be protected from the scheduler messing them up - works both from the UI and api/mqtt etc.. also added UI warnings if a scheduled item is skipped due to this setting - please test out and confirm you have the behaviour you want and we will close this PR as superseeded by the new functionality

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants