Trigger state nodes have an input that can be enabled in it’s settings. This input can disable/enable the node. This is done by setting msg.payload to enable/disable.
The trigger can disable itself when it is fired. You can then turn it back on from the user input.
[{"id":"3d4cab5dbb479712","type":"trigger-state","z":"8e6ef4f6cbb13d83","name":"","server":"","version":5,"inputs":1,"outputs":2,"exposeAsEntityConfig":"","entities":{"entity":[],"substring":[],"regex":[]},"debugEnabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is","comparatorValueDatatype":"str","comparatorValue":""}],"customOutputs":[],"outputInitially":false,"stateType":"str","enableInput":true,"x":470,"y":2870,"wires":[["6c06fd7a7a65debc","72c723271f2a5338"],[]]},{"id":"6c06fd7a7a65debc","type":"change","z":"8e6ef4f6cbb13d83","name":"disable","rules":[{"t":"set","p":"payload","pt":"msg","to":"disable","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":2800,"wires":[["3d4cab5dbb479712"]]},{"id":"72c723271f2a5338","type":"debug","z":"8e6ef4f6cbb13d83","name":"do something","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":790,"y":2860,"wires":[]},{"id":"e2f1ee5215e916f8","type":"inject","z":"8e6ef4f6cbb13d83","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"enable","payloadType":"str","x":260,"y":2870,"wires":[["3d4cab5dbb479712"]]},{"id":"fea08637c7257d05","type":"global-config","env":[],"modules":{"node-red-contrib-home-assistant-websocket":"0.80.3"}}]