psensor-server(1) Temperature and system monitoring Web server


psensor-server [,OPTION/]...


psensor-server is an HTTP server for monitoring hardware sensors remotely.

It provides a JSON Web service which can be used by psensor(1) to monitor remotely the hardware sensors of a computer.

It can provide information about:
  * the temperature of the motherboard and CPU sensors (using lm-sensors).
  * the temperature of the Hard Disk Drives (using hddtemp).
  * the rotation speed of the fans (using lm-sensors).

It is also possible to connect to the psensor-server with a browser, a simple Web page is displaying the sensors information and the CPU usage.

The URL http://hostname:3131/api/1.0/sensors/[id] returns a JSON object containing all information about a sensor. [id] is the uniq identifier of the sensor.

Here is an example of the JSON object of type 'sensor':

{ "id": "lmsensor acpitz-virtual-0 temp1",
  "name": "temp1", 
  "type": 257, 
  "min": 47.800000, 
  "max": 60.800000,
  "measures": [ { "value": 47.800000, "time": 1311374873 },
                { "value": 49.800000, "time": 1311374878 },
                { "value": 49.800000, "time": 1311374883 } ],
  "last_measure": { "value": 49.800000, "time": 1311374883 } }

Fields of the type 'sensor':

   * id: the uniq identifier of the sensor.
   * name: a humean readable name of the sensor (might not be uniq).
   * type: the type of sensor. Look at src/lib/psensor.h for the
     different types.
   * min: the minimal value of the sensor.
   * max: the maximal value of the sensor.
   * measures: all measures of the sensor.
   * last_measure: the last value of the sensor.
   * time: the time of a measure as the number of seconds since

The URL http://hostname:3131/api/1.0/sensors returns a JSON array containing all JSON objects of type 'sensor'.

psensor-server can be stopped by sending an HTTP request with the URL 'http://hostname:port/api/1.0/server/stop'.


-h, --help
display this help and exit
-v, --version
display version information and exit
webserver port
directory containing webserver pages
-d, --debug=,LEVEL/
set the debug level, integer between 0 and 3
-l, --log-file=,PATH/
set the log file to PATH
--sensor-log-file=,PATH/ set the sensor log file to PATH
--sensor-log-interval=,S/ set the sensor log interval to S (seconds)


Sensors can be logged using the --sensor-log-file option.

It is using a text format, each line is terminated with a NEWLINE char.

The first line is: I,%D,%V

%D is the starting time of the log expressed as the number of seconds since EPOC.

%V is the version of psensor-server.

Following lines gives the ordered list of sensors: S,%I,%T

%I is the uniq identifier of the sensor.

%T is the hexadecimal representation of the sensor type.

Then, the values of all sensors are written: %D,%V...

%D is the number of seconds elapsed since the starting time of the log.

%V... is the list separated by a comma of the current value of all sensors. The ordering is the same than the list of sensor identifiers.

The value is expressed as a float with one digit precision. Temperatures are using Celsius unit.

The value is written only if it has changed.

Example: I,1345974927, S,lmsensor coretemp-isa-0000 Physical id 0,101 S,lmsensor coretemp-isa-0000 Core 0,101 S,lmsensor coretemp-isa-0000 Core 1,101 0,37.0,37.0,36.0 5,36.0,,36.0

Five seconds after the log starts, the temperature of the second sensor (Core 0) is still 37C.


psensor-server does not provide any way to restrict the connection to the HTTP server, worst, no effort has been made against malicious HTTP attacks. You should make the psensor-server port available only to a network or computer you trust by using the usual network security tools of the system (for example, iptables(8) ).


Report bugs to: [email protected]

psensor home page: <>


Copyright © 2010-2012 [email protected] License GPLv2: GNU GPL version 2 or later <>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.