🏠 Home Assistant — посібник з підключення

Моніторинг енергоспоживання в реальному часі
Power Trace у Home Assistant

Home Assistant може показувати дані Power Trace поруч зі своїми пристроями. Окремої інтеграції поки немає, але є простий шлях: Power Trace віддає поточні виміри за адресою /live, а Home Assistant читає їх REST-сенсорами. Саму панель Power Trace можна вбудувати в Home Assistant як окрему сторінку. Усе налаштовується одним блоком YAML і кількома кліками.

Що потрібно: Power Trace працює і збирає дані; Home Assistant у тій самій мережі (або обидва в Tailscale); доступ до configuration.yaml — найзручніше через застосунок File editor (Налаштування → Застосунки → Встановити додаток).

1
🔌 Перевірте, що Home Assistant бачить Power Trace

Відкрийте в браузері на тому ж комп’ютері, з якого відкриваєте Home Assistant:

http://<адреса Power Trace>:8000/live

Має з’явитися текст JSON із "online": true і вимірами: power, voltage, current, pf, freq_hz, relay.

💡 Запишіть IP-адресу Power Trace — вона знадобиться в наступному кроці. Краще саме IP, наприклад 192.168.0.200, а не ім’я: не кожен пристрій знає ім’я без крапки на кшталт powertrace. На Raspberry Pi адресу покаже команда hostname -I — беріть ту, що з вашої локальної мережі.
2
📝 Додайте сенсори в configuration.yaml

Відкрийте configuration.yaml (у File editor: значок папки → configuration.yaml) і додайте в кінець файлу блок нижче. Якщо секція rest: у файлі вже є, додайте елемент у неї, а не другу таку саму секцію.

⚠ Замініть 192.168.0.200 на IP-адресу свого Power Trace з кроку 1. У блоці вона підсвічена — це єдине, що треба змінити. З чужою адресою сенсори будуть «недоступні».
rest:
  - resource: http://192.168.0.200:8000/live
    scan_interval: 10
    sensor:
      - name: "PowerTrace power"
        value_template: "{{ value_json.power | float(none) }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
      - name: "PowerTrace voltage"
        value_template: "{{ value_json.voltage | float(none) }}"
        unit_of_measurement: "V"
        device_class: voltage
        state_class: measurement
      - name: "PowerTrace current"
        value_template: "{{ value_json.current | float(none) }}"
        unit_of_measurement: "A"
        device_class: current
        state_class: measurement
      - name: "PowerTrace power factor"
        value_template: "{{ value_json.pf | float(none) }}"
        device_class: power_factor
        state_class: measurement
      - name: "PowerTrace frequency"
        value_template: "{{ value_json.freq_hz | float(none) }}"
        unit_of_measurement: "Hz"
        device_class: frequency
        state_class: measurement
    binary_sensor:
      - name: "PowerTrace relay"
        value_template: "{{ (value_json.relay or {}).on | default(false) }}"
        device_class: power
💡 Відступи в YAML значущі: по два пробіли на рівень, без табуляції. Після вставки перевірте, що rest: стоїть без відступу, а - resource: має рівно два пробіли.
3
🔄 Перевірте конфігурацію й перезапустіть
  • Налаштування → Інструменти → YAML → Перевірити конфігурацію (або адреса /config/tools/yaml). Має з’явитися «Конфігурація не завадить запуску Home Assistant!».
  • Там же натисніть Перезапустити → Перезапустити Home Assistant. Навіть без перевірки це безпечно: з помилкою в конфігу Home Assistant не перезапуститься і покаже її.
  • Інструменти → Стани, у фільтрі введіть powertrace.
✅ Мають з’явитися шість сутностей: sensor.powertrace_power, _voltage, _current, _power_factor, _frequency і binary_sensor.powertrace_relay — з тими самими значеннями, що на панелі Power Trace.
4
🖥 Вбудуйте панель Power Trace

Графіки, епізоди й аналіз Power Trace стандартними картками Home Assistant не відтворити, але саму панель можна додати як окрему сторінку:

  1. Налаштування → Інформаційні панелі → Додати інформаційну панель (або адреса /config/lovelace/dashboards)
  2. Оберіть Веб-сторінка
  3. URL: http://<адреса Power Trace>:8000/index.html
  4. Назва Power Trace, значок mdi:flash; щоб пункт був у бічному меню, лишіть показ на бічній панелі увімкненим
✅ У бічному меню Home Assistant з’явиться пункт Power Trace з повною панеллю всередині.
⚡
Якщо хочете енергію в дашборді «Енергія»

У /live лічильника кВт·год немає, але Home Assistant може порахувати енергію з потужності:

  1. Налаштування → Пристрої та сервіси → Помічники → Створити помічника → Інтегральний датчик (або адреса /config/helpers)
  2. Вхідний датчик sensor.powertrace_power, Метод інтеграції — «Правило трапеції», Метричний префікс — k, Одиниця часу — «Години»
  3. Адреса /config/energy → блок Електрична мережа → Додати з’єднання до мережі → оберіть створений сенсор

Стовпчики з’являться після завершення першої повної години. У нашій перевірці за годину вийшло 92 Вт·год проти 91 у Power Trace; при різких змінах навантаження різниця може бути більшою. Точна енергія — у самому Power Trace.

⚠ Якщо в «З’єднанні з мережею» вже є інше джерело для того самого лічильника, Home Assistant їх додасть, і споживання буде подвоєне. Лишіть одне.
🔔
Сповіщення про відключення світла

Лічильник живиться від тієї ж мережі, тож без світла він замовкає, і сенсори з кроку 2 стають «невідомо». На цьому можна побудувати автоматизацію: потужність «невідома» 5 хвилин — світла немає; число повернулось — світло з’явилось. Правити configuration.yaml не треба.

  1. Налаштування → Автоматизації та сцени → Додати автоматизацію → Створити нову автоматизацію, далі ⋮ → Редагувати YAML.
  2. Замініть вміст блоком нижче й збережіть.
alias: "Power Trace: світло зникло / з’явилось"
mode: queued
triggers:
  - trigger: state
    entity_id: sensor.powertrace_power
    to: [unknown, unavailable]
    for: { minutes: 5 }
    id: lost
  - trigger: state
    entity_id: sensor.powertrace_power
    from: [unknown, unavailable]
    id: back
actions:
  - choose:
      - conditions: [{ condition: trigger, id: lost }]
        sequence:
          - action: persistent_notification.create
            data:
              notification_id: powertrace_power
              title: Power Trace
              message: >-
                ⚡ Світло зникло о {{ as_local(trigger.to_state.last_changed).strftime('%H:%M') }}
                (або лічильник випав з Wi-Fi)
      - conditions:
          - { condition: trigger, id: back }
          - condition: template
            value_template: >-
              {{ (trigger.to_state.last_changed - trigger.from_state.last_changed).total_seconds() >= 300 }}
        sequence:
          - action: persistent_notification.create
            data:
              notification_id: powertrace_power
              title: Power Trace
              message: >-
                ✅ Світло з’явилось о {{ as_local(trigger.to_state.last_changed).strftime('%H:%M') }},
                не було {{ ((trigger.to_state.last_changed - trigger.from_state.last_changed).total_seconds() / 60) | round(0) | int }} хв
📱 Так повідомлення з’являються в сповіщеннях самого Home Assistant (дзвіночок). Щоб вони приходили на телефон, встановіть застосунок Home Assistant Companion і в обох місцях замініть persistent_notification.create на notify.mobile_app_<назва_телефона>, наприклад notify.mobile_app_pixel_8.
⏱ Сенсор стає «невідомо» приблизно через 2 хвилини після останнього виміру — стільки Power Trace чекає, перш ніж вважати дані застарілими. Тому час «зникло» тут трохи пізніший за справжній, а тривалість коротша: в одній нашій перевірці Home Assistant написав «не було 8 хв», а Power Trace — «11 хв». Точний час і тривалість дають сповіщення Power Trace.
✅ Перевірено, вимкнувши реле рубильником на 11 хвилин: обидва повідомлення прийшли.
🔒
Якщо Home Assistant відкривається через https

Тоді вбудована панель з http://-адресою не завантажиться: Home Assistant сам напише, що не може показати iframe з http. Потрібна https-адреса Power Trace. Найпростіше отримати її через Tailscale — і для Power Trace, і для Home Assistant, якщо в нього https ще немає:

  1. На машині з Power Trace увімкніть tailscale serve --bg http://127.0.0.1:8000 (на Raspberry Pi — через sudo), див. посібник Tailscale. Power Trace стане доступний як https://<ім’я>.<ваш tailnet>.ts.net.
  2. Якщо в Home Assistant https ще немає: Налаштування → Застосунки → Встановити додаток → Tailscale, у його конфігурації в «Share Home Assistant with Serve or Funnel» оберіть serve і збережіть. Поки що не запускайте.
  3. Налаштування → Система → Мережа → HTTP-сервер → Зворотний проксі (або адреса /config/network): увімкніть Довіряти X-Forwarded-For, у Довірені проксі додайте 127.0.0.1, натисніть Зберегти → Зберегти та перезапустити. Після перезапуску підтвердьте нові налаштування, інакше за кілька хвилин Home Assistant поверне старі.
  4. Запустіть застосунок Tailscale і підтвердьте вхід за посиланням з його журналу. Home Assistant стане доступний як https://homeassistant.<ваш tailnet>.ts.net.
  5. У веб-сторінці Power Trace (крок 4) вкажіть URL https://<ім’я Power Trace>.<ваш tailnet>.ts.net/index.html.
⚠ Порядок важливий: без кроку 3 застосунок Tailscale зупиняється з помилкою «Unable to connect to Home Assistant as reverse proxy». Ці налаштування задаються саме в інтерфейсі — блок http: у configuration.yaml сучасні версії Home Assistant ігнорують. І не обирайте funnel: він відкриває Home Assistant в інтернет.
✅ Перевірено: панель Power Trace працює всередині Home Assistant, відкритого через https. Обидві адреси .ts.net відкриваються лише на пристроях у вашій мережі Tailscale. REST-сенсори (крок 2) від цього не залежать: запити до /live робить сам Home Assistant, тож http-адреса там лишається.
i
Обмеження
  • Працює в межах домашньої мережі: пристрій, на якому ви дивитесь Home Assistant, має бачити Power Trace. Поза домом — лише через Tailscale.
  • Якщо Home Assistant відкривається через https://, вбудовуйте Power Trace за https-адресою — див. розділ вище.
  • Колектор оновлює виміри приблизно раз на хвилину, тож частіше опитувати немає потреби.
  • Коли Power Trace офлайн, числові сенсори стають «невідомо», а стан реле показує «вимкнено».
  • Окремої інтеграції чи MQTT з автовиявленням поки немає.
?
Якщо не працює

Сенсори «недоступні». Найчастіше в блоці лишилась адреса з прикладу. Перевірте адресу й мережу: відкрийте /live з машини Home Assistant. На запити за публічним ім’ям Power Trace відповідає 403 — використовуйте IP-адресу, ім’я .local, .lan чи ім’я з Tailscale.

Замість панелі — повідомлення про http. Home Assistant відкрито через https:// — див. розділ про https.

Помилка конфігурації. Найчастіше — відступи в YAML або друга секція rest:.

Потрібна інтеграція з MQTT і автовиявленням? Напишіть нам — так ми зрозуміємо, чи варто її робити.