Установка mqtt брокера linux

Содержание
  1. How to Install The Mosquitto MQTT Broker on Linux
  2. Stopping and Starting
  3. Testing The Install
  4. Testing Using Mosquitto
  5. Starting Mosquitto Using a Configuration file
  6. Verbose Mode
  7. Mosquitto 2..0.2 and above
  8. Connection Limits
  9. Running Multiple Mosquitto Brokers
  10. Mosquitto Client Scripts
  11. Other Tools
  12. Установка и базовая настройка MQTT брокера Eclipse Mosquitto на Ubuntu | Debian
  13. Примечание для «Чайников»:
  14. Для обновления вашей системы (обновление пакетов), выполните:
  15. Устанавливаем MQTT брокера и клиента Mosquitto:
  16. Настроим для Mosquitto подписку по логину и паролю (пример для логина «huny»).
  17. Далее, по запросу, нужно будет ввести два раза ваш пароль для Mosquitto.
  18. Связка логин-пароль будет храниться по следующему пути — /etc/mosquitto/passwd
  19. Откроем файл, что бы убедиться, что пароль создан:
  20. Закроем файл, нажав CTRL + X
  21. Запретим анонимные подключения к Mosquitto. Открываем файл default.conf:
  22. Файл должен быть пустой, вставляем туда этот текст:
  23. Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
  24. Перезагружаем Mosquitto чтобы применить изменения:
  25. На этом этапе MQTT брокер Mosquitto у нас успешно запущен и защищён паролем.
  26. UPD1: Добавление / удаление пользователей в MQTT брокер (Mosquitto)
  27. Для примера добавим пользователя с логином huny2 и паролем parol2:
  28. Проверяем что добавился, открыв файл паролей.
  29. Закрываем файл, нажав CTRL + X
  30. Перезагружаем Mosquitto чтобы применить изменения:
  31. Удалить пользователя huny2:
  32. Проверяем, что действвительно удалён, открыв файл паролей:
  33. Закрываем файл, нажав CTRL + X
  34. Перезагружаем Mosquitto чтобы применить изменения:
  35. UPD2: Изменим порт MQTT брокера Mosquitto c 1883 на 8883 (пример), а 1883 привяжем к localhost (недоступен извне).
  36. Открываем файл default.conf:
  37. Добавляем туда следующее:
  38. Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
  39. Перезагружаем Mosquitto чтобы применить изменения:
  40. UPD3: Управление состоянием Mosquitto:
  41. Посмотреть текущий статус:
  42. Изменение статуса текущего сеанса:
  43. Для изменения состояния при запуске (не влияет на текущее состояние):
  44. Шлюзы Intel для интернета вещей: отправка сообщений MQTT-брокеру с использованием Python
  45. Mosquitto
  46. Python и MQTT
  47. Настройка компьютера
  48. Предварительные требования
  49. Установка Paho
  50. Тестирование Paho
  51. Настройка MQTT-брокера и подписки
  52. Использование существующего брокера, подключённого к локальной сети
  53. Paho: hабота с существующим брокером, доступным через интернет
  54. Установка MQTT-брокера в локальной сети с использованием Paho
  55. Установка MQTT-брокера в локальной сети с использованием Mosquitto
  56. Настройка шлюза
  57. Предварительные требования
  58. Установка Paho на шлюз
  59. Проверка работы c MQTT-брокером, размещённым в интернете
  60. Отправка и получение MQTT-сообщений
  61. Безопасность
  62. Создание и запуск скрипта на Python для публикации MQTT-сообщений
  63. Приём MQTT-сообщений на компьютере
  64. Итоги и идеи

How to Install The Mosquitto MQTT Broker on Linux

In this tutorial we will look at how you install and run the mosquitto MQTT broker on a Linux server running for example Raspberry Pi or Ubuntu.

Here are the steps I used on Ubuntu.

  • sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
  • sudo apt-get update
  • sudo apt-get install mosquitto
  • sudo apt-get install mosquitto-clients
  • sudo apt clean

For Raspberry Pi the instructions are taken from here:

Then make the repository available :

Then , depending on which version of debian you are using:

sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list

Then update apt information:

sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients

Upgrading on Pi

sudo apt-get install mosquitto

should update the existing installation but it may not upgrade as it is dependent on the repository which is different for the version of PI you are Running.

Stopping and Starting

Mosquitto is installed as a service and should start automatically after install

To Stop and start the service I needed to use

  • sudo service mosquitto stop
  • sudo service mosquitto start #see note later

Most sites I discovered where using the format.

  • sudo /etc/init.d/mosquitto stop

However it seems newer installations use upstart initialization system instead of the init.d initialization system.

The stop/start scripts start the mosquitto broker in the background and also use the default mosquitto.conf file in the /etc/mosquitto/ folder.

The mosquitto binary is located in the /usr/sbin folder

If you want to see the control messages on the console then you need to start the mosquitto broker manually from a command line.

You first need to to stop the broker from running, and then type:

mosquitto -v

Testing The Install

To test it is running use command:

  • netstat –at

You should see the Mosquitto broker running on port 1883 as shown in the screen shot above.

Below is a screen shot showing testing using the mqtt-ping command

Testing Using Mosquitto

If you are doing tests with mosquito then I recommend you stop the installed service and run mosquito manually from the command line.

If you do it this way you can create various configuration files for testing.

In addition, I would recommend you place the test configuration files and other files like password files in the local use folder as it avoids any permission errors, and they are easily edited without requiring root permissions.

Starting Mosquitto Using a Configuration file

The configuration file (mosquitto.conf) that comes with the install is mainly completely commented out as mosquitto doesn’t need a configuration file to start.

This file is loaded by the mosquitto when starting as a service.

Before you edit the default configuration file it is a good idea to create a copy of this file.

However I wouldn’t use this file as a basis for you own as if you do it is difficult to find any of you changes that a buried inside this file.

If you have done this then you might find my python configuration file tool useful.

To start mosquitto using a configuration file use the following command:

  • mosquitto -c filename

You can find the mosquitto.conf template file in the /etc/mosquitto/ folder.

It is a good idea to create a copy of this file before editing it.

Note: For testing it is easier to use a configuration file in your home directory rather than the /etc/mosquitto folder as you need root permissions to edit files in this folder.

I use: /home/steve/mos/mosquitto.conf

Verbose Mode

This is useful for troubleshooting use

mosquitto -v

Mosquitto 2..0.2 and above

Mosquitto v2 introduced some important changes that affect first time users in particular.

Читайте также:  Linux mail from terminal

By default it requires authentication and doesn’t listen on a network address.

The following simple configuration file will make mosquitto start like previous versions:

Connection Limits

You can limit the number of client connections in the mosquitto.conf file but the default configuration doesn’t impose limits.

However the OS does and it is 1024 for each user. This limit is the max number of open files allowed.

This can be changed for each user by editing the limits.conf file (/etc/security/limits.conf).

Note: You will need to restart the system for the setting to take affect

You can check the limits by using the ulimit -Sn (soft) or ulimit -Hn (hard command as shown above.

However this only affects mosquitto started from the command line. If you start mosquitto as a service then you need to edit the /lib/systemd/system/mosquitto.service file.

and adding the line

Note: You will need to restart the system for the setting to take affect

If you the go to the command line you can check the limits by getting the process id and using the command:

Running Multiple Mosquitto Brokers

You can configure a broker to listen on several ports, but to create multiple brokers with their own configurations then you will need to start multiple instances of mosquitto.

Examples:

Start mosquitto and listen on port 1883

mosquitto -p 1883

Start mosquitto as a daemon and listen on port 1884

mosquitto -p 1884 -d

Start mosquitto as a daemon and use the mosquitti-2.conf file.

mosquitto -c /etc/mosquitto/mosquitto-2.conf -d

Useful Linux Commands

To stop Mosquitto when running as a daemon:

ps -aux | grep mosquitto
pgrep mosquitto
kill -9 PID (that you get from above command)

Mosquitto Client Scripts

On Linux they need to be installed using

  • sudo apt-get install mosquitto-clients

There is a simple subscriber client

mosquitto_sub

and a publisher client

mosquitto_pub

mosquitto_sub –help

They are useful for some quick tests and troubleshooting.

Other Tools

MQTTlens is also very useful for troubleshooting and quick testing. It is an add-on for the chrome browser.

It lets you publish and subscribe to topics using a web interface, and is much easier to use than the command line clients.

MQTT-Ping -Python Tool written by me that works like the traditional IP ping command tool.

Note: Starting will mosquitto version 1.6 mosquitto now supports MQTT v5.

Mosquitto Configuration Tutorials

Other Related Articles and Resources:

Источник

Установка и базовая настройка MQTT брокера Eclipse Mosquitto на Ubuntu | Debian

Eclipse Mosquitto — это брокер сообщений с открытым исходным кодом, который реализует протокол MQTT Mosquito легок и подходит для использования на всех устройствах, от одноплатных компьютеров с низким энергопотреблением до полноценных серверов…. Варианты установки на разные операционные системы кратко описаны на официальном сайте: https://mosquitto.org/download/

Примечание для «Чайников»:

Для выполнения некоторых команд в терминале могут понадобятся права администратора. Для этого просто наберите перед командой sudo :

Для обновления вашей системы (обновление пакетов), выполните:

apt-get update && apt-get upgrade -y

Устанавливаем MQTT брокера и клиента Mosquitto:

apt install mosquitto mosquitto-clients -y

Настроим для Mosquitto подписку по логину и паролю (пример для логина «huny»).

mosquitto_passwd -c /etc/mosquitto/passwd huny

Далее, по запросу, нужно будет ввести два раза ваш пароль для Mosquitto.

Связка логин-пароль будет храниться по следующему пути — /etc/mosquitto/passwd

Откроем файл, что бы убедиться, что пароль создан:

Закроем файл, нажав CTRL + X

Запретим анонимные подключения к Mosquitto. Открываем файл default.conf:

Файл должен быть пустой, вставляем туда этот текст:

Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.

Перезагружаем Mosquitto чтобы применить изменения:

systemctl restart mosquitto

На этом этапе MQTT брокер Mosquitto у нас успешно запущен и защищён паролем.

UPD1: Добавление / удаление пользователей в MQTT брокер (Mosquitto)

Для примера добавим пользователя с логином huny2 и паролем parol2:

mosquitto_passwd -b /etc/mosquitto/passwd huny2 parol2

Проверяем что добавился, открыв файл паролей.

Закрываем файл, нажав CTRL + X

Перезагружаем Mosquitto чтобы применить изменения:

systemctl restart mosquitto

Удалить пользователя huny2:

mosquitto_passwd -D /etc/mosquitto/passwd huny2

Проверяем, что действвительно удалён, открыв файл паролей:

Закрываем файл, нажав CTRL + X

Перезагружаем Mosquitto чтобы применить изменения:

systemctl restart mosquitto

UPD2: Изменим порт MQTT брокера Mosquitto c 1883 на 8883 (пример), а 1883 привяжем к localhost (недоступен извне).

Открываем файл default.conf:

Добавляем туда следующее:

listener 1883 localhost

Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.

Перезагружаем Mosquitto чтобы применить изменения:

systemctl restart mosquitto

UPD3: Управление состоянием Mosquitto:

Посмотреть текущий статус:

systemctl status mosquitto

systemctl status mosquitto.service

Изменение статуса текущего сеанса:

systemctl start mosquitto

systemctl stop mosquitto

systemctl start mosquitto.service

systemctl stop mosquitto.service

Для изменения состояния при запуске (не влияет на текущее состояние):

systemctl enable mosquitto

systemctl disable mosquitto

systemctl enable mosquitto.service

systemctl disable mosquitto.service

Данный MQTT брокер можно установить, например на Ubuntu 20.04 на бесплатном VPS сервере от Oracle:

Источник

Шлюзы Intel для интернета вещей: отправка сообщений MQTT-брокеру с использованием Python

  • Установка на компьютер MQTT-клиента на Python.
  • Настройка MQTT-брокера.
  • Установка MQTT-клиента на шлюз, основанный на процессоре Intel Core, Atom или Quark.
  • Создание и запуск скрипта, отправляющего MQTT-сообщения со шлюза брокеру, которые, в конечном счёте, поступят на компьютер.

Вот схема взаимодействия шлюза, MQTT-брокера и компьютера.


Взаимодействие шлюза, MQTT-брокера и компьютера

MQTT – это протокол обмена сообщениями, который можно использовать для передачи данных со шлюза на локальный или облачный сервер. Сервер перенаправляет данные удалённым клиентам, которые оформили подписку.

Вот, что можно узнать о MQTT из Википедии: «MQTT (ранее известный как MQ Telemetry Transport) это упрощённый сетевой протокол, работающий поверх TCP/IP. Он используется для обмена сообщениями между устройствами по принципу «издатель-подписчик». Протокол разработан для организации связи с удалёнными устройствами, для случаев, когда важно, чтобы код занимал как можно меньше места, а так же – для работы в сетях с небольшой пропускной способностью. Схема взаимодействия «издатель-подписчик» требует наличия брокера, посредника между передающей и принимающей сторонами. Брокер отвечает за доставку сообщений клиентам, которые в этих сообщениях заинтересованы, основываясь на темах сообщений и на оформленных клиентами подписках».

Читайте также:  Изменение спящего режима windows 10

Существуют несколько программных пакетов для создания MQTT-брокеров. Они различаются по набору возможностей, в некоторых из них, поверх стандартного протокола MQTT, реализованы дополнительные функции. Вот сравнение нескольких брокеров.

Mosquitto

Mosquitto – это MQTT-брокер с открытым кодом (лицензия BSD), который реализует протокол MQTT версий 3.1. и 3.1.1. В этом руководстве мы будем рассматривать использование Mosquitto для разворачивания MQTT-брокера в локальной сети.

Python и MQTT

Язык программирования Python можно использовать для создания MQTT-сообщений. Выбор может пасть именно на Python если, например, код, написанный на этом языке, легко встроить в приложение, или если разработчик хорошо знаком с Python. Иногда этот язык удобно использовать из-за того, что программы, написанные на нём, не нуждаются в компиляции. Они интерпретируются на шлюзе во время выполнения.
Интерпретатор Python входит в стандартный набор предустановленного ПО на шлюзах Intel для интернета вещей, работающих под управлением Wind River Linux. Таким образом, Python-скрипты можно исполнять на шлюзах без дополнительной настройки рабочей среды. Так, интерпретатор Python 2.7.2 включён в Wind River Linux 5 и в Intelligent Device Platform XT 2. В Wind River Linux 7 и в Intelligent Device Platform XT 3.1 имеется Python 2.7.3 и 3.3.3.

Python-клиент Paho предоставляет класс клиента с поддержкой MQTT v3.1 и v3.1.1 на Python 2.7 и 3.1.1. Кроме того, он содержит некоторые вспомогательные функции, которые значительно упрощают публикацию MQTT-сообщений.

Настройка компьютера

Рассмотрим настройку компьютера, который планируется использовать для подписки на сообщения с некоей тестовой темой на MQTT-брокере в интернете. После того, как компьютер подпишется на тему, сообщения, опубликованные с этой темой, будут доставлены ему.

Для того, чтобы настроить компьютер, нужно будет, во-первых, установить Paho и сопутствующее ПО, во-вторых, протестировать систему, подключившись к брокеру.

Предварительные требования

Установка Paho

1. Загрузите tar.gz -архив со свежей версией Paho с eclipse.org. В нашем случае это был файл org.eclipse.paho.mqtt.python-1.1.tar.gz .

2. Поместите этот файл в выбранную директорию.

3. Распакуйте архив. Например, такой командой:

4. Содержимое архива окажется в папке, имя которой совпадает с его именем. Перейдите в эту папку, и, если нужно, переименуйте её.

5. Выполните следующие команды python:

Теперь Paho установлен на компьютере.

Тестирование Paho

Протестируйте Python-скрипт, использующий Paho, а заодно – и подключение к MQTT-брокеру, подписавшись на активную тему. Например, если вас интересует брокер, размещённый в интернете, для тестирования можно воспользоваться брокером test.mosquitto.org . Это позволит проверить и сетевое соединение, и работу программного обеспечения.

1. Перейдите в директорию с примерами для Paho:

2. Измените скрипт sub.py , отредактировав строки mqttc.connect и mqttc.subscribe :

Рассмотрим эти команды:

3. Запустите скрипт:

Если сетевое соединение и программа работают правильно, от MQTT-брокера test.mosquitto.org начнут поступать сообщения. Их содержание нас сейчас не интересует. Если ничего не приходит, проверьте как следует подключение к интернету и отредактированные строки скрипта sub.py .

4. Для остановки скрипта воспользуйтесь сочетанием клавиш Ctrl-C на клавиатуре.

Настройка MQTT-брокера и подписки

В предыдущем разделе мы установили на компьютере Paho и протестировали его работу. Теперь рассмотрим особенности MQTT-брокеров. Наша цель – работающий брокер, который может принимать сообщения от издателей и отправлять их подписчикам. Существует несколько вариантов организации взаимодействия с брокером, все они подходят для, того, чтобы воспроизвести то, о чём мы расскажем ниже.

    Уже настроенный брокер, расположенный в локальной сети или в интернете (в облаке). Такой подход позволит использовать существующий брокер. Этот брокер должен быть готов к приёму и отправке сообщений. При этом у вас должна быть возможность создавать на нём нужные темы, если таковые пока не созданы.

Новый брокер в локальной сети, созданный с использованием Paho. Этот брокер будет работать на компьютере. При этом, будет ли это тот же компьютер, который принимает сообщения от шлюза, или другой, особой роли не играет. Для создания брокера можно воспользоваться соответствующими библиотеками Paho для Python.

  • Новый брокер в локальной сети, созданный с использованием Mosquitto. Такой брокер тоже будет работать на компьютере, но для его создания нужно будет воспользоваться Mosquitto.
  • Использование существующего брокера, подключённого к локальной сети

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

    Если брокер вы пока не настраивали, существует несколько способов обзавестись простым MQTT-брокером для тестирования приложения. Сейчас мы их рассмотрим. Обратите внимание на то, что здесь мы не касаемся вопросов настройки серверов или сетей. Кроме того, из приведённых ниже вариантов работы с существующими брокерами или способов настройки новых, вам понадобится лишь один. Поэтому, выбрав его и настроив систему, так же можете переходить к разделу о настройке шлюза.

    Paho: hабота с существующим брокером, доступным через интернет

    В интернете можно найти несколько MQTT-брокеров, которые подойдут для тестирования. Здесь мы воспользуемся брокером, доступным по адресу http://test.mosquitto.org/. Мы уже рассказывали о нём, тестируя правильность работы системы, не обращая внимания ни на темы, ни на сообщения. Сейчас используем его для более осмысленной работы и с тем, и с другим.

    Процедура взаимодействия с данным брокером вам уже знакома, по разделу «Тестирование Paho». Однако здесь мы, вместо подписки на все темы командой mqttc.subscribe(«#», 0) , подпишемся на конкретную тему командой mqttc.subscribe(«mytopic», 0) . Здесь mytopic – это название MQTT-темы. Брокер автоматически создаст такую тему, если она ещё не существует.

    Теперь, если шлюз (или любой другой компьютер) отправит брокеру сообщение с темой mytopic , брокер перешлёт это сообщение в окно терминала, в котором работает скрипт sub.py .

    Установка MQTT-брокера в локальной сети с использованием Paho

    Воспользуйтесь этим методом, если хотите, чтобы ваш компьютер играл роль MQTT-брокера, размещённого в локальной сети. Здесь нам понадобятся установленные ранее Python-библиотеки Paho. Процедура настройки, в целом, аналогична уже рассмотренной. Однако, нужно обратить внимание на то, что компьютер и шлюз должны быть в одной и той же локальной сети, и на то, что начало взаимодействия с брокером (в скрипте sub.py ) выглядит так:

    Читайте также:  Windows грузится только безопасном режиме

    То есть, подключаемся мы не к серверу в интернете, а к локальному хосту, к сетевому интерфейсу «внутренней петли» компьютера. Обычно localhost используется как псевдоним для IP-адреса 127.0.0.1.

    Если подписаться на тему mytopic , обратившись к локальному хосту, автоматически будет запущен локальный MQTT-брокер и на нём будет создана такая тема. Если теперь шлюз опубликует сообщение с темой mytopic , обратившись к компьютеру по его IP-адресу, это сообщение будет отправлено в терминал Linux, в котором исполняется скрипт sub.py , оформивший подписку на эту тему.

    Установка MQTT-брокера в локальной сети с использованием Mosquitto

    Этот метод, снова, подразумевает использование компьютера разработчика в качестве брокера, размещённого в локальной сети. Но на этот раз мы будем пользоваться Mosquitto.

    Подробности о Mosquitto можно узнать здесь. Кроме того, конструкция вида —help позволяет получать справку по командам этого пакета. Для того, чтобы запустить процесс MQTT-брокера на компьютере, выполните следующие шаги.

    1. Откройте новое окно терминала Linux.
    Брокер будет исполняться в этом окне, при этом на том же самом компьютере можно получать MQTT-сообщения, только приходить они будут в другое окно терминала.

    2. Установите Mosquitto, если вы еще этого не сделали.

    3. Создайте тему и подпишитесь на неё с помощью команды mosquitto_sub .

    Рассмотрим эту команду:

    4. Проверьте, подключён ли компьютер к той же локальной сети, к которой подключён шлюз.
    Локальный MQTT-брокер запустится автоматически после оформления подписки на некую тему. Шлюз, обратившись к брокеру по IP-адресу компьютера, сможет публиковать сообщения с этой темой, которые попадут в терминал Linux, в котором исполняется mosquitto_sub .

    Настройка шлюза

    Займёмся настройкой шлюза. Она включает в себя два основных шага:

      Установка на шлюз MQTT-клиента, написанного на Python.

  • Подключение шлюза к тестовому MQTT-брокеру для проверки наличия сетевого соединения и правильности работы скрипта.
  • Предварительные требования

      В этом примере используется шлюз, который работает под управлением Wind River Linux 7 с Wind River Intelligent Device Platform XT 3.1. Если на вашем шлюзе используется другая ОС, процесс его настройки может отличаться от того, который приведён здесь.

    Операционная система шлюза должна быть собрана с использованием параметра — withtemplate=feature/mqtt в настройках. Подробности об этом смотрите здесь.

    Шлюз должен быть подключён к той же самой сети, что и MQTT-брокер, при условии, что брокер размещён в локальной сети.

  • Если вы пользуетесь MQTT-брокером, который размещён в интернете, и применяете файрвол, он не должен блокировать порты 1883, 8883, 8884, и 8885.
  • Установка Paho на шлюз

    Установка Paho на шлюз выполняется так же, как и установка на компьютер. Нужно скачать архив со свежей версией Paho, распаковать его и выполнить команду python setup.py install .

    Проверка работы c MQTT-брокером, размещённым в интернете

    Процедура проверки работоспособности ПО, установленного на шлюзе, и сетевого соединения, повторяет процедуру проверки компьютера.

    Отправка и получение MQTT-сообщений

    Теперь, когда у нас есть готовый к работе MQTT-брокер, настроены компьютер и шлюз, всё готово к тому, чтобы создать скрипт на Python, который будет заниматься публикацией сообщений.

    Здесь мы воспользуемся образцами кода из поставки Paho для создания простого скрипта, который можно будет модифицировать позже в соответствии с нуждами конкретного проекта. Скрипт можно создать и непосредственно на шлюзе, и на компьютере. Если скрипт создан на компьютере, его надо будет скопировать на шлюз и запустить там.

    Безопасность

    Учитывайте следующие соображения при создании и запуске Python-скриптов.

      Если вы пользуетесь встроенным интерпретатором Python, IMA-безопасность не помешает, позволяя интерпретатору выполнять новые скрипты.

    Если вы встроенным интерпретатором Python не пользуетесь, и, при этом, включена IMA-безопасность, каждый скрипт, перед запуском, необходимо подписать.

  • Если на шлюзе включена система McAffee Embedded Control, скрипт надо добавить в белый список (Whitelist).
  • В примере, приведённом ниже, мы исходим из того, что ни IMA, ни белые списки на шлюзе не включены.

    Создание и запуск скрипта на Python для публикации MQTT-сообщений

    1. Перейдите в папку examples , содержащую образцы кода для Paho:

    2. Скопируйте и переименуйте скрипт pub-single.py :

    3. Отредактируйте файл my-pub.py , изменив его последнюю строку таким образом, чтобы сообщение отправлялось существующему MQTT-брокеру и при его отправке использовалась тема, которая была задана тогда, когда мы занимались настройкой компьютера на приём MQTT-сообщений (мы назвали тему «mytopic»):

    Рассмотрим устройство этой команды:

    Если в качестве брокера используется компьютер, сюда нужно подставить его IP-адрес в локальной сети. Например, что-то вроде 192.168.1.5. Если брокер находится в интернете, то здесь должен быть либо его IP-адрес, либо доменное имя сервера. Например, test.mosquitto.org .

    4. Если подготовкой скрипта my-pub.py вы занимались на компьютере, скопируйте его на шлюз.

    5. Запустите my-pub.py на шлюзе для передачи с него сообщения заданному MQTT- брокеру с темой mytopic :

    Приём MQTT-сообщений на компьютере

    После того, как шлюз опубликует сообщение с какой-нибудь темой, а брокер сообщение получит, он отправит сообщение всем MQTT-клиентам, которые подписаны на тему.

    Для публикации, учитывая настройки нашего скрипта, достаточно выполнить на шлюзе команду python my-pub.py . При её выполнении сообщение «Hello» будет отправлено брокеру, а с него попадёт компьютер. На компьютере же, учитывая то, что на нём открыто окно терминала, ожидающее сообщений от MQTT-брокера, будет принято сообщение такого содержания:

    Рассмотрим его структуру:

    Итоги и идеи

    Только что вы, используя язык программирования Python, отправили MQTT-сообщение «Hello» с темой «mytopic» MQTT-брокеру, расположенному в локальной сети, а затем приняли это сообщение на компьютере, который подписан на эту тему. Что дальше? Вот несколько идей, которые касаются развития примера из этого материала. Надеемся, они позволят вам расширить использование системы обмена MQTT-сообщения в ваших проектах.

      Если в системе имеются датчики, шлюз может считывать их показания и публиковать в виде MQTT-сообщений.

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

    Увеличьте полезную нагрузку, которую несут сообщения, возможно – за счёт использования более сложной структуры сообщений и тем.

    Поэкспериментируйте с функциями Paho, которые позволяют отправлять несколько сообщений одной командой.

  • Повысьте безопасность системы обмена MQTT-сообщениями за счёт шифрования, аутентификации клиентов, использования белых списков или других средств.
  • Источник

    Оцените статью