ESP-8266: отправка многих данных на брокер MQTT.

Решение простое, почему раньше не додумался — ума не приложу.

Исходная обстановка — делаем таблицу для отправки на брокер. Вариантов два:

data = {
    t = 25.0,
    hume = 45
}

Второй

data = {
    {"t", 25.0},
    {"hume", 45}
}

В чем смысл? Пишем обычную функцию отправки данных на брокер и вызываем в callback(е) рекурсивно саму себя. Данные из таблицы извлекаем путем удаления элементов:

Читать далее «ESP-8266: отправка многих данных на брокер MQTT.»

Реклама

Модуль антидребезга для ESP-8266 (lua debounce)

Руки дошли, накидал модуль. Оный узнает три длительности нажатия, короткое, среднее и (никогда не догадаетесь!) длинное.

Короткое до секунды, среднее — более секунды, длинное — более 2,5. Или сами настроите.

При удержании более 2,5 с оно срабатывает без дальнейшего выяснения физических возможностей нажимающего.
Можно применять не все или пропускать применение нажатия.

Вот модуль с именем debMod.lua:

Читать далее «Модуль антидребезга для ESP-8266 (lua debounce)»

nooLite F: MTRF-64, SLF-1-300. Часть 8. SLF-1-300 — попытка въехать в ситуацию.

Про MTRF-64 много, про  SLF-1-300 — еще ничего толком.

Перечислим отличия этого блока от всех остальных:

  1. шифрованный протокол, параноики могут вздремнуть;
  2. ответ на запрос о состоянии, а также подтверждение состояния, если команда пришла от MTRF-64;
  3. «Управление с адаптера или модуля MTRF-64. Блок SLF-1-300 может принимать команды управления/настройки от указанных устройств. Для настройки используется специальное сервисное ПО, которое позволяет выполнять настройку силового блока.»
  4. «возможно подключение клавишного выключателя или кнопки к блоку, … режим работы входа можно изменить, отправив на блок команду с новыми настройками. Доступны следующие режимы: кнопка; выключатель; переключающий выключатель; отключение входа.»
  5. дистанционная привязка/отвязка;

Прогуляемся по пунктам.

Читать далее «nooLite F: MTRF-64, SLF-1-300. Часть 8. SLF-1-300 — попытка въехать в ситуацию.»

nooLite F: MTRF-64, SLF-1-300. Часть 7. Применяем бестолковые пульты.

Совсем дешево, мимоходом (ну, да. виноват) приобрел вот такой пульт:

77722114

Он предназначен для управления rgb-лентами с соответствующим силовым блоком. Этого блока у меня нет, а пульт- есть.

Дорабатываем слегка файл analiaze.lua и вот у нас  новая возможность применить этот пульт, например, в сценариях или как обычный выключатель.

Привязываем на прием к ячейке 61 и работать это станет так:

7773003

То есть при нажатии правых кнопок (коротком, длинном) мы получим четыре посылки на mqtt брокер типа fromnoo01/61/scen17, где 61 — ячейка привязки, а scen16 — scen19 четыре топика, в которые выдается сообщение «ON».

Мне нужен был дополнительный выключатель света в коридоре (тот, что в предыдущем посте), причем из такого места, где текущее состояние силового блока видно не будет. Следовательно, левой нижней кнопкой изменения состояния блока я воспользоваться не могу. Решение — на правую верхнюю сделать включение, на правую нижнюю — выключение.

Делаем итем:

Читать далее «nooLite F: MTRF-64, SLF-1-300. Часть 7. Применяем бестолковые пульты.»

nooLite F: MTRF-64, SLF-1-300. Часть 5. Обзор железок для новичков и заключительное изменение кода.

scheme7

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

Код уже прилично переработан. Основные изменения:

  1. другой алгоритм публикации сообщений, повышена стабильность и исключены пропуски;
  2. добавлен модуль имитации рассвета;
  3. добавлена обработка команд от датчиков на временное включение силовых блоков.

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

Что есть у nooLite для умного дома.

В самой первой части заметок о nooLite я не мог не сказать (и повторю это сейчас), что компания Ноотехника выпускает качественное железо, которое можно приспособить для работы в умном доме.

Что бы не говорилось на сайте производителя, железо проектируется исходя из необходимости решения двух вопросов, которые, по-видимому, постоянно сидят в голове производителя:

  • сокращение количества проводов;
  • легкий перенос выключателей освещения с места на место.

Эти две задачи устройства nooLite решают великолепно.

Работа железа была организована путем передачи команд по воздуху на частоте 433 МГц и, по-видимому, кто-то сообразил, что эта система ПДУ (пульт дистанционного управления, древнее название, пришедшее из времен, когда телевизоры нужно было включать, а также переключать каналы руками!!!) может быть названа модным словом «умный дом».

Ставить в вину такой ход мыслей сотрудникам не стоит — у нас каждая розетка, управляемая СМС, называется «умной», а тут целое стадо устройств, которые…

Читать далее «nooLite F: MTRF-64, SLF-1-300. Часть 5. Обзор железок для новичков и заключительное изменение кода.»

nooLite F: MTRF-64, SLF-1-300. Часть 4.

Продолжим в другом направлении . Скомпонуем файлы таким обазом:

schem3

Что-то на выходе:

noo735

Проведем эксперимент: что будет, если на одну и ту же ячейку привязать на прием пульт управления, а на передачу — силовой блок? Ответ — привязка пройдет успешно.

Причем, между собой этот пульт и силовой блок могут быть как привязаны, так и нет.

Читать далее «nooLite F: MTRF-64, SLF-1-300. Часть 4.»

nooLite F: MTRF-64, SLF-1-300. Часть 3.

Предыдущая часть.

Проверка работоспособности.

Все файлы залиты, и, нажав на пару кнопок, следует увидеть такую картину:

noo27325

Все дальнейшие махинации будем осуществлять с помощью MqttSpy.

Если вы изменяли что-то в коде — коннектимся к своему брокеру, нет — iot.eclipse.org.

Подписываемся:

noo27320

И еще раз:

Читать далее «nooLite F: MTRF-64, SLF-1-300. Часть 3.»