Wert einer Variable ändern

Hallo,
also irgendwie steh ich aufm Schlauch. Ich schaffe es nicht eine Variable über das Webfront zu ändern. Wie muss ich die Systemvariablen im Script verwenden um im Webfront einen Button zu haben der mir im Script eine Variable auf TRUE setzt.
Sollwerte kann ich auch nicht übers Webfront verstellen. Da bekomme ich immer diese Fehlermeldung:

Kann mir Bitte jemand sagen wie das Funktioniert.

hiho,

was genau hast du denn vor? Die Fehlermeldung is bischen klein, ich kann das nicht lesen. :wink:

Hallo,

Also ich habe mir eine Aussentemperatur Rampe geschrieben mit der ich nach Aussentemperatur den Raumtemperatur-Sollwert nach oben und nach unten verschiebe. Jetzt möchte ich die Sollwerte für die Rampe im Webfront verstellen. Aber irgendwie bekomme ich es nicht hin das der wert im Script geändert wird. Dann habe ich noch einen Zähler der mir die Anzahl der Festeröffnungen zählt. Den Zähler möchte ich übers Webfront aber auch Reseten können. Das schaffe ich auch nicht das ich das Bit zum Reseten des Zählers auf TRUE setze.

Fehler.png

Schau mal hier rein:

Anfänger: Wie bloß einen Schalter „Abwesenheit“ darstellen?

Die werte Emin,Emax,Amin und Amax möchte ich im Webfront ändern.

$Aussentemperatur = GetValue(57053 /*[Temperaturen\ ThermoHygro Aussen\Temperatur]*/ );
$Emin = GetValue(20029 /*[Heizung\AT-Rampe\Emin]*/ );
$Emax = GetValue(36148 /*[Heizung\AT-Rampe\Emax]*/ );
$Amin = GetValue(24616 /*[Heizung\AT-Rampe\Amin]*/ );
$Amax = GetValue(41675 /*[Heizung\AT-Rampe\Amax]*/ );





/*
                 ( Amax - Amin )  *  ( X - Emin )
    Kennlinie := --------------------------------  +  Amin
                            Emax - Emin
*/

if ($Emin<$Emax)

IF (($Aussentemperatur>$Emin) and ($Aussentemperatur<$Emax))
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,ceil((($Amax - $Amin) * ($Aussentemperatur - $Emin ))/($Emax - $Emin))+$Amin);
$REAL = ((($Amax - $Amin) * ($Aussentemperatur - $Emin ))/($Emax - $Emin))+$Amin;
}
elseif ($Aussentemperatur<=$Emin)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amin);
}
elseif ($Aussentemperatur>=$Emax)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amax);
}


/*
                 ( Amax - Amin )  *  ( Emin - X )
    Kennlinie := --------------------------------  +  Amin
                           Emin - Emax
*/

if ($Emin>$Emax)

IF (($Aussentemperatur<$Emin) and ($Aussentemperatur>$Emax))
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,ceil((($Amax - $Amin) * ($Emin - $Aussentemperatur))/($Emin - $Emax))+$Amin);
}
elseif ($Aussentemperatur>=$Emin)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amin);
}
elseif ($Aussentemperatur<=$Emax)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amax);
}

print_r($REAL)
?>


aaaaaaaaaaaaaahhhhhhhhhh!!!

mit dem Reset Funktionierts schonmal. Vielen dank.
Kannst du mir noch sagen wie ich das jetzt bei den Werten machen kann?

Hast du Variablenprofile benutzt? siehe :

http://www.ip-symcon.de/service/dokumentation/konzepte/variablen/variablenprofile/

ganz unten auf der Seite doppelt lesen. :wink:

Was willst du mit dem Wert, der dir sagt, wie oft das Fenster auf war? Ist doch im Webfront nicht besonders aussagekräftig. Logge doch die Variable und beobachte den Graphen. Das ist deutlich komfortabler.

Wie oben schon im Link zu finden:

Nur das es bei dir halt keine bool Variable ist…
Müsste aber so funktionieren.

P.S. Pack deinen Code doch bitte in PHP Tags dann liest es sich einfacher

E: Zu langsam :stuck_out_tongue:

Hier wären auch noch interesante Infos:

http://www.ip-symcon.de/service/dokumentation/konzepte/skripte/systemvariablen/

Ganz unten lesen.

Vielen Dank,

jetzt klappt es. Ach das mit dem Zähler war nur so eine Spielerei. Wem interessiert schon wie oft das Fenster auf und zu gemacht worden ist muahahaha.

Hier noch das script der AT-Rampe in PHP-Code.

<?
$Aussentemperatur = GetValue(57053 /*[Temperaturen\ ThermoHygro Aussen\Temperatur]*/ );
$Emin = GetValue(20029 /*[Heizung\AT-Rampe\Emin]*/ );
$Emax = GetValue(36148 /*[Heizung\AT-Rampe\Emax]*/ );
$Amin = GetValue(24616 /*[Heizung\AT-Rampe\Amin]*/ );
$Amax = GetValue(41675 /*[Heizung\AT-Rampe\Amax]*/ );





/*
                 ( Amax - Amin )  *  ( X - Emin )
    Kennlinie := --------------------------------  +  Amin
                            Emax - Emin
*/

if ($Emin<$Emax)

IF (($Aussentemperatur>$Emin) and ($Aussentemperatur<$Emax))
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,ceil((($Amax - $Amin) * ($Aussentemperatur - $Emin ))/($Emax - $Emin))+$Amin);
$REAL = ((($Amax - $Amin) * ($Aussentemperatur - $Emin ))/($Emax - $Emin))+$Amin;
}
elseif ($Aussentemperatur<=$Emin)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amin);
}
elseif ($Aussentemperatur>=$Emax)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amax);
}


/*
                 ( Amax - Amin )  *  ( Emin - X )
    Kennlinie := --------------------------------  +  Amin
                           Emin - Emax
*/

if ($Emin>$Emax)

IF (($Aussentemperatur<$Emin) and ($Aussentemperatur>$Emax))
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,ceil((($Amax - $Amin) * ($Emin - $Aussentemperatur))/($Emin - $Emax))+$Amin);
}
elseif ($Aussentemperatur>=$Emin)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amin);
}
elseif ($Aussentemperatur<=$Emax)
{
SetValue(39892 /*[Heizung\AT-Rampe\Rampe_Ausgang]*/ ,$Amax);
}

print_r($REAL)
?>