Home Assistant может показывать данные Power Trace рядом со своими устройствами. Отдельной интеграции пока нет, но есть простой путь: Power Trace отдаёт текущие измерения по адресу /live, а Home Assistant читает их REST-сенсорами. Саму панель Power Trace можно встроить в Home Assistant как отдельную страницу. Всё настраивается одним блоком YAML и несколькими кликами.
Что нужно: Power Trace работает и собирает данные; Home Assistant в той же сети (или оба в Tailscale); доступ к configuration.yaml — удобнее всего через приложение File editor (Настройки → Приложения → Установить приложение).
Откройте в браузере на том же компьютере, с которого открываете Home Assistant:
Должен появиться текст JSON с "online": true и измерениями: power, voltage, current, pf, freq_hz, relay.
192.168.0.200, а не имя: не каждое устройство знает имя без точки вроде powertrace. На Raspberry Pi адрес покажет команда hostname -I — берите тот, что из вашей локальной сети.
Откройте 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
rest: стоит без отступа, а - resource: имеет ровно два пробела.
- Настройки → Инструментарий → 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.
Графики, эпизоды и анализ Power Trace стандартными карточками Home Assistant не воспроизвести, но саму панель можно добавить как отдельную страницу:
- Настройки → Панели → Добавить панель (или адрес
/config/lovelace/dashboards) - Выберите Веб-страница
- URL:
http://<адрес Power Trace>:8000/index.html - Название Power Trace, значок
mdi:flash; чтобы пункт был в боковом меню, оставьте показ на боковой панели включённым
В /live счётчика кВт·ч нет, но Home Assistant может посчитать энергию из мощности:
- Настройки → Устройства и службы → Вспомогательное → Создать вспомогательный объект → Интегральный сенсор (или адрес
/config/helpers) - Исходный сенсор
sensor.powertrace_power, Метод интеграции — «Метод трапеций», Префикс метрики —k, Единица времени — «Часы» - Адрес
/config/energy→ блок Электрическая сеть → Добавить подключение к сети → выберите созданный сенсор
Столбцы появятся после окончания первого полного часа. В нашей проверке за час вышло 92 Вт·ч против 91 в Power Trace; при резких изменениях нагрузки разница может быть больше. Точная энергия — в самом Power Trace.
Счётчик питается от той же сети, поэтому без света он замолкает, и сенсоры из шага 2 становятся «неизвестно». На этом можно построить автоматизацию: мощность «неизвестна» 5 минут — света нет; число вернулось — свет появился. Править configuration.yaml не нужно.
- Настройки → Автоматизации и сцены → Создать автоматизацию → Создать новую автоматизацию, затем ⋮ → Текстовый редактор.
- Замените содержимое блоком ниже и сохраните.
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 }} мин
persistent_notification.create на notify.mobile_app_<имя_телефона>, например notify.mobile_app_pixel_8.
Тогда встроенная панель с http://-адресом не загрузится: Home Assistant сам напишет, что не может показать iframe с http. Нужен https-адрес Power Trace. Проще всего получить его через Tailscale — и для Power Trace, и для Home Assistant, если у него https ещё нет:
- На машине с Power Trace включите
tailscale serve --bg http://127.0.0.1:8000(на Raspberry Pi — черезsudo), см. руководство по Tailscale. Power Trace станет доступен какhttps://<имя>.<ваш tailnet>.ts.net. - Если у Home Assistant https ещё нет: Настройки → Приложения → Установить приложение → Tailscale, в его конфигурации в «Share Home Assistant with Serve or Funnel» выберите serve и сохраните. Пока не запускайте.
- Настройки → Система → Сеть → HTTP-сервер → Обратный прокси (или адрес
/config/network): включите Доверять X-Forwarded-For, в Доверенные прокси добавьте127.0.0.1, нажмите Сохранить → Сохранить и перезапустить. После перезапуска подтвердите новые настройки, иначе через несколько минут Home Assistant вернёт старые. - Запустите приложение Tailscale и подтвердите вход по ссылке из его журнала. Home Assistant станет доступен как
https://homeassistant.<ваш tailnet>.ts.net. - В веб-странице Power Trace (шаг 4) укажите URL
https://<имя Power Trace>.<ваш tailnet>.ts.net/index.html.
http: в configuration.yaml современные версии Home Assistant игнорируют. И не выбирайте funnel: он открывает Home Assistant в интернет.
.ts.net открываются только на устройствах в вашей сети Tailscale. REST-сенсоры (шаг 2) от этого не зависят: запросы к /live делает сам Home Assistant, поэтому http-адрес там остаётся.
- Работает в пределах домашней сети: устройство, на котором вы смотрите 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 и автообнаружением? Напишите нам — так мы поймём, стоит ли её делать.