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 Defender → Правила для вхідних підключень і видаліть правила Блокувати з іменами 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. Скористайтесь цим, якщо щось змінили і хочете скасувати, не перезавантажуючи сторінку.