Hi @miike!
Generally, I agree with what you are saying.
I think you want to have three scenarios: A/C on, Low Fan, High Fan (is there a fourth one “A/C off, no fan”?).
It is correct that for every boolean variable, one usually has a corresponding condition. It might be redundant in many cases, but conditions add a bit of more flexibility of how to interpret a Boolean variable.
To have a numeric variable for open_window_count sounds like a great idea! You can increase/decrease it with ever window open/close event.
So you could have three Logicblocks, one for each scenario above:
- A/C on: hot_outside AND all_windows_closed => Actions: Fan off, A/C on
- Low Fan: cold_outside AND few_windows_open => Actions: Fan on low speed, A/C off
- High Fan: cold_outside AND many_windows_open => Actions: Fan on high speed, A/C off
- A/C off: hot_outside AND (few_windows_open OR many_windows_open) => Actions: Fan off, A/C off
Here’s a documentation on how to use numeric variables: How to update a numeric variable via IFTTT