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:
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:
- Ubuntu: www.ubuntu.com
- Psensor: wpitchoune.net
- iWebkit: snippetspace.com
Nice IPhone client! 🙂
FYI, you can convert easily the numeric type of the sensor into a string, the constants are defined by:
http://wpitchoune.net/svnpub/psensor/trunk/src/lib/psensor.h (the enum psensor_type at the begining of the header file).
I am not sure because I had to use google translate to read your article but it seems that you complain about the lack of documentation. Feel free to send me an email if you have a question.