I ended up using node-red-contrib-bool-gate node to do what I needed along with the builtin trigger code.
My real flow is slightly more involved and I needed something that will allow me to use "and" and "or" logic. So in my example, I want my front door camera to take a picture when someone opens the screen door. But there are some situations I don't want it to take a picture. A) If anyone has been present for less than 5 minutes (meaning anyone who just got home and is most likely the person to open the screen door) B) if someone opens the inside door first (meaning if I am inside and open the front door before opening the screen door, I don't want it to take a picture).
In my flow I have an "or gate" node which monitors the recent presence along with monitoring whether the front door is open. If one person is recently present or inside door is open, then false and the flow won't happen. A second "and gate" monitors that the "or gate" is true and also that the screen door opens.
These feels complicated but any other solution feels more complicated to me.
What I find confusing is that I thought there was some kind of out of the box solution for checking multiple conditions with and/or logic, but I'm having a hard time finding anyone talking about it in the forum. In fact, the bool gate node hasn't been updated for 3 years and 5 months.
Anyways... I made a very simple version of the two switches in series. Note, I did not include any of the recent presence stuff I was talking about earlier. Just two switches, if screen door opens then go to the next device, if the "Me" device is present, then turn on living room light.
The problem I'm running into is that if the "Me" device becomes present, it will kick off the rest of the flow despite the first switch, the screen door, not opening. It doesn't care about what happens before it. Honestly, this does seem like the expected result. So I'm most likely doing it wrong.
[{"id":"d6e1db92.b81498","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"9671994c.3243b","type":"hubitat device","z":"d6e1db92.b81498","name":"Screen Door","server":"559b622a.b9923c","deviceId":"385","attribute":"contact","sendEvent":true,"x":70,"y":120,"wires":[["2131c6f7.d418d2"]]},{"id":"2131c6f7.d418d2","type":"switch","z":"d6e1db92.b81498","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"open","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":210,"y":120,"wires":[["c62e46ba.392128"]]},{"id":"c62e46ba.392128","type":"hubitat device","z":"d6e1db92.b81498","name":"Me","server":"559b622a.b9923c","deviceId":"839","attribute":"presence","sendEvent":true,"x":350,"y":120,"wires":[["aa227e29.587e8"]]},{"id":"aa227e29.587e8","type":"switch","z":"d6e1db92.b81498","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"present","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":500,"y":120,"wires":[["393d99c5.71aaa6"]]},{"id":"393d99c5.71aaa6","type":"hubitat command","z":"d6e1db92.b81498","name":"Living Light","server":"559b622a.b9923c","deviceId":"164","command":"on","commandArgs":"","x":650,"y":120,"wires":[[]]},{"id":"559b622a.b9923c","type":"hubitat config","z":"","name":"Hubitat","usetls":false,"host":"10.0.1.150","port":"80","appId":"1473","nodeRedServer":"http://10.0.1.5:1880","webhookPath":"/hubitat/webhook_","autoRefresh":true,"useWebsocket":false}]