Статья устарела, требуется редакция
1. Mosquitto MQTT сервер (брокер )
MQTT – это легковесный протокол сообщений, предназначенный для общения между устройствами (machine-to-machine) интернета вещей. Он используется для отслеживания перемещения транспортных средств, домашней автоматизации и сбора данных.
Mosquitto – это популярный MQTT-сервер (или брокер). Он прост в установке и настройке и активно поддерживается сообществом.
Перед установкой любой программы (пакета) требуется выполнять
обновление индексов, это правило хорошего тона.
Юникс системы самые обновляемые. Огромное количество людей вносят свой вклад
в развитие постоянно. Структура системы сложна (зависимость одного
пакета от другого).
Обновим индекс пакетов
sudo apt update
Устанавливаем Mosquitto сервер (обращаю Ваше внимание, в большинстве документаций ставят и клиент для проверки работоспособности Mosquitto сервера, я этого не делаю. Мне на сервере лишние пакеты (программы) в качестве мусора не нужны)
sudo apt install mosquitto -yЕсли Ваш МДМ работает внутри сети и Вы не планируете организовывать к нему доступ извне, на этом установку и настройку MQTT сервера можно завершить.
2. Но по правильному, следует защитить «от детей» работу MQTT сервера,
установив доступ к нему через пароль.
Mosquitto предоставляет утилиту mosquitto_passwd для генерирования файла паролей.
Эта команда предложит ввести пароль для указанного пользователя и поместит
результат в /etc/mosquitto/passwd.
sudo mosquitto_passwd -c /etc/mosquitto/passwd qwerty
sudo mosquitto_passwd -c /etc/mosquitto/passwd qwerty
желтым наш логин к mqtt
проверим, создался файл с паролём или нет
(cat - вывод содержимого на экран)
cat /etc/mosquitto/passwd
замечательно. файл с паролем есть и сам пароль зашифрован.
Добавим созданный файл с паралём в конфиг Mosquitto
создаем конфигурационный файл
nano /etc/mosquitto/conf.d/default.conf
в нем пишем
allow_anonymous false
password_file /etc/mosquitto/passwd
Ctrl + X закрывает редактор с сохранением
подтверждаем Y
Перезапускаем Mosquitto чтобы изменения,
которые мы внесли заработали
systemctl restart mosquitto
3.
Проверяем работу mosquitto сервера.
начнем с проверки состояния сервиса mosquitto
systemctl status mosquitto
status - параметр указывающий что требуется показать текущее состояние сервиса
mosquitto брокер работает.
можно переходить в МДМ и настраивать пакет, предварительно скачав
с маркета дополнений в разделе оборудование

Переходим на левой панели в УСТРОЙСТВА – MQTT, настраиваем

В настройках указываем адрес нашего сервера (так как МДМ и MQTT сервер физически находятся на одном компьютере с одним ip адресом, допускается вместо ip адреса писать localhost. Но имейте ввиду, на Ваших IoT устройствах надо будет указывать именно ip адрес нашего сервера), указываем логин и пароль к MQTT серверу (те что создавали при установке), ставим галочку Требуется авторизация:


В графе ПУТЬ ставим # (решетку), это скажет брокеру, что требуется получать все сообщения которые поступают с устройств на брокер.
После ввода всех данных нажимаем ОБНОВИТЬ.
Всё, через некоторое время MQTT будет готов к работе, а мы этим временем настроим для теста IoT датчик температуры и влажности, прописав в его настройках параметры MQTT сервера: логин – qwerty, пароль – qwerty, адрес сервера 192.168.10.7 (адрес моего мдм)

Данные с нашего тестового датчика температуры и влажности поступили.
Брокер работает исправно.
ВНИМАНИЕ!!! ОБНАРУЖЕНА ОШИБКА !!! НЕЛЬЗЯ В НАЗВАНИИ ОБЪЕКТА ИСПОЛЬЗОВАТЬ ДЕФИС (МИНУС) ОБЪЕКТ НЕ БУДЕТ ПЕРЕДАВАТЬ ДАННЫЕ
Ниже в тексте есть два объекта esp01-hum и esp01-t
Исправьте их на esp01_hum и esp01_t
4.
Для того чтобы пользоваться этими данными, нам надо их куда-то сохранять. В дальнейшем можно будет пользоваться как текущими данными так и статистикой.
Создадим два новых объекта по типу наших данных – ТЕМПЕРАТУРА и ВЛАЖНОСТЬ
и сразу условимся, данное IoT устройство стоит в гостиной.
Переходим в ОБЪЕКТЫ – ОБЪЕКТЫ, кликаем на кнопку в правом верхнем углу ДОБАВИТЬ НОВЫЙ ОБЪЕКТ

Заполняем. Каких либо строгих правил для названий нет, но для удобства, я, в названии указываю устройство + назначение, а в описании назначение + месторасположение.
Для чего? Покажу ниже.

Таким же образом добавляем и объект для температуры в гостиной.
5. Возвращаемся ОБЪЕКТЫ – MQTT

Объекты для данных с нашего IoT устройства мы создали, привязываем.
Кликаем на «карандашик» справа от данных 
Заполняем. Обратите внимание на поле СВЯЗАННЫЙ ОБЕКТ, как в выпадающем списке,
Наш выше созданный объект отображается. Это я и имела ввиду в 4. пункте. Удобная визуализация.

Так выглядит привязанное значение

Таким же способом привязываем и второе значение нашего IoT устройства.
Теперь эти значения будут обновляться, показывая текущее состояние согласно настроек самого IoT устройства (как часто само устройство передает свои данные серверу MQTT).
Мой ESP8266 передает данные каждые 10 минут. Чаще мне не требуется.
Ещё раз напоминаю, наш MQTT сервер имеет парольную защиту. Не забываем в настройках IoT устройств прописывать ip MQTT сервера, логин и пароль.
Мой ESP8266 esp01 с датчиком температуры и влажности, имеет ip адрес в сети 192.168.10.115, настройки для подключения к серверу MQTT следующи:

Данные температуры и влажности есть, выведем их на уже существующую тестовую сцену Scene 1. Переходим ОБЪКТ – СЦЕНЫ, кликаем на
чтобы войти в режим редактирования этой сцены

Переходим на вкладку ЭЛЕМЕНТЫ
Добавляем новы элемент

Дополнительные состояния – указываем верхнюю и нижнюю границы, если значение превышает, индикатор окрашивается в красный или синий цвет.
Сохраняем.
Переходим на закладку ПРОСМОТР / РЕДАКТИРОВАТЬ
Передвигаем наш датчик в нужное место
На этом всё) Удачи!)
в статье использованы данные с сайтов https://www.8host.com/ https://mosquitto.org/ https://docs.oasis-open.org/
- Войдите, чтобы оставлять комментарии