nooLite 2019. ESP32+MTRF64: mqtt Hub.

Больше месяца проработал Хаб, полагаю можно выпускать его за пределы моей дачи.

В предыдущем сообщении на рассказано, как залить Lua прошивку в ESP32, и без повторения нам не обойтись, после чего продолжим изготовление этого устройства:

Опыт эксплуатации показал устойчивость и безглючность этого устройства, чего не скажешь о ESP32 в целом, ибо при разработке в двух случаях ловились Guru Meditation Error и их пришлось программно обходить. Кто слегка понимает Lua кодинге, наверняка заметит некоторые странности, вдобавок к сгенерированному мной индусскому коду 🙂

Это устройство вобрало весь предыдущий опыт, включая такой, как оказалось, популярный вопрос «световой будильник». Таким образом, все что написано мной ранее на тему nooLite находится в этой железке.

Итак, устройство работает в двух режимах.

В ручном режиме вы запускаете на исполнение всего один файл ‘__testMTRF.lua‘, который предназначен для неспешной ручной привязки и отвязки всех устройств nooLite. После запуска скрипта вы увидите картинку, которая поясняет ваши возможности.

Привязка/отвязка устройств от модуля, перевод блоков F в релейный режим или режим управления яркостью, проверка привязки силовых блоков — эти главные функции реализованы для обеспечения работы с устройствами nooLite.

  1. В левом окне ESPlorer набираем команду (здесь привязка блока старого типа к ячейке 2);
  2. кнопкой Line отправляем ее на исполнение;
  3. в правом окне видим отчет о том, что операция прошла успешно.

Теперь все что есть у вас в хозяйстве железного будет связано с MTRF64 и готово для дальнейшей работы. Посоветую скрупулезно записывать и сохранять свои действия на будущее, ибо не существует способа узнать у MTRF64 где и что к нему привязано. Я такие записи делал плохо, и, в конце концов, потерял информацию о том, к чему привязан один из релейных выходов SR-2-1000, который длительное время не был задействован.

Для поиска таких «потерянных» силовых блоков я сделал скрипт __testMTRFCellsOnOff.lua, однако работа с ним грустна и тягуча, ибо он последовательно, от 0 до 63 перебирает ячейки, выводя в ESPlorer номер текущей, включая и выключая привязки к ним на 3 секунды, а вам надо сидеть и пялиться на «потерянную» железку, в ожидании момента, когда она включится. (Именно так я делал, сидя на чердаке с ноутбуком, в ожидании срабатывания силового блока 🙂 )

Переходим к работе с хабом. По ссылке лежат все файлы проекта, которые надо закатать в ESP32.

Перед загрузкой следует уточнить, в соответствии с вашими условиями, два файла.

wifi32.lua:

_setuser.lua:

Загрузив файлы в ESP32, исполняем wifi32.lua и видим:


Далее ПЕРЕГРУЖАЕМ модуль, исполняем файл _init.lua и наблюдаем установление связи с вашим брокером:

Все готово для работы.

С брокером устройство обменивается информацией двумя «потоками». Каждая итерация вызывает отправку модулем на брокер отчет в, условно, raw — формате, когда модуль шлет копию общения по UART без первого и двух последних байт, как незначащих, а также отчет о состоянии управляемого железа nooLite в json формате:

Для разных типов модулей nooLite json слегка различается, но, надеюсь, там все логично, и понимание не вызовет затруднений. Датчики температуры, температуры и влажности:

Управление силовыми блоками через брокер осуществляется типовой парой топик/сообщение, где топик будет иметь вид:

Имя_Вашего_Устройства/com/номер_ячейки,

а данные — json, который выглядит:

{«switchf»:»Off»}

Выключение блока нового типа, привязанного к ячейке 0:

Типы команд, которые поддерживает устройство:

После проверки работоспособности, понимания того, как все работает, остается лишь запустить железку в самостоятельную работу. Нажимаете на кнопку, с названием (1.) «_renameinit.lua» и наблюдаете следующее:

(2.) Вам дается 15 секунд на «передумать», (3.) устройство перезагружается, (4.) входит в сеть, подключается к брокеру.

Кнопка «_renameinit.lua» — волшебная кнопка. Если нажать ее еще раз, она запретит устройству автоматическую загрузку, перезагрузит его и дальше вы сможете работать с ним в ручном режиме.

Видимо, на этом стоит завершить. В этот раз я не стал детально объяснять код скриптов — мало кому это требуется.

Замечу, что не имея всех модулей nooLite, я не смог проверить его работоспособность полностью. По этой же причине не реализована работа с блоком управления цветной лентой — у меня его просто нет.

Вместе с тем, на том железе, что применяю я, устройство показало отличные результаты. Желаю и вам приятной работы с ним, в особенности приятного кодинга вашей системы умного дома, в целях парсинга и выдачи именно того формата сообщений, который реализован здесь. У меня, в частности, устройство работает в связке NodeRed/Domoticz. Всем удачи!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s