MqttMonitor/MqttClient.py

Thu, 22 Jul 2021 19:02:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 22 Jul 2021 19:02:32 +0200
branch
eric7
changeset 103
5fe4f179975f
parent 102
70b8858199f5
child 104
9a4c9b7f078c
permissions
-rw-r--r--

Continued implementing support for MQTT v5 user properties.

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

eric ide

mercurial