Давайте знакомиться
Привет, меня зовут Саша. Я руковожу группой разработки MVP-продуктов и моя жизнь очень тесто связана с IOT и умными девайсами. По работе я привык быстро собирать прототипы, проверять гипотезы и доводить их до минимально рабочего состояния.
Но эта история - не про рабочий проект.
Она началась с фразы моего друга:
«Слушай, а можно сделать так, чтобы котёл на даче был умным?»
Спойлер: можно.
Ещё один спойлер: на выходе получилось мобильное приложение, кастомные Android-виджеты и планы на кухонный информационный центр.
Задача №1. Подключить котёл к OpenTherm
У друга на даче стоит котёл с поддержкой протокола OpenTherm. Задача выглядела достаточно простой: подключить его к умному дому и начать получать данные о состоянии - температуры, режимы работы, ошибки.
Немного изучив тему, мы нашли open-source проект - OpenTherm Gateway. Спасибо автору проекта за его старания и отдельную статью на Хабре
Казалось бы - готовое решение. Подключай и пользуйся.
На практике всё оказалось чуть интереснее.
Помимо изучения документации пришлось:
разобраться со схемой подключения,
съездить в магазин радиодеталей,
купить необходимые компоненты,
провести несколько часов с паяльником.
После некоторого времени взаимодействия с микросхемами у нас появилась «приблуда», которую можно было попробовать подключить к котлу.
Первая попытка оказалась неудачной.
То ли провода были не те.
То ли подключили не туда.
То ли просто спешили.
Но в итоге:
микросхема корректно подключена,
котёл управляется,
в веб-интерфейсе отображаются параметры,
видны температуры, режимы и статусы.
Казалось бы уже победа, НО...
Проблема №2. Всё работает… но только в локальной сети
Данные были доступны через веб-интерфейс, но исключительно внутри локальной сети.
И всё бы ничего, но эта локальная сеть находится в н-ном количестве километров от города, где мы проводим большую часть времени.
Сценарий получался странный:
котёл работает,
данные есть,
интерфейс красивый,
но увидеть всё это можно только находясь физически на даче.
А хотелось:
видеть температуру из города,
понимать, что происходит в мороз (тем более зима под минус 27),
быстро проверить состояние системы без танцев с VPN.
Задача №3. Интеграция с Home Assistant и Яндексом
Так как я не первый раз подключаю умный дом под свои потребности, решение было очевидным:
ставим Home Assistant,
подключаем OpenTherm Gateway,
пробрасываем данные в Яндекс Умный дом (еще один прекрасный проект: Yaha Cloud),
управляем голосом через колонку или узнаем нужные температуры.

Всё заработало.
Можно спросить колонку о температуре или включить режим.
Можно открыть приложение и посмотреть статусы.
И было бы все хорошо, если бы не очередное НО...
Проблема №4. Слишком много действий ради одного взгляда
Чтобы просто посмотреть температуру, нужно:
Найти приложение.
Запустить.
Подождать загрузки.
Ознакомиться (если у вас корректно сформировано избранное).
Мой друг - человек принципиальный и немного придирчивый. Лишние нажатия пальцем его не устраивали.
Ему хотелось:
«Открываю телефон - и сразу вижу всё, что нужно».
Но в текущей реализации экосистемы Яндекса полноценные данные доступны только внутри приложения. В виджетах - только сценарии.
Это нас не устроило.
Решение №5. Пишем своё приложение
А почему бы не нарастатить функционал, и не собрать свои виджеты?
данные меняются не каждую секунду,
обновления раз в 10 минут более чем достаточно,
принудительное обновление можно сделать по тапу на виджете,
вся ключевая информация должна быть прямо на рабочем столе.
Выбор пал на Flutter.
Почему именно он:
кроссплатформенность (Android сейчас, остальное - потенциально),
понятное формирование UI для основных экранов приложений,
удобная разработка MVP,
возможность в будущем расширить приложение на другие платформы.
Архитектура и реализация
Мы:
изучили актуальные библиотеки и АПИ, который предоставляет Яндекс.
подумали, как выбирать, какие параметры выводить, что настраивать,
решили, что делать, если данные по разным объектам хочется видеть отдельно,
реализовали вывод информации в различные виджеты,
добавили несколько вариантов конфигурации отображения.

Оказалось, что Android-виджеты - это отдельная философия.
Они по-разному ведут себя на разных устройствах, отличаются размерами, отступами и правилами рендеринга.
Поэтому пришлось:
- расширить параметры конфигурации,
- добавить настройку цветов,
- продумать отображение иконок,
- сделать гибкую компоновку,
- предусмотреть возможность разносить разные типы данных по разным виджетам.
В итоге пользователь может сам решить:
- один общий виджет со всеми параметрами,
- или несколько отдельных - температура, режим работы, статус конкретного объекта.
Результат
Товарищ доволен.
Хотя… если бы он не был дотошным, это был бы не он.
Список «а давай ещё добавим» продолжает расти.
Но важно другое - мы не пытаемся заменить существующие экосистемы или переписать функциональность умного дома.
Мы лишь дополняем то, чего лично нам не хватало в повседневном использовании - быстрый доступ к статусу без лишних действий.
Неожиданный поворот: часы на кухне
Каждый раз приходя к нему домой, я видел одну деталь:
на кухне стоят часы, сделанные из старого телефона. Они просто показывают время и погоду.
И в какой-то момент мы посмотрели на это и подумали:
«А почему бы не сделать часы + погоду + состояние котла + датчики прямо здесь?»
Пока только прототип, но уже начинаю задумываться насчет того, чтоб такие же "часики" поставить у себя дома.

Так из задачи «подключить котёл» проект начал постепенно превращаться в домашний информационный центр.
Вместо выводов
Хочется верить, что со временем ребята из Яндекс расширят инструменты управления умным домом и добавят больше гибкости в отображении данных. Потенциал у экосистемы огромный, и для части пользователей подобная функциональность действительно была бы полезной.
А пока - мы закрыли свою конкретную потребность.
Закрытое тестирование
Сейчас приложение находится в закрытом тестировании - "скоро на всех площадках вашего города!"
Мы проверяем:
поведение виджетов на разных устройствах,
стабильность обновления,
удобство конфигурации,
сценарии использования в реальной жизни.
Если вам интересен подобный функционал - буду рад пообщаться и привлечь к тестированию.
Особенно если у вас:
есть похожие потребности мониторинга данных
не хватает логического деления данных в нативном приложении,
или просто есть интерес к кастомным Android-виджетам для умного дома.
Проект из «подключить котёл другу» незаметно превратился в небольшой продукт.
И, возможно, он будет полезен не только нам.
