Power Trace — система мониторинга энергопотребления в реальном времени, которая отслеживает расход электричества через совместимое с Tuya смарт-реле (например, ATORCH GR2PWS или любое устройство с поддержкой Tuya Local Protocol). Работает на вашем собственном компьютере: измерения не уходят ни в какое облако, а постоянный интернет программе не нужен. Облако Tuya понадобится лишь один раз, чтобы получить ключ прибора.
Язык интерфейса и язык названий месяцев на графиках. В Настройках этот раздел стоит первым.
Задаёт язык всего интерфейса — панели, настроек, правил, отчёта анализа и меню в трее. Список показывает каждый пакет, найденный в папке lang/ программы; добавить язык означает положить туда JSON-файл, без всякой пересборки. Пакет, переведённый частично, показывает свой прогресс в списке, а каждый отсутствующий в нём ключ берётся из английского. Сохранение перезагружает страницу.
Отдельно от языка интерфейса, и это намеренно: он управляет языком названий месяцев на осях графиков и в подсказках, а это часто не одно и то же. Введите тег локали в стандартном виде язык-РЕГИОН — uk-UA, de-DE, en-US (формат IETF BCP 47). Предпросмотр рядом с полем показывает все 12 названий месяцев сразу.
| Тег локали | Язык | Названия месяцев (янв → дек) |
|---|---|---|
en-US |
английский | Jan · Feb · Mar · Apr · May · Jun · Jul · Aug · Sep · Oct · Nov · Dec |
uk-UA |
украинский | Січ · Лют · Бер · Кві · Тра · Чер · Лип · Сер · Вер · Жов · Лис · Гру |
de-DE |
немецкий | Jan · Feb · Mär · Apr · Mai · Jun · Jul · Aug · Sep · Okt · Nov · Dez |
fr-FR |
французский | janv. · févr. · mars · avr. · mai · juin · juil. · août · sept. · oct. · nov. · déc. |
zh-CN |
китайский (упрощённый) | 1月 · 2月 · 3月 · 4月 · 5月 · 6月 · 7月 · 8月 · 9月 · 10月 · 11月 · 12月 |
Этот раздел нужен, чтобы автоматически получить Device ID, IP-адрес и Local Key вашего реле из облака Tuya. Если эти данные у вас уже есть, пропустите раздел и переходите сразу к Устройство. Есть два способа: вход по QR-коду в приложении Smart Life (проще) или ключи API с iot.tuya.com.
Не хотите создавать проект на iot.tuya.com? Устройство и его Local Key можно получить, войдя через приложение Smart Life, так же, как это делает Home Assistant. Способ экспериментальный: Tuya может его изменить, тогда воспользуйтесь ключами API ниже.
p7n8fk3x2q...••••XXXX. Нажмите кнопку 👁, чтобы временно показать его.secret.key) на вашем компьютере и никогда не отправляется никуда, кроме серверов Tuya во время сканирования.
Основной раздел. Без заполнения этих полей коллектор не соединится с реле и данные не будут собираться. Если вы воспользовались сканированием Tuya Cloud и нажали Выбрать это устройство, большинство полей заполнится автоматически.
bfefafdde42999f1887ghk. Найдёте в приложении Tuya / Smart Life или получите через сканирование облака.192.168.0.114. Нужен для прямого локального соединения. Если сканирование не нашло IP, посмотрите список клиентов DHCP в админпанели роутера или назначьте устройству статический адрес. На Windows локальному сканированию нужен входящий UDP на портах 6666, 6667 и 7000; установщик добавляет правила брандмауэра для api.exe и collector.exe (подтвердите запрос на повышение прав в конце установки). Если сканирование показывает устройства, но без IP-адресов, откройте Брандмауэр Защитника Windows → Правила для входящих подключений и удалите правила Блокировать с именами api или collector — Windows создаёт их, если в окне «Разрешить доступ» когда-то нажали «Отмена» или разрешили только частные сети, — либо просто запустите установщик ещё раз.Кнопка Скопировать ключ кладёт сохранённый ключ в буфер обмена, например для LocalTuya в Home Assistant; на экране он не появляется. Кнопка активна только для уже сохранённого ключа и перед копированием просит подтверждения, а с включённым паролем работает только после входа. Каждое копирование записывается в журнал API. Если браузер не даёт доступа к буферу, ключ на 30 с появляется выделенным в поле — нажмите Ctrl+C.
Коллектор — это фоновый процесс, который соединяется с реле и записывает каждое измерение в базу сразу, как только оно приходит. Типовые значения подходят для большинства случаев — меняйте их только при конкретной необходимости и если вы чётко понимаете, что делаете.
Перезапускает фоновый процесс коллектора. После сохранения изменений в разделах Устройство, Коллектор или Восстановление соединения коллектор за несколько секунд перезапускается сам, поэтому кнопка нужна, когда коллектор завис или не может подключиться, либо чтобы переподключиться сразу. Всегда сначала сохраняйте конфигурацию — иначе перезапуск подхватит старые параметры.
Управляют внутренней логикой переподключения коллектора — как он обнаруживает потерянное или молчащее соединение с реле и как переходит от быстрой повторной попытки к полному сканированию сети. Типовые значения подобраны под такт реле ~60 секунд и подходят для большинства случаев.
Та же кнопка, что и в разделе «Коллектор» выше. После сохранения коллектор и так перезапускается сам, поэтому нажимайте её, только чтобы переподключиться сразу.
Управляет сетевым портом локального сервера API, с которым общаются панель и страница настроек. Большинству пользователей это трогать не приходится.
Power Trace отклоняет изменения конфигурации, приходящие под неожиданным именем хоста. Это блокирует DNS rebinding — атаку, когда посещённый вами сайт заставляет браузер отправлять команды устройствам в вашей домашней сети. Локальные адреса доверяются автоматически: localhost, любой частный адрес LAN (192.168.x.x, 10.x.x.x, 172.16–31.x.x), адреса Tailscale и имена *.ts.net, а также имена *.local. Для обычной настройки ничего настраивать не нужно.
Если вы ставите Power Trace за обратным прокси на публичном домене, этот домен не локальный и потому по умолчанию не является доверенным. Сохранение настроек тогда завершится ошибкой host_not_allowed. Добавьте свой домен в config.yaml вручную и перезапустите сервер:
data/config.yaml (поля для него в настройках нет). Пример: server: → allowed_hosts: ["power.example.com"]. Указывайте только имя хоста — без схемы и без порта. Чтение панели не блокируется никогда; блокируются только запросы, что-то меняющие.Из коробки панель и её API открыты для каждого устройства в вашей сети или tailnet: без входа, без пароля. Для дома, где все устройства ваши, это нормально. Если же Wi-Fi общий с другими людьми или вы открываете панель через Tailscale с нескольких устройств — задайте здесь пароль.
data/auth.json рядом с программой и перезапустите API: пароль снова выключен.
curl). Браузер шлёт cookie сессии; скрипт вместо неё шлёт этот токен: Authorization: Bearer <token>. Показать открывает его, Копировать копирует, Перегенерировать делает старый недействительным, не трогая пароль. Если с Power Trace общается только панель — это поле можно не замечать.http://. В обычном домашнем Wi-Fi пароль идёт по сети открыто, как и любая http-страница; для собственных устройств дома это приемлемо, но не вводите его из недоверенной сети.
Определяет, как считается стоимость потреблённой электроэнергии. Без заполнения этого раздела панель будет показывать прочерки в полях «Счёт» и «Потреблённая энергия».
Тариф (за кВт·ч) — цена одного киловатт-часа, например
0.32 или 4,32 (принимаются и точка, и запятая).Символ валюты — например
$, €, или ₴.Зона 1 (день) — От / До: начало и конец дневной ставки, например
07:00 – 23:00. Поддерживается переход через полночь: если ночная зона пересекает полночь, задайте зону 1 как дневные часы, и система заполнит зону 2 сама.Ставка зоны 1 / Ставка зоны 2: цена за кВт·ч для каждой зоны. Границы времени зоны 2 заполняются автоматически как дополнение зоны 1.
Символ валюты общая для обеих зон.
Цвета линий графиков, значений на карточках и столбцов. Типовые подобраны под тёмную тему. Каждый цвет задаётся пипеткой или вводом HEX-кода (например #4caf50). Оба способа синхронизированы.
Все текстовые подписи интерфейса. Здесь можно приспособить терминологию к собственным привычкам — Потребление вместо Всего потреблено, или другой стиль единиц.
config.yaml, поэтому они переживут смену языка.
m (минуты) и h (часы) для кнопок 30м / 1ч / 2ч.Как показываются время, дата и температура на панели.
14:05.12-часовой — формат AM/PM:
2:05 PM. При выборе появляются поля подписей AM и PM (до 4 символов каждое), чтобы локализовать суффиксы.02:05. Выключено: 2:05.Относится к каждому столбчатому виду графиков мощности, напряжения, тока и коэффициента мощности: Почасово в режимах Сегодня, Вчера и коротком Произвольном, а также суточных или месячных столбцов в режимах Месяц, Год и Произвольный свыше 2 суток. Управляет тем, какое именно одно значение представляет каждый час, сутки или месяц; заголовок графика его называет.
Через сколько секунд после последнего полученного пакета панель переключается на НЕТ СВЯЗИ. Реле шлёт новые данные примерно раз в 60 секунд — это ограничение прошивки. Типовые 120 с покрывают два пропущенных такта подряд.
Когда увеличивать: если реле на нестабильном Wi-Fi. Например, 180 с позволяет три пропущенных такта до перехода в офлайн.
Не ставьте меньше 60 секунд — панель будет мигать между ONLINE и OFFLINE.
Минимальная ширина в пикселях, отводимая каждой точке данных на графиках. Как только точки перестают помещаться, график начинает прокручиваться горизонтально — эта настройка определяет, насколько они разрежены.
Большие значения раздвигают точки, делая отдельные такты читабельнее, но требуют больше прокрутки. Меньшие значения вмещают на экран большую часть суток ценой плотнее сбитых точек.
Сколько должна длиться тишина, чтобы линия графика разорвалась вместо того, чтобы пройти напрямую. Power Trace записывает каждый такт, который шлёт реле, поэтому промежуток без записей означает, что коллектор действительно ничего не получил — отключение света, обрыв Wi-Fi или незапущенное приложение. Соединить такие точки плавной линией означало бы показать блэкаут как ровный показатель.
Значение 0 отключает разрывы совсем и всегда рисует сплошную линию.
Не ставьте меньше 3 минут. Реле отчитывается примерно раз в 60 секунд, и интервал плавает, поэтому низкий порог будет помечать обычное дрожание как аварию и заполнит график разрывами, которые ничего не означают.
Когда увеличивать: если у вас слабый сигнал Wi-Fi и короткие переподключения для вашей установки нормальны, поднятие до 10–15 держит график читабельным и оставляет разрывы для настоящих аварий.
Когда соединение с реле обрывается надолго, счётчик внутри реле продолжает считать, а Power Trace не записывает ничего. После восстановления энергия, потреблённая за время простоя, берётся из счётчика и распределяется равномерно по пропущенным часам. Такое распределение является оценкой, а не измерением — никто не знает, как на самом деле вела себя нагрузка, пока устройство было офлайн.
Столбцы на графиках Энергия и Счёт, чья энергия оценена не менее чем на эту долю, рисуются приглушёнными, а над графиком появляется примечание. Столбец, оценённый на 30%, остаётся обычным при типовом 0,5 и становится приглушённым при 0,3.
0 — приглушать любой столбец, содержащий хоть след оценённой энергии. 1 — приглушать только полностью оценённые столбцы.
Порог управляет только приглушением. Как только график содержит хоть какую-то оценённую энергию, примечание над ним сообщает точную величину — например 0.90 / 23.40 кВт·ч — каким бы ни был порог. Так что оценка никогда не скрывается: цвет говорит, можно ли доверять отдельному столбцу, а примечание — сколько из всего периода оценено.
Больше всего это важно на графиках Месяц и Год, где один столбец — это целые сутки. Двухчасовой простой в сутках на 12 кВт·ч составляет лишь 7% того столбца, поэтому при типовом пороге он остаётся неприглушённым — и правильно, ведь сутки в целом надёжны — но примечание всё равно учтёт эти киловатт-часы, потому что они в вашем счёте.
Тот же порог управляет столбцами Мощность, Напряжение, Ток и Коэффициент мощности — почасовыми, за месяц и за год. Оценки там нет: столбец — настоящее среднее (или пик, или минимум) измерений, которые есть в часе или сутках. Но час, где программа молчала 40 минут из 60, рисовал бы такой же столбец, как полный, поэтому столбец, в котором не хватает не менее этой доли времени, тоже приглушается, а его подсказка показывает покрытие, например 35 %. Покрытие измеряется временем, а не измерениями: промежуток между двумя измерениями считается покрытым, если не превышает Порог разрыва графика выше — то же значение, что рвёт линию в «Подробно», — так что реле, которое отчитывается неравномерно, неполным не помечается. Час или сутки, которые ещё идут, не приглушаются никогда, ведь они ещё изменятся. Но подсказка показывает и их покрытие, посчитанное от уже прошедшего времени: час, данные за который начались в 9:11, в 9:40 покажет неполное покрытие, а полный — 100 %.
По умолчанию панель доступна только на компьютере, где работает Power Trace (http://localhost:8000, или на том порту, который вы задали как порт сервера API в разделе «Сервер»), либо с других устройств в той же сети Wi-Fi. Если хотите смотреть её с телефона вне дома, понадобится Tailscale.
my-pc). Порт заполняется автоматически из вашей настройки порта сервера API — меняйте вручную только если пользуетесь обратным прокси или пробросом портов.http://my-pc:8000. Нажмите 📋 Копировать URL и откройте его на любом устройстве, подключённом к Tailscale.config.yaml. Если открыть настройки в другом браузере, поля будут пусты, а порт подтянется из настройки порта сервера API, но сама сеть Tailscale продолжит работать.
Power Trace может писать вам в Telegram и/или в приложение ntfy, когда пропадает и возвращается свет, когда переключается реле и когда напряжение выходит за безопасные пределы. Пошаговая настройка обоих каналов и перечень всех сообщений — в руководстве Уведомления.
Этот раздел только для чтения — он показывает текущее состояние вашей базы данных, а не настройку, которую вы задаёте. Показывает размер файла на диске, общее число сохранённых измерений и свободное место на этом диске.
Если вы когда-нибудь удалите строки из базы вручную (например, SQL-инструментом), файл не не уменьшится сам — SQLite оставляет освобождённое место внутри файла для повторного использования, а не возвращает его операционной системе. Чтобы файл действительно уменьшился, нужно выполнить VACUUM.
Linux / Raspberry Pi — из терминала, в папке Power Trace:
sqlite3 db/energymonitor.db "VACUUM;"
Windows — sqlite3.exe не поставляется по умолчанию. Воспользуйтесь бесплатным DB Browser for SQLite вместо этого: откройте db\energymonitor.db, затем Tools → Compact Database.
Power Trace может сообщать, когда вышла более новая версия. Он никогда ничего не скачивает и не устанавливает сам — только показывает небольшое уведомление на панели со ссылкой на страницу загрузки, а обновляться или нет, решаете только вы.
getpowertrace.com с номером последней версии. Не отправляется ничего, кроме версии, которую вы используете — ни показателей, ни данных устройства, ни идентификаторов. Полное описание см. в Политике конфиденциальности.
config.yaml, а не на то, что сейчас показано на экране.config.yaml на диске. Числовые поля показывают свой допустимый диапазон рядом с названием, а значение вне его при выходе из поля подтягивается к ближайшей границе с пояснением под полем. Перед сохранением все поля проверяются — если есть ошибки, показывается сообщение и ничего не сохраняется. Пустые Device ID / IP / Local Key вызывают диалог подтверждения. Панель подхватывает новую конфигурацию автоматически без перезагрузки страницы.config.yaml. Воспользуйтесь этим, если что-то изменили и хотите отменить, не перезагружая страницу.