Wed, 21 Jul 2021 20:10:36 +0200
Started implementing support for MQTT v5 user properties.
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 | |
84
044df16e55aa
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
78
diff
changeset
|
3 | # Copyright (c) 2018 - 2021 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 | |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
10 | import enum |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
11 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
12 | from PyQt6.QtCore import ( |
78
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
13 | pyqtSignal, pyqtSlot, QObject, QCoreApplication, QTimer |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
14 | ) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | import paho.mqtt.client as mqtt |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
17 | from paho.mqtt.packettypes import PacketTypes |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
18 | from paho.mqtt.properties import Properties |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
20 | from Utilities.crypto import pwConvert |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
21 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
23 | class MqttProtocols(enum.IntEnum): |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
24 | """ |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
25 | Class defining the supported MQTT protocol versions. |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
26 | """ |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
27 | MQTTv31 = mqtt.MQTTv31 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
28 | MQTTv311 = mqtt.MQTTv311 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
29 | MQTTv5 = mqtt.MQTTv5 |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
30 | |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
31 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | class MqttClient(QObject): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | 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
|
35 | |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
36 | @signal onConnectV3(flags, rc) emitted after the client has connected to |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
37 | the broker (MQTT v3) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
38 | @signal onConnectV5(flags, rc, packetType, properties emitted after the |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
39 | client has connected to the broker (MQTT v5) |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
40 | @signal onDisconnectedV3(rc) emitted after the client has disconnected from |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
41 | the broker (MQTT v3) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
42 | @signal onDisconnectedV5(rc, packetType) emitted after the client has |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
43 | disconnected from the broker (MQTT v5) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
44 | @signal onLog(level, message) emitted to send client log data |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
45 | @signal onMessageV3(topic, payload, qos, retain) emitted after a message |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
46 | has been received by the client (MQTT v3) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
47 | @signal onMessageV5(topic, payload, qos, retain, properties) emitted after |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
48 | a message has been received by the client (MQTT v5) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | @signal onPublish(mid) emitted after a message has been published |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
50 | @signal onSubscribeV3(mid, grantedQos) emitted after the client has |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
51 | subscribed to some topics (MQTT v3) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
52 | @signal onSubscribeV5(mid, reasonCodes, properties) emitted after the |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
53 | client has subscribed to some topics (MQTT v5) |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
54 | @signal onUnsubscribeV3(mid) emitted after the client has unsubscribed from |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
55 | some topics (MQTT v3) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
56 | @signal onUnsubscribeV5(mid, rc, packetType, properties) emitted after the |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
57 | client has unsubscribed from some topics (MQTT v5) |
51
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
58 | @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
|
59 | timed out |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
61 | onConnectV3 = pyqtSignal(dict, int) |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
62 | onConnectV5 = pyqtSignal(dict, int, int, dict) |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
63 | onDisconnectedV3 = pyqtSignal(int) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
64 | onDisconnectedV5 = pyqtSignal(int, int) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
65 | onLog = pyqtSignal(int, str) |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
66 | onMessageV3 = pyqtSignal(str, bytes, int, bool) |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
67 | onMessageV5 = pyqtSignal(str, bytes, int, bool, dict) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | onPublish = pyqtSignal(int) |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
69 | onSubscribeV3 = pyqtSignal(int, tuple) |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
70 | onSubscribeV5 = pyqtSignal(int, list, dict) |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
71 | onUnsubscribeV3 = pyqtSignal(int) |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
72 | onUnsubscribeV5 = pyqtSignal(int, int, int, dict) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
74 | connectTimeout = pyqtSignal() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
75 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
76 | 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
|
77 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
78 | LogDebug = 0x01 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
79 | LogInfo = 0x02 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
80 | LogNotice = 0x04 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
81 | LogWarning = 0x08 |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
82 | 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
|
83 | LogDisabled = 0xff |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
84 | LogLevelMap = { |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
85 | 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
|
86 | 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
|
87 | 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
|
88 | 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
|
89 | 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
|
90 | } |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
91 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | 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
|
93 | 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
|
94 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | Constructor |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | @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
|
98 | @type str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | @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
|
100 | @type bool |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | @param userdata user data |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | @type any |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | @param protocol version of the MQTT protocol to use |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
104 | @type int, one of mqtt.MQTTv31, mqtt.MQTTv311 or mqtt.MQTTv5 |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | @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
|
106 | @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
|
107 | @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
|
108 | @type QObject |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | 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
|
111 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.__loopStarted = False |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
114 | 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
|
115 | 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
|
116 | self.__connectTimeoutTimer.setInterval( |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
117 | MqttClient.DefaultConnectTimeout * 1000) |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
118 | 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
|
119 | |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
120 | self.onConnectV3.connect(self.__connectTimeoutTimer.stop) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
121 | self.onConnectV5.connect(self.__connectTimeoutTimer.stop) |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
122 | |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
123 | self.__cleanSession = cleanSession |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
124 | self.__protocol = protocol |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
125 | |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
126 | if protocol == MqttProtocols.MQTTv5: |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
127 | cleanSession = None |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
128 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | self.__mqttClient = mqtt.Client( |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
130 | client_id=clientId, clean_session=cleanSession, userdata=userdata, |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
131 | protocol=int(protocol), transport=transport) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
133 | self.__initCallbacks(protocol) |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
134 | |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
135 | def __initCallbacks(self, protocol): |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
136 | """ |
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
137 | Private method to initialize the MQTT callback methods. |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
138 | |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
139 | @param protocol MQTT protocol version |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
140 | @type MqttProtocols |
11
90d3ebed4cc0
Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10
diff
changeset
|
141 | """ |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
142 | if protocol in (MqttProtocols.MQTTv31, MqttProtocols.MQTTv311): |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
143 | self.__mqttClient.on_connect = ( |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
144 | lambda client, userdata, flags, rc, properties=None: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
145 | self.onConnectV3.emit(flags, rc) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
146 | ) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
147 | self.__mqttClient.on_disconnect = ( |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
148 | lambda client, userdata, rc: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
149 | self.onDisconnectedV3.emit(rc) |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
150 | ) |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
151 | self.__mqttClient.on_subscribe = ( |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
152 | lambda client, userdata, mid, grantedQos, properties=None: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
153 | self.onSubscribeV3.emit(mid, grantedQos) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
154 | ) |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
155 | self.__mqttClient.on_unsubscribe = ( |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
156 | lambda client, userdata, mid: |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
157 | self.onUnsubscribeV3.emit(mid) |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
158 | ) |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
159 | self.__mqttClient.on_message = ( |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
160 | lambda client, userdata, message: |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
161 | self.onMessageV3.emit(message.topic, message.payload, |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
162 | message.qos, message.retain) |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
163 | ) |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
164 | else: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
165 | self.__mqttClient.on_connect = ( |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
166 | lambda client, userdata, flags, rc, properties=None: |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
167 | self.onConnectV5.emit( |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
168 | flags, rc.value, rc.packetType, |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
169 | properties.json() if properties is not None else {} |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
170 | ) |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
171 | ) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
172 | self.__mqttClient.on_disconnect = self.__onDisconnectedV5 |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
173 | self.__mqttClient.on_subscribe = ( |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
174 | lambda client, userdata, mid, reasonCodes, properties=None: |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
175 | self.onSubscribeV5.emit( |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
176 | mid, reasonCodes, |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
177 | properties.json() if properties is not None else {} |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
178 | ) |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
179 | ) |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
180 | self.__mqttClient.on_unsubscribe = ( |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
181 | lambda client, userdata, mid, properties, rc: |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
182 | self.onUnsubscribeV5.emit( |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
183 | mid, rc.value, rc.packetType, |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
184 | properties.json() if properties is not None else {} |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
185 | ) |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
186 | ) |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
187 | self.__mqttClient.on_message = ( |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
188 | lambda client, userdata, message: |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
189 | self.onMessageV5.emit( |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
190 | message.topic, message.payload, message.qos, |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
191 | message.retain, message.properties.json() |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
192 | ) |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
193 | ) |
78
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
194 | self.__mqttClient.on_log = ( |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
195 | lambda client, userdata, level, buf: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
196 | self.onLog.emit(level, buf) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
197 | ) |
78
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
198 | self.__mqttClient.on_publish = ( |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
199 | lambda client, userdata, mid: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
200 | self.onPublish.emit(mid) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
201 | ) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
202 | |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
203 | def __onDisconnectedV5(self, client, userdata, rc, properties=None): |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
204 | """ |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
205 | Private method to handle the disconnect from the broker. |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
206 | |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
207 | @param client reference to the client object |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
208 | @type paho.mqtt.Client |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
209 | @param userdata user data |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
210 | @type Any |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
211 | @param rc result code or reason code |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
212 | @type int or ReasonCodes |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
213 | @param properties optional properties (defaults to None) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
214 | @type dict (optional) |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
215 | """ |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
216 | if isinstance(rc, int): |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
217 | packetType = PacketTypes.DISCONNECT |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
218 | resultCode = rc |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
219 | else: |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
220 | packetType = rc.packetType |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
221 | resultCode = rc.value |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
222 | self.onDisconnectedV5.emit(resultCode, packetType) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
224 | @pyqtSlot() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
225 | def __connectTimeout(self): |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
226 | """ |
51
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
227 | 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
|
228 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
229 | self.stopLoop() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
230 | self.connectTimeout.emit() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
231 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
232 | 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
|
233 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
234 | 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
|
235 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
236 | @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
|
237 | @type int |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
238 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
239 | 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
|
240 | |
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
|
241 | 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
|
242 | """ |
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
|
243 | 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
|
244 | 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
|
245 | |
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
|
246 | @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
|
247 | @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
|
248 | """ |
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
|
249 | 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
|
250 | |
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
|
251 | 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
|
252 | """ |
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
|
253 | 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
|
254 | 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
|
255 | |
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
|
256 | @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
|
257 | @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
|
258 | """ |
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
|
259 | 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
|
260 | |
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
|
261 | 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
|
262 | """ |
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
|
263 | 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
|
264 | |
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
|
265 | @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
|
266 | @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
|
267 | @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
|
268 | @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
|
269 | """ |
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
|
270 | 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
|
271 | |
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
|
272 | 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
|
273 | """ |
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
|
274 | 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
|
275 | |
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
|
276 | @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
|
277 | @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
|
278 | """ |
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
|
279 | 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
|
280 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
281 | # TODO: MQTTv5: add support for properties |
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
|
282 | 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
|
283 | """ |
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
|
284 | 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
|
285 | |
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
|
286 | @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
|
287 | @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
|
288 | @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
|
289 | @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
|
290 | @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
|
291 | @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
|
292 | @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
|
293 | 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
|
294 | @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
|
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 | 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
|
297 | 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
|
298 | |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
299 | def clearLastWill(self): |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
300 | """ |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
301 | 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
|
302 | setLastWill(). |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
303 | """ |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
304 | self.__mqttClient.will_clear() |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
305 | |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
306 | 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
|
307 | """ |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
308 | 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
|
309 | |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
310 | @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
|
311 | @type str |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
312 | @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
|
313 | @type str |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
314 | @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
|
315 | @type str |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
316 | @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
|
317 | paho-mqtt library |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
318 | @rtype tuple of (bool, str) |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
319 | """ |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
320 | try: |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
321 | 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
|
322 | keyfile=keyFile) |
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
323 | return True, "" |
69
9f0f89128698
Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
324 | except (ValueError, FileNotFoundError) as err: |
30
17ef10819773
Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
24
diff
changeset
|
325 | return False, str(err) |
69
9f0f89128698
Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
326 | |
9f0f89128698
Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
66
diff
changeset
|
327 | return False, "unspecific error occurred" |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
328 | |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
329 | def getProtocol(self): |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
330 | """ |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
331 | Public method to get the MQTT protocol version. |
101
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
332 | |
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
333 | @return MQTT protocol version in use |
0eae5f616154
Corrected some code style issues and added support for message properties to the on_message callback function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
100
diff
changeset
|
334 | @rtype int |
99
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
335 | """ |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
336 | return self.__protocol |
420cb8adbf7e
Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
98
diff
changeset
|
337 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | def startLoop(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | 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
|
341 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | self.__mqttClient.loop_start() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | self.__loopStarted = True |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | def stopLoop(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | 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
|
348 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | self.__mqttClient.loop_stop() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | self.__loopStarted = False |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
352 | 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
|
353 | reinit=True): |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | 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
|
356 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | @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
|
358 | @type str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | @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
|
360 | 1883, using TLS: 8883) |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | @type int |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | @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
|
363 | communications with the broker |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | @type int |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | @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
|
366 | this client to |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | @type str |
51
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
368 | @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
|
369 | trying to connect with the given parameters |
b865211461c7
MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
43
diff
changeset
|
370 | @type bool |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | """ |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
372 | # TODO: MQTTv5: add support for MQTTv5 properties |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | self.__mqttClient.connect_async( |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
374 | host, port=port, keepalive=keepalive, bind_address=bindAddress, |
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
375 | clean_start=self.__cleanSession) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
377 | self.__connectTimeoutTimer.start() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
378 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | if not self.__loopStarted: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | self.startLoop() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | |
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 | 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
|
383 | 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
|
384 | """ |
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 | 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
|
386 | |
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 | @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
|
388 | @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
|
389 | @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
|
390 | 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
|
391 | @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
|
392 | @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
|
393 | 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
|
394 | @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
|
395 | @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
|
396 | 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
|
397 | "CleanSession", "Username", "Password", "WillTopic", "WillMessage", |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
398 | "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
|
399 | "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
|
400 | @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
|
401 | """ |
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
|
402 | 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
|
403 | 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
|
404 | 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
|
405 | |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
406 | 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
|
407 | |
98
85d56e77e9df
Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
408 | # step 1: set username and password |
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
|
409 | 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
|
410 | if parametersDict["Password"]: |
22
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
411 | self.setUserCredentials( |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
412 | parametersDict["Username"], |
545979c7dcd4
MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
413 | 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
|
414 | 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
|
415 | 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
|
416 | |
98
85d56e77e9df
Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
417 | # step 2: set last will data |
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
|
418 | 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
|
419 | 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
|
420 | 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
|
421 | 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
|
422 | # 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
|
423 | 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
|
424 | 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
|
425 | 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
|
426 | 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
|
427 | 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
|
428 | |
98
85d56e77e9df
Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
429 | # step 3: set TLS parameters |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
430 | if parametersDict["TlsEnable"]: |
78
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
431 | if ( |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
432 | parametersDict["TlsCaCert"] and |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
433 | parametersDict["TlsClientCert"] |
a22328182bc2
Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
69
diff
changeset
|
434 | ): |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
435 | # use self signed client certificate |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
436 | self.setTLS(caCerts=parametersDict["TlsCaCert"], |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
437 | certFile=parametersDict["TlsClientCert"], |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
438 | keyFile=parametersDict["TlsClientKey"]) |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
439 | elif parametersDict["TlsCaCert"]: |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
440 | # use CA certificate file |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
441 | self.setTLS(caCerts=parametersDict["TlsCaCert"]) |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
442 | else: |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
443 | # use default TLS configuration |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
444 | self.setTLS() |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
445 | |
98
85d56e77e9df
Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
446 | # step 4: connect to server |
100
9c29cfbd96c3
Updated the remaining on_... methods for MQTT v5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
99
diff
changeset
|
447 | self.__cleanSession = parametersDict["CleanSession"] |
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
|
448 | self.connectToServer(host, port=port, |
98
85d56e77e9df
Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
97
diff
changeset
|
449 | keepalive=parametersDict["Keepalive"]) |
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
|
450 | 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
|
451 | 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
|
452 | 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
|
453 | 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
|
454 | |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
455 | @classmethod |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
456 | def defaultConnectionOptions(cls): |
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
|
457 | """ |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
458 | Class method to get a connection options dictionary with default |
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
|
459 | 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
|
460 | |
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
|
461 | @return dictionary containing the default connection options. It has |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
462 | the keys "ClientId", "Protocol", "ConnectionTimeout", "Keepalive", |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
463 | "CleanSession", "Username", "Password", "WillTopic", "WillMessage", |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
464 | "WillQos", "WillRetain", "TlsEnable", "TlsCaCert", "TlsClientCert", |
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
465 | "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
|
466 | @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
|
467 | """ |
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
|
468 | return { |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
469 | "ClientId": "ERIC7_MQTT_MONITOR_CLIENT", |
97
21f9c010dc42
Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
95
diff
changeset
|
470 | "Protocol": MqttProtocols.MQTTv311, |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
471 | "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
|
472 | "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
|
473 | "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
|
474 | "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
|
475 | "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
|
476 | "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
|
477 | "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
|
478 | "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
|
479 | "WillRetain": False, |
24
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
480 | "TlsEnable": False, |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
481 | "TlsCaCert": "", |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
482 | "TlsClientCert": "", |
b4e18aadc311
MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
22
diff
changeset
|
483 | "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
|
484 | } |
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
|
485 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | def reconnectToServer(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | 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
|
489 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
490 | self.__connectTimeoutTimer.start() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
491 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | self.__mqttClient.reconnect() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | if not self.__loopStarted: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | self.startLoop() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | def disconnectFromServer(self): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | 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
|
500 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
501 | self.__connectTimeoutTimer.stop() |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
502 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
503 | # TODO: MQTTv5: add support for properties (?) |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
504 | # TODO: MQTTv5: add support for reason code |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | self.__mqttClient.disconnect() |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
507 | def subscribe(self, topic, qos=0, properties=None): |
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 | 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
|
510 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | @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
|
512 | 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
|
513 | @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
|
514 | @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
|
515 | @type int, one of 0, 1 or 2 |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
516 | @param properties list of user properties to be sent with the |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
517 | subscription |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
518 | @type list of tuple of (str, str) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | @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
|
520 | @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
|
521 | """ |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
522 | props = ( |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
523 | self.__createPropertiesObject(PacketTypes.SUBSCRIBE, properties) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
524 | if properties else |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
525 | None |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
526 | ) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
527 | return self.__mqttClient.subscribe(topic, qos=qos, properties=props) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
529 | def unsubscribe(self, topic, properties=None): |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | 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
|
532 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | @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
|
534 | @type str or list of str |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
535 | @param properties list of user properties to be sent with the |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
536 | subscription |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
537 | @type list of tuple of (str, str) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | @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
|
539 | @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
|
540 | """ |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
541 | props = ( |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
542 | self.__createPropertiesObject(PacketTypes.SUBSCRIBE, properties) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
543 | if properties else |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
544 | None |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
545 | ) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
546 | return self.__mqttClient.unsubscribe(topic, properties=props) |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
548 | # TODO: MQTTv5: add support for properties |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | 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
|
550 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | 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
|
552 | |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | @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
|
554 | @type str |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | @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
|
556 | @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
|
557 | @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
|
558 | @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
|
559 | @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
|
560 | message for the topic |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | @type bool |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | @return message info object |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | @rtype mqtt.MQTTMessageInfo |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | 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
|
566 | retain=retain) |
102
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
567 | |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
568 | def __createPropertiesObject(self, packetType, properties): |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
569 | """ |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
570 | Private method to assemble the MQTT v5 properties object. |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
571 | |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
572 | @param packetType type of the MQTT packet |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
573 | @type PacketTypes (= int) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
574 | @param properties list of user properties |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
575 | @type list of tuple of (str, str) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
576 | @return MQTT v5 properties object |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
577 | @rtype Properties |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
578 | """ |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
579 | props = Properties(packetType) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
580 | for userProperty in properties: |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
581 | props.UserProperty = tuple(userProperty) |
70b8858199f5
Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
101
diff
changeset
|
582 | return props |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | |
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
|
584 | |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | def mqttConnackMessage(connackCode): |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
587 | 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
|
588 | |
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
|
589 | @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
|
590 | @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
|
591 | @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
|
592 | @rtype str |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | 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
|
595 | 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
|
596 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | "Connection Accepted.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | 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
|
599 | 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
|
600 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | "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
|
602 | 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
|
603 | 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
|
604 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | "Connection Refused: identifier rejected.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | 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
|
607 | 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
|
608 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | "Connection Refused: broker unavailable.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | 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
|
611 | 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
|
612 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | "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
|
614 | 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
|
615 | 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
|
616 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
617 | "Connection Refused: not authorised.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | else: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
619 | 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
|
620 | "MqttConnackMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | "Connection Refused: unknown reason.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
622 | |
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
|
623 | |
9
f75a385e9127
MqttClient: fixed an issue in mqttErrorMessage() definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3
diff
changeset
|
624 | def mqttErrorMessage(mqttErrno): |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
625 | """ |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
626 | 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
|
627 | 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
|
628 | |
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
|
629 | @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
|
630 | @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
|
631 | @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
|
632 | @rtype str |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | """ |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
634 | 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
|
635 | 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
|
636 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
637 | "No error.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | 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
|
639 | 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
|
640 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | "Out of memory.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | 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
|
643 | 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
|
644 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | "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
|
646 | " the broker.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | 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
|
648 | 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
|
649 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | "Invalid function arguments provided.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
651 | 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
|
652 | 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
|
653 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | "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
|
655 | 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
|
656 | 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
|
657 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | "The connection was refused.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | 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
|
660 | 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
|
661 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | "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
|
663 | 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
|
664 | 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
|
665 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | "The connection was lost.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
667 | 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
|
668 | 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
|
669 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | "A TLS error occurred.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | 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
|
672 | 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
|
673 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
674 | "Payload too large.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
675 | 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
|
676 | 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
|
677 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
678 | "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
|
679 | 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
|
680 | 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
|
681 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | "Authorisation failed.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
683 | 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
|
684 | 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
|
685 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | "Access denied by ACL.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
687 | 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
|
688 | 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
|
689 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
690 | "Unknown error.") |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
691 | 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
|
692 | 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
|
693 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
694 | "Error defined by errno.") |
92
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
695 | elif mqttErrno == mqtt.MQTT_ERR_QUEUE_SIZE: |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
696 | return QCoreApplication.translate( |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
697 | "MqttErrorMessage", |
2fb5c08019fd
Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
84
diff
changeset
|
698 | "Message queue full.") |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
699 | else: |
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
700 | 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
|
701 | "MqttErrorMessage", |
2
d439c5109829
MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
702 | "Unknown error.") |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
703 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
704 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
705 | 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
|
706 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
707 | 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
|
708 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
709 | @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
|
710 | @type int |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
711 | @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
|
712 | 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
|
713 | @type bool |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
714 | @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
|
715 | @rtype str |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
716 | """ |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
717 | if isMqttLogLevel: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
718 | try: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
719 | 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
|
720 | except KeyError: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
721 | 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
|
722 | else: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
723 | logLevel = mqttLogLevel |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
724 | |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
725 | 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
|
726 | 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
|
727 | 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
|
728 | 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
|
729 | 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
|
730 | 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
|
731 | 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
|
732 | 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
|
733 | 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
|
734 | 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
|
735 | 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
|
736 | 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
|
737 | "Logging Disabled") |
31
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
738 | else: |
40582e448c4b
Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
30
diff
changeset
|
739 | return QCoreApplication.translate("MqttLogLevelString", "Unknown") |