Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controller Versioning #5060

Open
thekameleon opened this issue Dec 16, 2024 · 21 comments
Open

Controller Versioning #5060

thekameleon opened this issue Dec 16, 2024 · 21 comments
Labels
Controllers Enhancement Unlikely To Be Implemented Either very rare use case or the overhead/complexity so great it is unlikely to be implemented.

Comments

@thekameleon
Copy link

Is your feature request related to a problem? Please describe.
I cannot tell which version of a controller configuration that a compiled sequence was used. So when uploading, to be safe, I must batch render all my sequences which can take hours. So if I had a version of the controller configuration in the sequence and when I open FPP Connect, I can see that I need to re-render any sequences that are not using the same version of controller configuration.

Describe the solution you'd like
Ability to see versions (a number) of controller configuration that are embedded into a rendered sequence in FPP Connect

Describe alternatives you've considered
Batch render every time I am going to upload

Additional context
This could come in handy on the FPP side. A configuration and the sequences associated with it could be staged on controllers and applied all at once. It would also allow FPP to not play sequences that are not sequenced with the current controller configuration.

@derwin12
Copy link
Collaborator

What would you consider a controller configuration version? You can literally change anything anywhere and that would need a batch render. I like this idea - just not sure how we could detect/show it..

@thekameleon
Copy link
Author

thekameleon commented Dec 16, 2024 via email

@cybercop23
Copy link
Collaborator

I can't see staging and having more that one.. that's way too unique.. however, one of the things we've been thinking for the new year, is an alert of sorts when xligths config vs the ctrls is differnet, similar with what you are saying. It will be relatively easier for FPP based to flag diff, not sure of the other ones.. but the idea is that it will "query" the ctrl for port & pixle config and comp with what xlights has and raise an aler that they don't match.

@computergeek1507
Copy link
Member

the idea thrown around before is to create a controller hash code whenever the auto start channel code is triggers, then set a flag when they are different. I think trying to controller firmwares to support some version number will be hard to impossible.

@thekameleon
Copy link
Author

thekameleon commented Dec 17, 2024 via email

@cybercop23
Copy link
Collaborator

Open-source... feel free to have at it.

@thekameleon
Copy link
Author

thekameleon commented Dec 17, 2024 via email

@thekameleon
Copy link
Author

thekameleon commented Dec 17, 2024 via email

@dkulp
Copy link
Member

dkulp commented Dec 17, 2024

I'm failing to see how FPP Connect needs to be involved at all. If the xlights_networks or xlights_rgbeffects files is newer (simple timestamp check) then the fseq file, then the sequence needs/should be re-rendered as something has changed. FPP Connect already checks the fseq file and only sends it to the remote if it has changed so that wouldn't need to change at all.

@derwin12
Copy link
Collaborator

Dan I tend to agree .. there is just way too much variation - save on the controller/layout tab always means there is a possibility of a channel breaking change.
Note there are a couple of tickets for this - including mine.
What about doing similar to xschedule where it says something like "12345 channels in fseq, 12350 expected"
fpp connect would know both sides of the equation and could flag that?

@dkulp
Copy link
Member

dkulp commented Dec 17, 2024

The default even for the xLights rendered sequence is supposed to be sparse. Thus, the "source" fseq file should only have the channels for the models that are actually included in the sequence. Thus, that check would be useless. If I only sequence my megatree in one sequence, then the ranges won't include the other props on the same controller anyway.

@cybercop23
Copy link
Collaborator

What about doing similar to xschedule where it says something like "12345 channels in fseq, 12350 expected"
fpp connect would know both sides of the equation and could flag that?

But that will be per sequence, no? I'm thinking more of a general/high level check, if FPP based.. what's its channels, if pushing outputs what are those channels compared with the ctrls config in xLights.

Yes, we'll send the "right" channels, but if the sequence wasn't rerenderd, it may not have them all.
We also know we get lots of false positives on the Save so both rgbeffects & ctrls may have newer timestamps but in actuallity nothing changed.

@derwin12
Copy link
Collaborator

I have not looked at the source .. but this is what I was referring to. I pulled in a fseq from a different showfolder.

    WARN: Playlist '<unnamed>' has step 'Hamster On A Piano - Parry Gripp' with FSEQ item Hamster On A Piano - Parry Gripp with 835916 channels when only 132740 channels are configured to be sent out.
    ERR: Playlist '<unnamed>' has step 'Aerosmith - Dream On 400s' with FSEQ item Aerosmith - Dream On 400s with 21280 channels when it should be 132740 channels.
    ERR: Playlist '<unnamed>' has step 'Aerosmith - Dream On 100s' with FSEQ item Aerosmith - Dream On 100s with 21280 channels when it should be 132740 channels.

@thekameleon
Copy link
Author

thekameleon commented Dec 17, 2024 via email

@thekameleon
Copy link
Author

I'm failing to see how FPP Connect needs to be involved at all. If the xlights_networks or xlights_rgbeffects files is newer (simple timestamp check) then the fseq file, then the sequence needs/should be re-rendered as something has changed. FPP Connect already checks the fseq file and only sends it to the remote if it has changed so that wouldn't need to change at all.

I am thinking long term of being able to rollback changes. Say (and this has happened to me) that someone goofs up a configuration and the sequence just looks wrong. it would be great to rollback to a good known state of sequences and ctrl config to keep the show going. As opposed to triaging and hoping you get everything back together in time.

I suppose the a timestamp could work, just wouldn't really help if I needed to quickly restore a previous configuration, and the sequences that went with it.

@cybercop23
Copy link
Collaborator

File - Restore Backup

@thekameleon
Copy link
Author

thekameleon commented Dec 20, 2024 via email

@cybercop23
Copy link
Collaborator

Batch Render.. fseq are very large and you don't want to save them.

@thekameleon
Copy link
Author

thekameleon commented Dec 20, 2024 via email

@cybercop23
Copy link
Collaborator

Everytime you save a sequence it will be a version. So 2-5 will be like the last 6-20 min. Still.... batch render.

@thekameleon
Copy link
Author

thekameleon commented Dec 20, 2024 via email

@cybercop23 cybercop23 added Unlikely To Be Implemented Either very rare use case or the overhead/complexity so great it is unlikely to be implemented. Controllers labels Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Controllers Enhancement Unlikely To Be Implemented Either very rare use case or the overhead/complexity so great it is unlikely to be implemented.
Projects
None yet
Development

No branches or pull requests

5 participants