-
-
Notifications
You must be signed in to change notification settings - Fork 564
More types of triggers #3662
Description
Similar to the new expression variables page, I think that some new types of triggers should be added to create some specialisation of different event sources.
Perhaps these could be solved by adding new events types, but I think that these are flows that warrant some different UI.
In this, I propose that the Triggers tab becomes a split menu (similar to surfaces), with a few pages:
- Automations (the default selection), what we currently have
- Midi/Input, initial solution for Support USB midi controllers (eg Novation Launchpad Mini) #1709
- Webhooks Tigger actions with HTTP webhooks #3661?
Midi/Input
I have been thinking about this for a few days, so this is semi planned.
For now this is intended to be for midi, but perhaps could extend to gamepad input later on.
Perhaps the fader/jog/shuttle of existing surfaces should hook into this, as a better workflow until we can handle them in the grid.
This needs some more exploration for how it should behave, there might want to be a couple of types within in, to handle different midi flows (buttons vs faders/pots)
Each of these triggers should have an event source, which allows picking things and there should not be a condition block.
For the 'button' behaviour, there should be activate&deactivate actions, perhaps even the duration groups that we have on normal buttons. This probably wants to have the rotary events too.
For 'value' behaviour, it might be that there wants to be a single actions block, to be triggered whenever it changes. The value from the fader/whatever should be exposed as a $(this:value) variable
Webhooks
This is less thought through, it was prompted by #3661
Triggering things in companion is a common request. I personally am doing it for some custom input from an IR receiver.
Today it requires making a request to certain paths, to trigger button presses which is sub-optimal.
Instead, it would be good if the user could define a list of custom 'webhooks'.
In this, the user should be able to specify a path to use (which will be prefixed with /api/webhook/), the http verb.
We could paste relevant info about the request into some variables $(this:body), $(this:headers) and $(this:query), and let the user build perform actions based on this.
As a follow up, we could add more options to this:
- restrict the ip address of caller
- option to require http basic auth
- builtin hmac verification check. some webhooks (eg github) allow doing some signature checking with a shared secret, could be nice if we could handle the check for the user
Q) Maybe this should also include being able to setup custom OSC paths? Having something similar for that would be great to have, or should it be its own page?
Metadata
Metadata
Assignees
Labels
Type
Projects
Status