Try
QoS changes the packet exchange, not the topic name or payload. Higher QoS adds acknowledgements and stored state.
Step through MQTT QoS 0, QoS 1, and QoS 2 delivery paths, retries, duplicates, and effective subscriber QoS
Step through what MQTT really sends for QoS 0, QoS 1, and QoS 2. Watch retries, duplicate risk, and subscriber QoS downgrade as packet events move between publisher, broker, and subscriber.
QoS changes the packet exchange, not the topic name or payload. Higher QoS adds acknowledgements and stored state.
Small sensors often prefer QoS 0. Alerts and commands usually need QoS 1. QoS 2 is reserved for messages where duplicates are more damaging than delay.
Use the QoS 1 lost ACK preset, then press Step. The same message can be delivered and still be sent again.
QoS 2 confirms MQTT protocol delivery. It does not prove that a motor moved, a lock opened, or a sensor action completed.
The broker receives the PUBLISH, but the acknowledgement back to the publisher is lost. The publisher retries with DUP=1, so the application must be prepared for a duplicate command.
MQTT QoS is negotiated per delivery leg. The publisher-to-broker leg and broker-to-subscriber leg can use different QoS levels.
QoS 1 and QoS 2 use a packet identifier while the exchange is in progress. Retries reuse that identifier and set DUP=1.
An MQTT acknowledgement means a protocol peer handled the MQTT packet. It is not proof that an actuator finished the physical task.
Switch from QoS 0 telemetry to QoS 2 meter. The packet count and estimated confirmation time should increase.
Use QoS 1 with a lost acknowledgement. The broker receives the first publish, but the publisher cannot know that yet.
Set publish QoS to 2 and subscriber maximum to 0. The broker-to-subscriber leg becomes QoS 0.