Overview

PySensors

Author: Marc 'BlackJack' Rintsch
Date: 2011-10-09

Python bindings for libsensors.so from the lm-sensors project via ctypes. Trying to support the last two libsensors APIs — versions 3 and 4.

Motivation

Motivation for this package are shortcomings of scraping the output of the sensors command by different shell scripts. Some had problems when labels changed, others could not cope with too many matches of their overly broad regular expressions, and so on. Those scripts and thus this package are used at RebeIT for monitoring servers. The needs of that task are the driving force behind this implementation.

Requirements

  • Python ≥2.6
  • libsensors.so from lm-sensors version 2.x (API 3) or 3.x (API 4)

The package is pure Python, so any implementation with the ctypes module should work. Tested so far with CPython and PyPy.

Installation

The usual python setup.py install from within the source distribution.

Example

The following example prints all detected sensor chips, their adapter, and the features with they ”main” value for each chip:

import sensors

sensors.init()
try:
    for chip in sensors.iter_detected_chips():
        print '%s at %s' % (chip, chip.adapter_name)
        for feature in chip:
            print '  %s: %.2f' % (feature.label, feature.get_value())
finally:
    sensors.cleanup()

Example output of the code above:

k8temp-pci-00c3 at PCI adapter
  Core0 Temp: 16.00
  Core0 Temp: 11.00
  Core1 Temp: 28.00
  Core1 Temp: 19.00
w83627ehf-isa-0290 at ISA adapter
  Vcore: 1.10
  in1: 1.10
  AVCC: 3.30
  VCC: 3.31
  in4: 1.68
  in5: 1.68
  in6: 1.86
  3VSB: 3.30
  Vbat: 3.06
  in9: 1.55
  Case Fan: 1231.00
  CPU Fan: 2410.00
  Aux Fan: 0.00
  fan5: 0.00
  Sys Temp: 39.00
  CPU Temp: 31.50
  AUX Temp: 30.50
  cpu0_vid: 0.00
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.