HowTo Psensor Server + API nutzen

internet

Psensor ist ein grafischer Temperatur Monitor für Linux von wpitchoune.net. Psensor gibt es, wenig dokumentiert, aber auch in einer Server Version, um die Temperatur auch aus der Ferne überwachen zu können. Da ich gerade überlege einen Homeserver zu basteln, wollte ich dieses Feature mal ausprobieren. Im folgenden möchte ich kurz zeigen wie Psensor Server und die API unter Ubuntu 11.04 installiert und genutzt werden können.

Voraussetzt das LM-Sensors installiert und eingerichtet ist. Dazu gibt es bereits vielen Anleitungen, zB im ubuntuusers Wiki.

Von Psensor gibt es 2 PPA’s, eins mit den stabilen und eins mit den Entwicklungsversionen, je nachdem was ihr möchtet ihr entweder

sudo apt-add-repository ppa:jfi/ppa

die stabilen, oder

sudo apt-add-repository ppa:jfi/psensor-unstable

für die Entwicklungsversionen aus. Mit

sudo apt-get update
sudo apt-get install psensor-server

wird der Server installiert. Ihr könnt den Server jetzt mit

psensor-server

starten. Sinnvoll ist es aber einen Eintrag unter /etc/init/psensor-server.conf anzulegen, um den Server bei jedem Boot automatisch zu starten. Ein Beispieleintrag sieht so aus:

start on runlevel [2345]
stop on shutdown
respawn
 
exec sudo -H -n -u USERNAME psensor-server

So wird der Server beim erreichen der Runlevel 2-5 automatisch von UpStart unter den Usernamen „USERNAME“ (hier natürlich euren Namen eintragen) gestartet, gestoppt wenn das System runterfährt und neugestartet falls er abstürtzt.

 

Nachdem der Server nun läuft, könnt ihr über die Adresse http://hostname:3131/monitor.lua die Uptime, Auslastung und natürlich Temperaturen, Drehzahlen und alles was LM-Sensors sonst noch so auslesen kann, einsehen. Standardmäßig werden die Werte alle 5 Sekunden aktualisiert. So sieht die Seite bei mir aus:

Psensor Monitoring Page

Die Anzahl der LM-Sensor kompatiblen Sensoren und Lüfter hält sich wie man sieht bei mir in Grenzen. 😉  Je nach Komponenten sieht hier deutlich mehr. Diese Seite sollte nicht öffentlich zugänglich gemacht, da dieser mini Webserver überhaupt keinen Schutz von irgendwelchen Angriffen bietet. Für diesen Zweck hat der Entwicker eine API entwickelt, die uns alle relevanten Daten im JSON Format liefert.

Die API ist unter http://hostname:3131/api/1.0/sensors erreichbar, und liefert in meinen Beispiel folgenden zurück:

[ { "id": "lmsensor acpitz-virtual-0 temp1", "name": "temp1", "type": 257, "min": 47,000000, "max": 48,000000, "last_measure": { "value": 48,000000, "time": 1308696973 } } ]

Eine ID des Sensors, einen Namen, einen Typ, die minimale und maximale Temperatur und die letzte Messung mit Temperatur und Zeit. Mit JavaScript oder PHP könnte man dieses JSON Dokument laden und dann auf seine Homepage ausgeben. Als kleines Beispiel habe ich eine kleine iPhone WebApp entwickelt, die mit Ajax die Werte von der Psensor Server API ausließt, und iPhone optimiert ausgibt:

Links: