Tak teď trochu nechápu čeho chceš dosáhnout. Pokud je některý termostat sepnutý, zapne se kotel a v závislosti na tom, který termostat je sepnutý, tak se zapne buď přízemí nebo patro nebo oboje. A když je teplota větší než 23°C, tak se stane co?
/*před testem podmínek by měly být načteny stavter1, stavter2 a temp
a taky udělané všechny výstupy na serial, případně na LCD - to znamená testy až nakonec! */
if((temp < 23 && stavter1 == HIGH) || (temp < 23 && stavter2 == HIGH)) {
digitalWrite(Kot, HIGH); } //pokud je teplota nižší než 23°C a některý z termostatů sepne, zapni kotel
else {
digitalWrite(Kot, LOW); //jinak bude kotel vypnutý
digitalWrite(CerP, LOW); //a všechno ostatní taky
digitalWrite(VenP, LOW);
digitalWrite(CerK, LOW);
digitalWrite(VenR, LOW);
}
if(stavter1 == HIGH) {
digitalWrite(CerP, HIGH); //Pokud je sepnutý spodní termostat, zapni CerP
digitalWrite(VenP, HIGH); //a VenP, ať už to znamená cokoliv
}
else {
digitalWrite(CerP, LOW);
digitalWrite(VenP, LOW); //jinak ty věci vypni
}
if(stavter2 == HIGH) {
digitalWrite(VenR, HIGH); //Pokud je sepnutý horní termostat, zapni VenR
}
else {
digitalWrite(VenR, LOW); //jinak vypni VenR
}
/* K čemu slouží CerK? neměl by být taky někde zapnutý/vypnutý? */
Jinak jsem nepostřehl, že bys porovnával čísla pinů, digitalRead ti přece zjistí stav na pinu. Je vcelku jedno, jestli máš deklarovaný stavter jako boolean nebo int, taky v podmínce nemusíš explicitně psát if(stavter1 == HIGH), stačí if(stavter1), protože pokud je cokoliv jiného než nula, tak bude podmínka platit.