Getting Fancy with my Tower Timers - Separation of Behaviors

Adding more data is pretty simple. Add each Item you care about as a trigger to your “Tower timer Rule if Cloudy”, so that will be the temp and humidity. Then your if statements become a bit more complex as you have six or more possible combinations of states to deal with since the three values you care about are independent.

I highly recommend creating a table listing all the conditions and what should be done in those cases. For example, one row might be what to do it the temp is above 30 degrees C, humidity is above 50% and it’s cloudy and another would be temp is above 30 degree C, humidity is above 50%, and it is not cloudy.

Once you are happy with your table, you can translate that table to if statements.

if(vlocalCurremtTemp.state > 30 && vlocalCurrentHum.state > 50 && vlocalCurrentCloudiness.state == ON) {
    // do stuff
}
else if(vlocalCurremtTemp.state > 30 && vlocalCurrentHum.state > 50 && vlocalCurrentCloudiness.state == OFF) {
    // do stuff
}
...

There are other ways to structure this such as using nested if statements or switch statements but ultimately it’s going to be ugly. Apply Design Pattern: How to Structure a Rule as you build it an that will help with some of the complexity. But no matter how you go about it, it’s going to be ugly.