Wed, 08 Apr 2020 18:06:19 +0200
Fixed a bug handling a missing CERT file.
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
66
9297e94d7d77
Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
64
diff
changeset
|
3 | # Copyright (c) 2018 - 2020 Detlev Offenbach <detlev@die-offenbachs.de> |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a PyQt wrapper around the paho MQTT client. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from __future__ import unicode_literals |
64 | 11 | try: |
12 | str = unicode # __IGNORE_EXCEPTION__ | |
13 | except NameError: | |
14 | pass | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
16 | from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QCoreApplication, \ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
17 | QTimer |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import paho.mqtt.client as mqtt |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
21 | from Utilities.crypto import pwConvert |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
22 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | class MqttClient(QObject): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Class implementing a PyQt wrapper around the paho MQTT client. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @signal onConnect(flags, rc) emitted after the client has connected to the |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | broker |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | @signal onDisconnected(rc) emitted after the client has disconnected from |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | the broker |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
32 | @signal onLog(level, message) emitted to send client log data |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @signal onMessage(topic, payload, qos, retain) emitted after a message has |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | been received by the client |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @signal onPublish(mid) emitted after a message has been published |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @signal onSubscribe(mid, grantedQos) emitted after the client has |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | subscribed to some topics |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @signal onUnsubscribe(mid) emitted after the client has unsubscribed from |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | some topics |
51
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
40 | @signal connectTimeout() emitted to indicate, that a connection attempt |
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
41 | timed out |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | onConnect = pyqtSignal(dict, int) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | onDisconnected = pyqtSignal(int) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
45 | onLog = pyqtSignal(int, str) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | onMessage = pyqtSignal(str, bytes, int, bool) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | onPublish = pyqtSignal(int) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | onSubscribe = pyqtSignal(int, tuple) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | onUnsubscribe = pyqtSignal(int) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
51 | connectTimeout = pyqtSignal() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
52 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
53 | DefaultConnectTimeout = 15 # connect timeout in seconds |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
54 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
55 | LogDebug = 0x01 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
56 | LogInfo = 0x02 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
57 | LogNotice = 0x04 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
58 | LogWarning = 0x08 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
59 | LogError = 0x10 |
43
a0853f7a8b80
MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
60 | LogDisabled = 0xff |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
61 | LogLevelMap = { |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
62 | mqtt.MQTT_LOG_DEBUG: LogDebug, |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
63 | mqtt.MQTT_LOG_INFO: LogInfo, |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
64 | mqtt.MQTT_LOG_NOTICE: LogNotice, |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
65 | mqtt.MQTT_LOG_WARNING: LogWarning, # __NO-TASK__ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
66 | mqtt.MQTT_LOG_ERR: LogError, |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
67 | } |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
68 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | def __init__(self, clientId="", cleanSession=True, userdata=None, |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | protocol=mqtt.MQTTv311, transport="tcp", parent=None): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | Constructor |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | @param clientId ID to be used for the client |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | @type str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | @param cleanSession flag indicating to start a clean session |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | @type bool |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | @param userdata user data |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | @type any |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | @param protocol version of the MQTT protocol to use |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | @type int, one of mqtt.MQTTv31 or mqtt.MQTTv311 |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | @param transport transport to be used |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | @type str, one of "tcp" or "websockets" |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | @param parent reference to the parent object |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | @type QObject |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | QObject.__init__(self, parent=parent) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__loopStarted = False |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
91 | self.__connectTimeoutTimer = QTimer(self) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
92 | self.__connectTimeoutTimer.setSingleShot(True) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
93 | self.__connectTimeoutTimer.setInterval( |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
94 | MqttClient.DefaultConnectTimeout * 1000) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
95 | self.__connectTimeoutTimer.timeout.connect(self.__connectTimeout) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
96 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
97 | self.onConnect.connect(self.__connectTimeoutTimer.stop) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
98 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | self.__mqttClient = mqtt.Client( |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | client_id=clientId, clean_session=cleanSession, userdata=None, |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | protocol=mqtt.MQTTv311, transport="tcp") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
103 | self.__initCallbacks() |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
104 | |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
105 | def __initCallbacks(self): |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
106 | """ |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
107 | Private method to initialize the MQTT callback methods. |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
108 | """ |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | self.__mqttClient.on_connect = \ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | lambda client, userdata, flags, rc: self.onConnect.emit( |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | flags, rc) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.__mqttClient.on_disconnect = \ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | lambda client, userdata, rc: self.onDisconnected.emit(rc) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
114 | self.__mqttClient.on_log = \ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
115 | lambda client, userdata, level, buf: self.onLog.emit(level, buf) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | self.__mqttClient.on_message = \ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | lambda client, userdata, message: self.onMessage.emit( |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | message.topic, message.payload, message.qos, message.retain) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | self.__mqttClient.on_publish = \ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | lambda client, userdata, mid: self.onPublish.emit(mid) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.__mqttClient.on_subscribe = \ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | lambda client, userdata, mid, grantedQos: self.onSubscribe.emit( |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | mid, grantedQos) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | self.__mqttClient.on_unsubscribe = \ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | lambda client, userdata, mid: self.onUnsubscribe.emit(mid) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
127 | @pyqtSlot() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
128 | def __connectTimeout(self): |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
129 | """ |
51
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
130 | Private slot handling a failed connection attempt. |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
131 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
132 | self.stopLoop() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
133 | self.connectTimeout.emit() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
134 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
135 | def reinitialise(self, clientId="", cleanSession=True, userdata=None): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
136 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
137 | Public method to reinitialize the client with given data. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
138 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
139 | @param clientId ID to be used for the client |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
140 | @type str |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
141 | @param cleanSession flag indicating to start a clean session |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
142 | @type bool |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
143 | @param userdata user data |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
144 | @type any |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
145 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
146 | self.__mqttClient.reinitialise( |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
147 | client_id=clientId, clean_session=cleanSession, userdata=userdata) |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
148 | |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
149 | self.__initCallbacks() |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
150 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
151 | def setConnectionTimeout(self, timeout): |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
152 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
153 | Public method to set the connection timeout value. |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
154 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
155 | @param timeout timeout value to be set in seconds |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
156 | @type int |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
157 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
158 | self.__connectTimeoutTimer.setInterval(timeout * 1000) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
159 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
160 | def setMaxInflightMessages(self, inflight=20): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
161 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
162 | Public method to set the maximum number of messages with QoS > 0 that |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
163 | can be part way through their network flow at once. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
164 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
165 | @param inflight maximum number of messages in flight |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
166 | @type int |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
167 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
168 | self.__mqttClient.max_inflight_messages_set(inflight) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
169 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
170 | def setMaxQueuedMessages(self, queueSize=0): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
171 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
172 | Public method to set the maximum number of messages with QoS > 0 that |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
173 | can be pending in the outgoing message queue. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
174 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
175 | @param queueSize maximum number of queued messages (0 = unlimited) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
176 | @type int |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
177 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
178 | self.__mqttClient.max_queued_messages_set(queueSize) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
179 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
180 | def setUserCredentials(self, username, password=None): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
181 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
182 | Public method to set the user name and optionally the password. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
183 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
184 | @param username user name to be set |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
185 | @type str |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
186 | @param password optional password |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
187 | @type str |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
188 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
189 | self.__mqttClient.username_pw_set(username, password=password) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
190 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
191 | def setUserData(self, userdata): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
192 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
193 | Public method to set the user data. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
194 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
195 | @param userdata user data |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
196 | @type any |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
197 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
198 | self.__mqttClient.user_data_set(userdata) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
199 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
200 | def setLastWill(self, topic, payload=None, qos=0, retain=False): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
201 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
202 | Public method to set the last will of the client. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
203 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
204 | @param topic topic the will message should be published on |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
205 | @type str |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
206 | @param payload message to send as a will |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
207 | @type str, bytes, int or float |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
208 | @param qos quality of service level to use for the will |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
209 | @type int, one of 0, 1 or 2 |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
210 | @param retain flag indicating to set as the "last known good"/retained |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
211 | message for the will topic |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
212 | @type bool |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
213 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
214 | self.__mqttClient.will_set(topic, payload=payload, qos=qos, |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
215 | retain=retain) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
216 | |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
217 | def clearLastWill(self): |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
218 | """ |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
219 | Public method to remove a will that was previously configured with |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
220 | setLastWill(). |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
221 | """ |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
222 | self.__mqttClient.will_clear() |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
223 | |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
224 | def setTLS(self, caCerts=None, certFile=None, keyFile=None): |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
225 | """ |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
226 | Public method to enable secure connections and set the TLS parameters. |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
227 | |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
228 | @param caCerts path to the Certificate Authority certificates file |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
229 | @type str |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
230 | @param certFile PEM encoded client certificate file |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
231 | @type str |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
232 | @param keyFile PEM encoded private key file |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
233 | @type str |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
234 | @return tuple containing a success flag and the error string of the |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
235 | paho-mqtt library |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
236 | @rtype tuple of (bool, str) |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
237 | """ |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
238 | try: |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
239 | self.__mqttClient.tls_set(ca_certs=caCerts, certfile=certFile, |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
240 | keyfile=keyFile) |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
241 | return True, "" |
69
9f0f89128698
Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
242 | except (ValueError, FileNotFoundError) as err: |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
243 | return False, str(err) |
69
9f0f89128698
Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
244 | |
9f0f89128698
Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
245 | return False, "unspecific error occurred" |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
246 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | def startLoop(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | Public method to start the MQTT client loop. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | self.__mqttClient.loop_start() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | self.__loopStarted = True |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | def stopLoop(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | Public method to stop the MQTT client loop. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | self.__mqttClient.loop_stop() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | self.__loopStarted = False |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
261 | def connectToServer(self, host, port=1883, keepalive=60, bindAddress="", |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
262 | reinit=True): |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | Public method to connect to a remote MQTT broker. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | @param host host name or IP address of the remote broker |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | @type str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | @param port network port of the server host to connect to (default: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | 1883, using TLS: 8883) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | @type int |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | @param keepalive maximum period in seconds allowed between |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | communications with the broker |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | @type int |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | @param bindAddress IP address of a local network interface to bind |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | this client to |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | @type str |
51
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
277 | @param reinit flag indicating to reinitialize the MQTT client before |
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
278 | trying to connect with the given parameters |
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
279 | @type bool |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
281 | if reinit: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
282 | self.reinitialise() |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | self.__mqttClient.connect_async( |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | host, port=port, keepalive=keepalive, bind_address=bindAddress) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
286 | self.__connectTimeoutTimer.start() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
287 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | if not self.__loopStarted: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | self.startLoop() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
291 | def connectToServerWithOptions(self, host, port=1883, bindAddress="", |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
292 | options=None): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
293 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
294 | Public method to connect to a remote MQTT broker. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
295 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
296 | @param host host name or IP address of the remote broker |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
297 | @type str |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
298 | @param port network port of the server host to connect to (default: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
299 | 1883, using TLS: 8883) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
300 | @type int |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
301 | @param bindAddress IP address of a local network interface to bind |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
302 | this client to |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
303 | @type str |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
304 | @param options dictionary containing the connection options. This |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
305 | dictionary should contain the keys "ClientId", "Keepalive", |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
306 | "CleanSession", "Username", "Password", "WillTopic", "WillMessage", |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
307 | "WillQos", "WillRetain", "TlsEnable", "TlsCaCert", "TlsClientCert", |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
308 | "TlsClientKey", "ConnectionTimeout" |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
309 | @type dict |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
310 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
311 | if options: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
312 | parametersDict = self.defaultConnectionOptions() |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
313 | parametersDict.update(options) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
314 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
315 | # step 1: reinitialize to set the client ID and clean session flag |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
316 | self.reinitialise( |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
317 | clientId=parametersDict["ClientId"], |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
318 | cleanSession=parametersDict["CleanSession"] |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
319 | ) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
320 | self.setConnectionTimeout(parametersDict["ConnectionTimeout"]) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
321 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
322 | # step 2: set username and password |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
323 | if parametersDict["Username"]: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
324 | if parametersDict["Password"]: |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
325 | self.setUserCredentials( |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
326 | parametersDict["Username"], |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
327 | pwConvert(parametersDict["Password"], encode=False)) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
328 | else: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
329 | self.setUserCredentials(parametersDict["Username"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
330 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
331 | # step 3: set last will data |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
332 | if parametersDict["WillTopic"]: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
333 | if parametersDict["WillMessage"]: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
334 | willMessage = parametersDict["WillMessage"] |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
335 | else: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
336 | # empty message to clear the will |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
337 | willMessage = None |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
338 | self.setLastWill(parametersDict["WillTopic"], |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
339 | willMessage, |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
340 | parametersDict["WillQos"], |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
341 | parametersDict["WillRetain"]) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
342 | |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
343 | # step 4: set TLS parameters |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
344 | if parametersDict["TlsEnable"]: |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
345 | if parametersDict["TlsCaCert"] and \ |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
346 | parametersDict["TlsClientCert"]: |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
347 | # use self signed client certificate |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
348 | self.setTLS(caCerts=parametersDict["TlsCaCert"], |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
349 | certFile=parametersDict["TlsClientCert"], |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
350 | keyFile=parametersDict["TlsClientKey"]) |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
351 | elif parametersDict["TlsCaCert"]: |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
352 | # use CA certificate file |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
353 | self.setTLS(caCerts=parametersDict["TlsCaCert"]) |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
354 | else: |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
355 | # use default TLS configuration |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
356 | self.setTLS() |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
357 | |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
358 | # step 5: connect to server |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
359 | self.connectToServer(host, port=port, |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
360 | keepalive=parametersDict["Keepalive"], |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
361 | reinit=False) |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
362 | else: |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
363 | keepalive = self.defaultConnectionOptions["Keepalive"] |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
364 | self.connectToServer(host, port=port, keepalive=keepalive, |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
365 | bindAddress=bindAddress) |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
366 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
367 | def defaultConnectionOptions(self): |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
368 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
369 | Public method to get a connection options dictionary with default |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
370 | values. |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
371 | |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
372 | @return dictionary containing the default connection options. It has |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
373 | the keys "ClientId", "Keepalive", "CleanSession", "Username", |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
374 | "Password", "WillTopic", "WillMessage", "WillQos", "WillRetain", |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
375 | "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey", |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
376 | "ConnectionTimeout". |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
377 | @rtype dict |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
378 | """ |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
379 | return { |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
380 | "ClientId": "ERIC6_MQTT_MONITOR_CLIENT", |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
381 | "ConnectionTimeout": MqttClient.DefaultConnectTimeout, |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
382 | "Keepalive": 60, |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
383 | "CleanSession": True, |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
384 | "Username": "", |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
385 | "Password": "", |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
386 | "WillTopic": "", |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
387 | "WillMessage": "", |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
388 | "WillQos": 0, |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
389 | "WillRetain": False, |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
390 | "TlsEnable": False, |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
391 | "TlsCaCert": "", |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
392 | "TlsClientCert": "", |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
393 | "TlsClientKey": "", |
10
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
394 | } |
7e0e921dc7ea
Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9
diff
changeset
|
395 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | def reconnectToServer(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | Public method to reconnect the client with the same parameters. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
400 | self.__connectTimeoutTimer.start() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
401 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | self.__mqttClient.reconnect() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | if not self.__loopStarted: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | self.startLoop() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | def disconnectFromServer(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | Public method to disconnect the client from the remote broker. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
411 | self.__connectTimeoutTimer.stop() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
412 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | self.__mqttClient.disconnect() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | def subscribe(self, topic, qos=0): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | Public method to subscribe to topics with quality of service. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | @param topic single topic to subscribe to or a tuple with a topic |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | and a QoS or a list of tuples with a topic and a QoS each |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | @type str or tuple of (str, int) or list of tuple of (str, int) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | @param qos quality of service |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | @type int, one of 0, 1 or 2 |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | @return tuple containing the result code and the message ID |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | @rtype tuple of (int, int) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | return self.__mqttClient.subscribe(topic, qos=qos) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | def unsubscribe(self, topic): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | Public method to unsubscribe topics. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | @param topic topic or list of topics to unsubscribe |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | @type str or list of str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | @return tuple containing the result code and the message ID |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | @rtype tuple of (int, int) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | return self.__mqttClient.unsubscribe(topic) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | def publish(self, topic, payload=None, qos=0, retain=False): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | Public method to publish to a topic. |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | @param topic topic to publish to |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | @type str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | @param payload data to be published |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | @type str, bytes, int or float |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | @param qos quality of service |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | @type int, one of 0, 1 or 2 |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | @param retain flag indicating to set as the "last known good"/retained |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | message for the topic |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | @type bool |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | @return message info object |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | @rtype mqtt.MQTTMessageInfo |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | return self.__mqttClient.publish(topic, payload=payload, qos=qos, |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | retain=retain) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
459 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | def mqttConnackMessage(connackCode): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
462 | Module function to get the string associated with a CONNACK result. |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
463 | |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
464 | @param connackCode result code of the connection request |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
465 | @type int |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
466 | @return textual representation for the result code |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
467 | @rtype str |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | if connackCode == mqtt.CONNACK_ACCEPTED: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
471 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | "Connection Accepted.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | elif connackCode == mqtt.CONNACK_REFUSED_PROTOCOL_VERSION: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
475 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | "Connection Refused: unacceptable protocol version.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | elif connackCode == mqtt.CONNACK_REFUSED_IDENTIFIER_REJECTED: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
479 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | "Connection Refused: identifier rejected.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | elif connackCode == mqtt.CONNACK_REFUSED_SERVER_UNAVAILABLE: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
483 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | "Connection Refused: broker unavailable.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | elif connackCode == mqtt.CONNACK_REFUSED_BAD_USERNAME_PASSWORD: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
487 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | "Connection Refused: bad user name or password.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | elif connackCode == mqtt.CONNACK_REFUSED_NOT_AUTHORIZED: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
491 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | "Connection Refused: not authorised.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | else: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
495 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | "Connection Refused: unknown reason.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
498 | |
9
f75a385e9127
MqttClient: fixed an issue in mqttErrorMessage() definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
499 | def mqttErrorMessage(mqttErrno): |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
501 | Module function to get the error string associated with an MQTT error |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | number. |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
503 | |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
504 | @param mqttErrno result code of a MQTT request |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
505 | @type int |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
506 | @return textual representation of the result code |
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
507 | @rtype str |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | if mqttErrno == mqtt.MQTT_ERR_SUCCESS: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
511 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | "No error.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | elif mqttErrno == mqtt.MQTT_ERR_NOMEM: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
515 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | "Out of memory.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
517 | elif mqttErrno == mqtt.MQTT_ERR_PROTOCOL: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
519 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | "A network protocol error occurred when communicating with" |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | " the broker.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | elif mqttErrno == mqtt.MQTT_ERR_INVAL: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
524 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | "Invalid function arguments provided.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | elif mqttErrno == mqtt.MQTT_ERR_NO_CONN: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
528 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | "The client is not currently connected.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | elif mqttErrno == mqtt.MQTT_ERR_CONN_REFUSED: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
532 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | "The connection was refused.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | elif mqttErrno == mqtt.MQTT_ERR_NOT_FOUND: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
536 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | "Message not found (internal error).") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | elif mqttErrno == mqtt.MQTT_ERR_CONN_LOST: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
540 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | "The connection was lost.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | elif mqttErrno == mqtt.MQTT_ERR_TLS: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
544 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | "A TLS error occurred.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | elif mqttErrno == mqtt.MQTT_ERR_PAYLOAD_SIZE: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
548 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | "Payload too large.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | elif mqttErrno == mqtt.MQTT_ERR_NOT_SUPPORTED: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
552 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | "This feature is not supported.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | elif mqttErrno == mqtt.MQTT_ERR_AUTH: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
556 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | "Authorisation failed.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | elif mqttErrno == mqtt.MQTT_ERR_ACL_DENIED: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
560 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | "Access denied by ACL.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | elif mqttErrno == mqtt.MQTT_ERR_UNKNOWN: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
564 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | "Unknown error.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | elif mqttErrno == mqtt.MQTT_ERR_ERRNO: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
568 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | "Error defined by errno.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | else: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | return QCoreApplication.translate( |
3
82845c0fd550
Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
572 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | "Unknown error.") |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
574 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
575 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
576 | def mqttLogLevelString(mqttLogLevel, isMqttLogLevel=True): |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
577 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
578 | Module function to get the log level string associated with a log level. |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
579 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
580 | @param mqttLogLevel log level of the paho-mqtt client |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
581 | @type int |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
582 | @param isMqttLogLevel flag indicating a MQTT log level is given (if |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
583 | False it is the MqttClient variant, i.e. Debug being lowest) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
584 | @type bool |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
585 | @return textual representation of the log level |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
586 | @rtype str |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
587 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
588 | if isMqttLogLevel: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
589 | try: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
590 | logLevel = MqttClient.LogLevelMap[mqttLogLevel] |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
591 | except KeyError: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
592 | return QCoreApplication.translate("MqttLogLevelString", "Unknown") |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
593 | else: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
594 | logLevel = mqttLogLevel |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
595 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
596 | if logLevel == MqttClient.LogInfo: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
597 | return QCoreApplication.translate("MqttLogLevelString", "Info") |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
598 | elif logLevel == MqttClient.LogNotice: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
599 | return QCoreApplication.translate("MqttLogLevelString", "Notice") |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
600 | elif logLevel == MqttClient.LogWarning: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
601 | return QCoreApplication.translate("MqttLogLevelString", "Warning") |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
602 | elif logLevel == MqttClient.LogError: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
603 | return QCoreApplication.translate("MqttLogLevelString", "Error") |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
604 | elif logLevel == MqttClient.LogDebug: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
605 | return QCoreApplication.translate("MqttLogLevelString", "Debug") |
43
a0853f7a8b80
MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
606 | elif logLevel == MqttClient.LogDisabled: |
a0853f7a8b80
MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
607 | return QCoreApplication.translate("MqttLogLevelString", |
a0853f7a8b80
MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
608 | "Logging Disabled") |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
609 | else: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
610 | return QCoreApplication.translate("MqttLogLevelString", "Unknown") |