• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Home Assistant Container
      • Автоматизации
      • Lovelace
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Подключение источника бесперебойного питания (ИБП, UPS) к Home Assistant и Proxmox

22 мая, 2026

Smart UPS W150: https://ali.click/x5hnc18?erid=2SDnjc2kp4S

Попали мне тут в руки эти умные ИБП и захотелось такой пристроить к своему серверу Home Assistant.

UPS подключается по USB к серверу и отдаёт все по NUT.

Network UPS Tools (NUT) — набор программных компонентов, разработанный для мониторинга и управления источниками бесперебойного питания (ИБП) в сетевой инфраструктуре. Система объединяет драйверы, серверную и клиентскую части, что позволяет контролировать состояние ИБП и автоматизировать важные действия, например, корректное завершение работы компьютеров при потере электропитания.

 

Addon Network UPS Tools:

В Home Assistant есть прям Аддон с NUT сервером. Он в Магазине аддонов есть по умолчанию.  Устанавливаем его.

 

Переходим на Вкладку Конфигурация и тут нужно пользователю задать пароль (он должен быть  сложным, простой пароль не примет). И обязательно нужно поставить в пункте upsmon параметр “secondary”.

 

Devices тоже нужно поправить так как показано на скрине:

 

 

Обратите внимание на параметр productid=D005 и vendorid=04D8 – эти параметры тоже обязательны их вписывать вручную.

 

И чтоб удалённо можно было подключаться к нашему серверу NUT, нужно прописать порт 3493 в пункте “СЕТЬ”:

 

 

После этого сохраняем все это дело и запускаем аддон. Удостоверяемся, что ошибок нет и идём дальше настраивать интеграцию.

 

Интеграция Network UPS Tools (NUT):

Интеграция стандартная, она есть в Home Assistant по умолчанию.

При добавлении интеграции попросит ip адрес, порт логин и пароль. ip адрес у нас локальный, по этому можно оставить localhost, но это у меня не заработало, мне пришлось имя аддона указывать. Его можно найти прям на главной странице аддона и у меня это имя a0d7b954-nut

 

После добавления, добавляется UPS со всеми сенсорами которые у него есть:

 

 

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

 

Настройка Proxmox сервера:

Home Assistant у меня в виртуалке и смысла нет выключать к примеру виртуалку, когда уровень заряда ИБП опустится ниже 10%. Нужно выключать сам сервер proxmox и все виртуалки.

ЧТоб это сделать, нужно на сервер proxmox установить клиент NUT.

apt install nut-client -y

 

Далее редактируем файл:

nano /etc/nut/nut.conf

тут внутри одну строчку оставляем:

MODE=netclient

Далее редактируем следующий файл:

 

nano /etc/nut/upsmon.conf

 

Добавляем в него строчку:

 

MONITOR "myups@192.168.31.104:3493" 1 "admin" "141аыфафf" slave

Где 192.168.31.104 ip адрес nut сервера, в нашем случае это сервер Home Assistant. Логин и пароль еще указываем.

 

 

 

после этого добавляем службу в автозагрузку:

 

systemctl enable nut-monitor

 

Запускаем её:

 

systemctl start nut-monitor

 

Проверяем чтоб ошибок не было:

 

systemctl status nut-monitor

 

Если что, вот эти connection failure – это старые сообщения, я тогда сервер перезапускал.

 

И еще есть команда, чтоб запросить данные с ИБП:

upsc myups@192.168.31.104:3493

И вывод должны получить примерно такой:

 

Клиент настроили, он работает, теперь давайте настроим скрипт, который будет при отключении питания выключать не важные виртуальные машины, а когда заряда ИБП останется меньше 10%, потушит остальные виртуальные машины и выключит сервер сам.

 

Скачиваем скрипт:

curl -o /usr/local/sbin/proxmox-shutdown.sh https://raw.githubusercontent.com/jordanmack/proxmox-ups-shutdown/refs/heads/main/proxmox-shutdown.sh

Делаем файл исполняемым:

chmod +x /usr/local/sbin/proxmox-shutdown.sh

Редактируем его:

nano /usr/local/sbin/proxmox-shutdown.sh

 

Тут обращаем внимание на 3 параметра:

POWER_FAILURE_WAIT_TIME=300 # Время в секундах, после отключения питания производить проверку восстановления питания каждые 300 секунд.

UPS_IDENTIFIER="myups@192.168.31.104:3493" # Адрес NUT сервера

DEFAULT_ACTION="shutdown" # Команда на выключение сервера.

 

Далее идём редактировать еще один файл:

nano /etc/nut/upssched.conf

 

В нём должно быть такое содержимое:

CMDSCRIPT /etc/nut/upssched-cmd.sh
PIPEFN /run/nut/upssched.pipe
LOCKFN /run/nut/upssched.lock

# При переходе на батарею запускаем таймер на 60 секунд
AT ONBATT * START-TIMER onbatt_noncrit 60
# Если питание вернулось — отменяем таймер
AT ONLINE * CANCEL-TIMER onbatt_noncrit
# При низком заряде — немедленно выключаем всё
AT LOWBATT * EXECUTE lowbatt

 

Создаём скрипт, который будет выключать не важные виртуальные машины:

nano /etc/nut/upssched-cmd.sh

 

Содержимое файла:

 

#!/bin/bash

case $1 in
  onbatt_noncrit)
    logger "UPS on battery for 60 seconds, stopping non-critical VMs"
    # Здесь можно добавить выключение конкретных ВМ по ID
    for vm in 100 101 102; do # ID ваших некритичных ВМ
       qm status $vm | grep -q running && qm shutdown $vm
    done
    ;;
  lowbatt)
    logger "UPS battery low (≈10%), shutting down all VMs and Proxmox"
    # Выключаем все ВМ
    pvenode stopall
    sleep 30
    # Выключаем сам Proxmox
    /sbin/shutdown -h now
    ;;
esac

 

делаем исполняемый файл:

chmod +x /etc/nut/upssched-cmd.sh

 

В скрипте перечисляем виртуальные машины которые не критичные и их можно сразу выключать.

 

Ну и еще раз идём в файл:

nano /etc/nut/upsmon.conf

 

И тут добавим еще одну строчку:

NOTIFYCMD /usr/local/sbin/proxmox-shutdown.sh

 

Это путь к скрипту. Выглядит это так:

 

На этом настройка завершена.

 

Теперь в случае отключения питания, скрипт сразу отработает и подаст команду на выключение не критичных виртуальных машин. Это с экономит потребление заряда.

Далее если процент заряда опустится ниже 10%, то сервер начнёт выключать оставшиеся виртуальные машины и выключится самостоятельно.

 

 

Primary Sidebar

Поиск

Новые записи

  • ESP32-S3-RLCD-4.2 в ESPHome и Xiaozhi
  • Настройка RPi-Zero-PhotoPainter под работу с Inkypi
  • ASRock AMD BC-250 Разблокировка всей памяти под Видео и разблокировка CUDA ядер
  • Подключение источника бесперебойного питания (ИБП, UPS) к Home Assistant и Proxmox
  • Установка ESPClaw

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Secondary Sidebar

Мой Telegram канал:

https://t.me/ypavla

Мой Макс канал:

https://max.ru/ypavla

Footer

Copyright_У Павла! © 2026 ·