mirror of
https://github.com/thingsboard/thingsboard-gateway
synced 2025-10-26 22:31:42 +08:00
Added ability to use clientId/username/password to connect to the ThingsBoard instance
This commit is contained in:
@@ -42,14 +42,22 @@ class TBClient(threading.Thread):
|
||||
self.__ca_cert = None
|
||||
self.__private_key = None
|
||||
self.__cert = None
|
||||
self.__token = None
|
||||
self.__client_id = ""
|
||||
self.__username = None
|
||||
self.__password = None
|
||||
self.__is_connected = False
|
||||
self.__stopped = False
|
||||
self.__paused = False
|
||||
self._last_cert_check_time = 0
|
||||
if credentials.get("accessToken") is not None:
|
||||
self.__token = str(credentials["accessToken"])
|
||||
self.client = TBGatewayMqttClient(self.__host, self.__port, self.__token, self, quality_of_service=self.__default_quality_of_service)
|
||||
self.__username = str(credentials["accessToken"])
|
||||
if credentials.get("username") is not None:
|
||||
self.__username = str(credentials["username"])
|
||||
if credentials.get("password") is not None:
|
||||
self.__password = str(credentials["password"])
|
||||
if credentials.get("clientId") is not None:
|
||||
self.__client_id = str(credentials["clientId"])
|
||||
self.client = TBGatewayMqttClient(self.__host, self.__port, self.__username, self.__password, self, quality_of_service=self.__default_quality_of_service, client_id=self.__client_id)
|
||||
if self.__tls:
|
||||
self.__ca_cert = self.__config_folder_path + credentials.get("caCert") if credentials.get("caCert") is not None else None
|
||||
self.__private_key = self.__config_folder_path + credentials.get("privateKey") if credentials.get("privateKey") is not None else None
|
||||
|
||||
@@ -76,15 +76,15 @@ class TBPublishInfo:
|
||||
|
||||
|
||||
class TBDeviceMqttClient:
|
||||
def __init__(self, host, port=1883, token=None, quality_of_service=None):
|
||||
self._client = paho.Client(protocol=4)
|
||||
def __init__(self, host, port=1883, username=None, password=None, quality_of_service=None, client_id=""):
|
||||
self._client = paho.Client(protocol=4, client_id=client_id)
|
||||
self.quality_of_service = quality_of_service if quality_of_service is not None else 1
|
||||
self.__host = host
|
||||
self.__port = port
|
||||
if token == "":
|
||||
if username == "":
|
||||
log.warning("token is not set, connection without tls wont be established")
|
||||
else:
|
||||
self._client.username_pw_set(token)
|
||||
self._client.username_pw_set(username, password=password)
|
||||
self._lock = RLock()
|
||||
|
||||
self._attr_request_dict = {}
|
||||
|
||||
@@ -32,8 +32,8 @@ log = logging.getLogger("tb_connection")
|
||||
|
||||
|
||||
class TBGatewayMqttClient(TBDeviceMqttClient):
|
||||
def __init__(self, host, port, token=None, gateway=None, quality_of_service=1):
|
||||
super().__init__(host, port, token, quality_of_service)
|
||||
def __init__(self, host, port, username=None, password=None, gateway=None, quality_of_service=1, client_id=""):
|
||||
super().__init__(host, port, username, password, quality_of_service, client_id)
|
||||
self.quality_of_service = quality_of_service
|
||||
self.__max_sub_id = 0
|
||||
self.__sub_dict = {}
|
||||
|
||||
Reference in New Issue
Block a user