Після самостійного чищення бойлера 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
Якщо повторюватимете подібний проєкт на своєму бойлері — майте на увазі, що калібрувальні точки, швидше за все, доведеться зняти заново під конкретну модель.
