MQTT-шлюз для Redmond своими руками
Материал носит информационный характер, и не является прямым указанием к действию!
Телефон вызова экстренных служб - 112.
Описание проблемы
Как известно, техника Redmond работает по протоколу bluetooth и поэтому требует наличия отдельного устройства (аппаратный гейтвей, или выделенный Android телефон\планшет с установленным ПО Redmond; некоторые используют в качестве базы ТВ-приставки на базе Андроид). Такое решение имеет ряд минусов:
- Все "прелести" работы bluetooth, особенно на больших расстояниях или за несколькими стенами и/или перекрытиями;
- Дополнительные затраты на шлюз (3000+р, что ради чайника экономически невыгодно, учитывая и стоимость чайника);
- Программный android-шлюз часто работает нестабильно. Да и не всегда есть лишний смартфон или приставка;
- Периодически отваливается и само облако Редмонд.
Инструкция описывает самодельный шлюз размером со спичечный коробок со стоимостью около 300 рублей. При этом отпадает необходимость как в стандартных гейтвей-устройствах и программах, так и в самом облаке Redmond!
Требования и ресурсы
Нам понадобятся:
- Плата ESP32 с поддержкой Wi-Fi и Bluetooth (например, такая; продавец не проплатил, можете найти аналоги )
- Прошивка (ссылка на гит)
- MQTT-сервер. Я, по традиции, использую ioBroker со своим MQTT, который уже работает в паре с Алисой. Можете выбрать любой удобный вариант.
- Прямые руки, чайник Редмонд, немного Windows
Прошивка и настройка платы
В интернете полно статей и видео о прошивке ESP32 (например, на Амперке.
На всякий случай сделайте бэкап родной прошивки платы.
В git-репозитории из предыдущего пункта подробно описано, что нужно сделать. Если коротко:
- Подключить плату к ПК и прошить файл fr4sGate.bin с git, перезагрузить плату;
- Создать Wi-Fi сеть (на ноуте/смартфоне) с именем r4s и паролем 12345678;
- Найти в списке подключенных устройств плату, открыть её в браузере по IP-адресу;
- Перейти на вкладку settings, внести:
- Настройки вашего Wi-Fi,
- Название и модель чайника,
- Параметры вашего MQTT-сервера.
-
Вкладка 'Settings'
После этого плата перезагрузится и подключится на ваш стандартный домашний Wi-Fi.
Находим адрес платы и снова переходим в веб-интерфейс.
У автора на последней версии прошивки чайник подключился к плате сам.
Порядок действий по инструкции:
- Зажать кнопку на чайнике
- Отправить плату в перезагрузку (есть кнопка reboot в веб-интерфейсе).
Сколько держать - не уточняется. Можно поэкспериментировать с подключением в родном приложении (оценить, сколько жать и с какой интенсивностью).
В веб-интерфейсе на вкладке main можно увидеть, как плата обнаруживает чайник. На этой же вкладке расположены:
- Версия прошивки;
- Uptime (время непрерывной работы) платы;
- Статус устройства (подключён или нет);
- Сетевой адрес платы;
- Статус подключения к MQTT-серверу;
-
Вкладка 'main'
обнаружение в 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 и т.д.;
На практике автору оказалось достаточно одного топика (on/off для включения или отключения чайника).