There may be a more straight forward way to do it now, but the traditional way is to add a condition to the automation based on the automation's (or maybe the light or motion detector) last_triggered property. You need, AFAIK, to use a template for this.
A condition with something like this should make it so it can't fire more than once every hour (60 seconds times 60 minutes):
{{ (as_timestamp(now()) - as_timestamp(state_attr('automation.driveway','last_triggered'))) > 60 * 60 }}