Anfänger - K(r)ampf mit Variablen bzw. Umwandlung

Bitte um Hilfe:

Ich lese mit dem Text-Parser die Daten meiner Wetterseite aus (klappt auch sehr gut.)

Ich sehe die Variablen auch im WEB-Interface unter Varablen mit den richtigen Werten, jedoch als String und kann aus diesen auch kein Diagramm bilden (ist ja klar).

Ich möchte die eingelesenen Werte nun entsprechend umwandeln (von String auf Float) um diese als Diagrammkurve darstellen zu können, bzw. die Werte anderswertig weiterverwenden.

Kann mir bitte jemand erklären wie diese Umwandlung durchzuführen ist ?

Habe leider (noch) keine Erfahrung in PHP.

mfg///MAR

http://de.php.net/manual/en/language.types.string.php#language.types.string.conversion



SetValueFloat("deinefloatvariable", $variable);


Du kannst in PHP einfach die Variable mit SetValueFloat setzen und PHP castet Sie automatisch nach Float. Wenn nicht, ist es keine gültige Gleitkommazahl…

Grüße, paresy

Vielen Dank aber ich schaff es nicht.

Hier mein Code:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : WS_Variablenumwandlung.ips.php
Trigger  :  WS_Aussentemperatur
Interval :
*/
SetValueFloat("WS_Aussentemperatur_U",$WS_Aussentemperatur) ;
/* Hier kommt Fehlermeldung !!!!!!
Notice: Undefined variable: WS_Aussentemperatur in line 10 */
print $WS_Aussentemperatur_U
?>

WS_Aussentemperatur ist die mit dem Textparser ausgelesene Variable der Wetterstation, WS_Aussentemperatur_U meine (neue) Float-Variable.

Muss man Variable in PHP deklarieren ? Es sind beide Variablen im Variablenverzeichnis vorhanden (siehe Bildschirmkopie).

mfg///MAR

Variablen.pdf (190 KB)

Der php-parser weiss nicht was $WS_Aussentemperatur ist…
besser wäre zb.


$WS_Aussentemperatur=20.5;    // sommer yipeeh
SetValueFloat("WS_Aussentemperatur_U", $WS_Aussentemperatur);
// hier wird es bestimmt keine fehler mehr geben.

Jetzt ist WS_Aussentemperatur deklariert und gibt es keine fehler mehr.
Ob dies das ist was du wunscht ist naturlich nicht der fall… nur zur deutung.

Grusse,
Fredje

suchst du das?


SetValueFloat("WS_Aussentemperatur_U", GetValueString("WS_Aussentemperatur")); 

Danke ihr beiden, aber …

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : WS_Variablenumwandlung.ips.php
Trigger  :  WS_Aussentemperatur
Interval :
*/
SetValueFloat("WS_Aussentemperatur_U", GetValueString("WS_Aussentemperatur"));
print $WS_Aussentemperatur_U
?>

bringt Fehlermeldung :

Warning: Wrong parameter type for setvaluefloat() in line 10

Beispiel von Fredje kann ich so auch nicht verwenden, ich möchte ja den in WS_Aussentemperatur bereits befindlichen String (z.B. -4,7) in eine Zahl umwandeln und in WS_Aussentemperatur_U speichern.

Ich bin Ratlos …

Kann das mit dem Komma statt dem Punkt in der Stringvariable WS_Aussentemperatur zu tun haben (derzeitiger Wert -4,7)

mfg///MAR


   $var = GetValueString("VarString");
   $var = str_replace(',', '.', $var);
   SetValueFloat("VarFloat", (double)$var);

Grüße, paresy

Danke, vielen Dank, das wars, jetzt funktioniert es !!! :slight_smile: :slight_smile: :slight_smile:

mfg///MAR