Home Assistant · HACS

Зарядна станція СтрумОК у Home Assistant через HACS

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

Уже маєте MQTT-брокер і хочете миттєвих оновлень? Погляньте на варіант через MQTT Discovery.

Що вміє інтеграція

Знаходить станцію сама

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

Сенсори станції та дому

Стан і потужність заряду, енергія сесії, сонячна генерація, батарея, мережа, споживання — з тими самими назвами, що й у варіанті через MQTT.

Керування зарядкою

Увімкнути чи призупинити заряд, змінити струм, перевизначити фазу. Потрібні ключ API і прошивка станції з локальними командами.

Лише ваша мережа

Home Assistant звертається до станції напряму по локальній мережі. Хмара для цього не потрібна, і дані нікуди не йдуть.

Оберіть один спосіб: HACS або MQTT

Не вмикайте для однієї станції одночасно MQTT-місток і цю інтеграцію. Home Assistant покаже два пристрої з однаковими сенсорами й перемикачами, а автоматизації почнуть смикати одну зарядку двічі. Перейшли на HACS — вимкніть MQTT у застосунку («Коробка в Home Assistant» → «Вимкнути MQTT»).

Пакет опубліковано окремим репозиторієм: github.com/ndkedrov/homeassistant-strumok. В офіційному каталозі HACS його свідомо немає — додайте його вручну як custom repository (крок 1). Для будь-якої інтеграції поза каталогом це звичайна дія.

Що таке HACS

HACS (Home Assistant Community Store) встановлює сторонні інтеграції, яких немає в офіційному каталозі Home Assistant. Наш пакет — звичайна локальна інтеграція: Home Assistant сам звертається до станції по мережі й оновлює сенсори.

Чим цей спосіб відрізняється від MQTT

Не потрібні ні брокер, ні додаткове ПЗ — лише станція в тій самій мережі, що й Home Assistant. Дані оновлюються з інтервалом опитування (типово 15 секунд), а не миттєво, як у MQTT. Для показників станції й керування зарядкою цього досить.

Як встановити

Стандартний шлях HACS: додати репозиторій, завантажити, перезапустити — далі Home Assistant сам запропонує станцію.

  1. 1

    Додайте репозиторій СтрумОК у HACS

    HACS → меню (три крапки) → «Custom repositories» → вставте https://github.com/ndkedrov/homeassistant-strumok, тип «Integration» → «Додати».

  2. 2

    Завантажте й перезапустіть Home Assistant

    Знайдіть «СтрумОК» у HACS, натисніть «Завантажити» й перезапустіть Home Assistant (Налаштування → Система → Перезапустити).

  3. 3

    Прийміть знайдену станцію

    Налаштування → Пристрої та служби → блок «Виявлено» (Discovered) → «СтрумОК SK-…» → «Додати». Ключ API можна вставити одразу або пізніше. Без ключа будуть лише сенсори.

  4. 4

    Або додайте вручну за IP

    Якщо станція не з’явилась у «Виявлено» (наприклад, Home Assistant в іншій підмережі): «Додати інтеграцію» → «СтрумОК» → введіть IP-адресу станції. IP показують застосунок (Налаштування коробки → «Коробка в Home Assistant») і ваш роутер. Порт і логін не потрібні.

Як Home Assistant знаходить станцію

DHCP

Коли станція отримує адресу від роутера, Home Assistant упізнає її за іменем у мережі (strumok-…) або за MAC-адресою вже доданої станції. Так і працює оновлення IP: нова адреса підхоплюється без вашої участі.

mDNS (_strumok._tcp)

Станції з достатнім запасом пам’яті ще й оголошують себе в мережі службою _strumok._tcp — тоді Home Assistant бачить їх одразу після ввімкнення. На менших платах цього оголошення немає, їх знаходить DHCP.

Автовиявлення працює лише в межах однієї локальної мережі. Home Assistant у Docker без мережі хоста DHCP-пакетів не бачить — тоді додайте станцію вручну за IP.

Ключ API

Ключ — це довгий пароль саме для Home Assistant. Його можна будь-коли відкликати, не змінюючи пароль входу до станції.

Коли він потрібен

  • Щоб керувати зарядкою з Home Assistant — без ключа інтеграція показує лише сенсори.
  • Якщо на станції закрито читання без входу — тоді без ключа Home Assistant не побачить навіть сенсорів.

Як створити

  1. 1Відкрийте веб-панель станції за її IP-адресою.
  2. 2«Захист станції» → «Ключі API» → «Для чого»: Home Assistant → дайте ключу назву → «Створити ключ».
  3. 3Скопіюйте ключ (починається з sk_): панель показує його лише один раз.
  4. 4Вставте в інтеграцію: при додаванні станції або пізніше — Пристрої та служби → СтрумОК → меню (три крапки) → «Переналаштувати» (Reconfigure).

Якщо ключ відкликали або на станції ввімкнули вхід пізніше, станція відповість «немає доступу». Тоді Home Assistant сам попросить повторну автентифікацію (Reauthenticate) на сторінці «Пристрої та служби» — вставте новий ключ, і інтеграція продовжить роботу без перезапуску.

Інтеграція перевіряє ключ порожньою командою, яку станція відхиляє ще до виконання. Під час перевірки зарядка нічого не робить.

Керування зарядкою

З’являється само, щойно виконано дві умови: задано ключ API і прошивка станції вміє локальні команди. Оновили прошивку — перемикачі з’являться без перезапуску Home Assistant.

СутністьТипЩо робить
strumok_<slug>_charging_enabledswitchДозволяє або призупиняє заряд на керованій зарядці. Стан — «заряд дозволено» зі станції.
strumok_<slug>_charging_currentnumber, АСтрум заряду. Межі бере в самої зарядки: від 7 А (або її мінімуму, якщо він більший) до її максимуму. Поки зарядка максимуму не повідомила — до 16 А.
strumok_<slug>_phase_resetbuttonСкидає висновок автопілота про те, на якій фазі зарядка. Після цього станція визначає фазу заново на наступному помітному кроці струму.

Команди з Home Assistant проходять тим самим шляхом, що й команди із застосунку: ті самі межі струму й та сама ручна витримка, під час якої автопілот не перебиває вашу команду.

Якщо станція не може виконати команду (наприклад, ще не знайшла зарядку в мережі), Home Assistant покаже її пояснення прямо у сповіщенні про помилку.

Інтервал опитування — від 5 до 300 секунд, типово 15. Змінюється в Пристрої та служби → СтрумОК → «Налаштувати» (Configure) і діє одразу, без перезапуску. Пам’ять станції обмежена, тож не ставте частіше, ніж справді треба. Поля, якого станція зараз не віддає, стає «недоступним». Це не помилка.

Сенсори станції в Home Assistant

Той самий перелік, що й у варіанті через MQTT: спосіб підключення на набір даних не впливає.

Ключ entityТипДжерело (/api)Одиниця / класПримітка
strumok_<slug>_charging_statesensorevse.statusdevice_class: enumКлюч стану зарядки зі словника прошивки: ready, waiting, charging, blocked, schedule_1… (24 значення, у HACS перекладені). Незнайоме значення показується як unknown.
strumok_<slug>_charging_currentsensorevse.curA · device_class: currentЗаданий струм, який прийняла зарядка.
strumok_<slug>_charging_powersensorevse.kwW · device_class: powerПопри назву поля kw — це вати: так рахує прошивка для обох типів зарядок (звірено на живій платі: 233 В × 16,4 А ≈ 3 814 Вт). HACS до версії 0.2.0 помилково показував кВт.
strumok_<slug>_charging_session_energysensorevse.session_kwhkWh · device_class: energy · total_increasingЕнергія поточної сесії заряду. З’являється лише на прошивках, що її віддають. Нова сесія починається з нуля: Home Assistant вважає це скиданням лічильника, тож панель «Енергія» рахує правильно.
strumok_<slug>_charging_allowedbinary_sensorevse.on—Нормалізований прапорець «заряд дозволено» (0/1 з /api).
strumok_<slug>_car_connectedbinary_sensorevse.units[0].car—Береться з першого слота керованого EVSE. Якщо evse.units порожній або відсутній — entity стає «недоступний», а не помилка.
strumok_<slug>_home_battery_socsensorlive.m.batt_soc_pct% · device_class: batterySoC ДОМАШНЬОЇ батареї (інвертор), не автомобіля — SoC авто в /api немає взагалі.
strumok_<slug>_pv_powersensorlive.m.pv_power_wW · device_class: power
strumok_<slug>_battery_powersensorlive.m.batt_power_wW · device_class: powerЗнак (плюс — заряд чи розряд) звіряється емпірично, не вгадується.
strumok_<slug>_grid_powersensorlive.m.grid_power_wW · device_class: power
strumok_<slug>_load_powersensorlive.m.load_power_wW · device_class: power
strumok_<slug>_wifi_onlinebinary_sensorwifi.ondevice_class: connectivityДіагностичний entity.
strumok_<slug>_wifi_rssisensorwifi.rssidBm (типова конвенція; у коді одиниця явно не вказана)entity_category: diagnostic.
strumok_<slug>_inverter_bus_connectedbinary_sensorbus.connecteddevice_class: connectivitytrue лише коли на шині саме інвертор, не батарея.
strumok_<slug>_uptimesensorupс · device_class: durationentity_category: diagnostic.
strumok_<slug>_firmware_versionsensorfwтекстentity_category: diagnostic; також іде в sw_version пристрою в HA.

Повний унікальний ідентифікатор — strumok_<slug>_<ключ>, де <slug> — серійник станції в нижньому регістрі без дефіса (SK-E89F6DB694F0 → ske89f6db694f0). Пристрій у Home Assistant — виробник «СтрумОК», модель «Зарядна станція СтрумОК», посилання «Відвідати» веде у веб-панель станції.

Діагностика

Що означає те, що ви бачите в Home Assistant, і що з цим робити.

Усі сенсори «Недоступно»
Home Assistant не достукався до станції під час останнього опитування: станція вимкнена, перезавантажується або змінила адресу. Інтеграція повторить сама. Якщо змінилась адреса, DHCP-виявлення оновить її, щойно станція знову отримає адресу.
Окремий сенсор «Недоступно»
Станція зараз не віддає це поле. Наприклад, показники інвертора зникають, поки плата не впізнала його карту регістрів. Це очікувано.
Запит на повторну автентифікацію
Станція не прийняла ключ API: його відкликали або на станції ввімкнули вхід. Створіть новий ключ у веб-панелі й вставте його в цей запит.
Немає перемикача й числа струму
Не задано ключ API або прошивка станції ще не вміє локальних команд. Додайте ключ через «Переналаштувати» або оновіть прошивку. Керування з’явиться без перезапуску.
Дві однакові станції
Для станції ввімкнено й MQTT-місток, і HACS. Залиште один спосіб (див. попередження вгорі).

Для звернення в підтримку: Пристрої та служби → СтрумОК → меню (три крапки) → «Завантажити діагностику» (Download diagnostics). У файлі є стан станції, але немає ключа API, логінів, назви Wi-Fi і MAC-адрес сусідніх пристроїв — їх вирізано.

Інтеграція працює лише у вашій локальній мережі й звертається до станції напряму. Ключ API зберігається в Home Assistant і не потрапляє в діагностику. Відкликати його можна будь-коли у веб-панелі станції.