MQTT
Шлюз умеет подключаться к MQTT-брокеру как клиент, получать и отправлять данные в топики.
Работа с MQTT из скриптов
mqtt.prefix()
Получает или задает системный префикс, настроенный в меню Settings -> Link -> MQTT Setup
, поле System prefix topic
lua
mqtt.prefix([topic])
-- topic - STR, System prefix topic
--
-- Получить префикс
local mqtt_prifix = mqtt.prefix()
-- Задать префикс
mqtt.prefix("newTopic")
mqtt.prefix([topic])
-- topic - STR, System prefix topic
--
-- Получить префикс
local mqtt_prifix = mqtt.prefix()
-- Задать префикс
mqtt.prefix("newTopic")
mqtt.connected()
Возвращает статус подключение к брокеру MQTT. Выполняется без параметров.
mqtt.pub()
Публикует на MQTT сервер в топик topic значение payload.
lua
mqtt.pub(topic, payload)
mqtt.pub(topic, payload)
Пример управления реле на прошивке Tasmota - cmnd/имя устройства/имя реле
lua
mqtt.pub('cmnd/sonoff5/power', 'toggle')
mqtt.pub('cmnd/sonoff5/power', 'toggle')
mqtt.sub()
Подписывается на топик и помещает полученные значения в объект. Можно вызывать повторно с другим именем объекта, для его изменения.
lua
mqtt.sub(topic, objName[, objType])
-- topic - STR, топик MQTT
-- objName - STR, объект, в который записываются данные
-- objType - STR, тип значения объекта. По-умолчанию STR
mqtt.sub(topic, objName[, objType])
-- topic - STR, топик MQTT
-- objName - STR, объект, в который записываются данные
-- objType - STR, тип значения объекта. По-умолчанию STR
Пример подписки на топик с температурой, которую шлюз помещает в объект:
lua
mqtt.sub('dev/sensor/temp', 'room_temp')
mqtt.sub('dev/sensor/temp', 'room_temp')
с указанием типа объекта:
lua
mqtt.sub('dev/sensor/temp', 'room_temp', 'INT')
mqtt.sub('dev/sensor/temp', 'room_temp', 'INT')
mqtt.unSub()
Отписывается от топика.
lua
mqtt.unSub(topic)
mqtt.unSub(topic)
Пример отписки от топика с температурой
lua
mqtt.unSub('dev/sensor/temp')
mqtt.unSub('dev/sensor/temp')