Betriebsartenumschaltung Wärmepumpe

Hallo zusammen,

ich teste gerade ein kleines Script, womit die Betriebsart meiner WP umgestellt werden soll.
Habe dies mit If else Funktion probiert.

Hier mein script



$LXsued = GetValue(45615 /*[Wetter\Helligkeit\Süd\Wert]*/); // Daten von Wetterstation
$LXost = GetValue(30378 /*[Wetter\Helligkeit\Ost\Wert]*/); // Daten von Wetterstation 
$LXwest = GetValue(21733 /*[Wetter\Helligkeit\West\Wert]*/); // Daten von Wetterstation
$Temp = GetValue(53821 /*[Wetter\Helligkeit\West\Wert]*/); // Daten von Wetterstation
 
if  (($LXsued > 15000) or ($LXost > 15000) or ($LXost > 15000) and ($Temp > 13))

 {
   KNX_WriteDPT20(58451 /*[Anlagen\Wärmepumpe\WP Betriebsmodus Umschaltung]*/, 2);
   KNX_WriteDPT9(41884 /*[Anlagen\Wärmepumpe\WP Warmwassersolltemperatur]*/, 30);
   }
else 
{
   KNX_WriteDPT20(58451 /*[Anlagen\Wärmepumpe\WP Betriebsmodus Umschaltung]*/, 0);
   KNX_WriteDPT9(41884 /*[Anlagen\Wärmepumpe\WP Warmwassersolltemperatur]*/, 47);
   }  


?>


Die WP soll in Standby sobald ein Helligkeitswert der Wetterstation über 15klx liegt und die Aussentemperatur über 13°C.
Ich möchte so verhindern, das die WP Witterungsgeführt an schönen Tagen morgens läuft bis es draussen wärmer wird.
Das funktioniert auch soweit, bis auf die UND Verknüpfung mit der Temepratur. Das script schreibt Standby obwohl die Aussentemp unter 13 liegt.

hat jemand eine Idee. Ich stehe auf dem Schlauch:mad:

Danke

Rob

SRY.
hatte einen Kopierfehler im Script.

hier mein Script:



<<? 

$LXsued = GetValue(45615 /*[Wetter\Helligkeit\Süd\Wert]*/); // Daten von Wetterstation
$LXost = GetValue(30378 /*[Wetter\Helligkeit\Ost\Wert]*/); // Daten von Wetterstation 
$LXwest = GetValue(21733 /*[Wetter\Helligkeit\West\Wert]*/); // Daten von Wetterstation
$Temp = GetValue(53821 /*[Wetter\Temperatur\Aussen\Wert]*/); // Daten von Wetterstation
 
if  (($LXsued > 15000) or ($LXost > 15000) or ($LXwest > 15000) and ($Temp > 13))

 {
   KNX_WriteDPT20(58451 /*[Anlagen\Wärmepumpe\WP Betriebsmodus Umschaltung]*/, 2);
   KNX_WriteDPT9(41884 /*[Anlagen\Wärmepumpe\WP Warmwassersolltemperatur]*/, 30);
   }
else 
{
   KNX_WriteDPT20(58451 /*[Anlagen\Wärmepumpe\WP Betriebsmodus Umschaltung]*/, 0);
   KNX_WriteDPT9(41884 /*[Anlagen\Wärmepumpe\WP Warmwassersolltemperatur]*/, 47);
   }  


?>

Ich bin mir nicht sicher ob or oder and höher gewichtet ist, falls es or ist, wird die Temperatur nur berücksichtigt, wenn alle helligkeiten ausser west false sind. Mach mal ne klammer um die or‘s. Man könnte glaube ich auch mit && und || arbeiten, da ist auch eine Variante höher als or und and, müsstest du mal in der php doku schauen. Übersichtlicher wörs aber bestimmt mit klammern :slight_smile:

Edit: Wie wird denn das Script getriggert? mir kommt die Logik ein bisschen zu simpel vor auf den ersten Blick, ohne da im Thema zu sein.

HI Danke für die Antwort.

Habe es so angepasst.

Scheint zu funktionieren. Der Tip Mit || und && hat funktioniert. mit or und and ging es nicht. auch nicht mit den Klammern.



<<? 

$LXsued = GetValue(45615 /*[Wetter\Helligkeit\Süd\Wert]*/); // Daten von Wetterstation
$LXost = GetValue(30378 /*[Wetter\Helligkeit\Ost\Wert]*/); // Daten von Wetterstation 
$LXwest = GetValue(21733 /*[Wetter\Helligkeit\West\Wert]*/); // Daten von Wetterstation
$Temp = GetValue(53821 /*[Wetter\Temperatur\Aussen\Wert]*/); // Daten von Wetterstation
 
if  ((($LXsued > 15000) || ($LXost > 15000) || ($LXwest > 15000)) && ($Temp > 13))

 {
   KNX_WriteDPT20(58451 /*[Anlagen\Wärmepumpe\WP Betriebsmodus Umschaltung]*/, 2);
   KNX_WriteDPT9(41884 /*[Anlagen\Wärmepumpe\WP Warmwassersolltemperatur]*/, 30);
   }
else 
{
   KNX_WriteDPT20(58451 /*[Anlagen\Wärmepumpe\WP Betriebsmodus Umschaltung]*/, 0);
   KNX_WriteDPT9(41884 /*[Anlagen\Wärmepumpe\WP Warmwassersolltemperatur]*/, 47);
   }  


?>


getriggert wird das script zyklisch alle 5 min. werde das aber noch anpassen auf alle 15.

lg dank

rob

Dann würde ich noch eine Hysterese einbauen.

Und die beiden und/oder operatoren müssten eigentlich beide funktionieren mit dem unterschied der Rangfolge, aber egal, funktioniert ja jetzt bei dir.

Gesendet von iPhone mit Tapatalk Pro