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