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:
MQTTCommunicationServicergRPC 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
- 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