Теперь у меня дома стоит реально умное отопление. Все комнаты обогреваются отдельно друг от друга в зависимости от сценария. Мы используем тепло только тогда, когда оно нужно:
- когда мы дома
- когда мы не спим
Таким образом, мы не только экономим на газе, но и вносим свой вклад для улучшения экологии.
В системе используются:
- ПК с сервером HomeAssistant
- 2 смартфона для двоих человек
- 5 умных термостатов EQ3 (по 1 на радиатор)
- 5 микроконтроллеров ESP32
Зачем нужны телефоны?
На телефонах установлены программы:
- Owntracks
- SleepAsAndroid
- IFFT
При помощи этого софта посылаются сигналы, чтобы срабатывали триггеры в автоматизациях.
Здесь нет ничего сложного. Просто система узнает, когда ты приходишь домой, когда ложишься спать или когда просыпаешься.
Есть только три недостатка:
- телефон всегда должен быть с собой
- он всегда должен быть подключён к Интернету
- нужно всегда включать отслеживание сна в будильнике
Иначе ничего работать не будет. Однако это всё мелочи и к ним быстро привыкаешь.
Почему термостаты подключены не напрямую?
HomeAssistant позволяет подключить термостаты напрямую через BLE. У меня даже стоит адаптер на сервере для этого случая.
Однако это соединение оказалась нестабильным. С разрядом батареек рабочее расстояние термостатов сильно падает. Часто сигнал не доходит.
Также опрос нескольких устройств через сервер приводил к наслаиванию одних запросов на другие: в HomeAssistant нельзя настроить очередность.
Как же теперь подключены термостаты?
После часов поисков и раздумий я нашел решение проблемы: BLE/WiFi-мост.
В качестве железа я взял ESP32 - эта маленькая плата как раз имеет нужные интерфейсы. Софт я скачал с гитхаба, он как раз сделан под мои термостаты.
Прошивка осуществляется очень удобно по USB. И вот, через пару часов я могу стабильно управлять термостатами через веб-интерфейс или MQTT-брокер.
Важно знать, что ESP32 позволяет управлять сразу несколькими термостатами. У себя же я использую по одному контроллеру на батарею для большей стабильности работы.
Как выглядит теперь мой день?
Я всегда просыпаюсь в тёплой комнате: за час до подъёма будильник посылает сигнал на сервер, что я скоро проснусь.
Затем я ухожу на учёбу и температура понижается до 17°C. Комната медленно остывает.
За пару минут до возвращения домой, сервер получает сигнал, что я рядом с домом и передаёт команду через ESP32 термостатам, что нужно нагреть квартиру. Я прихожу уже в тёплое помещение.
Когда я засыпаю, то на термостатах снова ставится температура 17°C и квартира остывает.
Какие есть проблемы?
Иногда термостат оказывается недоступен. Об этом приходит уведомление в MQTT-брокер от ESP32.
Соответственно, нужно повторить попытку установки температуры автоматически. Для этого у меня есть пара автоматизаций. Но никто не знает, сколько раз сервер будет пытаться установить температуру заново. Однажды мне пришло 180 уведомлений.
Ещё минус, что термостаты работают на батарейках. Эту трудность я решил, купив аккумуляторные батарейки. Но все равно их надо менять. Поставить один раз и забыть на годы не получится.
Что ещё нужно сделать?
Как всё в нашем мире, моя система не идеальна. Она очень бюджетна: 25$ на радиатор. Но ещё нужно сделать возможность установки температуры прямо из веб-интерфейса HomeAssistant. Также неплохо бы добавить отображение большего количества параметров термостата.
Как вам система? Критику, идеи рад выслушать в комментариях. Там же буду рад ответить на все возникшие вопросы.