LINUX.ORG.RU

Считать температуру ЦПУ в скрипте

 ,


0

1

Всем привет!

Пробую задействовать Питон для считывания температуры ЦПУ, предоставляемой lm-sensors, через pysensors (https://pypi.org/project/PySensors/) последней версии, 0.04.

Написал вот такой скрипт:

import sensors

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

Так оно валится с каким-то SensorError:

---------------------------------------------------------------------------
SensorsError                              Traceback (most recent call last)
<ipython-input-3-b99cb5b9d71e> in <module>
      2     for chip in sensors.iter_detected_chips():
      3         for feature in chip:
----> 4             print('chip %s label %s value %s' % (chip, feature.label, feature.get_value()))
      5 finally:
      6     sensors.cleanup()

/usr/local/lib/python3.8/dist-packages/sensors/__init__.py in get_value(self)
    140         # TODO Is the first always the correct one for all feature types?
    141         #
--> 142         return next(iter(self)).get_value()
    143 
    144 

/usr/local/lib/python3.8/dist-packages/sensors/__init__.py in get_value(self)
     88     def get_value(self):
     89         result = c_double()
---> 90         _get_value(byref(self.parent.chip), self.number, byref(result))
     91         return result.value
     92 

/usr/local/lib/python3.8/dist-packages/sensors/__init__.py in _error_check(result, _func, _arguments)
     34 def _error_check(result, _func, _arguments):
     35     if result < 0:
---> 36         raise SensorsError(_strerror(result), result)
     37     return result
     38 

SensorsError: b"Can't read"

Гуглежка дала ссылку на какую-то невнятную багу пятилетней давности.

К слову сказать, команда sensors отрабатывает без ошибок, показывая показания датчиков.

Какие есть идеи?

★★★★★

прав не хватает на чтение?

anonymous
()

Какие у тебя интересные трейсбеки. Это в новой версии питона такие?

lm-sensors для температуры только цпу ненужны:

cat /sys/devices/platform/coretemp*/hwmon/hwmon?/temp?_input

temp1_input — для всей сборки, но это не среднее, а отдельный датчик, насколько я понимаю.

anonymous
()
Ответ на: комментарий от anonymous

обломись :) такой раздел есть не везде. у себя вот не обнаружил.

имхо лучше смотреть по классу аппаратуры
/sys/class/hwmon/
а там а подкаталогиях temp

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от anonymous

temp1_input

А, не, это максимальная.

anonymous
()

print(‘chip %s label %s value %s’ % (chip, feature.label, feature.get_value()))

SensorsError: b"Can’t read"

ИМХО. Если проблема с каким-то одним, разбей вывод на две строки (get_value отдельно) и посмотри, на каком датчике падает. А потом тупо добавь исключение

router ★★★★★
()
Ответ на: комментарий от qaqa

Спасибо, с мастера заработало. После установки хидеров для сборки и доделки примера до рабочего состояния.

seiken ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Какие у тебя интересные трейсбеки. Это в новой версии питона такие?

Это из jupyter notebook, питон 3й, а конкретно тот, который в убунте ЛТС последний.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

А, а я думал, что в последнем питоне так переделали. Они там что-то как раз в этой области обновляют уже две версии подряд.

anonymous
()
Ответ на: комментарий от pfg

обломись-ответка )))

лучше смотреть по классу аппаратуры

/sys/class/hwmon/

а там а подкаталогиях temp

а нет там никаких подкаталогий temp (в моём случае)

p.s. «датчики» нашёл, но вот универсального пути к ним похоже нет.

anonymous
()
Ответ на: комментарий от pfg

ибо нет стандарта где чаго искать.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Иногда там бывает подкаталог device/ в hwmon*/

anonymous
()

Зачем тебе lm-sensors? Что в /sys/class/thermal/ не прочитать?

burato ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.