If everything above I outlined is true? In reference to how you get ON and OFF events? Here is simple flow that generates random 0 and 1 states, at random seconds (0 < X < 60), and the authorized state is always honored.
[{"id":"5ef7f537.ae175c","type":"inject","z":"4e87fca5.9aef34","name":"Authorized ON","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":120,"y":180,"wires":[["ea133f36.7b00e"]]},{"id":"7b9d89e2.c57978","type":"inject","z":"4e87fca5.9aef34","name":"Authorized OFF","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":120,"y":220,"wires":[["ea133f36.7b00e"]]},{"id":"ea133f36.7b00e","type":"change","z":"4e87fca5.9aef34","name":"Authorized","rules":[{"t":"set","p":"authorized","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":200,"wires":[[]]},{"id":"617f974.d81ae68","type":"comment","z":"4e87fca5.9aef34","name":"Authorized ON or OFF","info":"","x":140,"y":120,"wires":[]},{"id":"425f0179.83e21","type":"random","z":"4e87fca5.9aef34","name":"Simulate On Or Off State","low":"0","high":"1","inte":"true","property":"payload","x":970,"y":380,"wires":[["2fd34e7a.3ff802"]]},{"id":"a7a7e04b.1fb9c","type":"inject","z":"4e87fca5.9aef34","name":"Automatic (1s)","props":[{"p":"payload"}],"repeat":"1","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":400,"wires":[["5ab612e9.bdcdac"]]},{"id":"d729dead.1d31","type":"debug","z":"4e87fca5.9aef34","name":"Message","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1360,"y":380,"wires":[]},{"id":"5ab612e9.bdcdac","type":"random","z":"4e87fca5.9aef34","name":"Simulate (0s < X < 60s)","low":"0","high":"60","inte":"true","property":"seconds","x":350,"y":400,"wires":[["1c40c58e.669b3a"]]},{"id":"bdcb5c6a.53be2","type":"while-loop","z":"4e87fca5.9aef34","name":"While","condi":"msg.second > 0","x":750,"y":400,"wires":[["425f0179.83e21"],["d5797d11.e73c6"]]},{"id":"a3e71c92.a1ccc","type":"function","z":"4e87fca5.9aef34","name":"Less Second","func":"msg.second -= 1;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":910,"y":540,"wires":[["bdcb5c6a.53be2"]]},{"id":"d5797d11.e73c6","type":"delay","z":"4e87fca5.9aef34","name":"Delay (1s)","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":730,"y":540,"wires":[["a3e71c92.a1ccc"]]},{"id":"1c40c58e.669b3a","type":"change","z":"4e87fca5.9aef34","name":"Seconds","rules":[{"t":"set","p":"second","pt":"msg","to":"seconds","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":400,"wires":[["bdcb5c6a.53be2"]]},{"id":"2fd34e7a.3ff802","type":"function","z":"4e87fca5.9aef34","name":"Authorized?","func":"var theEvent = msg.payload,\n theAuthorized = flow.get('authorized');\n\nmsg.payload = theAuthorized && msg.payload;\n\nnode.warn(`Event ${theEvent} Authorized ${theAuthorized}`);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1190,"y":380,"wires":[["d729dead.1d31"]]}]
The above flow needs one unique node package https://flows.nodered.org/node/node-red-contrib-random-event-generator. This just to create the random sequencing. Of course in your final control flow, this node would not be needed.
Just send the authorized state to the bridge as the bridge sends back or as you poll the bridge. If the bridge can sent events, that is easier. If your bridge can't send events to NR, then you have to do polling to get the bridge switch state, a bit more complex but the authorized state overriding the current switch state is the same.