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