⚙ Руководство по конфигурации

Мониторинг энергопотребления в реальном времени
📖 Перед началом

Power Trace — система мониторинга энергопотребления в реальном времени, которая отслеживает расход электричества через совместимое с Tuya смарт-реле (например, ATORCH GR2PWS или любое устройство с поддержкой Tuya Local Protocol). Работает на вашем собственном компьютере: измерения не уходят ни в какое облако, а постоянный интернет программе не нужен. Облако Tuya понадобится лишь один раз, чтобы получить ключ прибора.

Что нужно
1
Совместимое с Tuya реле, подключённое к Wi-Fi. Устройство должно быть уже привязано к домашней сети через приложение Tuya или Smart Life. Оказавшись в Wi-Fi, оно доступно в локальной сети по определённому IP-адресу.
2
Аккаунт Smart Life или Tuya IoT Platform (не обязательно, но желательно). Проще всего войти через QR-код в приложении Smart Life: Power Trace сам получит Device ID и Local Key. Запасной путь — бесплатный аккаунт разработчика на iot.tuya.com. Если эти данные у вас уже есть, их можно ввести вручную.
3
Ваш тариф на электроэнергию. Чтобы считать стоимость, нужна цена за киловатт-час из вашего счёта. Если тариф двухзонный (день/ночь), понадобятся обе ставки и границы их периодов.
✅ С чего начать: заполните раздел Устройство (вручную или автоматически: входом через Smart Life или поиском приборов в разделе Облако 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月
☁ Облако Tuya

Этот раздел нужен, чтобы автоматически получить Device ID, IP-адрес и Local Key вашего реле из облака Tuya. Если эти данные у вас уже есть, пропустите раздел и переходите сразу к Устройство. Есть два способа: вход по QR-коду в приложении Smart Life (проще) или ключи API с iot.tuya.com.

Способ проще: вход через Smart Life (QR-код)

Не хотите создавать проект на iot.tuya.com? Устройство и его Local Key можно получить, войдя через приложение Smart Life, так же, как это делает Home Assistant. Способ экспериментальный: Tuya может его изменить, тогда воспользуйтесь ключами API ниже.

1
В Smart Life откройте Me → Settings → Account and Security → User Code и скопируйте код.
2
В настройках Power Trace в разделе Вход через Smart Life введите User Code (только латинские буквы и цифры) и нажмите Показать QR-код.
3
В Smart Life нажмите значок сканера на главном экране, отсканируйте код и подтвердите вход.
4
Power Trace получит устройства вашего аккаунта и просканирует локальную сеть. Появится тот же список, что и после Найти устройства: выберите реле кнопкой Выбрать это устройство.
🔒 Токен входа живёт несколько минут в памяти и нигде не сохраняется; на диск попадает только зашифрованный Local Key выбранного устройства. Для этого способа Access ID и Secret не нужны.
Как получить ключи API на iot.tuya.com
1
Перейдите на iot.tuya.com и создайте бесплатный аккаунт или войдите теми же данными, что и в приложении Tuya / Smart Life на телефоне.
2
В разделе Cloud → Development, нажмите Create Cloud Project. Дайте любое название, выберите тип Smart Home, и выберите регион дата-центра, совпадающий с регионом вашего аккаунта Tuya.
3
На странице обзора проекта увидите Access ID и Access Secret. Скопируйте их в соответствующие поля в настройках Power Trace.
4
В настройках проекта откройте Devices → Link Tuya App Account и подключите свой аккаунт Tuya / Smart Life. Ваши устройства станут видимыми в проекте.
5
Вернитесь в настройки Power Trace, введите Access ID, Access Secret, выберите регион и нажмите 🔍 Найти устройства. Power Trace получит ваши устройства из облака и одновременно просканирует локальную сеть, чтобы найти их IP-адреса.
Access ID
Идентификатор вашего Cloud-проекта на iot.tuya.com. Длинная буквенно-цифровая строка, например p7n8fk3x2q...
Access Secret
Секретный ключ проекта. Хранится зашифрованным — поле показывает маску ••••XXXX. Нажмите кнопку 👁, чтобы временно показать его.
Регион дата-центра, который вы выбрали при создании аккаунта Tuya. Чаще всего это Европа (eu). Если сканирование возвращает ошибку, попробуйте другой регион.
🔒 Access Secret хранится в зашифрованном файле (secret.key) на вашем компьютере и никогда не отправляется никуда, кроме серверов Tuya во время сканирования.
📟 Устройство

Основной раздел. Без заполнения этих полей коллектор не соединится с реле и данные не будут собираться. Если вы воспользовались сканированием Tuya Cloud и нажали Выбрать это устройство, большинство полей заполнится автоматически.

Название устройства
Название, которое вы выбираете сами. Показывается в шапке панели вместо типового «Power Trace». Например: Квартира, Мастерская, Щиток №2.
Device ID
Уникальный идентификатор вашего реле в системе Tuya. Длинная буквенно-цифровая строка, например bfefafdde42999f1887ghk. Найдёте в приложении Tuya / Smart Life или получите через сканирование облака.
IP-адрес
Локальный IP-адрес реле в вашей сети Wi-Fi, например 192.168.0.114. Нужен для прямого локального соединения. Если сканирование не нашло IP, посмотрите список клиентов DHCP в админпанели роутера или назначьте устройству статический адрес. На Windows локальному сканированию нужен входящий UDP на портах 6666, 6667 и 7000; установщик добавляет правила брандмауэра для api.exe и collector.exe (подтвердите запрос на повышение прав в конце установки). Если сканирование показывает устройства, но без IP-адресов, откройте Брандмауэр Защитника Windows → Правила для входящих подключений и удалите правила Блокировать с именами api или collector — Windows создаёт их, если в окне «Разрешить доступ» когда-то нажали «Отмена» или разрешили только частные сети, — либо просто запустите установщик ещё раз.
Local Key
Ключ шифрования для Tuya Local Protocol. Без него устройство отклонит любое соединение. Проще всего получить его входом через Smart Life по QR-коду или сканированием облака; все способы — на странице «Как узнать Tuya Local Key». Хранится зашифрованным — поле показывает только маску.

Кнопка Скопировать ключ кладёт сохранённый ключ в буфер обмена, например для LocalTuya в Home Assistant; на экране он не появляется. Кнопка активна только для уже сохранённого ключа и перед копированием просит подтверждения, а с включённым паролем работает только после входа. Каждое копирование записывается в журнал API. Если браузер не даёт доступа к буферу, ключ на 30 с появляется выделенным в поле — нажмите Ctrl+C.
Профиль устройства
Модель вашего устройства. Определяет, какие числа что означают в потоке данных от реле — например, DPS 6 = мощность в десятых долях ватта. Выберите подходящую модель из списка. Если вашей модели нет, обратитесь к документации.
Версия протокола
Версия Tuya Local Protocol. Большинство современных устройств использует 3.5. Если соединение не удаётся, попробуйте 3.4 или 3.3. Версию обычно можно найти в характеристиках устройства.
Управление реле с панели
Добавляет под навигацией панели замок и кнопку, которой реле можно отключить и включить (см. Панель → Управление реле). По умолчанию выключено. Переключатель неактивен, если в профиле устройства нет реле. Пока управление выключено, строки на панели нет, а Power Trace отклоняет команды на переключение.
💡 После сохранения новых Device ID, IP, Local Key или версии протокола коллектор за несколько секунд сам перезапускается и подключается с ними.
📡 Коллектор

Коллектор — это фоновый процесс, который соединяется с реле и записывает каждое измерение в базу сразу, как только оно приходит. Типовые значения подходят для большинства случаев — меняйте их только при конкретной необходимости и если вы чётко понимаете, что делаете.

⚠ Некорректные значения могут вызвать потерю данных или сбой коллектора.
Окно пика (выборок)
Диапазон: 1–100, по умолчанию: 10. Размер скользящего окна для отслеживания пиковой мощности и тока. При такте устройства ~60 секунд: 10 измерений = пик за последние 10 минут. Большее значение — система дольше помнит пики.
Порог зависания (минут)
Диапазон: 1–120, по умолчанию: 15. Как долго реле должно быть недоступным, прежде чем панель покажет предупреждение «устройство недоступно». До достижения этого порога статус показывает только «переподключение».

⟳ Перезапустить коллектор

Перезапускает фоновый процесс коллектора. После сохранения изменений в разделах Устройство, Коллектор или Восстановление соединения коллектор за несколько секунд перезапускается сам, поэтому кнопка нужна, когда коллектор завис или не может подключиться, либо чтобы переподключиться сразу. Всегда сначала сохраняйте конфигурацию — иначе перезапуск подхватит старые параметры.

🔄 Восстановление соединения

Управляют внутренней логикой переподключения коллектора — как он обнаруживает потерянное или молчащее соединение с реле и как переходит от быстрой повторной попытки к полному сканированию сети. Типовые значения подобраны под такт реле ~60 секунд и подходят для большинства случаев.

⚠ Ошибочные значения могут заставить коллектор переподключаться слишком агрессивно или вовсе не восстанавливаться после обрыва. Эти настройки читаются при старте коллектора, и после сохранения он за несколько секунд перезапускается сам.
Таймауты соединения
Таймаут подключения (с)
Диапазон: 3–30, по умолчанию: 10. Сколько ждать ответа устройства на запрос соединения или статуса, прежде чем сдаться и повторить попытку.
Таймаут подписки (с)
Диапазон: 3–30, по умолчанию: 10. Сколько ждать подтверждения устройством запроса на подписку push-данных.
Ожидание данных
Дедлайн первого пакета (с)
Диапазон: 30–600, по умолчанию: 150. Сколько ждать первый пакет данных после подписки, прежде чем считать соединение молчащим. Реле шлёт такт примерно раз в 60 с — держите значение выше этого.
Таймаут тишины потока (с)
Диапазон: 30–600, по умолчанию: 190. Максимально допустимая тишина уже при установленном потоке, прежде чем коллектор сочтёт соединение потерянным и начнёт восстановление.
Сброс счётчиков (с)
Диапазон: 30–600, по умолчанию: 180. Сколько поток должен проработать без перерывов, чтобы счётчики повторных попыток и задержек вернулись к начальным значениям. Не даёт нестабильному соединению навсегда застрять в эскалации.
Задержки и эскалация
Начальная задержка (с)
Диапазон: 1–60, по умолчанию: 5. Начальная задержка перед первой попыткой переподключения после сбоя.
Максимальная задержка (с)
Диапазон: 10–1800, по умолчанию: 15. Максимальная задержка между попытками переподключения. Задержка удваивается после каждого сбоя до этого предела. Короткий предел означает, что после возвращения света коллектор подхватывает прибор за считанные секунды. Сохранённое ранее значение не меняется.
Попыток уровня 0
Диапазон: 0–10, по умолчанию: 2. Сколько раз повторить одну только переподписку на push-данные (дёшево, без переподключения), прежде чем переходить к полному переподключению.
Пересканировать после (сбоев)
Диапазон: 1–10, по умолчанию: 3. Сколько полных неудач переподключения подряд, прежде чем сканировать локальную сеть в поисках устройства — полезно, если его IP-адрес изменился (например, после перезагрузки роутера с DHCP).
Жёсткий сброс после (с)
Диапазон: 300–86400, по умолчанию: 1800. Сколько коллектор может оставаться без соединения, прежде чем сделать полный внутренний сброс или перезапустить процесс целиком, если он работает под наблюдателем (PowerTrace в Windows, systemd в Linux / Raspberry Pi).
Сканирование сети
Сторожевой таймер сканирования (с)
Диапазон: 10–120, по умолчанию: 60. Максимальное время на одну попытку сканирования локальной сети, прежде чем сдаться и вернуться к обычному расписанию задержек.
Время прослушивания (с)
Диапазон: 5–60, по умолчанию: 18. Сколько слушать широковещательные пакеты устройств во время одного сканирования сети.

⟳ Перезапустить коллектор

Та же кнопка, что и в разделе «Коллектор» выше. После сохранения коллектор и так перезапускается сам, поэтому нажимайте её, только чтобы переподключиться сразу.

🖥️ Сервер

Управляет сетевым портом локального сервера API, с которым общаются панель и страница настроек. Большинству пользователей это трогать не приходится.

⚠ Будьте осторожны с изменением порта — если он конфликтует с другим приложением на этом компьютере или заблокирован брандмауэром, сервер может не подняться после перезапуска. Адрес панели (а также закладки, ссылки Tailscale или правила обратного прокси, указывающие на старый порт) перестанет работать, пока вы его не обновите.
Порт API-сервера
Диапазон: 1–65535, по умолчанию: 8000. Сетевой порт, который слушают панель и API. Меняйте только если порт 8000 уже занят другой программой на вашем компьютере. Вступает в силу только после нажатия ⟳ Перезапустить сервер ниже — кнопка ⟳ Перезапустить коллектор его не применяет, и адрес панели изменится на новый порт после перезапуска.

Обратный прокси — разрешённые имена хостов

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 вручную и перезапустите сервер:

server.allowed_hosts
Список дополнительных имён хостов, которым доверять; редактируется напрямую в data/config.yaml (поля для него в настройках нет). Пример: server: → allowed_hosts: ["power.example.com"]. Указывайте только имя хоста — без схемы и без порта. Чтение панели не блокируется никогда; блокируются только запросы, что-то меняющие.
⚠ Перезапускает только сервер API — коллектор продолжает работать и собирать данные, ничего не теряется; панель ненадолго потеряет соединение. Для настроек коллектора есть Перезапустить коллектор.
🔒 Безопасность

Из коробки панель и её API открыты для каждого устройства в вашей сети или tailnet: без входа, без пароля. Для дома, где все устройства ваши, это нормально. Если же Wi-Fi общий с другими людьми или вы открываете панель через Tailscale с нескольких устройств — задайте здесь пароль.

🛡 Что защищает пароль. Каждую страницу и каждый роут API — показания, историю, правила, настройки, перезапуск и выключение — от всех, в том числе и от браузера на той же машине, где работает Power Trace. Коллектор и трей входят сами, собственным токеном; ваши скрипты — с API-токеном ниже. Забыли пароль — удалите файл data/auth.json рядом с программой и перезапустите API: пароль снова выключен.
Пароль
Введите новый пароль дважды и нажмите Задать пароль; не менее 8 символов (более короткий пароль, заданный раньше, работает и дальше). Этот браузер входит сразу. Каждое другое устройство увидит запрос пароля при следующем открытии страницы и останется вошедшим на 30 дней. Чтобы сменить пароль, введите ещё и текущий — смена выходит со всех устройств, включая потерянный телефон. Выключить пароль (тоже с текущим) снова открывает панель всем.
Выйти на этом устройстве
Завершает сессию только в этом браузере: следующий, кто откроет здесь панель, увидит запрос пароля. Другие устройства остаются вошедшими. Пригодится после входа на чужом компьютере.
API-токен для скриптов
Нужен только если к API обращаются ваши собственные скрипты или другие программы (cron, Home Assistant, curl). Браузер шлёт cookie сессии; скрипт вместо неё шлёт этот токен: Authorization: Bearer <token>. Показать открывает его, Копировать копирует, Перегенерировать делает старый недействительным, не трогая пароль. Если с Power Trace общается только панель — это поле можно не замечать.
⚠ Где путешествует пароль. Внутри сети Tailscale весь трафик между устройствами зашифрован, хотя адрес и начинается с http://. В обычном домашнем Wi-Fi пароль идёт по сети открыто, как и любая http-страница; для собственных устройств дома это приемлемо, но не вводите его из недоверенной сети.
🧾 Тарификация

Определяет, как считается стоимость потреблённой электроэнергии. Без заполнения этого раздела панель будет показывать прочерки в полях «Счёт» и «Потреблённая энергия».

Часовой пояс дома
Часовой пояс дома
Выбирается из списка всех часовых поясов IANA. Определяется автоматически из вашего браузера при первом открытии. Задайте его правильно, если пользуетесь двухзонным тарифом — система по нему определяет местное время и относит каждый киловатт-час к дневной или ночной зоне. В нём же считаются сутки и месяцы и показывается всё время на панели и в Анализе, с какого бы устройства вы ни смотрели; когда устройство в другом поясе, под часами на панели видно «Время дома: …». Меняйте только если сервер работает в другом месте, чем дом. Пояса с получасовым и четвертьчасовым сдвигом (Индия, Непал, Шри-Ланка, Аделаида, Ньюфаундленд и другие) и переход на летнее время учитываются. Единственное известное исключение — остров Лорд-Хау (Австралия), где летнее время сдвигает часы на 30 минут: на периоде, охватывающем этот переход, часы с одной его стороны выровнены на полчаса мимо местного времени, что заметно лишь на границе день/ночь и в полночь.
Режим тарифа
Однозонный — единая ставка
Вся электроэнергия тарифицируется по одной цене независимо от времени суток.

Тариф (за кВт·ч) — цена одного киловатт-часа, например 0.32 или 4,32 (принимаются и точка, и запятая).
Символ валюты — например $, €, или ₴.
Двухзонный — тариф по времени суток (день / ночь)
В дневные и ночные часы действуют разные цены.

Зона 1 (день) — От / До: начало и конец дневной ставки, например 07:00 – 23:00. Поддерживается переход через полночь: если ночная зона пересекает полночь, задайте зону 1 как дневные часы, и система заполнит зону 2 сама.

Ставка зоны 1 / Ставка зоны 2: цена за кВт·ч для каждой зоны. Границы времени зоны 2 заполняются автоматически как дополнение зоны 1.

Символ валюты общая для обеих зон.
Пороги
Порог предупреждения (кВт·ч в месяц)
Месячный бюджет: когда потребление за месяц его превышает, цифры «Потреблённая энергия» и «Счёт» на панели подсвечиваются жёлтым. Год сравнивается с бюджетом × 12, свой период от 28 дней — с долей по своей длине; сутки, Scope и более короткие периоды не подсвечиваются — суточное потребление колеблется слишком сильно, чтобы доля месячного бюджета что-то значила.
Порог тревоги (кВт·ч в месяц)
То же для красной подсветки. Должно быть больше порога предупреждения.
🎨 Оформление — цвета

Цвета линий графиков, значений на карточках и столбцов. Типовые подобраны под тёмную тему. Каждый цвет задаётся пипеткой или вводом HEX-кода (например #4caf50). Оба способа синхронизированы.

Показатели
Мощность, напряжение, ток, коэффициент мощности, потреблённая энергия, счёт — цвет линии или столбца и живого значения на каждой карточке панели.
Пороги
Предупреждение и тревога — цвета подсветки, когда превышены пороги потребления из раздела «Тарификация».
День / Ночь
Появляется только когда в тарификации выбрано Двухзонный. Задаёт отдельные цвета дневного и ночного потребления на составных графиках энергии и счёта. Пара Энергия — день / Энергия — ночь также окрашивает кольцо день / ночь на странице Анализ.
🏷️ Оформление — подписи

Все текстовые подписи интерфейса. Здесь можно приспособить терминологию к собственным привычкам — Потребление вместо Всего потреблено, или другой стиль единиц.

💡 Эти поля не предназначены для перевода интерфейса — вместо этого выберите языковой пакет в разделе Язык и регион выше. Оставьте поле пустым, чтобы взять подпись из пакета; серый текст-подсказка показывает, что будет использовано. В файл записываются только те поля, в которые вы действительно что-то ввели config.yaml, поэтому они переживут смену языка.
Названия показателей
Названия на карточках панели и вкладках графиков: мощность, напряжение, ток, коэффициент мощности, потреблённая энергия, счёт и система (плитка с частотой сети и температурой устройства).
Единицы
Единицы измерения: Вт, В, А, кВт·ч, Гц. Меняйте только для локализации. кВт·ч вместо кВт·ч.
Подписи
Системные подписи: живые, мин, макс, сред. Также текст кнопки Применить ▸.
Управление периодом
Подписи кнопок диапазона дат: ДИАПАЗОН ДАТ, Сегодня, Вчера, Месяц, Год, Произвольный.
Осциллограф
Подписи режима живого окна: ОСЦИЛЛОГРАФ и суффиксы m (минуты) и h (часы) для кнопок 30м / 1ч / 2ч.
День / Ночь
Появляется только при двухзонной тарификации. Подписи переключателя День / Ночь / Обе на графиках энергии и счёта.
🕐 Формат отображения

Как показываются время, дата и температура на панели.

Время
Часы
24-часовой — стандартный формат: 14:05.
12-часовой — формат AM/PM: 2:05 PM. При выборе появляются поля подписей AM и PM (до 4 символов каждое), чтобы локализовать суффиксы.
Ведущий ноль
Переключатель: дополнять ли однозначные часы нулём. Включено: 02:05. Выключено: 2:05.
Дата
Формат
Девять комбинаций ДД/ММ/ГГГГ с разными разделителями (дефис, косая черта, точка). Живой предпросмотр показывает, как выглядит 5 июня 2026 в выбранном формате.
Единицы
Температура
°C или °F. Влияет на то, как показывается температура встроенного датчика реле на системной плитке. Пересчёт автоматический.
🧮 Агрегация

Относится к каждому столбчатому виду графиков мощности, напряжения, тока и коэффициента мощности: Почасово в режимах Сегодня, Вчера и коротком Произвольном, а также суточных или месячных столбцов в режимах Месяц, Год и Произвольный свыше 2 суток. Управляет тем, какое именно одно значение представляет каждый час, сутки или месяц; заголовок графика его называет.

СРЕД — среднее
Среднее значение за час, сутки или месяц. Лучше всего подходит для Мощность и Напряж. — даёт представление о типичном уровне нагрузки в течение периода. Для мощности в барах Почасово среднее берётся по времени: каждый отсчёт весит промежутком от предыдущего, поэтому серия отсчётов с разницей в несколько секунд — реле шлёт их, пока открыто приложение Tuya, — весит как минута, которую она длилась, а не как двадцать. Бары за сутки и месяц усредняют отсчёты: там такая серия — доля процента бара.
МАКС — пик
Наибольшее значение за час, сутки или месяц. Лучше всего подходит для Ток — знать пиковый ток важно, когда оцениваешь проводку и запас автомата.
МИН — минимум
Наименьшее зафиксированное значение. Полезно для Напряж. — минимальное суточное напряжение выявляет просадки сети, которые могут влиять на чувствительную технику.
💡 Графики Энергия и Счёт это не затрагивает — они всегда показывают полное фактическое потребление за сутки или месяц.
📊 Панель
Таймаут статуса «живых» данных (с)
Диапазон: 60–300, по умолчанию: 120.

Через сколько секунд после последнего полученного пакета панель переключается на НЕТ СВЯЗИ. Реле шлёт новые данные примерно раз в 60 секунд — это ограничение прошивки. Типовые 120 с покрывают два пропущенных такта подряд.

Когда увеличивать: если реле на нестабильном Wi-Fi. Например, 180 с позволяет три пропущенных такта до перехода в офлайн.
Не ставьте меньше 60 секунд — панель будет мигать между ONLINE и OFFLINE.
Шаг точек на графике (px)
Диапазон: 2–12, по умолчанию: 4.

Минимальная ширина в пикселях, отводимая каждой точке данных на графиках. Как только точки перестают помещаться, график начинает прокручиваться горизонтально — эта настройка определяет, насколько они разрежены.

Большие значения раздвигают точки, делая отдельные такты читабельнее, но требуют больше прокрутки. Меньшие значения вмещают на экран большую часть суток ценой плотнее сбитых точек.
Порог разрыва графика (мин)
Диапазон: 0–60, по умолчанию: 5.

Сколько должна длиться тишина, чтобы линия графика разорвалась вместо того, чтобы пройти напрямую. Power Trace записывает каждый такт, который шлёт реле, поэтому промежуток без записей означает, что коллектор действительно ничего не получил — отключение света, обрыв Wi-Fi или незапущенное приложение. Соединить такие точки плавной линией означало бы показать блэкаут как ровный показатель.

Значение 0 отключает разрывы совсем и всегда рисует сплошную линию.

Не ставьте меньше 3 минут. Реле отчитывается примерно раз в 60 секунд, и интервал плавает, поэтому низкий порог будет помечать обычное дрожание как аварию и заполнит график разрывами, которые ничего не означают.

Когда увеличивать: если у вас слабый сигнал Wi-Fi и короткие переподключения для вашей установки нормальны, поднятие до 10–15 держит график читабельным и оставляет разрывы для настоящих аварий.
💡 Этот порог меняет то, как рисуются имеющиеся данные, а не сами данные — ничего не добавляется и не удаляется. Менять его и перезагружать панель можно сколько угодно, и тот же разрыв появится на любом масштабе.
Порог неполных столбцов
Диапазон: 0–1, по умолчанию: 0.5.

Когда соединение с реле обрывается надолго, счётчик внутри реле продолжает считать, а Power Trace не записывает ничего. После восстановления энергия, потреблённая за время простоя, берётся из счётчика и распределяется равномерно по пропущенным часам. Такое распределение является оценкой, а не измерением — никто не знает, как на самом деле вела себя нагрузка, пока устройство было офлайн.

Столбцы на графиках Энергия и Счёт, чья энергия оценена не менее чем на эту долю, рисуются приглушёнными, а над графиком появляется примечание. Столбец, оценённый на 30%, остаётся обычным при типовом 0,5 и становится приглушённым при 0,3.

0 — приглушать любой столбец, содержащий хоть след оценённой энергии. 1 — приглушать только полностью оценённые столбцы.

Порог управляет только приглушением. Как только график содержит хоть какую-то оценённую энергию, примечание над ним сообщает точную величину — например 0.90 / 23.40 кВт·ч — каким бы ни был порог. Так что оценка никогда не скрывается: цвет говорит, можно ли доверять отдельному столбцу, а примечание — сколько из всего периода оценено.

Больше всего это важно на графиках Месяц и Год, где один столбец — это целые сутки. Двухчасовой простой в сутках на 12 кВт·ч составляет лишь 7% того столбца, поэтому при типовом пороге он остаётся неприглушённым — и правильно, ведь сутки в целом надёжны — но примечание всё равно учтёт эти киловатт-часы, потому что они в вашем счёте.

Тот же порог управляет столбцами Мощность, Напряжение, Ток и Коэффициент мощности — почасовыми, за месяц и за год. Оценки там нет: столбец — настоящее среднее (или пик, или минимум) измерений, которые есть в часе или сутках. Но час, где программа молчала 40 минут из 60, рисовал бы такой же столбец, как полный, поэтому столбец, в котором не хватает не менее этой доли времени, тоже приглушается, а его подсказка показывает покрытие, например 35 %. Покрытие измеряется временем, а не измерениями: промежуток между двумя измерениями считается покрытым, если не превышает Порог разрыва графика выше — то же значение, что рвёт линию в «Подробно», — так что реле, которое отчитывается неравномерно, неполным не помечается. Час или сутки, которые ещё идут, не приглушаются никогда, ведь они ещё изменятся. Но подсказка показывает и их покрытие, посчитанное от уже прошедшего времени: час, данные за который начались в 9:11, в 9:40 покажет неполное покрытие, а полный — 100 %.
💡 Графики Мощность, Напряж., Ток, и Коэффициент мощности Графики остаются пустыми за те часы, и это правильно: это мгновенные показатели, снятые в конкретный момент, а таких моментов записано не было. Восстановить можно только энергию, потому что счётчик накапливает её и тогда, когда соединения нет.
🔗 Удалённый доступ (Tailscale)

По умолчанию панель доступна только на компьютере, где работает Power Trace (http://localhost:8000, или на том порту, который вы задали как порт сервера API в разделе «Сервер»), либо с других устройств в той же сети Wi-Fi. Если хотите смотреть её с телефона вне дома, понадобится Tailscale.

💡 Что такое Tailscale: бесплатный сервис, создающий зашифрованную частную сеть между вашими собственными устройствами через интернет. Он не открывает никаких портов наружу — трафик шифруется сквозным образом и ходит только между устройствами, вошедшими в ваш аккаунт.
Шаги настройки
1
Создайте бесплатный аккаунт на tailscale.com — через Google, GitHub или Microsoft.
2
Скачайте и установите клиент Tailscale на компьютер, где работает Power Trace с tailscale.com/download. Войдите. Компьютер получит стабильный адрес Tailscale и короткое имя машины.
3
Установите Tailscale на каждое устройство, с которого хотите заходить — телефон, планшет, ноутбук. Есть приложения для Windows, macOS, Linux, iOS и Android. Войдите тем же аккаунтом на каждом устройстве.
4
В настройках Power Trace откройте раздел «Удалённый доступ» и включите переключатель. Введите имя машины вашего компьютера (например, my-pc). Порт заполняется автоматически из вашей настройки порта сервера API — меняйте вручную только если пользуетесь обратным прокси или пробросом портов.
5
Готовый адрес появится под полями, например http://my-pc:8000. Нажмите 📋 Копировать URL и откройте его на любом устройстве, подключённом к Tailscale.
⚠ Эти настройки хранятся только в браузере и не записываются в config.yaml. Если открыть настройки в другом браузере, поля будут пусты, а порт подтянется из настройки порта сервера API, но сама сеть Tailscale продолжит работать.
🔔 Уведомления

Power Trace может писать вам в Telegram и/или в приложение ntfy, когда пропадает и возвращается свет, когда переключается реле и когда напряжение выходит за безопасные пределы. Пошаговая настройка обоих каналов и перечень всех сообщений — в руководстве Уведомления.

Свет пропал и вернулся
Сообщение, когда от счётчика нет измерений дольше, чем Отключение от (мин) в Правилах, и когда они вернулись.
Реле выключилось и включилось
Переключение на устройстве, в приложении Tuya или с панели.
Опасное напряжение
Напряжение за порогами тревоги из Правил, и когда оно вернулось в норму.
Отправлять в Telegram
Токен бота и Chat ID. Токен хранится зашифрованным и после сохранения показывается маской.
Отправлять в ntfy
Сервер и тема. Тема хранится зашифрованной, показывается маской и обратно не отдаётся.
Отправить тестовое
Проверяет канал, не сохраняя настроек.
ℹ Интернет часто пропадает вместе со светом — тогда сообщения ждут в очереди до 3 суток и приходят по порядку, как только связь вернётся.
🗄 База данных

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

ℹ Power Trace никогда не удаляет измерения сам — каждый показатель хранится вечно. При такте реле ~60 секунд год истории занимает примерно 60–70 МБ. На любой современной карте памяти или диске это не та величина, которую нужно планировать.
Размер на диске
Суммарный размер файла базы данных и его спутника WAL (журнала опережающей записи). WAL между контрольными точками может временно весить десятки мегабайтов — это нормально, и он снова уменьшается сам.
Сохранено измерений
Общее число строк в базе, то есть сколько отдельных показателей записано с момента установки.
Свободно на этом диске
Свободное место на диске или карте памяти, где лежит база. Если его остаётся мало, см. ниже.

Как вернуть место на диске

Если вы когда-нибудь удалите строки из базы вручную (например, SQL-инструментом), файл не не уменьшится сам — SQLite оставляет освобождённое место внутри файла для повторного использования, а не возвращает его операционной системе. Чтобы файл действительно уменьшился, нужно выполнить VACUUM.

⚠ Остановите коллектор и сервер API перед запуском VACUUM и убедитесь, что свободного места на диске не меньше текущего размера базы — операция строит новую копию файла, прежде чем заменить старую. На Raspberry Pi это может занять несколько минут.

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. Воспользуйтесь этим, если что-то изменили и хотите отменить, не перезагружая страницу.
⚠ Сбросить к типовым
Сбрасывает только параметры интерфейса и работы к заводским значениям. Данные устройства и облака не трогаются. После сброса нажмите «Сохранить настройки», чтобы записать типовые значения на диск.
⚠ Изменения в разделах «Устройство», «Коллектор» или «Восстановление соединения» коллектор подхватывает сам: через несколько секунд после сохранения он перезапускается с новыми параметрами. Изменение порта сервера API требует ⟳ Перезапустить сервер.
После первой настройки
1. Сохраните конфигурацию
Нажмите Сохранить настройки внизу страницы настроек.
2. Подождите несколько секунд
Коллектор сам перезапустится с новыми настройками и подключится к реле — статус на панели сменится на «на связи».
3. Откройте панель
Нажмите кнопку ← Power Trace в верхнем левом углу настроек.
4. Дождитесь первого такта
Реле шлёт данные примерно раз в 60 секунд. После первого пакета статус изменится на НА СВЯЗИ.