mirror of
https://github.com/thingsboard/thingsboard-gateway
synced 2025-10-26 22:31:42 +08:00
Added quality of service(qos) parameter in tb_gateway.yaml qos can be 0 or 1
This commit is contained in:
@@ -5,6 +5,7 @@ thingsboard:
|
|||||||
remoteConfiguration: false
|
remoteConfiguration: false
|
||||||
security:
|
security:
|
||||||
accessToken: PUT_YOUR_GW_ACCESS_TOKEN_HERE
|
accessToken: PUT_YOUR_GW_ACCESS_TOKEN_HERE
|
||||||
|
qos: 1
|
||||||
storage:
|
storage:
|
||||||
type: memory
|
type: memory
|
||||||
read_records_count: 100
|
read_records_count: 100
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class TBClient(threading.Thread):
|
|||||||
self.__config = config
|
self.__config = config
|
||||||
self.__host = config["host"]
|
self.__host = config["host"]
|
||||||
self.__port = config.get("port", 1883)
|
self.__port = config.get("port", 1883)
|
||||||
self.__default_quality_of_service = config.get("qos",1)
|
self.__default_quality_of_service = config.get("qos", 1)
|
||||||
credentials = config["security"]
|
credentials = config["security"]
|
||||||
self.__min_reconnect_delay = 1
|
self.__min_reconnect_delay = 1
|
||||||
self.__tls = bool(credentials.get('tls', False) or credentials.get('caCert', False))
|
self.__tls = bool(credentials.get('tls', False) or credentials.get('caCert', False))
|
||||||
|
|||||||
@@ -235,8 +235,7 @@ class TBDeviceMqttClient:
|
|||||||
self._client.reconnect_delay_set(min_delay, max_delay)
|
self._client.reconnect_delay_set(min_delay, max_delay)
|
||||||
|
|
||||||
def send_rpc_reply(self, req_id, resp, quality_of_service=None, wait_for_publish=False):
|
def send_rpc_reply(self, req_id, resp, quality_of_service=None, wait_for_publish=False):
|
||||||
if quality_of_service is None:
|
quality_of_service = quality_of_service if quality_of_service is not None else self.__default_quality_of_service
|
||||||
quality_of_service = self.__default_quality_of_service
|
|
||||||
if quality_of_service not in (0, 1):
|
if quality_of_service not in (0, 1):
|
||||||
log.error("Quality of service (qos) value must be 0 or 1")
|
log.error("Quality of service (qos) value must be 0 or 1")
|
||||||
return None
|
return None
|
||||||
@@ -252,7 +251,7 @@ class TBDeviceMqttClient:
|
|||||||
payload = {"method": method, "params": params}
|
payload = {"method": method, "params": params}
|
||||||
self._client.publish(RPC_REQUEST_TOPIC + str(rpc_request_id),
|
self._client.publish(RPC_REQUEST_TOPIC + str(rpc_request_id),
|
||||||
dumps(payload),
|
dumps(payload),
|
||||||
qos=1)
|
qos=self.__default_quality_of_service)
|
||||||
|
|
||||||
def set_server_side_rpc_request_handler(self, handler):
|
def set_server_side_rpc_request_handler(self, handler):
|
||||||
self.__device_on_server_side_rpc_response = handler
|
self.__device_on_server_side_rpc_response = handler
|
||||||
@@ -266,12 +265,14 @@ class TBDeviceMqttClient:
|
|||||||
raise TBQoSException("Quality of service (qos) value must be 0 or 1")
|
raise TBQoSException("Quality of service (qos) value must be 0 or 1")
|
||||||
return TBPublishInfo(self._client.publish(topic, data, qos))
|
return TBPublishInfo(self._client.publish(topic, data, qos))
|
||||||
|
|
||||||
def send_telemetry(self, telemetry, quality_of_service=1):
|
def send_telemetry(self, telemetry, quality_of_service=None):
|
||||||
|
quality_of_service = quality_of_service if quality_of_service is not None else self.__default_quality_of_service
|
||||||
if not isinstance(telemetry, list) and not (isinstance(telemetry, dict) and telemetry.get("ts") is not None):
|
if not isinstance(telemetry, list) and not (isinstance(telemetry, dict) and telemetry.get("ts") is not None):
|
||||||
telemetry = [telemetry]
|
telemetry = [telemetry]
|
||||||
return self.publish_data(telemetry, TELEMETRY_TOPIC, quality_of_service)
|
return self.publish_data(telemetry, TELEMETRY_TOPIC, quality_of_service)
|
||||||
|
|
||||||
def send_attributes(self, attributes, quality_of_service=1):
|
def send_attributes(self, attributes, quality_of_service=None):
|
||||||
|
quality_of_service = quality_of_service if quality_of_service is not None else self.__default_quality_of_service
|
||||||
return self.publish_data(attributes, ATTRIBUTES_TOPIC, quality_of_service)
|
return self.publish_data(attributes, ATTRIBUTES_TOPIC, quality_of_service)
|
||||||
|
|
||||||
def unsubscribe_from_attribute(self, subscription_id):
|
def unsubscribe_from_attribute(self, subscription_id):
|
||||||
|
|||||||
Reference in New Issue
Block a user