# Nanopb protocol buffer in QSH The QSH uses nanopb protocol buffer for the following scenarios: - To exchange request and event messages between sensors using the nanopb protocol format: - A sensor or sensor instance must encode the payload (if present) for all requests it sends to its dependents. - A sensor or sensor instance must decode the payload (if present) for all requests it receives. - A sensor or sensor instance must encode the payload (if present) for all events it publishes. - A sensor or sensor instance must decode the payload (if present) for all events it receives from its dependents. > > > Note > > > Certain requests or events don’t have a message body. In this case, decoding or encoding the payload isn’t expected, and the sensor processes these messages based on their message ID. - To represent the attribute data: - All attribute values are in the nanopb-encoded format. - To transmit the diagnostic log packet payloads: - All payloads in the diagnostic log packets are in the nanopb-encoded format. Note For more information about protocol buffers, see [Protocol-buffers](https://developers.google.com/protocol-buffers/) and [nanopb](https://jpa.kapsi.fi/nanopb/). Last Published: May 07, 2026