Комфорт взаимодействия с умным домом - ключевая часть системы.
В предыдущей статье мы рассказали о нашем термостате. Остановимся подробнее на управлении.
Мы предусмотрели 2 варианта управления устройством:
удаленно через web-интерфейс или PWA-приложение;локально через сенсорный экран.Первый вариант управления позволяет:
регулировать температуру каждого термостата (отображается в виде отдельного блока);настраивать расписание работы термостата (утро, день, вечер, ночь);выбирать Wi-Fi сети и подключать к ним устройства;обновлять устройства “по воздуху”;настраивать MQTT;настраивать сеть, к которой подключено устройство.Кроме управления термостатом посредством web-интерфейса, предусмотрели классическое - нажатиями по дисплею. На борту стоит монитор Nextion NX3224T024 2.4 дюйма. Выбор пал на него, ввиду простоты работы с девайсом. Но в разработке находится собственный монитор на основе STM32. Его функционал ничуть не хуже, чем у Nextion, но стоить будет он дешевле, что положительно скажется на конечной цене устройства.
Как и любой уважающий себя экран термостата, наш Nextion умеет:
- выставлять необходимую пользователю температуру (кнопками справа);
- включать и выключать режим работы по расписанию (кнопка Н);
- отображать работу реле (стрелка слева);
- имеет защиту от детей (блокируются физические нажатия, пока замок не снят);
- отображает уровень сигнала WiFi.
Кроме того, с помощью монитора можно:
- выбрать тип установленного у пользователя датчика*;
- управлять функцией защиты от детей;
- обновить прошивку.
*Система рассчитана на поддержку большинства аналоговых датчиков температуры, применяемых в обычных термостатах.
По клику на логотип WiFi, пользователь узнает информацию о подключенной сети. QR код используется для сопряжения устройства в прошивке HomeKit.
Демо работы с дисплеем
Вы спросите: “В чём особенность вашего термостата?” Сейчас на рынке существует множество термостатов с функцией Wi-Fi, работой по расписанию, сенсорным управлением. А энтузиасты написали модули для взаимодействия с большинством популярных систем умный дом (Majordomo, HomeAssistant и т.п.).
Наш термостат совместим с такими системами и обладает всеми вышеперечисленными характеристиками. Но отличительная особенность в том, что термостат постоянно дорабатывается, благодаря гибкости системы. С каждым обновлением функционал будет расширяться. К стандартному способу управления системой (по расписанию), мы добавим адаптивный. Приложение позволяет получать геолокацию пользователя. Благодаря этому, система будет динамически менять режимы работы в зависимости от его местоположения. А модуль погоды позволит подстраиваться к погодным условиям.
И расширяемость. Любой желающий сможет заменить установленный у него обычный термостат на наш. С минимальными усилиями. Мы выбрали 5 самых популярных датчиков, представленных на рынке, и добавили их поддержку. Но даже в случае эксклюзивных характеристик датчика, пользователь сможет подключить его к нашему термостату. Для этого понадобится произвести калибровку термостата для работы с конкретным сенсором. Инструкции мы предоставим.
Подключая термостат или любое другое устройство, оно одновременно появляется везде: и в web-интерфейсе, и в PWA-приложении. Добавление устройства происходит автоматически: достаточно лишь подключить его к Wi-Fi сети.
По ссылке мы подготовили демо-страницу интерфейса с тремя подключенными термостатами.
Про систему
Термостат - только отправная точка целостной системы управления. Наша система призвана стать местом, в котором можно объединить различные устройства. Существуют разные способы сделать это. При использовании MQTT получить информацию о подключенных устройствах можно только через Сервер или используя статический IP-адрес. Плюс такого способа заключается в том, что для каждого устройства не нужно иметь выделенный ip-адрес. Для работы достаточно прописать ip-адрес сервера и проводить дальнейшую конфигурацию через интерфейс на Сервере. Но огромным минусом такого подхода является зависимость от Сервера. При любых неполадках, устройства превращаются в “болванчиков” и система крашится.
Нас такой подход не устраивал, и мы пошли по другому пути. Прописывать вручную ip-адреса под каждое устройство слишком трудозатратно и неудобно для пользователя. Ведь каждая инженерная система стремится к упрощению. И мы решили использовать протокол SSDP для обнаружения устройств. К его стандартному ответу мы добавили id устройства, ip адрес устройства в сети и тип устройства. Этих данных достаточно, чтобы сформировать блоки и вывести их в интерфейс. Затем SSDP-лист создаётся каждым устройством в системе. Таким образом формируется взаимосвязанная сеть. И при обращении к любому из устройств, пользователь получит актуальный список всех устройств в сети. Также, SSDP позволяет отображать устройства в сетевом окружении. При двойном клике на него у пользователя открывается браузер со страницей управления.
Для использования нашего интерфейса достаточно базовых навыков программирования. Любой разработчик собственного умного дома, которому приглянулся наш интерфейс и который не хочет быть завязанным на Сервер, сможет внедрить свои устройства. Для этого достаточно выбрать тип блока, который он хочет использовать, и добавить библиотеку SSDP в его код. Т.е. необходимо будет указать id, ip, тип устройства и отправлять измеренные показания (в случае с сенсорами) или изменённые данные (в случае с лампочками, выключателями, кнопками и т.п.) с устройства. Эта информация отобразится в отведённом для этого блоке в интерфейсе. При необходимости использования внешнего управления достаточно продублировать запрос на наше облако. Приложение автоматически переключается между локальным и внешним управлением, следовательно, это не вызовет никаких неудобств использования. Вдобавок, каждая ESP может выступать шлюзом для 2-3 устройств, датчиков и т.д. Механизм внедрения, форма запроса и примеры будут описаны в API и открыты для всех желающих. Более развёрнутое описание и примеры взаимодействия - в следующей статье.
Проще говоря, пользователю достаточно будет загрузить в ESP нашу прошивку и подключить к ней свой сенсор/устройство. Инструкции мы предоставим.
Кроме этого, мы предусмотрели разделение устройств по комнатам. И для каждой комнаты (переключение - в панели слева) пользователь сможет задавать индивидуальные сценарии, настраивать контроль с учётом особенностей помещения. Детская или угловая комната - температуру побольше. Ванная комната - датчики протечки в каждый угол. В общем виде, макет расширенной системы с различными устройствами будет выглядеть так:
PWA-приложение
Наша система не нуждается в Сервере, и в случае его отказа не превращается в тыкву. Даже при отказе одного из компонентов, система не начинает работать по аварийному сценарию. Контроллеры, датчики, устройства - каждый элемент является и Сервером, и клиентом, поэтому полностью автономен.
Мы не призываем отказываться от Сервера. У нас также присутствует поддержка MQTT-сервера и есть собственное облако. Наша цель - вывести стабильность и надёжность системы на качественно новый уровень. Чтобы Сервер не являлся слабым местом, а дополнял функционал и делал систему удобнее.
Если у вас появились вопросы, их можно обсудить в тематическом канале Telegram. Остальные контакты можно найти в профиле компании.
В https://sprut.ai/client/company/portfolio/49/1804">предыдущей статье мы рассказали о
у меня 404.
Починили ссылку. Попробуйте ещё раз
не починили. тоже 404