RPi-Monitor

Falls das noch für jemanden hilfreich sein sollte findet man unter diesem Link eine vollständige Anpassung des RPi-Monitors an die Banane.

Habe gerade gesehen, dass die Version 2.10, die den BananaPi unterstützen soll, jetzt da ist.

Link

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

Danke für die Tipps.

Ich lege mir die Variablen jetzt im Script mit den gewünschten Typen direkt an, berechne die Werte, wie ich sie sehen möchte und lese auch stündlich gleich die static.json mit.

Die letzten 10 Stunden mit Graphen sehen schon mal ganz gut aus :).

Aber eigentlich sollte das alles in der V4 mit eigenem Script und „exec“ auch lösbar sein. Mal sehen was sich als nächstes Modul ergibt, das wäre dann leider etwas OS abhängig.

Hallo zusammen,

vielen Dank für den Tipp mit dem RPI-Monitor und für die Scripte.

Funktioniert auf Anhieb.

Hallo.

Gibt er bei euch auch für die CPU-Frequenz bei dem Pi2 immer nur 600 Mhz an!?

Nein, der Wert wechselt dynamisch je nach Lastbedarf.

Hatten wir nicht erst das Thema, dass die nie kaputt gehen. [emoji6]

Gesendet von iPhone mit Tapatalk

Im Zuge der Umstellung auf Symcon 4.4 habe ich festgestellt, daß es für Stretch eine neue Version des Monitors gibt. Die Installation von S.1 funktioniert nicht mehr.

Hinweise hier:

Gruß
Bruno