콘텐츠로 이동
무료 평가 시작

MQTT 문제 해결

위치 형식
GUI 창 아래 상태 표시줄 pubsub_start failed: MQTT broker connection failed: …
GUI PubSub 탭 상태 줄 … · last error: MQTT publish refused: 0x87
헤드리스 응답 {"ok":false,"error":"…"} 또는 pubsub_status의 "error"
MCP 응답 isError가 true인 결과의 텍스트, 또는 opcua_pubsub_status의 "error"
추적 Trace & Diagnostics 탭이나 {"action":"trace"}의 error
브로커 로그 mosquitto -v 출력이나 log_dest로 정한 파일

시뮬레이터 오류 문장은 영어이며 아래 문서들은 그 문장 그대로 찾을 수 있게 정리했습니다.

증상 문서
Start PubSub나 pubsub_start가 실패함 연결 문제
실행 중에 PubSub가 멈추고 Stopped ·가 보임 연결 문제
TLS 브로커나 브리지에 연결되지 않음 TLS 문제
발행은 되는데 받지 못함, rejected가 늘어남, 발행이 거부됨 전달 문제

configure나 GUI의 Start PubSub가 구성을 적용할 때 검사하는 항목입니다.

오류 원인 해결
MQTT broker address must be an IP socket address MQTT broker에 호스트 이름을 썼거나 포트가 없습니다. 127.0.0.1:1883이나 [::1]:1883처럼 IP 주소와 포트를 씁니다.
MQTT topic must be 1 to 256 bytes without wildcards 토픽이 비었거나 256바이트를 넘거나 +, #이 있습니다. 와일드카드 없는 토픽 하나를 씁니다.
PubSub transport or role is invalid transport가 mqtt, udp가 아니거나 role이 both, publisher, subscriber가 아닙니다. 값을 고칩니다.
PubSub identifiers must be non-zero publisher_id, writer_group_id, dataset_writer_id 중 0이 있습니다. 1~65535를 씁니다.
Stop the endpoint before changing its configuration PubSub가 실행 중일 때 PubSub 설정을 바꿨습니다. Stop PubSub(pubsub_stop) 뒤에 바꿉니다.
PubSub is already running 이미 실행 중입니다. 멈춘 뒤 다시 시작합니다.
PubSub is not running 실행 중이 아닐 때 발행, 수신 확인, 멈춤을 요청했습니다. 먼저 시작합니다.
오류 원인 해결
This PubSub connection has no publisher Role이 Subscriber입니다. Publisher나 Publisher and subscriber로 다시 시작합니다.
fields must be an array of 1 to 64 typed values fields가 비었거나 64개를 넘습니다. 필드를 1~64개로 줍니다.
Unsupported value type Decimal 지원하지 않는 형식 이름입니다. 지원 형식을 씁니다.
Int32 needs an integer value 값이 형식과 맞지 않습니다. 형식에 맞는 JSON 값을 씁니다.
OPC UA PubSub Limit 인코딩한 UADP 메시지가 64 KiB를 넘습니다. 필드 수나 문자열 길이를 줄입니다.
PubSub command queue is full or stopped PubSub 작업이 멈췄습니다(예: 브로커 연결 끊김). pubsub_status의 error를 보고 다시 시작합니다.
MQTT publish failed: … 브로커 조건 때문에 보낼 수 없습니다. 전달 문제를 봅니다.