Перейти к содержанию

MQTT-шлюз для Redmond своими руками

Материал из Wiki yaboard
Версия от 07:28, 20 октября 2020; Ws23pro (обсуждение | вклад) (Новая страница: «{{metadesc|{{PAGENAME}} | шлюз своими руками для техники redmond }} __NOEDITSECTION__ __TOC__ {{Skills}} {{Hands}} == Введен…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Содержание
Знания Применение информации с этой страницы требует специальных знаний и навыков
Всё описанное на этой странице вы производите на свой страх и риск, включая нарушение работы программного обеспечения и выход из строя оборудования, а также риск поражения током и травмы.
Материал носит информационный характер, и не является прямым указанием к действию!
Требуются прямые руки И вдумчивое отношение к инструкции
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 112.

Введение

техника дерьмонд работает по протоколу bluetooth, и для удаленного управления требует активного соединения или со смартфоном владельца, или использовать шлюз. (все прелести работы блютупа, особенно на больших расстояниях или за кучей стен, например в 2-х этажном доме обсуждать не будем) шлюзом может выступать, как конечный готовый продукт компании дерьмонд, так и любое android устройство.

Приобретать шлюз за 3000+ т.р. для одного чайника экономически невыгодно (сюда добавим стоимость чайника), а android в качестве шлюза (по сообщениям чата) работает не стабильно. К тому же, не всегда есть лишний смартфон или приставка. Поэтому, предлагаю собрать свой шлюз, размером со спичечный коробок, а его стоимость будет 300+- рублей.

Так же, для его работы необходим MQTT сервер. Каждый для себя выбирает, где его крутить. Я, по традиции, использую систему iobroker со своим MQTT сервером, который уже работает в паре с Алисой.

Требования и ресурсы

для реализации нам понадобятся:

  • плата esp32 с поддержкой wi-fi и bluetooth (ссылка на алик, продавец не проплатил, можете найти аналоги )
  • прошивка (ссылка на гит)
  • mqtt сервер
  • прямые руки, чайник, винда

если перечисленное устраивает, погнали

Прошивка и настройка платы

В интернете полно статей и видео о том, как прошить плату esp32. Приведу пример с сайта амперки

На всякий случай сделайте бекап родной прошивки платы.

на гите подробно описано, что нужно сделать. я просто перечислю в двух словах:

  1. подключить плату к ПК и прошить прошивку fr4sGate.bin с гита, перезагрузить;
  2. создать wi-fi сеть (на ноуте/мобильном) с именем r4s и паролем 12345678;
  3. найти в списке подключенных устройств плату, открыть ее по ip адресу в браузере;
  4. перейти на вкладку settings, внести настройки вашего wi-fi, название и модель чайника, а так же параметры вашего MQTT сервера;
вкладка settings

после этого, плата перезагрузиться и подключиться на ваш домашний wi-fi. находим плату и переходим в веб-интерфейс.

у меня, с последней версией прошивки, чайник самостоятельно зацепился на плату. автор прошивки говорит слеюущий порядок подключения:

  1. зажать кнопку на чайнике
  2. отправить в перезагрузку плату (есть кнопка reboot в вебе)
  3. сколько держать не уточняется. можно экспериментировать с подключением в родном приложении: оценить, сколько там жать и с какой интенсивностью. да прибудет с вами

автообнаружение и подключение.

в вебе на вкладке main можно увидеть, как плата обнаруживает чайник.

так же, на вкладке main можно увидеть:

вкладка main
  • версия прошивки;
  • аптайм платы;
  • статус устройства (подключён или нет);
  • сетевой адрес платы;
  • статус подключения к mqtt серверу;

обнаружение в iobroker MQTT

После того, как чайник определился в веб-интерфейсе, и вы указали параметры своего mqtt сервера, в iobroker/mqtt отобразятся стейты.

Iob_mqtt_r4s


Из документации к прошивке:

Mqtt топики для чайника: r4s/devaddr/cmd/state <-- 0/off/false - выключение, 1/on/true - кипячение, 2...100 - кипячение и подогрев;

r4s/devaddr/cmd/heat_temp <-- 0 - выключение, 1...100 подогрев;

r4s/devaddr/cmd/nightlight <-- 0/off/false - выключение ночника, 1/on/true - включение ночника;

r4s/devaddr/cmd/nightlight_red <- 0..255 Уровень красного в ночнике;

r4s/devaddr/cmd/nightlight_green <- 0..255 Уровень зеленого в ночнике;

r4s/devaddr/cmd/nightlight_blue <- 0..255 Уровень синего в ночнике;

r4s/devaddr/rsp/ - текущее состояние, температура, rssi и т.д.;


мне достаточно одного топика, state - on/off для включения или отключения чайника