@bennnid said:

the problem being that we can't use 1 button for transition A>B and another one to B>A so that, as you never know where the lever is it can lead to misbehavior...

 a video mixer doesn't work in this way. It has a program and a preview level. Program is always online and you choose on the preview level what you want to have as next, then you choose with which effect (cut, fade, wipe,…) you will send it to the program. You cannot change the program directly so you cannot have a to B or B to A. It is always preview to program.

What I send you before is working but not always because some time (and it is a question of time between value and trigger)the last sent value is not 0 or 1 but 0,002 or 0,998.

so you have to add a trigger delay, then you can also use two segments in the Enveloppe generator:

To see the state of the lever you can use the OSC input /atem/transition/bar . it will show you the current value of the bar: