# 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