Add a custom trigger event that isn't also defined as a condition
Is this a feature relevant to companion itself, and not a module?
- [x] I believe this to be a feature for companion, not a module
Is there an existing issue for this?
- [x] I have searched the existing issues
Describe the feature
I'm not a big fan of having multiple triggers for identical actions.
It adds complexity if something needs to be edited or changed. It also makes the triggers list harder to parse by not only adding multiple entries to it, but multiple entries with nearly identical descriptions.
The "if" logic branching helps a fair bit with that, but what would help even more is the ability to add a trigger event based on the existing condition list without also requiring that event be a condition.
Usecases
Say you want, as I do, a trigger that fires when a variable changes to any value and when a button goes from step 2 to step 1.
You can set it as:
Events: On variable change On condition becoming true
Condition: Button: Check Step
That'll fire when the variable changes or when the button goes to step 1, but it will only fire when the button is on step 1, because it's a condition.
If you want it to fire whenever the variable changes (regardless of which step the button is on) or whenever the button goes to step 1, you need 2 triggers.
Events: On variable change
Condition: None
and
Events: On condition becoming true
Condition: Button: Check Step (1)
And the more things you want to cause that trigger to fire, the more triggers you'd need to add.
This adds complexity and clutter to the trigger list.
Allowing the existing feedback/conditions list to be used for custom trigger events without requiring they also be conditions on the trigger would allow for a much greater flexibility with a lot less duplication and visual clutter.
Yes, the way how conditions serve a double purpose as a condition and as event has its limitations.
By the time the triggers have been made it was an easy way to give more flexibility to the event part without having to invent a new UI, but it always felt a little weird.
Now we have entities available. So it should not be a big problem to make a real event "on condition becoming true/false/change" and then you specify your logic inside.