klimagerät temperaurabhängig ein- / auschalten, wahlweise auch über timer

2 Punkte dazu:

  1. Ich definiere Instanzen immer als Variablen wenn ich die mehrfach benutze. Damit kommt mir die IPS-Technik nicht mit seiner Namenserweiterung in die Quere. Der Code wird leichter lesbar und Änderungen brauche ich nur an einer Stelle vornehmen.

  2. Würde ich mögliche Stati immer zusammenfassen und nicht alles mit logischen Verknüpfungen lösen, die sind schwer zu lesen.

würde die Variante nicht das gleiche machen???
und zumindest leichter lesbarer sein.

$status = GetValueBoolean(12036 /*[Technikraum\Klimagerät\Status]*/);
$ist_Temp = GetValueFloat(43663 /*[Technikraum\Wandthermostat\IST-Temperatur]*/);

if ($betiebsart == 2 ) // Temp-Auto
{
    if($status == False)        // Gerät ist aus!!
    {
       // Einschalttemp erreicht 
       if($ist_Temp >= $temp_ein))
       {
          HM_WriteValueBoolean(37158 /*[Technikraum\Klimagerät]*/, "STATE", True); //Gerät einschalten
          SetValueBoolean(12036 /*[Technikraum\Klimagerät\Status]*/, True);
       }
       // sonst nix zu tun
       exit(0);
    }
    
    if($status == True)         // Gerät läuft schon!!!
    {
      // Ausschalttemp erreicht
      if($ist_Temp <= $temp_aus)
      {
          HM_WriteValueBoolean(37158 /*[Technikraum\Klimagerät]*/, "STATE", false); //Gerät ausschalten
          SetValueBoolean(12036 /*[Technikraum\Klimagerät\Status]*/, False);  
      }
      // sonst nix zu tun  
    }
}

Ansonsten, super für einen „Laien“.
lg Marco