MQTT
MQTT(Message Queue Telemetry Transport)는 M2M(machine to machine) 통신을 위한 공개 메시지 프로토콜로, 대기 시간이 길거나 제한된 네트워크를 통해 메시지 형태로 편재형 기기에서 서버 또는 소형 메시지 브로커로 원격 분석 스타일의 데이터를 전송할 수 있습니다. 편재형 기기는 센서 및 발동기, 휴대폰, 차량에 포함된 시스템, 랩톱 및 데스크톱 컴퓨터에 이르기까지 다양합니다.
MQTT는 게시/구독 아키텍처에서 작동합니다. MQTT에는 메시지 브로커 및 통신 장치가 필요합니다. 통신 장치를 클라이언트라고 할 수 있습니다. 브로커와 클라이언트는 "Topic" 이라는 매개 변수를 게시 및 구독할 수 있습니다. SSL을 사용하여 MQTT를 통해 통신을 보호할 수 있습니다.
MQTT 확장은 소형 전자 장치 및 센서에 대한 연결성을 제공하고 ThingWorx와의 통신을 가능하게 합니다.
조직의 요구사항에 따라 MQTT에 대한 표준 브로커를 사용할 수 있습니다. 모든 사용자 제어 설정에 대해 설치할 브로커의 제품 설명서를 참조하십시오.
* 
Windows 운영 체제에서 브로커는 설치 후 서비스로 실행됩니다.
MQTT 가져오기
* 
ThingWorx 확장 지원 모델이 최근에 변경되었습니다. 대부분의 확장은 더 이상 다운로드 페이지에서 사용할 수 없습니다. 자세한 내용은 이 문서를 참조하십시오.
확장 가져오기를 참조하여 MQTT_Extension.zip을 ThingWorx로 가져옵니다. 확장이 설치되면 사물 템플릿목록에 다음이 나타납니다.
MQTTConnection
MQTTSubscriber 사물에 대한 공유 연결을 허용합니다.
MQTTSubscriber
MQTT 서버에서 하나 이상의 주제에 대한 구독을 허용합니다. 구성 > 속성 아래의 속성을 MQTT 주제 매핑 섹션에 추가합니다.
MQTTSubscriber 사물을 편집할 때 연관된 MQTTConnection 사물을 재시작하여 새로 고칩니다.
MQTT
단일 사물에서 위의 모든 구성을 허용합니다.
MQTT 구성
다음 단원에서는 ThingWorx에 확장을 설치한 후 브로커와 연결을 설정하려는 경우 MQTT에서 매개 변수를 구성하는 방법에 대해 설명합니다.
1. 시스템에 설치한 브로커를 실행합니다.
2. ThingWorx에서 새 사물을 생성하고 MQTT사물 템플릿으로 선택하고 저장을 클릭합니다.
3. 속성 및 경고 보기를 클릭하면 다음 화면이 나타납니다.
위의 이미지에서 1번 및 2번 콜아웃은 다음을 나타냅니다.
콜아웃
설명
1
녹색 아이콘은 사용자가 생성한 사물이 브로커에 연결되었음을 나타냅니다. 사물의 연결이 끊어지면 빨간색으로 표시됩니다.
2
사물과 브로커 사이에 연결이 설정되면 필드에서 isConnected 속성이 TRUE로 설정됩니다. 연결이 끊어지면 필드가 FALSE로 설정됩니다.
ThingWorx HA 환경의 싱글톤 노드에 브로커와의 연결 문제가 있는 경우 속성이 false로 설정됩니다. 그러나 속성이 false인 경우에도 다른 노드는 계속해서 메시지를 게시합니다.
4. 추가를 클릭하여 속성을 추가합니다.
5. 다음 화면이 나타납니다.
6. 속성 이름, 기본 유형 및 기타 필요한 세부 내용을 입력합니다.
7. 속성과 관련된 정보를 저장합니다.
8. 구성 보기를 클릭하면 다음 화면이 나타납니다.
다음 표에서는 구성 보기에서 볼 수 있는 다양한 매개 변수에 대해 설명합니다.
JDBC Settings
설명
clientIdFormat
MQTT 브로커에 등록된 클라이언트의 이름입니다.
* 
하나의 MQTT 브로커에 대해 고유해야 합니다.
토큰 {s}는 ThingWorx Platform의 서버 이름에 대한 것입니다. 서버 이름에 대한 페더레이션 하위 시스템 구성에 언급된 값을 사용합니다.
토큰 {t}는 현재 사물 이름에 대한 것입니다. 서로 다른 플랫폼을 하나의 브로커에 연결하고 이름이 동일한 사물을 사용하려면 페더레이션 하위 시스템에 서버 이름을 지정하는 것이 좋습니다.
useSSL
브로커가 보안 연결을 지원하는 경우 이를 선택합니다.
serverName
MQTT 브로커가 실행 중인 호스트 이름입니다.
* 
ThingWorx Platform과 동일한 시스템에서 브로커가 실행 중이면 필드를 비워둡니다.
serverPort
MQTT 브로커에 대한 포트입니다. 기본값은 1883입니다.
userId
브로커에 연결할 사용자 이름입니다.
Password
사용자 ID에 대한 암호입니다.
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. 사물 속성을 MQTT 주제에 수동으로 매핑하려면 Mappings 섹션에서 추가를 클릭합니다.
다음 화면이 나타납니다.
다음 표에는 각 매핑에 사용할 수 있는 구성 옵션이 나열되어 있습니다.
Subscribe
MQTT 브로커에서 지정된 주제에 대해 게시된 변경 사항을 수신하도록 속성을 구독합니다.
Publish
지정된 주제를 사용하여 속성 값 변경 사항을 MQTT 브로커에 게시합니다.
Retain
MQTT 브로커에서 마지막으로 게시된 속성 값을 유지합니다. 새 장치 또는 클라이언트가 유지된 메시지가 있는 주제를 구독하면 브로커는 마지막으로 게시된 값이 포함된 메시지를 자동으로 보냅니다. 클라이언트에 초기 값이 필요한 경우 메시지 값을 유지하는 것이 유용할 수 있습니다. 초기 자리 표시자 값을 설정하고 다음 메시지를 대기하는 대신 유지된 값이 전송됩니다.
이름
MQTT 브로커를 매핑할 사물 속성의 이름입니다.
주제
MQTT 브로커에서 게시하거나 구독할 주제의 이름입니다.
10. 여기 6단계에서 추가한 속성 이름, 주제 이름을 입력한 다음 구독, 게시 또는 유지를 선택합니다. 이 속성은 입력하는 주제 이름에 게시 또는 구독됩니다.
11. 추가를 클릭합니다.
12. Properties and Alerts 보기에서 값 설정을 클릭합니다.
13. 다음 화면이 나타납니다.
필드에 속성 값을 입력하고 저장합니다.
14. 시스템에 설치된 브로커와 관련된 실행 명령을 따르고 사물 속성과 브로커 간의 게시 및 구독 활동을 확인합니다.
도움이 되셨나요?