I'll add my voice to the ventilation crowd. I've got Aeotec Multisensors in each bathroom plus some in nearby rooms. I use a simple script that compares the humidity reading inside the bathroom to that of a sensor in a nearby room. If the difference is greater than 15% it kicks on the vent fan for 40 minutes. During that time, every time the humidity changes in the bathroom the trigger is re-evaluated so once the humidity delta is less than 14% the fan (and the 40 minute timer) are turned off. I set this up initially so that if we forget to turn the fan on when showering, or a house guest is unfamiliar with the need to do so, Indigo will handle it.
Similarly, I also use the motion sensor capability of those multi sensors to automatically turn on the lights when somebody enters the bathroom. However I found it wise to limit that activity to waking hours so that somebody that gets up in the middle of the night to use the facilities doesn't get blasted with bright lights.