Mode am FHT wechseln

Hi,

ich habe mir Buttoms für die Modi der FHT´s gebastelt.

Ich wollte zum Beispiel mit diesem Script, den Mode auf „1“ setzen = manuell

Die Variable wechselt auch den Wert, doch am FHT kommt nichts an.

Was mache ich falsch?

SetValueInteger("AZ_FHT_SollMode", 1);

Greetz Jimmy

Kuckst DU hier

Booah, und ich php-Nulpe brech mir einen ab…:wink:

Danke. Und weiter geht.

Greetz Jimmy

Hi,

ich habe im Designer für die Einstellung der Temperatur ein Pulldown-Menü angelegt. Je nach ausgewähltem Wert wird die Variable AZ_SwitchTemp mit einer Integer versehen. Nun möchte ich, dass dieser Integer eine neue Variable „AZ_Temp_Temp“ mit einem Float „betankt“, den ich über einen Set-Buttom an den FHT übertrage. Doch dieses Script will bei mir einfach nicht laufen. Ich bekomme immer einen Fehler in der letzten Zeile:

<?

/*

*******************************

 IP-SYMCON Event Scripting

*******************************

File     : AZ_SwitchTemp.ips.php

Trigger  :

Interval :

*/

$loop = GetValueInteger("AZ_FHT_SwitchTemp");

switch ($loop){

case 1 :

     $AZ_Temp ="17,0";

     break;

case 2 :

     $AZ_Temp ="18,0";

     break;

Case 3 :

     $AZ_Temp ="19,0";

     break;

Case 4 :

     $AZ_Temp ="20,0";

     break;

Case 5 :

     $AZ_Temp ="21,0";

     break;

Case 6 :

     $AZ_Temp ="22,0";

     break;

Case 7 :

     $AZ_Temp ="23,0";

     break;

Case 8 :

     $AZ_Temp ="24,0";

     break;

Case 9 :

     $AZ_Temp ="25,0";

     break;

Case 10 :

     $AZ_Temp ="26,0";

     break;

}

SetValueFloat("AZ_Temp_Temp", "AZ_Temp");

?>

Was mache ich falsch?

Gruß

Jimmy

errmrmm, mega Aufwand für solch eine Aufgabe!

Wenn du ein Pulldown-Menü benutzt, brauchst du die Werte/Texte nur im Menu „TStrings“ einzutragen.

Beispiel:

Zeile 0 steht „0,0“, dann wird der Integerwert in der Variable 0 sein.
Zeile 1 steht „1,0“, dann wird … gnagnagna … 1 sein.
usw.

ergo, wenn du im Pulldown-Menü „17,0“ haben willst, musst du den Text erst in Zeile 17 schreiben (Achtung, von 0 anfangen zu zählen), dann wird der Intergerwert in deiner Variable (die mit dem Pulldown-Menü gelinkt ist) 17 sein.

Dann im Script auf deinen Button hin triggern, die Integer Variable abfragen, in Float verwandeln und rüber zum FHT.

Dann brauchst du nicht diese Script da !

mfG Franz

Hallo Franz,

ich möchte aber nur bestimmt Temperaturen haben. Deshalb habe ich diesen Weg gewählt.

Aber ich weiss net, was an der letzten Zeile verkehrt sein soll.

Gruß

Jimmy

ersetz mal die komma mit einem Punkt, dann dürfte es gehen

nicht 17,0 sondern 17.0

mfG franz

SetValueFloat() braucht einen Float-Wert - du übergibst einen String.

Dann bekomme ich folgende Meldung:

Warning: Wrong parameter type for setvaluefloat() in line 43 (das ist die letzte Zeile)

Du hast in der letzten Zeile

SetValueFloat("AZ_Temp_Temp", "AZ_Temp");

bei AZ_Temp das „$“ vergessen. Es muss so lauten:

SetValueFloat("AZ_Temp_Temp", "$AZ_Temp");

mfG Franz

SetValueFloat() braucht einen Float-Wert - du übergibst einen String.

… und das noch dabei !

Lass mal die „“ weg ! nicht „17.0“ sondern einfach 17.0

Geändert und trotzdem obige Fehlermeldung.

Die Variable „AZ_SwitchTemp“ hat momentan den Wert „6“.

Script sieht jetzt ao aus:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : AZ_SwitchTemp.ips.php
Trigger  :
Interval :
*/
$loop = GetValueInteger("AZ_FHT_SwitchTemp");
switch ($loop){
case 1 :
     $AZ_Temp ="17.0";
     break;
case 2 :
     $AZ_Temp ="18.0";
     break;
Case 3 :
     $AZ_Temp ="19.0";
     break;
Case 4 :
     $AZ_Temp ="20.0";
     break;
Case 5 :
     $AZ_Temp ="21.0";
     break;
Case 6 :
     $AZ_Temp ="22.0";
     break;
Case 7 :
     $AZ_Temp ="23.0";
     break;
Case 8 :
     $AZ_Temp ="24.0";
     break;
Case 9 :
     $AZ_Temp ="25.0";
     break;
Case 10 :
     $AZ_Temp ="26.0";
     break;
}
SetValueFloat("AZ_Temp_Temp", "$AZ_Temp");
?>

wenn du die Werte in " " setzt, definierst du ein String, eine Zeichenkette.
Lass einfach mal die „“ weg, dann müsste es klappen!

mfG Franz

Jetzt klappt´s auch mit der Nachbarin :smiley:

Danke Franz. Der Abend ist gerettet :wink:

Doch nicht alles schick.

Die Varibale „AZ_Temp_Temp“ bekommt jetzt einen Float „22“.

Wenn ich jetzt aber meinen „Set-Buttom“ drücke, bekomme ich folgende Fehlermeldung:
Parse: parse error, unexpected ‚;‘ in line 11

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : AZ_SollTemp.ips.php
Trigger  : 
Interval : 
*/
FHT_SetTemperature(57229,GetValueFloat("AZ_Temp_Temp");
?>

Schon erledigt zweite „)“ fehlte noch hinten.

Sorry.

Hallo,

siehe meinen Beitrag im Bereich Bug. Du musst den Wert immer als Float uebergeben, und 22 ist nicht float, sondern unter PHP Integer. Also mache es so:


FHT_SetTemperature(57229,(FLOAT)GetValueFloat("AZ_Temp_Temp");

PS: nicht getestet, leider keine Zeit.

Gruss Torro

Hallo Torro,

ist meines Erachtens kein Bug. Wenn ich die zweite „)“ in mein Script einbaue, funzt es. War ein Bug in meinem Script. Übermittlung an den FHT klappt auch.

Gruß

Jimmy

Du kannst dein obiges Skript auch so schreiben:

 
<? 
/* 
******************************* 
IP-SYMCON Event Scripting 
******************************* 
File     : AZ_SwitchTemp.ips.php 
Trigger  : 
Interval : 
*/ 
$t[1] = 17.0;
$t[2] = 18.0;
$t[3] = 19.0;
$t[4] = 20.0;
$t[5] = 21.0;
$t[6] = 22.0;
$t[7] = 23.0;
$t[8] = 24.0;
$t[9] = 25.0;
$t[10]= 26.0;
SetValueFloat("AZ_Temp_Temp", $t[GetValueInteger("AZ_FHT_SwitchTemp")] ); 
?>

oder so:

 
<? 
/* 
******************************* 
IP-SYMCON Event Scripting 
******************************* 
File     : AZ_SwitchTemp.ips.php 
Trigger  : 
Interval : 
*/ 
SetValueFloat("AZ_Temp_Temp", floatval(16+GetValueInteger("AZ_FHT_SwitchTemp")) ); 
?>