Dropdown Menü Soll-Temperatur

Hi,

ich brech mir hier schon wieder einen ab. Ich möchte über eine Dropdown-Liste (enthält Temperatur-Werte 17.0 18.0 19.0 usw.) meine Soll-Temperatur verstellen.

Werte habe ich hinterlegt, tauchen auch auf, Variable (AZ_FHT_SollTemp) auch hinterlegt, aber in meinem FHT tut sich nichts.

Was mache ich falsch bzw. wie macht man es richtig?

Greetz Jimmy

Kucks du hier !

Du darfst nicht direkt die Variable beschreiben, denn dann rührt sich nichts. Du muss den Befehl FHT_SetTemperature benutzen !

mfG Franz

Aber, entschuldige die Frage, wie bekomme ich für jeden Wert der Dropdown-Auswahl den Wert gesetzt? Oder setzte ich den Wert auf eine virtuelle Variable und übertrage ihn dann auf ein Script, dass die FHT-Variable mittels Script versorgt?

Greetz Jimmy

was ich mache:

in statt von einer dropdown benutze ich ein schieber:
(gleicher schieber … aber versetzt in zeit)
sehe abbildungen

script die getriggert wird durch dem schieber:


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Setminmax.ips.php
Trigger  : vliv_temp_state, vkeu_temp_state, vsl1_temp_state, vsl2_temp_state
Interval : ZnullZ
*/
//$IPS_VARIABLE="vliv_temp_state";  //  <- debug !!
$state=GetValueFloat($IPS_VARIABLE);
if ($state<10.5){
   $min=5.5;
   $max=15;
}elseif($state>24.5){
   $min=20;
   $max=30.5;
} else {
   $min=$state-3;  // <- hier variationen eingeben
   $max=$state+3;
}
/* um diese untere zeile 'arbeiten' zu lassen brauch man ein wenig
   'organisation' in die zuweisung von die Variabeln
   bei mir ist
   vliv_temp_state
             -----  state: eingestellter soll-wert am rad des FHT's
        ----        temp: es bezieht zu eine FHT (lamp: leuchte, swch: switch)
    ---             liv: der platz (keu: kuchen, sl1: schlaff1 ....
   -                v: wie Variable (s: script, t: trigger, o:output, m:mixed)
   Ihr braucht unbedingt feste-länge-variabln wenn diese Zeile arbeiten sollen
*/
SetValueFloat(substr($IPS_VARIABLE,0,10)."min",$min); /*nimm zb. vliv_temp_ aus
                                                        den $IPS_VARIABLE-string
                                                        und hange 'min' ran
                                                        also: vliv_temp_state
                                                        als resultat. */
SetValueFloat(substr($IPS_VARIABLE,0,10)."max",$max);
?>

und der ‚set‘ knopf macht dies :
der triggert diesem script:


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : sliv_temp_sendstate.ips.php
Trigger  : 
Interval : 
*/
include_once("scripts/GlobalDefines.ips.php");
if ($IPS_SENDER=="Execute") $loc="liv";  // <- debug
$newsolltemp=GetValueFloat("v$loc"."_temp_state");
if ($newsolltemp=="5") $newsolltemp="5.5";
if ($newsolltemp=="31") $newsolltemp="30.5";
FHT_SetTemperature(constant("o$loc"."_temp"), valuefloat($newsolltemp));
?>

–edit–
oie oie oie !! das funzt doch uberhaupt nicht … du Fredje pass mal auf !!
wenn du etwas im forum reinschickst bitte aber wirklich bitte lass es funzen…
-ende deit-

FUNZT NICHT ToDo -> morgen

schiebe21.gif

schiebe23.gif

schiebe55.gif

Du Fredje,

ich würde das aber lieber über nen Dropdown machen. Und dafür bräucht ich mal kruz ne kleine Info.

Greetz Jimmy

bei der eigenschaft ‚on change‘ von dein dropdown ein script ausfuhren lassen die das commando:


FHT_SetTemperature({instanz-id},GetValueFloat("AZ_FHT_SollTemp");

ausfuhrt.

ODER
das gleiche script wie oben triggeren lassen uber den variable „AZ_FHT_SollTemp“.

Also:
erst script anfertigen
dann im Designer die properties von dein drop-down box änderen unter ‚tabblad‘ (ehhm auf deutsch ‚reiter‘ glaube ich) ‚events‘ wählen
und da die ‚on change‘ änderen und verweisen nach dein neues script.

Nur !! Diese lösung ist in bezug zum FHT nicht ganz ok, weil du den buffer uberflutet mit neue soll-werte. De klikst 4x rum um die richtige temperatur aus zu wählen gleicht 4x neuer soll-temp zu dem FHT. -> da wird es bestimmt falsch laufen.

Deshalb meine lösung. Erst in alle ruhe die gewunschte temp-wert wählen und dann NUR 1x FHT_SetTemperature…

Good Luck,

Verknüpf die Variable mit dem OnChange Event im Designer und gucke in IPS welche Werte ankommen.

Du wirst sehen, dass nicht die Temperatur übertragen wird, sondern der ausgewählte Index! D.h. du musst einfach noch ein switch case bauen, welches dir die richtige Temperatur setzt.

Grüße, paresy

Jetzt wird mir auch klar, wie die „1“ bei der Variable gesetzt wurde:o

Hast Du ein Beispiel für mich, bin absoluter php-DAU.

Ich hatte mich mit dem Problem nicht weiter beschäftigt, da momentan massive Performance-Probleme aufgetreten sind:

Meine CPU_last hängt bei 100% 24h.

Ich habe nur ein paar Scripte am Laufen, das Webinterface (erzeugt momentan 2 Graphen und einen M-Graph) und den Designer.

Warum läuft meine Kiste plötzlich am Anschlag? Andere Programme laufen auf der Kiste nicht, nur IPS.

Das Webinterface braucht momentan ca. zehn Minuten für den Aufruf einer Seite. Das Ausführen eines zehnzeiligen Scriptes dauert auch fast zehn Minuten.

Meine Variablen werden im Abstand von einer Minute abgefragt (früher hatte ich zehn Minuten):

Bitte helft mir.

Einen verzweifelten Gruß

Jimmy

Hallo,

welche Version des Webinterfaces setzt Du ein?

Gruss Torro

0.70 beta5

Hallo,

ok, dann liegts nicht am WIIPS. Dann kann ich Dir da keinen Tip geben, woran es liegen koennte.

Gruss Torro

Guck mal ob du nicht vielleicht eine Endlosschleife in deinen IPS Scripten hast. Das siehst du daran, dass im Kernel-Debug ganz schön was los ist und der Script Queue nach oben geht…

Grüße, paresy

Hi paresy,

ich hab hier was, hatte ich hier im Forum bekommen. Aber da mir php ja net soviel sagt, müsstest Du das mal beurteilen:

$loop = GetValueBoolean("WZ_FS_Tischleuchte.Status");
switch ($loop){
case True :
     $WZ_Tischleuchte ="an";
     break;
case false:
     $WZ_Tischleuchte ="aus";
     break;
}
SetValueString("WZ_FS_Tischleuchte.Stat", $WZ_Tischleuchte);

Greetz Jimmy