Dans la même ligné que mon article précédant qui consistait à récupérer les températures des disque dures via php, je continu ici en m’attaquant cette fois ci aux température du processeur et GPU récupéré avec lm_sensors.

Curieusement, je n’est trouvé aucune classe pour récupérer ce genre d’informations avec PHP (Ou alors j’ai mal cherché, ce qui est possible). Je me suis donc amusé à faire une classe PHP. Alors certes, elle est spartiate et pas forcement complète mais elle fonctionne.

Le principe est de récupérer la sortie de la commande sensors, pour ensuite extraire les informations que l’on a besoin. Voila, un petit exemple d’utilisation de la classe:

try{
	$my_sensors = new sensors();
}catch(Exception $e){
	echo $e->getMessage();
}
print_r($my_sensors->list_chipsets());

Résultat:

Array
(
    [0] => acpitz-virtual-0
    [1] => asus-isa-0000
    [2] => coretemp-isa-0000
    [3] => nouveau-pci-0100
)

Avec un peu de récursivité, on peu facilement reproduire la sortie de sensors en ajoutant quelques balises html:

foreach($sensors->list_chipsets() as $chipset){
	echo '<h2>'.$chipset.'</h2>';
	foreach ($sensors->list_sensors($chipset) as $sensor) {
		echo '<b>'.$sensor.': </b>';
		echo $sensors->get_sensor_value($chipset, $sensor).' °C';
		echo '<br>';
	}
}

Voila ! C’est certainement pas “foolproof”, mais elle peut toujours servir.
La classe est disponible ici

Nota Bene: Évidement, comme il faut lm_sensors, inutile de dire que cette classe ne fonctionne que sous Linux.