Установка, настройка Mosquitto брокера для МДМ на Ubuntu 18.

Статья устарела, требуется редакция

 

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

mqtt 

замечательно. файл с паролем есть и сам пароль зашифрован.

 

Добавим созданный файл с паралём в конфиг 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 - параметр указывающий что требуется показать текущее состояние сервиса

mqtt 

mosquitto брокер работает.

можно переходить в МДМ и настраивать пакет, предварительно скачав

с маркета дополнений в разделе оборудование

mqtt

 

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

 

 mqtt

 

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

mqtt
mqtt

 

В графе ПУТЬ ставим # (решетку), это скажет брокеру, что требуется получать все сообщения которые поступают с устройств на брокер.

 

После ввода всех данных нажимаем ОБНОВИТЬ.

Всё, через некоторое время MQTT будет готов к работе, а мы этим временем настроим для теста IoT датчик температуры и влажности, прописав в его настройках параметры MQTT сервера: логин – qwerty, пароль – qwerty, адрес сервера 192.168.10.7 (адрес моего мдм) 

 mqtt

Данные с нашего тестового датчика температуры и влажности поступили.

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

 

ВНИМАНИЕ!!! ОБНАРУЖЕНА ОШИБКА !!! НЕЛЬЗЯ В НАЗВАНИИ ОБЪЕКТА ИСПОЛЬЗОВАТЬ ДЕФИС (МИНУС) ОБЪЕКТ НЕ БУДЕТ ПЕРЕДАВАТЬ ДАННЫЕ

Ниже в тексте есть два объекта esp01-hum  и esp01-t

Исправьте их на esp01_hum  и esp01_t

4.      

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

Создадим два новых объекта по типу наших данных – ТЕМПЕРАТУРА и ВЛАЖНОСТЬ

и сразу условимся, данное IoT устройство стоит в гостиной.

Переходим в ОБЪЕКТЫ – ОБЪЕКТЫ, кликаем на кнопку в правом верхнем углу ДОБАВИТЬ НОВЫЙ ОБЪЕКТ

mqtt

 

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

 

Для чего? Покажу ниже.

mqtt

 

Таким же образом добавляем и объект для температуры в гостиной.

 

 

           5.  Возвращаемся  ОБЪЕКТЫ – MQTT

mqtt

 

 

 

Объекты для данных с нашего IoT устройства мы создали, привязываем.

Кликаем на «карандашик» справа от данных mqtt

Заполняем. Обратите внимание на поле СВЯЗАННЫЙ ОБЕКТ, как в выпадающем списке,

Наш выше созданный объект отображается. Это я и имела ввиду  в 4. пункте. Удобная визуализация.

mqtt

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

mqtt

Таким же способом привязываем и второе значение нашего IoT устройства.

Теперь эти значения будут обновляться, показывая текущее состояние согласно настроек самого IoT устройства (как часто само устройство передает свои данные серверу MQTT).

Мой ESP8266 передает данные каждые 10 минут. Чаще мне не требуется.

mqtt 

Ещё раз напоминаю, наш MQTT сервер имеет парольную защиту. Не забываем в настройках IoT устройств прописывать ip MQTT сервера, логин и пароль.

Мой ESP8266 esp01 с датчиком температуры и влажности, имеет ip адрес в сети 192.168.10.115, настройки для подключения к серверу MQTT следующи:

mqtt

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

mqtt

Переходим на вкладку ЭЛЕМЕНТЫ

mqtt 

Добавляем новы элемент

mqtt

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

Сохраняем.

Переходим на закладку ПРОСМОТР / РЕДАКТИРОВАТЬ

mqtt 

Передвигаем наш датчик в нужное место

 

На этом всё) Удачи!)

 

 

в статье использованы данные с сайтов https://www.8host.com/  https://mosquitto.org/ https://docs.oasis-open.org/

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer