Як передати температуру процесора з Proxmox у Home Assistant через REST API

Багато користувачів хочуть бачити системні метрики своїх серверів прямо в Home Assistant. Один із найпростіших шляхів — зчитати температуру CPU на вузлі Proxmox і передати її в Home Assistant через вбудований REST API. Цей метод не потребує окремого брокера (типу MQTT) і налаштовується за кілька кроків.


Крок 1: Налаштування сенсорів на Proxmox

Встановіть пакети та перевірте, що температура читається коректно:

apt install lm-sensors
sensors-detect
sensors | grep 'Package id 0'

Команда sensors має показати значення температури CPU (наприклад, рядок із Package id 0).


Крок 2: Створення токена в Home Assistant

  1. Увійдіть у свій Home Assistant: http://<IP>:8123.
  2. Натисніть іконку профілю (ліворуч унизу).
  3. Прокрутіть до розділу Long‑Lived Access Tokens.
  4. Натисніть Create Token, дайте назву (наприклад, “Proxmox CPU”).
  5. Скопіюйте створений довгий рядок (починається з eyJh...) — це ваш токен доступу.

Токен показується лише один раз при створенні. Збережіть його безпечно та додайте у скрипт.


Крок 3: Скрипт на Proxmox для передачі даних у Home Assistant

Створіть файл /root/scripts/send_cpu_temp_to_ha.sh з таким вмістом:

#!/bin/bash

url_base="http://10.57.14.60:8123/api/states"
token="eyJh..."   # вставте ваш токен

sensor_id="sensor.proxmox_cpu_temperature"
cpu_temp=$(sensors | grep 'Package id 0' | awk '{print $4}' | sed 's/+//;s/°C//')

payload=$(cat <<EOF
{
  "state": "${cpu_temp}",
  "attributes": {
    "friendly_name": "Температура CPU 🧊",
    "unit_of_measurement": "°C",
    "icon": "mdi:cpu-64-bit"
  }
}
EOF
)

curl -s -X POST \
  -H "Authorization: Bearer ${token}" \
  -H "Content-Type: application/json" \
  --data "${payload}" \
  "${url_base}/${sensor_id}"

Зробіть файл виконуваним:

chmod +x /root/scripts/send_cpu_temp_to_ha.sh

Крок 4: Автоматизація через cron

Додайте завдання у crontab (оновлення кожні 5 хвилин):

crontab -e
*/5 * * * * /root/scripts/send_cpu_temp_to_ha.sh

Крок 5: Результат у Home Assistant

Після першого виконання скрипта в Home Assistant з’явиться сутність sensor.proxmox_cpu_temperature. Вона оновлюватиметься відповідно до розкладу cron і міститиме дружнє ім’я, одиниці вимірювання та іконку.

Важливо: сенсор, створений через REST API, не має unique_id, тому його налаштуваннями не можна керувати з інтерфейсу. Якщо потрібне керування через UI, додайте дзеркальний template‑сенсор у YAML:

- platform: template
  sensors:
    proxmox_cpu_temp_ui:
      friendly_name: "Температура CPU 🧊"
      unique_id: "proxmox_cpu_temp_ui"
      unit_of_measurement: "°C"
      icon_template: "mdi:cpu-64-bit"
      value_template: "{{ states('sensor.proxmox_cpu_temperature') }}"

Де увімкнути або знайти API Home Assistant

REST API у Home Assistant увімкнений за замовчуванням і доступний за адресою http://<IP>:8123/api/. Доступ контролюється токенами (див. розділ про створення токена). Окремих налаштувань у UI для увімкнення API немає — достатньо токена і коректного запиту.


Як бачити сенсори безпосередньо в Proxmox

На самому вузлі використовуйте команду sensors для перегляду температур:

sensors
sensors | grep 'Package id 0'

За потреби встановіть додаткові пакети (наприклад, hddtemp для дисків). У веб‑GUI Proxmox відображаються базові метрики, а деталі зручно дивитися через консоль.


Висновок

Схема Proxmox → Home Assistant через REST API — це швидкий і надійний спосіб інтеграції температури CPU: Proxmox збирає дані через lm-sensors, скрипт надсилає їх у /api/states, Home Assistant відображає сенсор, а cron забезпечує регулярні оновлення. Для повного керування сенсорами через UI додайте дзеркальний template‑сенсор з unique_id.

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.