PSENSOR-SERVER(1)

πŸ’– PSENSOR-SERVER πŸ’–

okay bestie, welcome to the manual page for psensor-server, which lives in section 1 of the manual (user commands, the fun section). it's literally a temperature + system monitoring Web server and i'm about to tell you everything about it 🫢


✨ NAME ✨

psensor-server β€” Temperature and system monitoring Web server 🌑️πŸ–₯️


🌸 SYNOPSIS 🌸

psensor-server [OPTION]...

that's it. that's the whole vibe. options, plural, go wild ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

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

it provides a JSON Web service which can be used by psensor(1) to monitor remotely the hardware sensors of a computer. it's giving "i'm in my remote monitoring era" πŸ’…

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. so you can just, like, look at it πŸ‘€

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 1970/01/01.

the URL http://hostname:3131/api/1.0/sensors returns a JSON array containing all JSON objects of type 'sensor'. the whole roster. iconic 🌈

psensor-server can be stopped by sending an HTTP request with the URL 'http://hostname:port/api/1.0/server/stop'. that's the off switch, bestie, it's just a URL πŸ”₯


πŸ’… OPTIONS πŸ’…

  • -h, --help β€” display this help and exit
  • -v, --version β€” display version information and exit
  • -p,--port=PORT β€” webserver port
  • -w,--wdir=DIR β€” 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)

πŸŽ€ SENSOR LOG FILE πŸŽ€

sensors can be logged using the --sensor-log-file option. journaling era fr fr πŸ““

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. efficiency slay ✨

example: I,1345974927,0.7.0.4 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.


😭 WARNING 😭

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)).

okay this part is NOT cute, bestie, this part is serious. do not put this thing on the open internet, i am begging πŸ™ˆπŸ”’


πŸ› REPORTING BUGS πŸ›

Report bugs to: jeanfi@gmail.com

psensor home page: <http://wpitchoune.net/psensor>


Copyright Β© 2010-2012 jeanfi@gmail.com License GPLv2: GNU GPL version 2 or later <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


🌈 SEE ALSO 🌈

psensor(1), sensors(1), sensors-detect(8)


and that's a wrap, bestie πŸ’– this was psensor-server version 1.2.1, dated March 2025, and yes it really does keep the manual page title PSENSOR-SERVER(1) hanging around up top like a little crown. go monitor something, you absolute icon πŸ‘‘πŸ¦‹

πŸ“¦ where this page comes from