Як я зробив локальний моніторинг електроенергії для Tuya-лічильників без хмари

💡 Усі статті, обговорення, новини про Python — в одному місці. Приєднуйтесь до Python спільноти!

Я живу в Черкасах, і мережа тут — це не те, що можна сприймати як даність. Мабуть як і скрізь зараз в нашій країні. Хотілося не просто знати, скільки кіловат я спалив за місяць, а реально бачити, що відбувається з лінією: коли й наскільки просідає напруга, чи справді нічний тариф вигідний, скільки в рахунку йде на бойлер, а скільки — на фонове споживання.

Звідки ідея

У мене вдома стоїть дешевий Tuya-лічильник (ATORCH GR2P-W/S) — він насправді міряє доволі багато: потужність, напругу, струм, коефіцієнт потужності, частоту. Але штатний застосунок Tuya показує одну цифру на екрані й жене все у хмару в іншу країну. Ні історії, ні аналітики, ні контролю над тим, куди йдуть дані. Це здавалось неправильним для приладу, який стоїть у моєму щитку й міряє мою електрику.

Що вміє PowerTrace

Читає лічильник напряму по локальній мережі Tuya-протоколом — Local Key береться один раз через Tuya IoT platform, після цього хмара більше не потрібна. Все зберігається в SQLite на власній машині, дашборд віддається через WebSocket у реальному часі.

  • Історія по днях/місяцях/роках, для завантажених днів є погодинний вигляд, щоб не гортати сирі тіки
  • «Епізоди навантаження» — ставиш поріг у ватах на графіку, і бачиш, скільки пішло на потужний прилад, а скільки — фонове споживання
  • Двозонний (день/ніч) тариф з білінгом
  • Рушій аналізу з Health Score: просідання й скачки напруги, сплески навантаження, тренд споживання (з розпізнаванням «сходинки» — зміни рівня, а не тренду), аномальні дні, коефіцієнт потужності під навантаженням. Усі правила — YAML, редагується прямо в UI

Технічно

Python + FastAPI на бекенді, ванільний JS + Chart.js на фронті, ніяких фреймворків заради фреймворків. Працює на Raspberry Pi / Debian (.deb, два systemd-сервіси), на Windows (трей-застосунок), або запускається з джерела. Єдиний зовнішній запит — раз на добу перевірка нової версії, і її можна вимкнути в налаштуваннях.

Не лише ATORCH

Шар підтримки пристрою — це YAML-профіль на ~30 рядків, який мапить Tuya DP-ідентифікатори лічильника на потужність/напругу/струм/енергію/PF. Будь-який Tuya-лічильник чи реле з відомими DP можна додати без єдиного рядка коду. Якщо в тебе є такий пристрій — скинь мені його DP, додам профіль.

Чесно про обмеження

Один лічильник на інсталяцію. Прилад тікає раз на 60 секунд — апаратна межа, не моя. Не-Tuya протоколи (Shelly, Modbus, ESPHome) поки не підтримуються. І поки не open source: проєкт однієї людини, а відкриття коду — двері в один бік, я волію свідомо визначитись із ліцензією пізніше, ніж відкрити зараз і шкодувати. Безкоштовно для особистого використання тим часом.

Сайт із гайдами й завантаженням: getpowertrace.com/...​evices/atorch-gr2pws.html чи getpowertrace.com/uk

Буду радий питанням — особливо якщо в когось є Tuya-пристрій не зі списку, або цікаво про сам локальний протокол.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

тобто. так і немає повноцінного локального функціоналу, все одно треба хмара та підключення до Інтернету у цих пристроїв.
я вже більше ніж рік використовую інтеграцію з хоум-ассистам — і теж чудово все рахує. Незрозуміло навіщо автор це постить сумнівні посилання та з дивними обмеженнями — є жеж відкритий код на гітхабі.

Я думаю після чергового відвалу — все ж таки включу інтеграцію яка координується через хмару — ну його нафіг лізти в туя — згадувати пароль від мого developer.tuya.com і згадувати як там оновлювати токени / ключі

Я все чекаю коли змусять ці пристрої дійсно працювати дійсно локально — без будь-яких хмар, бо все раптово починає відвалюватися раз на пів року...

на жаль заголовок не відповідає змісту .... хмара потрібна для сабжа — без хмари через місяць-півроку буде цегла

Один лічильник на інсталяцію. Прилад тікає раз на 60 секунд — апаратна межа, не моя. Не-Tuya протоколи (Shelly, Modbus, ESPHome) поки не підтримуються. І поки не open source: проєкт однієї людини, а відкриття коду — двері в один бік, я волію свідомо визначитись із ліцензією пізніше, ніж відкрити зараз і шкодувати. Безкоштовно для особистого використання тим часом.

Якби ви подивились мій сайт (about), то побачили б, що мені 62 роки. Не дуже бумер, чи не так? Крім того Home Assistant не дає таких розширених графіків та аналізу, як цей інструмент. Я в АйТі більше 40 років. Робив під свої потреби саме тому, що HA куций і частині анвлітики. Або мені не вдалося з льоту розібратись де та аналітика. Якщо вона дійсно є і я завтикав, то прошу ткніть носом і я закину цю прогочку. Дякую заздалегідь.

«Поколе́ние бэ́би-бу́меров, также бе́би-бу́меров или просто бу́меров (англ. baby boomers) — термин, применяемый в теории поколений Уильяма Штрауса и Нила Хоува к людям, родившимся в период примерно с 1946 по 1964 годы».

Я завжди відносив себе до покоління «Х»