gRPC MQTT

gRPC MQTT Communication Server Module

Note

Features: - gRPC server implementation for MQTT data reception - Thread-safe queue integration for data processing - Graceful shutdown handling - Comprehensive logging integration

class grpc_mqtt.MQTTCommunicationService(*args: Any, **kwargs: Any)[source]

Bases: MQTTCommunicationServicer

gRPC service implementation for MQTT data handling.

Parameters:
  • data_to_tb – Thread-safe queue for outgoing data to ThingsBoard

  • mqtt_logger – Configured logger instance for MQTT operations

__init__(data_to_tb: Queue, mqtt_logger: Logger | None = None)[source]
SendMQTT(request: Any, context: grpc.ServicerContext) GRPC.mqtt_pb2.MQTTResponse[source]

Handle incoming MQTT data requests.

Parameters:
  • request – gRPC request containing MQTT message data

  • context – gRPC connection context

Returns:

Response confirmation

Raises:

grpc.RpcError – For critical processing errors

Note

Processes incoming messages by: 1. Extracting message content 2. Logging receipt 3. Queueing for ThingsBoard transmission

grpc_mqtt.run_grpc_mqtt_server(data_to_tb: Queue, mqtt_logger: Logger | None = None) None[source]

Run the gRPC server for MQTT communication.

Parameters:
  • data_to_tb – Shared queue for ThingsBoard-bound data

  • mqtt_logger – Configured logger instance

Note

Server features: - Thread pool executor for concurrent requests - Graceful shutdown on keyboard interrupt - Port configuration from _SERVER_ADDRESS constant

grpc_mqtt.start_grpc_mqtt(data_to_tb: Queue, mqtt_logger: Logger | None = None) None[source]

Initialize and start the gRPC server in a daemon thread.

Parameters:
  • data_to_tb – Shared queue for outgoing data

  • mqtt_logger – Configured logger instance