MqttMonitor/MqttClient.py

Fri, 19 Apr 2024 15:15:01 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 19 Apr 2024 15:15:01 +0200
branch
eric7
changeset 143
51bc5bcc672a
parent 140
853ffd248dda
child 151
f9830d91be9a
permissions
-rw-r--r--

Modified the plugin for 'paho-mqtt' >=2.0.0.

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
139
b7ca79939cc7 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 138
diff changeset
3 # Copyright (c) 2018 - 2024 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
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
10 import paho.mqtt.client as mqtt
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
99
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
12 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
13 from paho.mqtt.properties import Properties
129
9d54bf366323 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
14 from PyQt6.QtCore import QCoreApplication, QObject, QTimer, pyqtSignal, pyqtSlot
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
127
8982ef7b7d67 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 123
diff changeset
16 from eric7.Utilities.crypto import pwConvert
22
545979c7dcd4 MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
17
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
18 from .MqttProtocols import MqttProtocols
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
19
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
20
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 class MqttClient(QObject):
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Class implementing a PyQt wrapper around the paho MQTT client.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
24
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
25 @signal onConnect(connectFlags, rc, packetType, properties) emitted after the
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
26 client has connected to the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
27 @signal onDisconnected(rc, packetType) emitted after the client has
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
28 disconnected from the broker
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
29 @signal onLog(level, message) emitted to send client log data
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
30 @signal onMessage(topic, payload, qos, retain, properties) emitted after
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
31 a message has been received by the client
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @signal onPublish(mid) emitted after a message has been published
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
33 @signal onSubscribe(mid, reasonCodes, properties) emitted after the
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
34 client has subscribed to some topics
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
35 @signal onUnsubscribe(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
36 some topics (MQTT v3)
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
37 @signal onUnsubscribe(mid, rc, packetType, properties) emitted after the
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
38 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
39 @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
40 timed out
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
42
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
43 onConnect = pyqtSignal(bool, int, int, dict)
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
44 onDisconnected = 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
45 onLog = pyqtSignal(int, str)
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
46 onMessage = 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
47 onPublish = pyqtSignal(int)
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
48 onSubscribe = pyqtSignal(int, list, dict)
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
49 onUnsubscribe = pyqtSignal((int,), (int, int, int, dict))
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
50
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
51 connectTimeout = pyqtSignal()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
52
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
53 DefaultConnectTimeout = 15 # connect timeout in seconds
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
54
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
55 LogDebug = 0x01
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
56 LogInfo = 0x02
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
57 LogNotice = 0x04
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
58 LogWarning = 0x08
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
59 LogError = 0x10
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
60 LogDisabled = 0xFF
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
61 LogLevelMap = {
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
62 mqtt.MQTT_LOG_DEBUG: LogDebug,
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
63 mqtt.MQTT_LOG_INFO: LogInfo,
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
64 mqtt.MQTT_LOG_NOTICE: LogNotice,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
65 mqtt.MQTT_LOG_WARNING: LogWarning, # __NO-TASK__
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
66 mqtt.MQTT_LOG_ERR: LogError,
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
67 }
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
68
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
69 def __init__(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
70 self,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
71 clientId="",
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
72 cleanSession=True,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
73 userdata=None,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
74 protocol=mqtt.MQTTv311,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
75 transport="tcp",
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
76 parent=None,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
77 ):
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 Constructor
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
80
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 @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
82 @type str
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 @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
84 @type bool
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 @param userdata user data
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @type any
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @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
88 @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
89 @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
90 @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
91 @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
92 @type QObject
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 QObject.__init__(self, parent=parent)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
95
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.__loopStarted = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
97
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
98 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
99 self.__connectTimeoutTimer.setSingleShot(True)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
100 self.__connectTimeoutTimer.setInterval(MqttClient.DefaultConnectTimeout * 1000)
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
101 self.__connectTimeoutTimer.timeout.connect(self.__connectTimeout)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
102
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
103 self.onConnect.connect(self.__connectTimeoutTimer.stop)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
104
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
105 self.__cleanSession = cleanSession
99
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
106 self.__protocol = protocol
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
107 self.__disconnectUserProperties = []
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
108
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
109 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
110 cleanSession = None
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
111
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.__mqttClient = mqtt.Client(
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
113 mqtt.CallbackAPIVersion.VERSION2,
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
114 client_id=clientId,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
115 clean_session=cleanSession,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
116 userdata=userdata,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
117 protocol=int(protocol),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
118 transport=transport,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
119 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
120
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
121 self.__initCallbacks()
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
122
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
123 def __initCallbacks(self):
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
124 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
125 Private method to initialize the MQTT callback methods.
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
126 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
127 self.__mqttClient.on_connect = self.__onConnect
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
128 self.__mqttClient.on_disconnect = self.__onDisconnected
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
129 self.__mqttClient.on_log = self.__onLog
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
130 self.__mqttClient.on_message = self.__onMessage
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
131 self.__mqttClient.on_publish = self.__onPublish
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
132 self.__mqttClient.on_subscribe = self.__onSubscribe
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
133 self.__mqttClient.on_unsubscribe = self.__onUnsubscribe
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
134
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
135 def __onConnect(
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
136 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
137 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
138 _userdata,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
139 connectFlags,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
140 rc,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
141 properties,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
142 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
143 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
144 Private method to handle the connect to the broker.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
145
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
146 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
147 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
148 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
149 @type Any
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
150 @param connectFlags response flags sent by the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
151 @type mqtt.ConnectFlags
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
152 @param rc reason code
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
153 @type paho.mqtt.ReasonCodes
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
154 @param properties MQTT v5.0 properties received from the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
155 @type dict
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
156 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
157 self.onConnect.emit(
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
158 connectFlags.session_present, rc.value, rc.packetType, properties.json()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
159 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
160
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
161 def __onDisconnected(
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
162 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
163 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
164 _userdata,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
165 _flags,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
166 rc,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
167 _properties=None,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
168 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
169 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
170 Private method to handle the disconnect from the broker.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
171
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
172 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
173 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
174 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
175 @type Any
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
176 @param _flags dictionary containing the response flags sent by the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
177 (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
178 @type dict
99
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
179 @param rc result code or reason code
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
180 @type int or paho.mqtt.ReasonCodes
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
181 @param _properties MQTT v5.0 properties received from the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
182 (defaults to None) (unused)
99
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
183 @type dict (optional)
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
184 """
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
185 if isinstance(rc, int):
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
186 packetType = PacketTypes.DISCONNECT
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
187 resultCode = rc
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
188 else:
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
189 packetType = rc.packetType
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
190 resultCode = rc.value
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
191 self.onDisconnected.emit(resultCode, packetType)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
192
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
193 def __onSubscribe(
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
194 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
195 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
196 _userdata,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
197 mid,
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
198 reasonCodes,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
199 properties,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
200 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
201 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
202 Private method to handle a subscribe event.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
203
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
204 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
205 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
206 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
207 @type Any
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
208 @param mid message ID
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
209 @type int
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
210 @param reasonCodes list of reason code for each subscribed topic
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
211 @type list of paho.mqtt.ReasonCodes
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
212 @param properties MQTT v5.0 properties received from the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
213 @type dict
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
214 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
215 self.onSubscribe.emit(mid, reasonCodes, properties.json())
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
216
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
217 def __onUnsubscribe(
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
218 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
219 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
220 _userdata,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
221 mid,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
222 reasonCodes,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
223 properties,
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
224 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
225 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
226 Private method to handle an unsubscribe event.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
227
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
228 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
229 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
230 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
231 @type Any
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
232 @param mid message ID
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
233 @type int
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
234 @param reasonCodes list of reason code for each unsubscribed topic
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
235 @type list of paho.mqtt.ReasonCodes
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
236 @param properties MQTT v5.0 properties received from the broker
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
237 @type dict
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
238 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
239 if reasonCodes:
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
240 self.onUnsubscribe[int, int, int, dict].emit(
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
241 mid, reasonCodes[0].value, reasonCodes[0].packetType, properties.json()
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
242 )
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
243 else:
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
244 self.onUnsubscribe[int].emit(mid)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
245
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
246 def __onMessage(
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
247 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
248 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
249 _userdata,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
250 message,
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
251 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
252 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
253 Private method to handle a new message received from the broker.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
254
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
255 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
256 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
257 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
258 @type Any
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
259 @param message received message object
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
260 @type paho.mqtt.MQTTMessage
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
261 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
262 self.onMessage.emit(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
263 message.topic,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
264 message.payload,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
265 message.qos,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
266 message.retain,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
267 message.properties.json() if message.properties is not None else {},
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
268 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
269
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
270 def __onLog(
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
271 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
272 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
273 _userdata,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
274 level,
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
275 buf,
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
276 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
277 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
278 Private method to handle a log event.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
279
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
280 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
281 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
282 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
283 @type Any
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
284 @param level severity of the log message
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
285 @type int
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
286 @param buf log message
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
287 @type str
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
288 """
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
289 self.onLog.emit(level, buf)
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
290
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
291 def __onPublish(
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
292 self,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
293 _client,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
294 _userdata,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
295 mid,
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
296 _reasonCode,
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
297 _properties,
138
871d54655ef1 Corrected some code style issues and the code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
298 ):
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
299 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
300 Private method to handle the publishing of a message.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
301
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
302 @param _client reference to the client object (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
303 @type paho.mqtt.Client
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
304 @param _userdata user data (unused)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
305 @type Any
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
306 @param mid message ID
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
307 @type int
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
308 @param _reasonCode reason code (unused)
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
309 @type paho.mqtt.ReasonCodes
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
310 @param _properties MQTT v5.0 properties received from the broker (unused)
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
311 @type dict
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
312 """
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
313 self.onPublish.emit(mid)
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
314
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
315 @pyqtSlot()
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
316 def __connectTimeout(self):
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
317 """
51
b865211461c7 MqttClient: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
318 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
319 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
320 self.stopLoop()
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
321 self.connectTimeout.emit()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
322
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
323 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
324 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
325 Public method to set the connection timeout value.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
326
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
327 @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
328 @type int
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
329 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
330 self.__connectTimeoutTimer.setInterval(timeout * 1000)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
331
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
332 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
333 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
334 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
335 can be part way through their network flow at once.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
336
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
337 @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
338 @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
339 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
340 self.__mqttClient.max_inflight_messages_set(inflight)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
341
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
342 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
343 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
344 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
345 can be pending in the outgoing message queue.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
346
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
347 @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
348 @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
349 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
350 self.__mqttClient.max_queued_messages_set(queueSize)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
351
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
352 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
353 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
354 Public method to set the user name and optionally the password.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
355
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
356 @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
357 @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
358 @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
359 @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
360 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
361 self.__mqttClient.username_pw_set(username, password=password)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
362
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
363 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
364 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
365 Public method to set the user data.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
366
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
367 @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
368 @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
369 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
370 self.__mqttClient.user_data_set(userdata)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
371
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
372 def setLastWill(self, topic, payload=None, qos=0, retain=False, properties=None):
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
373 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
374 Public method to set the last will of the client.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
375
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
376 @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
377 @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
378 @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
379 @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
380 @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
381 @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
382 @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
383 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
384 @type bool
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
385 @param properties list of user properties to be sent with the
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
386 last will message
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
387 @type list of tuple of (str, str)
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
388 """
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
389 self.__mqttClient.will_set(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
390 topic, payload=payload, qos=qos, retain=retain, properties=properties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
391 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
392
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
393 def clearLastWill(self):
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
394 """
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
395 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
396 setLastWill().
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
397 """
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
398 self.__mqttClient.will_clear()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
399
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
400 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
401 """
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
402 Public method to enable secure connections and set the TLS parameters.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
403
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
404 @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
405 @type str
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
406 @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
407 @type str
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
408 @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
409 @type str
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
410 @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
411 paho-mqtt library
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
412 @rtype tuple of (bool, str)
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
413 """
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
414 try:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
415 self.__mqttClient.tls_set(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
416 ca_certs=caCerts, certfile=certFile, keyfile=keyFile
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
417 )
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
418 return True, ""
132
b4fde9ee3d83 - Changed the data shown on the status tab to use localized values.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
419 except (FileNotFoundError, ValueError) as err:
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
420 return False, str(err)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
421
69
9f0f89128698 Fixed a bug handling a missing CERT file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
422 return False, "unspecific error occurred"
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
423
99
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
424 def getProtocol(self):
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
425 """
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
426 Public method to get the MQTT protocol version.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
427
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
428 @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
429 @rtype int
99
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
430 """
420cb8adbf7e Added MQTT V5 support for connect, disconnect and subscribe.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 98
diff changeset
431 return self.__protocol
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
432
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 def startLoop(self):
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 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
436 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 self.__mqttClient.loop_start()
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 self.__loopStarted = True
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
439
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 def stopLoop(self):
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 Public method to 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
443 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 self.__mqttClient.loop_stop()
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 self.__loopStarted = False
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
446
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
447 def connectToServer(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
448 self,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
449 host,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
450 port=1883,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
451 keepalive=60,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
452 bindAddress="",
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
453 properties=None,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
454 clearWill=False,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
455 ):
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
456 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
457 Public method to connect to a remote MQTT broker.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
458
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 @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
460 @type str
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461 @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
462 1883, using TLS: 8883)
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 @type int
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 @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
465 communications with the broker
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 @type int
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 @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
468 this client to
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 @type str
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
470 @param properties list of user properties to be sent with the
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
471 subscription
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
472 @type list of tuple of (str, str)
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
473 @param clearWill flag indicating to clear the last will previously set
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
474 @type bool
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 """
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
476 if clearWill:
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
477 self.clearLastWill()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
478
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
479 props = (
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
480 self.__createPropertiesObject(PacketTypes.CONNECT, properties)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
481 if properties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
482 else None
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
483 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 self.__mqttClient.connect_async(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
485 host,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
486 port=port,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
487 keepalive=keepalive,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
488 bind_address=bindAddress,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
489 clean_start=self.__cleanSession,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
490 properties=props,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
491 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
492
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
493 self.__connectTimeoutTimer.start()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
494
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 if not self.__loopStarted:
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 self.startLoop()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
497
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
498 def connectToServerWithOptions(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
499 self, host, port=1883, bindAddress="", options=None, clearWill=False
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
500 ):
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
501 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
502 Public method to connect to a remote MQTT broker.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
503
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
504 @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
505 @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
506 @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
507 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
508 @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
509 @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
510 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
511 @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
512 @param options dictionary containing the connection options. This
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
513 dictionary should contain the keys "ClientId", "ConnectionTimeout",
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
514 "Keepalive", "CleanSession", "Username", "Password", "WillTopic",
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
515 "WillMessage", "WillQos", "WillRetain", "WillProperties",
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
516 "TlsEnable", "TlsCaCert", "TlsClientCert", "TlsClientKey",
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
517 "UserProperties".
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
518 @type dict
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
519 @param clearWill flag indicating to clear the last will previously set
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
520 @type bool
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
521 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
522 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
523 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
524 parametersDict.update(options)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
525
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
526 self.setConnectionTimeout(parametersDict["ConnectionTimeout"])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
527
98
85d56e77e9df Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
528 # 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
529 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
530 if parametersDict["Password"]:
22
545979c7dcd4 MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
531 self.setUserCredentials(
545979c7dcd4 MqttClient, MqttConnectionOptionsDialog: added support for encrypted passwords.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
532 parametersDict["Username"],
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
533 pwConvert(parametersDict["Password"], encode=False),
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
534 )
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
535 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
536 self.setUserCredentials(parametersDict["Username"])
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
537
98
85d56e77e9df Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
538 # step 2: set last will data
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
539 if not clearWill and parametersDict["WillTopic"]:
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
540 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
541 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
542 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
543 # 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
544 willMessage = None
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
545 props = (
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
546 self.__createPropertiesObject(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
547 PacketTypes.WILLMESSAGE, parametersDict["WillProperties"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
548 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
549 if (
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
550 parametersDict["WillProperties"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
551 and self.__protocol == MqttProtocols.MQTTv5
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
552 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
553 else None
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
554 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
555 self.setLastWill(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
556 parametersDict["WillTopic"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
557 payload=willMessage,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
558 qos=parametersDict["WillQos"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
559 retain=parametersDict["WillRetain"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
560 properties=props,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
561 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
562
98
85d56e77e9df Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
563 # step 3: set TLS parameters
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
564 if parametersDict["TlsEnable"]:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
565 if parametersDict["TlsCaCert"] and parametersDict["TlsClientCert"]:
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
566 # use self signed client certificate
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
567 self.setTLS(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
568 caCerts=parametersDict["TlsCaCert"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
569 certFile=parametersDict["TlsClientCert"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
570 keyFile=parametersDict["TlsClientKey"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
571 )
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
572 elif parametersDict["TlsCaCert"]:
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
573 # use CA certificate file
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
574 self.setTLS(caCerts=parametersDict["TlsCaCert"])
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
575 else:
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
576 # use default TLS configuration
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
577 self.setTLS()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
578
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
579 # step 4: get the connect user properties
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
580 if self.__protocol == MqttProtocols.MQTTv5:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
581 try:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
582 userProperties = parametersDict["UserProperties"]
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
583 properties = userProperties["connect"][:]
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
584 self.__disconnectUserProperties = (
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
585 userProperties["connect"][:]
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
586 if userProperties["use_connect"]
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
587 else userProperties["disconnect"][:]
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
588 )
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
589 except KeyError:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
590 properties = None
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
591 else:
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
592 properties = None
98
85d56e77e9df Corrected the connection code for MQTTv5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
593 # 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
594 self.__cleanSession = parametersDict["CleanSession"]
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
595 self.connectToServer(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
596 host,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
597 port=port,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
598 keepalive=parametersDict["Keepalive"],
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
599 properties=properties,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
600 clearWill=clearWill,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
601 )
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
602 else:
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
603 keepalive = self.defaultConnectionOptions()["Keepalive"]
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
604 self.connectToServer(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
605 host,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
606 port=port,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
607 keepalive=keepalive,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
608 bindAddress=bindAddress,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
609 clearWill=clearWill,
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
610 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
611
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
612 @classmethod
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
613 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
614 """
97
21f9c010dc42 Added the MQTT protocol version to the list of connection parameters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
615 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
616 values.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
617
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
618 @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
619 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
620 "CleanSession", "Username", "Password", "WillTopic", "WillMessage",
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
621 "WillQos", "WillRetain", "WillProperties", "TlsEnable",
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
622 "TlsCaCert", "TlsClientCert", "TlsClientKey", "UserProperties".
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
623 @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
624 """
143
51bc5bcc672a Modified the plugin for 'paho-mqtt' >=2.0.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
625 from PluginMqttMonitor import mqttPluginObject # noqa: I102
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
626
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
627 return {
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
628 "ClientId": "ERIC7_MQTT_MONITOR_CLIENT",
105
36ec7431ad04 Made the default MQTT protocol a configuration item.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 104
diff changeset
629 "Protocol": mqttPluginObject.getPreferences("DefaultProtocol"),
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
630 "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
631 "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
632 "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
633 "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
634 "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
635 "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
636 "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
637 "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
638 "WillRetain": False,
104
9a4c9b7f078c Added support for 'Last Will' user properties and a button to clear the last will.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
639 "WillProperties": [],
24
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
640 "TlsEnable": False,
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
641 "TlsCaCert": "",
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
642 "TlsClientCert": "",
b4e18aadc311 MqttClient: added TLS support to the client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 22
diff changeset
643 "TlsClientKey": "",
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
644 "UserProperties": {
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
645 "connect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
646 "disconnect": [],
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
647 "use_connect": True,
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
648 },
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
649 }
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
650
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 def reconnectToServer(self):
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 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
654 """
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
655 self.__connectTimeoutTimer.start()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
656
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657 self.__mqttClient.reconnect()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
658
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 if not self.__loopStarted:
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 self.startLoop()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
661
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 def disconnectFromServer(self):
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
664 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
665 """
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
666 self.__connectTimeoutTimer.stop()
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
667
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
668 props = (
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
669 self.__createPropertiesObject(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
670 PacketTypes.DISCONNECT, self.__disconnectUserProperties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
671 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
672 if self.__disconnectUserProperties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
673 else None
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
674 )
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
675 self.__mqttClient.disconnect(properties=props)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
676
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
677 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
678 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
679 Public method to subscribe to topics with quality of service.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
680
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681 @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
682 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
683 @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
684 @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
685 @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
686 @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
687 subscription
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
688 @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
689 @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
690 @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
691 """
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
692 props = (
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
693 self.__createPropertiesObject(PacketTypes.SUBSCRIBE, properties)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
694 if properties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
695 else None
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
696 )
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
697 return self.__mqttClient.subscribe(topic, qos=qos, properties=props)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
698
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
699 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
700 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701 Public method to unsubscribe topics.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
702
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 @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
704 @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
705 @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
706 subscription
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
707 @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
708 @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
709 @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
710 """
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
711 props = (
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
712 self.__createPropertiesObject(PacketTypes.UNSUBSCRIBE, properties)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
713 if properties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
714 else None
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
715 )
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
716 return self.__mqttClient.unsubscribe(topic, properties=props)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
717
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
718 def publish(self, topic, payload=None, qos=0, retain=False, properties=None):
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
720 Public method to publish to a topic.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
721
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 @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
723 @type str
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 @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
725 @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
726 @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
727 @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
728 @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
729 message for the topic
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
730 @type bool
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
731 @param properties list of user properties to be sent with the
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
732 subscription
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
733 @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
734 @return message info object
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 @rtype mqtt.MQTTMessageInfo
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 """
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
737 props = (
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
738 self.__createPropertiesObject(PacketTypes.PUBLISH, properties)
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
739 if properties
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
740 else None
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
741 )
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
742 return self.__mqttClient.publish(
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
743 topic, payload=payload, qos=qos, retain=retain, properties=props
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
744 )
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
745
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
746 def __createPropertiesObject(self, packetType, properties):
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
747 """
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
748 Private method to assemble the MQTT v5 properties object.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
749
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
750 @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
751 @type PacketTypes (= int)
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
752 @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
753 @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
754 @return MQTT v5 properties object
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
755 @rtype Properties
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
756 """
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
757 props = Properties(packetType)
103
5fe4f179975f Continued implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 102
diff changeset
758 props.UserProperty = properties
102
70b8858199f5 Started implementing support for MQTT v5 user properties.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
759 return props
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760
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
761
9
f75a385e9127 MqttClient: fixed an issue in mqttErrorMessage() definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
762 def mqttErrorMessage(mqttErrno):
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 """
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
764 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
765 number.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
766
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
767 @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
768 @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
769 @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
770 @rtype str
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
771 """
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 if mqttErrno == mqtt.MQTT_ERR_SUCCESS:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
773 return QCoreApplication.translate("MqttErrorMessage", "No error.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 elif mqttErrno == mqtt.MQTT_ERR_NOMEM:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
775 return QCoreApplication.translate("MqttErrorMessage", "Out of memory.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
776 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
777 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
778 "MqttErrorMessage",
140
853ffd248dda Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
779 "A network protocol error occurred when communicating with the broker.",
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
780 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 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
782 return QCoreApplication.translate(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
783 "MqttErrorMessage", "Invalid function arguments provided."
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
784 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
785 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
786 return QCoreApplication.translate(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
787 "MqttErrorMessage", "The client is not currently connected."
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
788 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
789 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
790 return QCoreApplication.translate(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
791 "MqttErrorMessage", "The connection was refused."
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
792 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 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
794 return QCoreApplication.translate(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
795 "MqttErrorMessage", "Message not found (internal error)."
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
796 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797 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
798 return QCoreApplication.translate(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
799 "MqttErrorMessage", "The connection was lost."
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
800 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 elif mqttErrno == mqtt.MQTT_ERR_TLS:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
802 return QCoreApplication.translate("MqttErrorMessage", "A TLS error occurred.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 elif mqttErrno == mqtt.MQTT_ERR_PAYLOAD_SIZE:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
804 return QCoreApplication.translate("MqttErrorMessage", "Payload too large.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 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
806 return QCoreApplication.translate(
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
807 "MqttErrorMessage", "This feature is not supported."
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
808 )
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
809 elif mqttErrno == mqtt.MQTT_ERR_AUTH:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
810 return QCoreApplication.translate("MqttErrorMessage", "Authorisation failed.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811 elif mqttErrno == mqtt.MQTT_ERR_ACL_DENIED:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
812 return QCoreApplication.translate("MqttErrorMessage", "Access denied by ACL.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
813 elif mqttErrno == mqtt.MQTT_ERR_UNKNOWN:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
814 return QCoreApplication.translate("MqttErrorMessage", "Unknown error.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 elif mqttErrno == mqtt.MQTT_ERR_ERRNO:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
816 return QCoreApplication.translate("MqttErrorMessage", "Error defined by errno.")
92
2fb5c08019fd Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
817 elif mqttErrno == mqtt.MQTT_ERR_QUEUE_SIZE:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
818 return QCoreApplication.translate("MqttErrorMessage", "Message queue full.")
2
d439c5109829 MqttClient: added the MqttClient wrapper around paho.mqtt.client.Client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
819 else:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
820 return QCoreApplication.translate("MqttErrorMessage", "Unknown error.")
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
821
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
822
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
823 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
824 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
825 Module function to get the log level string associated with a log level.
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
826
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
827 @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
828 @type int
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
829 @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
830 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
831 @type bool
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
832 @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
833 @rtype str
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
834 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
835 if isMqttLogLevel:
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
836 try:
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
837 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
838 except KeyError:
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
839 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
840 else:
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
841 logLevel = mqttLogLevel
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
842
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
843 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
844 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
845 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
846 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
847 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
848 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
849 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
850 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
851 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
852 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
853 elif logLevel == MqttClient.LogDisabled:
123
3d7e63ed4fd1 Performed some code refactoring and reformatted the source code with 'Black'
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 114
diff changeset
854 return QCoreApplication.translate("MqttLogLevelString", "Logging Disabled")
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
855 else:
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
856 return QCoreApplication.translate("MqttLogLevelString", "Unknown")

eric ide

mercurial