You’ll pretty much just need 6 choose conditions based on the state of the booleans and whether or not you are turning the timers on or off.
For example, for the on conditions:-
First check if the first input boolean has been set or not, if not set, set it , and then start timer 1.
For the second, check if boolean 1 has been set already, and 2 has not, then set timer 2.
And finally for the third, check if 1 and 2 have been set and not 3, then start timer 3.
And exactly the same for the off’s, with one addition.
For each off, unset the input boolean for the relevant timer, so its reset for the morning.
Or, have a separate automation trigger at (say) 3am to reset all the input booleans for the next day.
As for your other problem, using one shared sensor to measure water consumption does make it tricky to determine whats actually using the water. Is it a shower or something else ?
You could try adding both an above and below like so:-
trigger:
- type: humidity
platform: device
id: shower_started
device_id: 809dad8c720348089599f9c2aa2ad6ff
entity_id: sensor.my_water_litres_per_minute
domain: sensor
above: 6.0
below: 9.0
So this would only trigger if the water was between those values. So this wouldn’t trigger the washing machine as it uses 10 litres. however, it becomes more complicated if you have the washing machine AND the showers running at once.
EDIT:- The above I think is slightly incorrect. Adding an above and below will trigger if either threshold is passed. What you need (I think) is a device trigger above 6 (or 6.5), and a separate condition to check its below 9.