Mqtt

Предостовляет возможность публиковать сообщения в mqtt брокере

Качество обслуживания в протоколе MQTT (QoS)

QoS 0 At most once. На этом уровне издатель один раз отправляет сообщение брокеру и не ждет подтверждения от него, то есть отправил и забыл.

QoS 1 At least once. Этот уровень гарантирует, что сообщение точно будет доставлено брокеру, но есть вероятность дублирования сообщений от издателя. После получения дубликата сообщения, брокер снова рассылает это сообщение подписчикам, а издателю снова отправляет подтверждение о получении сообщения. Если издатель не получил PUBACK сообщения от брокера, он повторно отправляет этот пакет, при этом в DUP устанавливается «1».

QoS 2 Exactly once. На этом уровне гарантируется доставка сообщений подписчику и исключается возможное дублирование отправленных сообщений.

Объект “Mqtt” в проекте Smart Home предоставляет следующий метод:

  1. publish(topic, payload, qos, retain): Этот метод используется для публикации сообщений на MQTT-брокере. Вы передаете аргументы topic (тема), payload (содержимое сообщения), qos (уровень обслуживания качества) и retain (флаг “retain”).
  • topic: Строка, представляющая тему, на которую будет опубликовано сообщение.
  • payload: Содержимое сообщения, которое может быть строкой, объектом или бинарными данными.
  • qos: Уровень обслуживания качества (Quality of Service) определяет гарантии доставки сообщений. Возможные значения: 0 (минимальная гарантия доставки), 1 (гарантия доставки с подтверждением) или 2 (точная доставка с повторной отправкой при необходимости).
  • retain: Флаг, указывающий, должно ли сообщение сохраняться на брокере и передаваться новым подписчикам. Значения: true (сохранять) или false (не сохранять).

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

const topic = 'smart-home/living-room/light';
const payload = 'on';
const qos = 1;
const retain = true;

Mqtt.publish(topic, payload, qos, retain);

Метод publish позволяет отправлять сообщения на MQTT-брокер для передачи информации и управления устройствами или системой в целом в вашем проекте Smart Home.


объект Mqtt

# публикация сообщения
Mqtt
  .publish(topic, payload, qos, ratain)
значение описание
topic канал для сообщения
payload json объект предназначеный для передачи
qos качества обслуживания (1,2,3)
retain при публикации данных с установленным флагом retain, брокер сохранит его. При следующей подписке на этот топик брокер незамедлительно отправит сообщение с этим флагом. Используется только в сообщениях с типом PUBLISH.

пример кода

# mqtt
# ##################################

payload = JSON.stringify({"state": actionName})
Mqtt.publish"zigbee2mqtt/device/set", payload, 0, false)