Підключення бойлера Ariston до Wi-Fi та Home Assistant: моніторинг температури без втручання в електроніку

Підключення бойлера Ariston до Wi-Fi та Home Assistant: моніторинг температури без втручання в електроніку

Після самостійного чищення бойлера Ariston Velis VLS 50 з’явилась ідея: а що, якщо не просто повернути бойлер на місце, а ще й “навчити” його розповідати про себе в Home Assistant? Реальну температуру обох баків, скільки залишилось гарячої води, чи є він зараз онлайн — і все це без жодного втручання в роботу штатної електроніки бойлера.

У цій статті — як влаштована плата бойлера зсередини, як підключити ESP32 паралельно до штатних датчиків, чому звичайна формула термистора тут не працює, і як виглядає результат у Home Assistant.

📺 Відео зі збіркою та поясненнями: https://youtu.be/wHLzE_R3Wa4

💾 Весь код і файли проєкту: https://github.com/SapozhnikUA/heater-Ariston-WIFI-HomeAssistant


Навіщо це взагалі потрібно

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

Мета була скромна: побачити реальну температуру, приблизний запас гарячої води та факт того, що пристрій живий і на зв’язку — прямо в звичному інтерфейсі Home Assistant, поруч з іншими розумними пристроями в квартирі.

Як влаштована плата бойлера

Розібравши бойлер, на платі керування знаходимо два входи для термодатчиків — по одному на кожен бак (основний і додатковий). Кожен вхід влаштований однаково:

+5V
 │
NTC 10k (штатний датчик)
 │
 |            ─────► тут можна зняти сигнал
 │            |
 ├────330Ω──────────► ADC штатного контролера
 │
4.7kΩ (штатний резистор)
 │
GND

Тобто це класичний дільник напруги: термистор NTC зверху, резистор 4,7 кОм знизу, а посередині — точка, напруга в якій залежить від температури (опір NTC змінюється з температурою, тому й напруга в точці поділу теж змінюється). Живлення 5В для цього дільника бере від штатного стабілізатора 78M05, який також живить основний керуючий контролер.

Головне правило всього проєкту: ESP32 підключається паралельно до цієї точки і лише читає напругу. Штатний 330-омний резистор і АЦП контролера Ariston й далі отримують сигнал так само, як і раніше — місцевий контролер продовжує керувати нагрівом самостійно, ESP32 тільки “підслуховує”.

Чому не можна просто виміряти температуру термистора

Перше, що спадає на думку — виміряти опір NTC і порахувати температуру за стандартною формулою термистора (так званою Beta-моделлю, 1/T = 1/T0 + ln(R/R0)/B). Але тут є нюанс: коли зняли реальні виміри напруги при відомих показах дисплея Ariston, з’ясувалось, що основний і додатковий бак дають різну напругу при однаковій температурі на дисплеї (наприклад, при 50°C — 2,526В на основному й 3,048В на додатковому). Стандартна фізична формула термистора такого дати не може: якщо термистори однакові, однакова температура мала б давати однакову напругу.

Висновок простий: контролер Ariston рахує температуру не за фізичною формулою, а за власною, “зашитою” в нього нелінійною таблицею калібрування (ймовірно, під конкретний тип NTC, який вони використовують, з урахуванням особливостей конкретної моделі бойлера). Щоб дисплей ESP32 показував те саме, що й дисплей бойлера, а не “правильну” фізичну температуру, потрібно повторити цю ж логіку — калібрувальну таблицю.

Знайшовши в мережі сервісну документацію Ariston із таблицею залежності опору NTC-датчиків від температури, і додатково самостійно виставивши на бойлері кілька контрольних температур (25°C, 50°C, 60°C, 80°C) та зафіксувавши реальну напругу на кожному з двох датчиків, вдалось скласти дві окремі калібрувальні таблиці — по одній на кожен бак. Температура між контрольними точками рахується лінійною інтерполяцією.

Схема підключення ESP32

Для зчитування використано ESP32-S3 SuperMini. Оскільки напруга на датчиках бойлера сягає майже 5В, а вхід АЦП ESP32 розрахований на менший діапазон, перед кожним GPIO стоїть додатковий дільник напруги:

50 кОм (послідовно)
100 кОм (на землю)

Vadc = Vsensor × 2/3   →   Vsensor = ADC × 1.5

Піни підключення:

Пін GPIOБак
GPIO4Основний (верхній) бак
GPIO5Додатковий (нижній) бак

Ще раз важливий момент: ESP32 нічим не керує і нічого не навантажує — це суто пасивний “знімач показань” паралельно до штатної схеми.

Прошивка на ESPHome

Прошивка написана на базі ESPHome і виконує кілька задач:

  • зчитує напругу з обох ADC-пінів;
  • перераховує напругу на самому датчику (Vsensor = ADC × 1.5);
  • рахує температуру через калібрувальну таблицю окремо для кожного бака (а не через фізичну Beta-формулу);
  • рахує орієнтовний опір NTC як діагностичний показник;
  • оцінює приблизний відсоток і літри гарячої води, виходячи з середньої температури обох баків;
  • публікує діагностику: Wi-Fi RSSI, IP-адресу, MAC-адресу, uptime та час останнього виходу на зв’язок (“Last Seen”).

Усі дані йдуть у Home Assistant по Wi-Fi через рідну API-інтеграцію ESPHome — пристрій виявляється автоматично, без додаткових інтеграцій чи хмарних сервісів.

Що показує Home Assistant

Для зручного перегляду зроблена окрема картка на базі Mushroom Cards:

  • загальний блок бойлера з відсотком і літрами гарячої води;
  • температура основного та додаткового бака — з іконкою, колір якої змінюється залежно від температури (від синього до червоного);
  • технічний блок діагностики: напруга і опір NTC обох датчиків;
  • рядок з чіпами стану: Wi-Fi RSSI, IP-адреса, uptime.

Але найцікавіше виявилось не в самій картці, а в графіках. Завдяки історії температури в Home Assistant стало видно реальну логіку роботи бойлера, яку раніше ніяк не можна було спостерігати:

  • у звичайному режимі спочатку гріється лише основний бак; коли він досягає заданої температури — вмикається ТЕН другого (додаткового) бака;
  • обидва ТЕНи одночасно можна увімкнути лише в спеціальному “fast”-режимі;
  • коли з крану розбирають гарячу воду, на графіку видно різке падіння температури саме в додатковому баку (куди в першу чергу заходить холодна вода), тоді як в основному баку температура падає повільніше й менш різко — завдяки перемішуванню.

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

Обмеження проєкту

Варто чесно зазначити кілька моментів:

  • це пасивний моніторинг, він нічим не керує і не замінює штатну автоматику бойлера;
  • калібрувальні таблиці підібрані під конкретний екземпляр Ariston VLS 50 — для інших моделей чи серій, ймовірно, знадобляться власні виміри;
  • “% гарячої води” і “літри” — орієнтовна оцінка за середньою температурою обох баків, а не пряме вимірювання рівня води;
  • будь-яке втручання в електроніку бойлера варто робити на власний ризик, з відключеним живленням під час підключення проводів.

Плани на майбутнє

В процесі збірки з’явилась ще одна ідея — додати окремий датчик для виявлення можливого протікання бойлера, щоб вчасно помітити проблему й уникнути затоплення. Це наступний крок розвитку проєкту.


Весь код і файли

Повний конфіг ESPHome, калібрувальний хедер і готова картка для Home Assistant викладені у відкритому доступі:

🔗 GitHub: https://github.com/SapozhnikUA/heater-Ariston-WIFI-HomeAssistant

А детальну розповідь про збірку, підключення й перші тести можна подивитись у відео:

📺 YouTube: https://youtu.be/wHLzE_R3Wa4

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

Залишити відповідь