$Variablen aus Skript in IPS Variablen übergeben

Hallo Leute,

kann mir einer sagen wie ich eine „$Variable“ aus einem Skript an eine „RealVariable“ im IPS übergeben kann?
Hab im Forum schon gesucht un „SetValue“ gefunden, aber da bekomme ich immer die Meldung
„Parameter type of Value does not match“
Kann mir einer sagen wie das richtig heißt oder mir den Link zu Anleitung schicken?
Danke

Gruß

Die Doku ist ja schwer zu finden …
http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/

Für die Fehlermeldung siehe Beschreibung unter SetValue

Gruß
Bruno

Super Danke jetzt gehts, als was muß ich sie denn in IPS anlegen?
Hab jetzt einfach Variable vom Typ Real gewählt,beleibt aber auf 0,0 stehen.
Er zeigt zwar an das er aktualisiert wurde…

Gruß

Die Variable in Deinem Skript muss den gleichen Typ haben, wie die „externe“ Variable, siehe Doku. Typ Real kenne ich nicht.

Sorry, Real = Float

mh kannst du mir meinen Fehler sagen?

<?php
$cputemp = (exec("cat /sys/class/thermal/thermal_zone0/temp"));
echo ($cputemp/1000)."°C";
?><br />
<?php
$Spannung = (float)(substr(exec("vcgencmd measure_volts"),5));
echo $Spannung;
?><br />
<?php
$freq = (exec("cat /sys/devices/system/cpu/cpu0//cpufreq/scaling_cur_freq"));
echo ($freq/1000)."MHz";
?><br />
<?php
$gputemp = (exec("/opt/vc/bin/vcgencmd measure_temp"));
echo $gputemp;
?><br />
<?php

SetValue(28450 /*[RaspberryPi\Variablen\CPU Temp]*/, $cputemp);
SetValue(39258 /*[RaspberryPi\Variablen\CPU_Span]*/, $Spannung);
SetValue(20970 /*[RaspberryPi\Variablen\CPU_Freq]*/, $freq);
SetValue(25488 /*[RaspberryPi\Variablen\GPU Temp]*/, $gputemp);

?>

als Meldung kommt…

51.382°C
1.2V
700MHz
temp=51.4'C
Parameter type of Value does not match in /etc/symcon/scripts/__extensions.inc.php on line 62Variable #48269 does not exist in /etc/symcon/scripts/__extensions.inc.php on line 62Parameter type of Value does not match in /etc/symcon/scripts/__extensions.inc.php on line 62

Das einzigste was er richtig, ohne Fehler ausliest/übergibt ist die Spannung.

Gruß

Fehlen nur noch die angelegten Variablen bzw. die sind alle Typ float?

Vielleicht mal eine String-Variable probieren

Naja angelegt sind sie ja, weis nicht genau ob sie alle Flaot sind…
Enthalten String Variablen nicht „Namen“

Sind richtig angelegt, steht ja float dran. :wink:

Bei Deinem Skript fällt mir auf, dass nur bei der Spannung (float) davor steht. Habe keine Ahnung von dem Skript, aber vielleicht gehört das überall rein (Typdefinition).

Hab mir das selbst zusammen gefrickelt, fange erst mit php an.
Mit String geht’s…
Perfect wenn ich überall Float mit davor schreibe geht’s.

Danke dir!

Und da IPS die Ausgabe von Scripten (echo, und alles außerhalb von den php-tags) loggt und als Fehler rauswirft, solltest du das Script nach dem es läuft dahingehend bereinigen.
Für Log-Meldungen gibt es extra einen IPS-Befehl.
Michael

Werde ich zum schluß nur das drinne lassen was unbedingt drin stehen muß, das echo steht nur zur kontrolle drin.

Kann man einen Sring auch irgendwie aufsplitten, weil bei der gputemp kommt „temp=55.1´C“ als Wert.

PHP.net ist immer eine gute Anlaufstelle. Kannst mit split z.B. auf das = Zeichen trennen und dann…
Oder reguläre Ausdrücke z.b. mit preg_match…
Aus dem Kopf bekomme ich das aber auch nicht hin :wink:
Michael

Danke für eure Hilfe!

Habs im Netz gefunden

$gputemp = (float)(exec("/opt/vc/bin/vcgencmd measure_temp|cut -c6-9"));

Gruß