Перейти к содержанию

MQTT сервер

Материал из OpenWrt Wiki

Для настройки MQTT-сервера на роутере с OpenWRT нужно установить пакеты mosquitto и mosquitto-client через SSH или LuCI. После установки настройте mosquitto, запустите службу и настройте правила фаервола для доступа из вашей локальной сети, чтобы устройства могли подключаться к брокеру на порту 1883 по протоколу TCP.

1. Установка MQTT-брокера (mosquitto)

  • Через SSH:
    1. Подключитесь к роутеру по SSH.
    2. Выполните команду для установки пакетов:

Код <pree>opkg update

opkg install mosquitto mosquitto-client

  • Через LuCI (веб-интерфейс):
    1. Перейдите в раздел "System" > "Software".
    2. Нажмите "Update lists" для обновления списка пакетов.
    3. Найдите пакеты mosquitto и mosquitto-client в списке и установите их.

2. Настройка и запуск сервиса mosquitto Запустите службу.

Код

/etc/init.d/mosquitto enable
/etc/init.d/mosquitto start</pree>

* Включите автозапуск при загрузке роутера: В LuCI, в разделе "System" > "Startup", убедитесь, что служба mosquitto включена и будет запускаться при загрузке. 

3. Настройка фаервола (Firewall)

* Создайте правило: В LuCI, перейдите в "Network" > "Firewall". 
* Добавьте правило: для порта 1883 (TCP) на вашей локальной сети (lan): 
** Action: accept (разрешить). 
** Protocol: TCP. 
** Source zone: lan (или зона, куда подключены ваши клиенты). 
** Destination zone: Device (input) (для получения входящих соединений). 
** Destination port: 1883. 

Пример использования: 

# 1. Подключите устройства:  Ваши устройства (например, с датчиками и ESP32) настройте на подключение к IP-адресу вашего OpenWRT-роутера по порту 1883.
# 2. Публикация данных:  Одно устройство публикует данные (например, температуру) в определенную тему (topic) MQTT, например, /sensors/temperature.
# 3. Подписка на данные:  Другое устройство или веб-сервис подписывается на эту тему, и когда данные публикуются, брокер Mosquitto доставляет их подписчикам.

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