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: :wink:](https://community.symcon.de/images/emoji/win10/wink.png?v=9)
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: :wink:](https://community.symcon.de/images/emoji/win10/wink.png?v=9)
Michael
Danke für eure Hilfe!
Habs im Netz gefunden
$gputemp = (float)(exec("/opt/vc/bin/vcgencmd measure_temp|cut -c6-9"));
Gruß