diff --git a/mqtt/__init__.py b/mqtt/__init__.py index 4ec2924..d054385 100644 --- a/mqtt/__init__.py +++ b/mqtt/__init__.py @@ -10,7 +10,7 @@ import paho.mqtt.client as mqtt_client class Mqtt(object): ''' Wrapper class for mqtt communication ''' - def __init__(self, hostname, port=1883, keepalive=60, qos=2, retain=True, subscribe=[]): + def __init__(self, hostname, port=1883, ca_certs=None, certfile=None, keyfile=None, keepalive=60, qos=2, retain=True, subscribe=[]): ''' Constructor @param hostname: The hostname of the mqtt broker @param port: The port number used for mqtt transport @@ -21,6 +21,9 @@ class Mqtt(object): ''' self.hostname = hostname self.port = port + self.ca_certs = ca_certs + self.certfile = certfile + self.keyfile = keyfile self.keepalive = keepalive self.client = mqtt_client.Client() self.client.on_connect = self.__on_connect @@ -34,17 +37,20 @@ class Mqtt(object): def connect(self): ''' Connect to mqtt broker ''' + ret = False if not self.is_connected: - res = self.client.connect(self.hostname, self.port, \ - self.keepalive) - if res != mqtt_client.MQTT_ERR_SUCCESS: - return False - res = self.client.loop_start() - if res == mqtt_client.MQTT_ERR_INVAL: - return False - self.is_connected = True - return True - return False + res = None + try: + self.client.tls_set(self.ca_certs, self.certfile, self.keyfile) + res = self.client.connect(self.hostname, self.port, self.keepalive) + if res == mqtt_client.MQTT_ERR_SUCCESS: + res = self.client.loop_start() + if res != mqtt_client.MQTT_ERR_INVAL: + ret = True + self.is_connected = True + except ValueError: + pass + return ret def disconnect(self): ''' Disconnect from mqtt broker ''' diff --git a/setup.py b/setup.py index 5655729..d1ec640 100755 --- a/setup.py +++ b/setup.py @@ -9,5 +9,5 @@ type 'python setup.py install' to install the distribution. ''' from distutils.core import setup -setup(name='mqtt', version='1.0.0', author='Thomas Klaehn', +setup(name='mqtt', version='1.1.0', author='Thomas Klaehn', author_email='tkl@blackfinn.de', packages=['mqtt'])