@tim-sasdrich: Yes, your message flow is not entirely correct. To get awake, the device has to do the following: “The sleep timer is stopped when the server/gateway receives a PINGREQ from the client. Like the CONNECT message, this PINGREQ message contains the Client Id. The identified client is then in the awake state. If the server/gateway has buffered messages for the client, it will sends these messages to the client. The transfer of messages to the client is closed by the server/gateway by means of a PINGRESP message, i.e. the server/gateway will consider the client as asleep and restart the sleep timer again after having sent the PINGRESP message.” by http://www.mqtt.org/new/wp-content/uploads/2009/06/MQTT-SN_spec_v1.2.pdf , page 26