Hallo,
ich habe eine Lösung für das Problem gefunden, wenn in der data.conf unter postprozessing eine Berechnung durchgeführt wird, wird aus dem String eine Zahl. Also einfach ein $1*1 dort eintragen.
Schöne Grüße
Thomas
Hallo,
ich habe eine Lösung für das Problem gefunden, wenn in der data.conf unter postprozessing eine Berechnung durchgeführt wird, wird aus dem String eine Zahl. Also einfach ein $1*1 dort eintragen.
Schöne Grüße
Thomas
Hallo,
wie genau geht das mit dem $1*1, wo muß das eingetragen werden.
Gruß
zkra
Hallo,
im Verzeichniss /etc/rpimonitor/template/ liegen die .conf Dateien.
Dort gibt es den Eintrag ".postprocess=", steht dort nichts drin gilt das Ergebniss als String.
Schöne Grüße
Thomas
Hallo Thomas,
besten Dank für die Info. Die Linux-Welt ist noch komplett neu für mich und ich brauchte erst noch ein wenig Verständnis und Zeit bis ich die *.conf Datei ändern konnte.
Bei den CPU-Load Werten habe ich jetzt noch das Problem wie der $1*1 Ausdruck bei den drei Werten dann anzugeben ist.
dynamic.3.name=load1,load5,load15
dynamic.3.source=/proc/loadavg
dynamic.3.regexp=^(\S+)\s(\S+)\s(\S+)
dynamic.3.postprocess=$1*1
dynamic.3.rrd=GAUGE
So stellt er nur noch den ersten auch im Webfront dar.
Vielleicht hast Du ja noch einen Tipp dazu.
Gruß aus dem Südschwarzwald
zkra
Hallo,
bis ebend hatte ich gar nicht gemerkt das die Daten fehlen, ich habe jetzt einmal das probiert.
dynamic.3.postprocess=$11,$21,$3*1
Schöne Grüße
Thomas
Hallo Thomas,
funktioniert
Danke
zkra
Falls das noch für jemanden hilfreich sein sollte findet man unter diesem Link eine vollständige Anpassung des RPi-Monitors an die Banane.
Add BananaPi configuration files (found in BananaPi forum)
Richtig. Das meinte ich.
Danke für den Hinweis. Ich habe das Update auf die Version 2.10 durchgeführt. Welche Anpassungen sind danach für den Banana PI noch zusätzlich erforderlich? Reicht es aus, den Link „data.conf -> /etc/rpimonitor/template/raspbian.conf“ durch „data.conf -> /etc/rpimonitor/template/bananian.conf“ zu ersetzen? Und ist dieser Schritt auch dann richtig, wenn ich den Banana mit einem Raspian-Image verwende?
Gruß
Peter
Einfach der Anleitung in dem Link folgen.
Sent from my iPhone using Tapatalk
Meine Erkenntnisse (in Bezug auf die Anleitung):
Punkt 1: Bei der Version 2.10 sind die conf-Files schon mit dabei -> keine Änderungen notwendig
Punkt 2: Battery icon ist auch schon dabei
Punkt 3: Link muss weiterhin eingerichtet werden
Der Daemon temp-daemon.sh muss gestartet werden, um insbesondere die CPU-Temperatur darstellen zu können (sonst wird nur die PMU-Temperatur angezeigt). Wer die Temperaturen von evt. angeschlossenen HDD/SSD nicht benötigt, muss das hddtemp-Paket nicht installieren, sollte dann aber im daemon-Script die entsprechenden Zeilen 36-39 auskommentieren.
Da die Messung der CPU-Temperatur in dem Thread von tkaiser in seinen conclusions in Frage gestellt wird, kann man vielleicht auf den Daemon auch verzichten (?).
Was ich noch nicht verstehe:
Im Abschnitt CPU sehe ich
„CPU frequency: 720 MHz PMU Current: 331mA
Scaling governor: fantasy“
Dies bekomme ich auch mit „cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor“ bzw. /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq.
In der Anleitung dagehen steht „Scaling governor: ondemand“ und 600 MHz.
Ist das bei Euch auch so? Ich nutze zwar den Banana Pro, aber dieser hat dieselben Chips wie der Banana PI.
Gruß
Peter
Hi hab mich auch mal etwas dran gemacht. Was mir fehlt sind irgendwie die Versions infos als Variable…
Okay manchmal sieht man den Baum einfach nicht:)
Code angepasst und funktioniert einbandfrei allerdings muss ich wohl noch etwas anpassen hier mal zum schauen…
Gibt’s mit dem RPi-Monitor schon „langzeiterfahrungen“?
Nimmt durch die Statistik der Speicherverbrauch merklich zu?
Oder schluckt das Teil einiges an Performance?
Habt ihr mal die Werte des Frontends mit den Werten im json verglichen?
Bei mir stimmt nichts überein :eek:, die Werte ändern sich, die „localtime“ auch, aber im json stehen völlig andere Werte wie im Frontend.
Update:
Nach Update auf die Beta von Xavier sind die Werte identisch. Da einige Werte als String zurückgegeben werden, obwohl sie kein String sein müssen, ist wohl noch manueller Aufwand notwendig. Statistik könnten wir ja selber.
Eigentlich ist das eh’ mit Kanonen auf Spatzen …, die Daten liegen relativ einfach auf Shellebene vor und der Webserver müstte nicht sein. Naja, mal sehen …
Hallo,
bei den Stringwerten muss man in den RPi Konfigdatei den Wert einfach noch einmal mit 1 Multiplizieren.
Dann werden diese Werte als Zahlen erkannt.
Schöne Grüße
Thomas
Wo/wie genau?
Z.B. in der cpu.conf
...
dynamic.3.name=load1,load5,load15
dynamic.3.source=/proc/loadavg
dynamic.3.regexp=^(\S+)\s(\S+)\s(\S+)
dynamic.3.postprocess=$1*1
...
führt trotzdem zu Strings.
Update:
Ich nehme die Rohwerte und wandel sie entsprechend um, dann kann ich auch das Logging vom IPS nutzen.
Vielleicht darf ich’s wagen und an Paresy’s Skript noch ein bisschen Hand anlegen, dann klappt’s auch mit den floats :). Auch ein Abbruch bei Nicht-Erreichbarkeit des PI inkludiert (vermeidet lästige Logging-Fehler).
Danke übrigends für den Hinweis an PeterChrisben - nützliche Sache.
<?
$ip = 'X.X.X.X';
$port = '8888';
$ping = Sys_Ping($ip, 1000);
if ($ping == false) goto NoPing;
$data = file_get_contents("http://".$ip.":".$port."/dynamic.json");
$data = json_decode($data);
//print_r($data);
foreach($data as $key => $value) {
if(is_array($value))
continue;
$type = 2;
if(is_string($value))
if (strpos($value,".") !== false)
$type = 2;
else if (preg_match('/^[0-9]*$/', $value))
$type = 2;
else
$type = 3;
if ($type == 2) $value = (float) $value;
SetValue(CreateVariableByIdent($_IPS['SELF'], $key, $key, $type), $value);
}
function CreateVariableByIdent($id, $ident, $name, $type)
{
$vid = @IPS_GetObjectIDByIdent($ident, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetIdent($vid, $ident);
}
return $vid;
}
NoPing:
?>
Gruß
hoep
Kann man zum Teil bestimmt selbst in PHP lösen.
Beispiel für den Pi2:
<?
$id1 = CreateVariableByName($_IPS['SELF'], "Temperatur", 2);
$id2 = CreateVariableByName($_IPS['SELF'], "Volts", 2);
$id3 = CreateVariableByName($_IPS['SELF'], "Clock", 2);
SetValue($id1 ,(exec("cat /sys/class/thermal/thermal_zone0/temp "))/1000);
SetValue($id2 ,(float)(substr(exec("vcgencmd measure_volts"),5)));
SetValue($id3 ,(int)((exec("cat /sys/devices/system/cpu/cpu0//cpufreq/scaling_cur_freq")) / 1000));
function CreateVariableByName($id, $name, $type)
{
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid===false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
}
return $vid;
}
function CreateEventIDByName($id, $name, $type)
{
$eid = @IPS_GetEventIDByName($name, $id);
if($eid===false) {
$eid = IPS_CreateEvent($type);
IPS_SetParent($eid, $id);
IPS_SetName($eid, $name);
}
return $eid;
}
?>
Hallo,
wie das genau geht ist weiter vorne beschrieben.
https://www.symcon.de/forum/threads/25387-RPi-Monitor?p=232998#post232998
Die CPU ist etwas spezieller, da es 3 Werte sind, ist aber auch weiter vorne beschrieben.
Schöne Grüßen
Thomas