MQTT
Заметки о выпуске
MQTT (Message Queue Telemetry Transport, перенос телеметрии в очередь сообщений) - это открытый протокол передачи сообщений, используемый для взаимодействий компьютер-компьютер, который позволяет передавать телеметрические данные в форме сообщений из переносных устройств с высокой задержкой или ограниченных сетей на сервер или в брокер микросообщений. Переносные устройства могут варьироваться от датчиков и исполнительных механизмов до мобильных телефонов, встроенных систем в транспортных средствах или ноутбуков и полномасштабных компьютеров.
MQTT работает в архитектуре публикации/подписки. Для MQTT требуются брокер сообщений и устройства связи. Устройства связи можно называть клиентами. Брокер и клиенты могут публиковать параметр, называемый "темой", и подписываться на него. Можно защитить связь через MQTT с помощью SSL.
Расширение MQTT обеспечивает возможность подключения для небольших электронных устройств и датчиков и позволяет им взаимодействовать с ThingWorx.
Можно использовать любой стандартный брокер для MQTT в соответствии с требованиями организации. Дополнительные сведения о настройках управления пользователями см. в документации продукта для брокера, который вы собираетесь установить.
|
В операционной системе Windows брокер выполняется как сервис после установки.
|
Импорт MQTT
Можно загрузить расширение MQTT по адресу
support.ptc.com в разделе
загрузить программное обеспечение Order > или загрузить обновления программного обеспечения >
ThingWorx Foundation >
Release < последняя версия > > ThingWorx MQTT Extension MQTT_Extension > код даты >
Импорт расширений ThingWorx При установке расширения в списке
Шаблоны вещей появится следующее:
• MQTTConnection
Позволяет установить совместно используемое соединение для вещей MQTTSubscriber.
• MQTTSubscriber
Позволяет создать подписки на одну или несколько тем на сервере MQTT. Добавьте свойства из раздела "Конфигурация" > "Свойство" в раздел сопоставлений тем MQTT.
При редактировании вещи MQTTSubscriber перезапустите связанную вещь MQTTConnection, чтобы обновить ее.
• MQTT
Позволяет использовать все приведенные выше конфигурации в одной вещи.
Конфигурирование MQTT
В следующем разделе описано, как сконфигурировать параметры в MQTT после установки расширения в ThingWorx и установить соединение с брокером.
1. Запустите брокер, установленный на компьютере.
2. В ThingWorx создайте новую Вещь, выберите MQTT как Шаблон вещи и щелкните Сохранить.
3. Щелкните представление Свойства и предупреждения, и отобразится следующий экран:
На приведенном выше рисунке выноски 1 и 2 показывают следующее:
Выноска | Описание |
1 | Зеленый значок показывает, что созданная вещь связана с брокером. Он отображается красным цветом, когда вещь отсоединена. |
2 | Для свойства isConnected задается значение ИСТИНА в поле Значение, когда установлено соединение между вещью и брокером. При разъединении в поле Значение задается значение ЛОЖЬ. |
4. Щелкните Добавить, чтобы добавить свойство.
5. Появится следующий экран:
6. Введите наименование свойства, базовый тип и другие необходимые сведения.
7. Сохраните информацию, относящуюся к свойству.
8. Щелкните представление Конфигурация, появится следующий экран:
В следующей таблице описаны различные параметры, которые можно найти в представлении Конфигурация.
JDBC Settings | Описание |
clientIdFormat | Наименование клиента, зарегистрированного с помощью брокера MQTT. | Оно должно быть уникальным для конкретного брокера MQTT. |
Лексема {s} относится к имени сервера ThingWorx Platform. Она получает значение, указанное в конфигурации Federation Subsystem для наименования сервера. Лексема {t} относится к текущему наименованию вещи. Если требуется, чтобы различные платформы были соединены с одним брокером и имели вещи с одинаковым наименованием, рекомендуется указать имя сервера в конфигурации Federation Subsystem. |
useSSL | Выберите эту опцию, если брокер поддерживает безопасные соединения. |
serverName | Имя хост-компьютера, на котором выполняется брокер MQTT. | Оставьте поле пустым, если брокер выполняется на том же компьютере, что и ThingWorx Platform. |
|
serverPort | Порт для брокера MQTT. Значение по умолчанию: 1883. |
userId | Имя пользователя для соединения с брокером. |
Password | Пароль пользователя для userId. |
Timeout | Время ожидания для выполнения запроса на публикацию в миллисекундах. Значение по умолчанию: 5000 мс. |
ConnectTimeout | Время в миллисекундах для ожидания установки соединения между ThingWorx Platform и брокером MQTT. |
retryInterval | Интервал времени в миллисекундах для попытки повторного соединения, если соединение с брокером MQTT разорвано. Механизм повторной попытки работает только в случае, если соединение было установлено в некоторый момент времени и после было разорвано. |
retryAttempts | Число выполняемых повторных попыток соединения. Например, если установленное соединение разорвано из-за сетевых помех или из-за других проблем, число попыток восстановить соединение задается значением, введенным в этом поле. Каждая повторная попытка отделяется интервалом retryInterval, указанным выше. |
pingInterval | Время в миллисекундах для периодической проверки статуса соединения между ThingWorx Platform и брокером MQTT. Значение по умолчанию: 45 секунд. Каждые 45 секунд сообщение обмена пакетами (ping) отправляется брокеру MQTT для проверки наличия ответа. Ответ брокера означает, что соединение является действующим. |
connectionIdleTimeout | Период ожидания в миллисекундах для соединения. Если соединение бездействует дольше заданного времени, это показывает, что в канале не было обмена сообщениями, и вещь помечается как отсоединенная. Если свойства не публикуются или на них нет подписки, то pingInterval продолжает обновление с последнего активного времени, чтобы вещь не отсоединилась. |
qos | Это значение задает уровень приоритета связи между брокером и его клиентами. |
В таблице конфигурации AutoMapping имеются настройки для автоматического сопоставления свойств для публикации или подписки. Если автоматическое сопоставление включено, нет необходимости указывать таблицу для Mappings. Любое свойство, которое создается в вещи, автоматически сопоставляется со свойством. Наименование раздела определяется опцией format, указанной ниже.
AutoMapping | Описание |
format | Формат наименования раздела, который соответствует свойству. Лексема {s} предназначена для имени сервера, {t} - для наименования вещи, а {p} - для имени свойства. |
enabled | Можно выбрать функцию автоматического сопоставления. |
9. Введите значения в поля согласно требованиям и щелкните Добавить в настройке Mappings.
Появится следующий экран:
10. Введите имя свойства, которое было добавлено на шаге 6 здесь, наименование раздела и выберите subscribe и/или publish. Свойство публикуется или подписывается на раздел, наименование которого вы вводите здесь.
11. Щелкните Добавить.
12. В представлении Properties and Alerts щелкните Задать значение.
13. Появится следующий экран:
Введите значение свойства в поле и сохраните его.
14. Выполняйте команды запуска, специфичные для брокера, установленного на компьютере, и проверьте, как выполняются задачи публикации и подписки между свойствами вещи и брокером.