- Changed the data shown on the status tab to use localized values. eric7 release-10.4.1

Tue, 04 Jul 2023 15:13:37 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 04 Jul 2023 15:13:37 +0200
branch
eric7
changeset 132
b4fde9ee3d83
parent 131
899c7cb866a2
child 133
fe5296da6299

- Changed the data shown on the status tab to use localized values.
- Corrected some code style issues.

ChangeLog file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html file | annotate | diff | comparison | revisions
MqttMonitor/MqttClient.py file | annotate | diff | comparison | revisions
MqttMonitor/MqttMonitorWidget.py file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_de.qm file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_de.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_empty.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_en.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_es.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_ru.qm file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_ru.ts file | annotate | diff | comparison | revisions
PluginMqttMonitor.epj file | annotate | diff | comparison | revisions
PluginMqttMonitor.py file | annotate | diff | comparison | revisions
PluginMqttMonitor.zip file | annotate | diff | comparison | revisions
--- a/ChangeLog	Sat Dec 31 16:27:45 2022 +0100
+++ b/ChangeLog	Tue Jul 04 15:13:37 2023 +0200
@@ -1,5 +1,8 @@
 ChangeLog
 ---------
+Version 10.4.1
+- changed the data shown on the status tab to use localized values
+
 Version 10.4.0
 - adapted some import statements to eric 23.1 and newer
 
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html	Tue Jul 04 15:13:37 2023 +0200
@@ -154,51 +154,51 @@
 </tr>
 <tr>
 <td><a href="#MqttClient.__onConnectV3">__onConnectV3</a></td>
-<td>Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onConnectV5">__onConnectV5</a></td>
-<td>Private method to handle the connect to the broker (MQTT v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onDisconnectedV3">__onDisconnectedV3</a></td>
-<td>Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onDisconnectedV5">__onDisconnectedV5</a></td>
-<td>Private method to handle the disconnect from the broker (MQTT v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onLog">__onLog</a></td>
-<td>Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onMessageV3">__onMessageV3</a></td>
-<td>Private method to handle a new message received from the broker (MQTT v3.1 and v3.1.1).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onMessageV5">__onMessageV5</a></td>
-<td>Private method to handle a new message received from the broker (MQTT v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onPublish">__onPublish</a></td>
-<td>Private method to handle the publishing of a message (MQTT v3.1, v3.1.1 and v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onSubscribeV3">__onSubscribeV3</a></td>
-<td>Private method to handle a subscribe event (MQTT v3.1 and v3.1.1).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onSubscribeV5">__onSubscribeV5</a></td>
-<td>Private method to handle a subscribe event (MQTT v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onUnsubscribeV3">__onUnsubscribeV3</a></td>
-<td>Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.__onUnsubscribeV5">__onUnsubscribeV5</a></td>
-<td>Private method to handle an unsubscribe event (MQTT v5.0).</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#MqttClient.clearLastWill">clearLastWill</a></td>
@@ -392,312 +392,50 @@
 <h4>MqttClient.__onConnectV3</h4>
 <b>__onConnectV3</b>(<i>client, userdata, flags, rc, properties=None</i>)
 
-<p>
-        Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>flags</i> (dict)</dt>
-<dd>
-dictionary containing the response flags sent by the broker
-</dd>
-<dt><i>rc</i> (int)</dt>
-<dd>
-result code
-</dd>
-<dt><i>properties</i> (dict (optional))</dt>
-<dd>
-optional properties (defaults to None)
-</dd>
-</dl>
 <a NAME="MqttClient.__onConnectV5" ID="MqttClient.__onConnectV5"></a>
 <h4>MqttClient.__onConnectV5</h4>
 <b>__onConnectV5</b>(<i>client, userdata, flags, rc, properties=None</i>)
 
-<p>
-        Private method to handle the connect to the broker (MQTT v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>flags</i> (dict)</dt>
-<dd>
-dictionary containing the response flags sent by the broker
-</dd>
-<dt><i>rc</i> (paho.mqtt.ReasonCodes)</dt>
-<dd>
-reason code
-</dd>
-<dt><i>properties</i> (dict (optional))</dt>
-<dd>
-optional properties (defaults to None)
-</dd>
-</dl>
 <a NAME="MqttClient.__onDisconnectedV3" ID="MqttClient.__onDisconnectedV3"></a>
 <h4>MqttClient.__onDisconnectedV3</h4>
 <b>__onDisconnectedV3</b>(<i>client, userdata, rc</i>)
 
-<p>
-        Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>rc</i> (int)</dt>
-<dd>
-result code
-</dd>
-</dl>
 <a NAME="MqttClient.__onDisconnectedV5" ID="MqttClient.__onDisconnectedV5"></a>
 <h4>MqttClient.__onDisconnectedV5</h4>
 <b>__onDisconnectedV5</b>(<i>client, userdata, rc, properties=None</i>)
 
-<p>
-        Private method to handle the disconnect from the broker (MQTT v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>rc</i> (int or paho.mqtt.ReasonCodes)</dt>
-<dd>
-result code or reason code
-</dd>
-<dt><i>properties</i> (dict (optional))</dt>
-<dd>
-optional properties (defaults to None)
-</dd>
-</dl>
 <a NAME="MqttClient.__onLog" ID="MqttClient.__onLog"></a>
 <h4>MqttClient.__onLog</h4>
 <b>__onLog</b>(<i>client, userdata, level, buf</i>)
 
-<p>
-        Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>level</i> (int)</dt>
-<dd>
-severity of the log message
-</dd>
-<dt><i>buf</i> (str)</dt>
-<dd>
-log message
-</dd>
-</dl>
 <a NAME="MqttClient.__onMessageV3" ID="MqttClient.__onMessageV3"></a>
 <h4>MqttClient.__onMessageV3</h4>
 <b>__onMessageV3</b>(<i>client, userdata, message</i>)
 
-<p>
-        Private method to handle a new message received from the broker (MQTT v3.1
-        and v3.1.1).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>message</i> (paho.mqtt.MQTTMessage)</dt>
-<dd>
-received message object
-</dd>
-</dl>
 <a NAME="MqttClient.__onMessageV5" ID="MqttClient.__onMessageV5"></a>
 <h4>MqttClient.__onMessageV5</h4>
 <b>__onMessageV5</b>(<i>client, userdata, message</i>)
 
-<p>
-        Private method to handle a new message received from the broker (MQTT v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>message</i> (paho.mqtt.MQTTMessage)</dt>
-<dd>
-received message object
-</dd>
-</dl>
 <a NAME="MqttClient.__onPublish" ID="MqttClient.__onPublish"></a>
 <h4>MqttClient.__onPublish</h4>
 <b>__onPublish</b>(<i>client, userdata, mid</i>)
 
-<p>
-        Private method to handle the publishing of a message (MQTT v3.1, v3.1.1
-        and v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>mid</i> (int)</dt>
-<dd>
-message ID
-</dd>
-</dl>
 <a NAME="MqttClient.__onSubscribeV3" ID="MqttClient.__onSubscribeV3"></a>
 <h4>MqttClient.__onSubscribeV3</h4>
 <b>__onSubscribeV3</b>(<i>client, userdata, mid, grantedQos</i>)
 
-<p>
-        Private method to handle a subscribe event (MQTT v3.1 and v3.1.1).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>mid</i> (int)</dt>
-<dd>
-message ID
-</dd>
-<dt><i>grantedQos</i> (list of int)</dt>
-<dd>
-list of granted QoS for each subscription request
-</dd>
-</dl>
 <a NAME="MqttClient.__onSubscribeV5" ID="MqttClient.__onSubscribeV5"></a>
 <h4>MqttClient.__onSubscribeV5</h4>
 <b>__onSubscribeV5</b>(<i>client, userdata, mid, reasonCodes, properties=None</i>)
 
-<p>
-        Private method to handle a subscribe event (MQTT v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>mid</i> (int)</dt>
-<dd>
-message ID
-</dd>
-<dt><i>reasonCodes</i> (list of paho.mqtt.ReasonCodes)</dt>
-<dd>
-list of reason code for each subscribed topic
-</dd>
-<dt><i>properties</i> (dict (optional))</dt>
-<dd>
-optional properties (defaults to None)
-</dd>
-</dl>
 <a NAME="MqttClient.__onUnsubscribeV3" ID="MqttClient.__onUnsubscribeV3"></a>
 <h4>MqttClient.__onUnsubscribeV3</h4>
 <b>__onUnsubscribeV3</b>(<i>client, userdata, mid</i>)
 
-<p>
-        Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>mid</i> (int)</dt>
-<dd>
-message ID
-</dd>
-</dl>
 <a NAME="MqttClient.__onUnsubscribeV5" ID="MqttClient.__onUnsubscribeV5"></a>
 <h4>MqttClient.__onUnsubscribeV5</h4>
 <b>__onUnsubscribeV5</b>(<i>client, userdata, mid, properties, reasonCodes</i>)
 
-<p>
-        Private method to handle an unsubscribe event (MQTT v5.0).
-</p>
-<dl>
-
-<dt><i>client</i> (paho.mqtt.Client)</dt>
-<dd>
-reference to the client object
-</dd>
-<dt><i>userdata</i> (Any)</dt>
-<dd>
-user data
-</dd>
-<dt><i>mid</i> (int)</dt>
-<dd>
-message ID
-</dd>
-<dt><i>properties</i> (dict (optional))</dt>
-<dd>
-optional properties (defaults to None)
-</dd>
-<dt><i>reasonCodes</i> (list of paho.mqtt.ReasonCodes)</dt>
-<dd>
-list of reason code for each unsubscribed topic
-</dd>
-</dl>
 <a NAME="MqttClient.clearLastWill" ID="MqttClient.clearLastWill"></a>
 <h4>MqttClient.clearLastWill</h4>
 <b>clearLastWill</b>(<i></i>)
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html	Tue Jul 04 15:13:37 2023 +0200
@@ -107,6 +107,26 @@
 <td>Private slot to show the broker status label with some text for 5 seconds.</td>
 </tr>
 <tr>
+<td><a href="#MqttMonitorWidget.__formatBrokerStatusValue">__formatBrokerStatusValue</a></td>
+<td>Private method to format the value reported for a topic.</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__formatData">__formatData</a></td>
+<td>Private method to format the uptime string.</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__formatFloat">__formatFloat</a></td>
+<td>Private method to format the uptime string.</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__formatInt">__formatInt</a></td>
+<td>Private method to format the uptime string.</td>
+</tr>
+<tr>
+<td><a href="#MqttMonitorWidget.__formatUptime">__formatUptime</a></td>
+<td>Private method to format the uptime string.</td>
+</tr>
+<tr>
 <td><a href="#MqttMonitorWidget.__handleBrokerLoadStatusMessage">__handleBrokerLoadStatusMessage</a></td>
 <td>Private method to append a received message to the output.</td>
 </tr>
@@ -528,6 +548,140 @@
 message to be shown
 </dd>
 </dl>
+<a NAME="MqttMonitorWidget.__formatBrokerStatusValue" ID="MqttMonitorWidget.__formatBrokerStatusValue"></a>
+<h4>MqttMonitorWidget.__formatBrokerStatusValue</h4>
+<b>__formatBrokerStatusValue</b>(<i>topic, value</i>)
+
+<p>
+        Private method to format the value reported for a topic.
+</p>
+<dl>
+
+<dt><i>topic</i> (str)</dt>
+<dd>
+topic name
+</dd>
+<dt><i>value</i> (str)</dt>
+<dd>
+value of the topic
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+reformatted value string
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="MqttMonitorWidget.__formatData" ID="MqttMonitorWidget.__formatData"></a>
+<h4>MqttMonitorWidget.__formatData</h4>
+<b>__formatData</b>(<i>valStr</i>)
+
+<p>
+        Private method to format the uptime string.
+</p>
+<dl>
+
+<dt><i>valStr</i> (str)</dt>
+<dd>
+string to be formatted
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+formatted string
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="MqttMonitorWidget.__formatFloat" ID="MqttMonitorWidget.__formatFloat"></a>
+<h4>MqttMonitorWidget.__formatFloat</h4>
+<b>__formatFloat</b>(<i>valStr</i>)
+
+<p>
+        Private method to format the uptime string.
+</p>
+<dl>
+
+<dt><i>valStr</i> (str)</dt>
+<dd>
+string to be formatted
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+formatted string
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="MqttMonitorWidget.__formatInt" ID="MqttMonitorWidget.__formatInt"></a>
+<h4>MqttMonitorWidget.__formatInt</h4>
+<b>__formatInt</b>(<i>valStr</i>)
+
+<p>
+        Private method to format the uptime string.
+</p>
+<dl>
+
+<dt><i>valStr</i> (str)</dt>
+<dd>
+string to be formatted
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+formatted string
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="MqttMonitorWidget.__formatUptime" ID="MqttMonitorWidget.__formatUptime"></a>
+<h4>MqttMonitorWidget.__formatUptime</h4>
+<b>__formatUptime</b>(<i>valStr</i>)
+
+<p>
+        Private method to format the uptime string.
+</p>
+<dl>
+
+<dt><i>valStr</i> (str)</dt>
+<dd>
+string to be formatted
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+formatted string
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="MqttMonitorWidget.__handleBrokerLoadStatusMessage" ID="MqttMonitorWidget.__handleBrokerLoadStatusMessage"></a>
 <h4>MqttMonitorWidget.__handleBrokerLoadStatusMessage</h4>
 <b>__handleBrokerLoadStatusMessage</b>(<i>topic, payloadStr</i>)
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html	Tue Jul 04 15:13:37 2023 +0200
@@ -31,7 +31,7 @@
 
 <tr>
 <td><a href="#createMqttPage">createMqttPage</a></td>
-<td>Module function to create the autocompletion configuration page.</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#exeDisplayData">exeDisplayData</a></td>
@@ -225,28 +225,6 @@
 <h2>createMqttPage</h2>
 <b>createMqttPage</b>(<i>configDlg</i>)
 
-<p>
-    Module function to create the autocompletion configuration page.
-</p>
-<dl>
-
-<dt><i>configDlg</i> (ConfigurationWidget)</dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-reference to the configuration page
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-AutoCompletionRopePage
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
--- a/MqttMonitor/MqttClient.py	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/MqttClient.py	Tue Jul 04 15:13:37 2023 +0200
@@ -156,7 +156,7 @@
         self.__mqttClient.on_log = self.__onLog
         self.__mqttClient.on_publish = self.__onPublish
 
-    def __onConnectV3(self, client, userdata, flags, rc, properties=None):
+    def __onConnectV3(self, client, userdata, flags, rc, properties=None):  # noqa: U100
         """
         Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1).
 
@@ -173,7 +173,7 @@
         """
         self.onConnectV3.emit(flags, rc)
 
-    def __onDisconnectedV3(self, client, userdata, rc):
+    def __onDisconnectedV3(self, client, userdata, rc):  # noqa: U100
         """
         Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1).
 
@@ -186,7 +186,7 @@
         """
         self.onDisconnectedV3.emit(rc)
 
-    def __onSubscribeV3(self, client, userdata, mid, grantedQos):
+    def __onSubscribeV3(self, client, userdata, mid, grantedQos):  # noqa: U100
         """
         Private method to handle a subscribe event (MQTT v3.1 and v3.1.1).
 
@@ -201,7 +201,7 @@
         """
         self.onSubscribeV3.emit(mid, grantedQos)
 
-    def __onUnsubscribeV3(self, client, userdata, mid):
+    def __onUnsubscribeV3(self, client, userdata, mid):  # noqa: U100
         """
         Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1).
 
@@ -214,7 +214,7 @@
         """
         self.onUnsubscribeV3.emit(mid)
 
-    def __onMessageV3(self, client, userdata, message):
+    def __onMessageV3(self, client, userdata, message):  # noqa: U100
         """
         Private method to handle a new message received from the broker (MQTT v3.1
         and v3.1.1).
@@ -230,7 +230,7 @@
             message.topic, message.payload, message.qos, message.retain
         )
 
-    def __onConnectV5(self, client, userdata, flags, rc, properties=None):
+    def __onConnectV5(self, client, userdata, flags, rc, properties=None):  # noqa: U100
         """
         Private method to handle the connect to the broker (MQTT v5.0).
 
@@ -252,7 +252,7 @@
             properties.json() if properties is not None else {},
         )
 
-    def __onDisconnectedV5(self, client, userdata, rc, properties=None):
+    def __onDisconnectedV5(self, client, userdata, rc, properties=None):  # noqa: U100
         """
         Private method to handle the disconnect from the broker (MQTT v5.0).
 
@@ -274,6 +274,7 @@
         self.onDisconnectedV5.emit(resultCode, packetType)
 
     def __onSubscribeV5(self, client, userdata, mid, reasonCodes, properties=None):
+        # noqa: U100
         """
         Private method to handle a subscribe event (MQTT v5.0).
 
@@ -295,6 +296,7 @@
         )
 
     def __onUnsubscribeV5(self, client, userdata, mid, properties, reasonCodes):
+        # noqa: U100
         """
         Private method to handle an unsubscribe event (MQTT v5.0).
 
@@ -316,7 +318,7 @@
             properties.json() if properties is not None else {},
         )
 
-    def __onMessageV5(self, client, userdata, message):
+    def __onMessageV5(self, client, userdata, message):  # noqa: U100
         """
         Private method to handle a new message received from the broker (MQTT v5.0).
 
@@ -335,7 +337,7 @@
             message.properties.json(),
         )
 
-    def __onLog(self, client, userdata, level, buf):
+    def __onLog(self, client, userdata, level, buf):  # noqa: U100
         """
         Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0).
 
@@ -350,7 +352,7 @@
         """
         self.onLog.emit(level, buf)
 
-    def __onPublish(self, client, userdata, mid):
+    def __onPublish(self, client, userdata, mid):  # noqa: U100
         """
         Private method to handle the publishing of a message (MQTT v3.1, v3.1.1
         and v5.0).
@@ -468,7 +470,7 @@
                 ca_certs=caCerts, certfile=certFile, keyfile=keyFile
             )
             return True, ""
-        except (ValueError, FileNotFoundError) as err:
+        except (FileNotFoundError, ValueError) as err:
             return False, str(err)
 
         return False, "unspecific error occurred"
--- a/MqttMonitor/MqttMonitorWidget.py	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/MqttMonitorWidget.py	Tue Jul 04 15:13:37 2023 +0200
@@ -12,7 +12,7 @@
 import copy
 import os
 
-from PyQt6.QtCore import QFileInfo, QPoint, Qt, QTimer, pyqtSlot
+from PyQt6.QtCore import QFileInfo, QLocale, QPoint, Qt, QTimer, pyqtSlot
 from PyQt6.QtGui import QBrush, QColor, QFont, QTextCursor
 from PyQt6.QtWidgets import QDialog, QMenu, QWidget
 
@@ -245,8 +245,46 @@
             prefix + "load/connections": self.loadConnectionsLabel,
             prefix + "load/sockets": self.loadSocketsLabel,
         }
+        self.__statusFormatMapping = {
+            # broker
+            prefix + "version": None,
+            prefix + "timestamp": None,
+            prefix + "uptime": self.__formatUptime,
+            prefix + "subscriptions/count": self.__formatInt,
+            # clients
+            prefix + "clients/connected": self.__formatInt,
+            prefix + "clients/disconnected": self.__formatInt,
+            prefix + "clients/expired": self.__formatInt,
+            prefix + "clients/maximum": self.__formatInt,
+            prefix + "clients/total": self.__formatInt,
+            # messages
+            prefix + "messages/sent": self.__formatInt,
+            prefix + "messages/received": self.__formatInt,
+            prefix + "messages/stored": self.__formatInt,
+            prefix + "store/messages/count": self.__formatInt,
+            prefix + "messages/inflight": self.__formatInt,
+            prefix + "retained messages/count": self.__formatInt,
+            # publish messages
+            prefix + "publish/messages/sent": self.__formatInt,
+            prefix + "publish/messages/received": self.__formatInt,
+            prefix + "publish/messages/dropped": self.__formatInt,
+            # traffic
+            prefix + "bytes/sent": self.__formatData,
+            prefix + "bytes/received": self.__formatData,
+            # load
+            prefix + "load/bytes/sent": self.__formatFloat,
+            prefix + "load/bytes/received": self.__formatFloat,
+            prefix + "load/messages/sent": self.__formatFloat,
+            prefix + "load/messages/received": self.__formatFloat,
+            prefix + "load/publish/sent": self.__formatFloat,
+            prefix + "load/publish/received": self.__formatFloat,
+            prefix + "load/publish/dropped": self.__formatFloat,
+            prefix + "load/connections": self.__formatFloat,
+            prefix + "load/sockets": self.__formatFloat,
+        }
 
         self.__statusLoadValues = collections.defaultdict(self.__loadDefaultDictFactory)
+        self.__statusLocale = QLocale()
 
     def __createClient(self, clientId="", cleanSession=None, protocol=None):
         """
@@ -646,9 +684,10 @@
         Private slot to show a dialog to modify connection options or a
         dialog to edit connection profiles.
         """
+        from .MqttConnectionProfilesDialog import MqttConnectionProfilesDialog
+        from .MqttConnectionOptionsDialog import MqttConnectionOptionsDialog
+
         if self.__connectionModeProfile:
-            from .MqttConnectionProfilesDialog import MqttConnectionProfilesDialog
-
             profileName = self.profileComboBox.currentText()
             dlg = MqttConnectionProfilesDialog(
                 self.__plugin.getPreferences("BrokerProfiles"),
@@ -660,8 +699,6 @@
                 self.__plugin.setPreferences("BrokerProfiles", profilesDict)
                 self.__populateProfileComboBox()
         else:
-            from .MqttConnectionOptionsDialog import MqttConnectionOptionsDialog
-
             dlg = MqttConnectionOptionsDialog(self.__connectionOptions, parent=self)
             if dlg.exec() == QDialog.DialogCode.Accepted:
                 self.__connectionOptions = dlg.getConnectionOptions()
@@ -1276,7 +1313,7 @@
         else:
             with contextlib.suppress(KeyError):
                 label = self.__statusLabelMapping[topic]
-                label.setText(payloadStr)
+                label.setText(self.__formatBrokerStatusValue(topic, payloadStr))
 
     def __handleBrokerLoadStatusMessage(self, topic, payloadStr):
         """
@@ -1295,12 +1332,38 @@
             label = self.__statusLabelMapping[subtopic]
             label.setText(
                 "{0} / {1} / {2}".format(
-                    self.__statusLoadValues[subtopic]["1min"],
-                    self.__statusLoadValues[subtopic]["5min"],
-                    self.__statusLoadValues[subtopic]["15min"],
+                    self.__formatBrokerStatusValue(
+                        subtopic, self.__statusLoadValues[subtopic]["1min"]
+                    ),
+                    self.__formatBrokerStatusValue(
+                        subtopic, self.__statusLoadValues[subtopic]["5min"]
+                    ),
+                    self.__formatBrokerStatusValue(
+                        subtopic, self.__statusLoadValues[subtopic]["15min"]
+                    ),
                 )
             )
 
+    def __formatBrokerStatusValue(self, topic, value):
+        """
+        Private method to format the value reported for a topic.
+
+        @param topic topic name
+        @type str
+        @param value value of the topic
+        @type str
+        @return reformatted value string
+        @rtype str
+        """
+        try:
+            formatFunc = self.__statusFormatMapping[topic]
+            if formatFunc is None:
+                return value
+            else:
+                return formatFunc(value)
+        except KeyError:
+            return value
+
     def __clearBrokerStatusLabels(self):
         """
         Private method to clear the broker status labels.
@@ -1508,3 +1571,95 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             properties[key] = dlg.getProperties()
             self.__plugin.setPreferences(preferencesKey, properties)
+
+    #######################################################################
+    ## some helper methods below
+    #######################################################################
+
+    def __formatInt(self, valStr):
+        """
+        Private method to format the uptime string.
+
+        @param valStr string to be formatted
+        @type str
+        @return formatted string
+        @rtype str
+        """
+        try:
+            val = int(valStr)
+            return self.__statusLocale.toString(val)
+        except ValueError:
+            return valStr
+
+    def __formatFloat(self, valStr):
+        """
+        Private method to format the uptime string.
+
+        @param valStr string to be formatted
+        @type str
+        @return formatted string
+        @rtype str
+        """
+        try:
+            val = float(valStr)
+            return self.__statusLocale.toString(val)
+        except ValueError:
+            return valStr
+
+    def __formatUptime(self, valStr):
+        """
+        Private method to format the uptime string.
+
+        @param valStr string to be formatted
+        @type str
+        @return formatted string
+        @rtype str
+        """
+        val, *suffix = valStr.split()
+        try:
+            val = int(val)
+            vloc = self.__statusLocale.toString(val)
+            if suffix:
+                return f"{vloc} {' '.join(suffix)}"
+            else:
+                return vloc
+        except ValueError:
+            return valStr
+
+    def __formatData(self, valStr):
+        """
+        Private method to format the uptime string.
+
+        @param valStr string to be formatted
+        @type str
+        @return formatted string
+        @rtype str
+        """
+        try:
+            size = int(valStr)
+            if size < 1024:
+                return self.tr("{0} Bytes").format(
+                    self.__statusLocale.toString(size, "f", 2)
+                )
+            elif size < 1024 * 1024:
+                size /= 1024
+                return self.tr("{0} KiB").format(
+                    self.__statusLocale.toString(size, "f", 2)
+                )
+            elif size < 1024 * 1024 * 1024:
+                size /= 1024 * 1024
+                return self.tr("{0} MiB").format(
+                    self.__statusLocale.toString(size, "f", 2)
+                )
+            elif size < 1024 * 1024 * 1024 * 1024:
+                size /= 1024 * 1024 * 1024
+                return self.tr("{0} GiB").format(
+                    self.__statusLocale.toString(size, "f", 2)
+                )
+            else:
+                size /= 1024 * 1024 * 1024 * 1024
+                return self.tr("{0} TiB").format(
+                    self.__statusLocale.toString(size, "f", 2)
+                )
+        except ValueError:
+            return valStr
Binary file MqttMonitor/i18n/mqttmonitor_de.qm has changed
--- a/MqttMonitor/i18n/mqttmonitor_de.ts	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/i18n/mqttmonitor_de.ts	Tue Jul 04 15:13:37 2023 +0200
@@ -4,37 +4,37 @@
 <context>
     <name>MqttConnackMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="647"/>
+        <location filename="../MqttClient.py" line="826"/>
         <source>Connection Accepted.</source>
         <translation>Verbindung akzeptiert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="651"/>
+        <location filename="../MqttClient.py" line="828"/>
         <source>Connection Refused: unacceptable protocol version.</source>
         <translation>Verbindung abgelehnt: inakzeptable Protokollversion.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="655"/>
+        <location filename="../MqttClient.py" line="832"/>
         <source>Connection Refused: identifier rejected.</source>
         <translation>Verbindung abgelehnt: Identifizierer abgelehnt.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="659"/>
+        <location filename="../MqttClient.py" line="836"/>
         <source>Connection Refused: broker unavailable.</source>
         <translation>Verbindung abgelehnt: Broker nicht verfügbar.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="663"/>
+        <location filename="../MqttClient.py" line="840"/>
         <source>Connection Refused: bad user name or password.</source>
         <translation>Verbindung abgelehnt: Nutzername oder Kennwort ungültig.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="667"/>
+        <location filename="../MqttClient.py" line="844"/>
         <source>Connection Refused: not authorised.</source>
         <translation>Verbindung abgelehnt: nicht autorisiert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="671"/>
+        <location filename="../MqttClient.py" line="848"/>
         <source>Connection Refused: unknown reason.</source>
         <translation>Verbindung abgelehnt: unbekante Ursache.</translation>
     </message>
@@ -268,22 +268,22 @@
         <translation>Verwende CONNECT Benutzereigenschaften für DISCONNECT</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="50"/>
+        <location filename="../MqttConnectionOptionsDialog.py" line="53"/>
         <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
         <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="80"/>
+        <location filename="../MqttConnectionOptionsDialog.py" line="82"/>
         <source>Invalid Connection Parameters</source>
         <translation>Ungültige Verbindungsparameter</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="81"/>
+        <location filename="../MqttConnectionOptionsDialog.py" line="83"/>
         <source>An empty Client ID requires a clean session.</source>
         <translation>Eine leere Client ID setzt eine neue Session voraus.</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="187"/>
+        <location filename="../MqttConnectionOptionsDialog.py" line="185"/>
         <source>Last Will User Properties</source>
         <translation>Benutzereigenschaften für Letzter Wille</translation>
     </message>
@@ -291,112 +291,112 @@
 <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="76"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="72"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="68"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="84"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="78"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="74"/>
         <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
         <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="80"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="90"/>
         <source>Key Files (*.key *.pem);;All Files (*)</source>
         <translation>Schlüsseldateien (*.key *.pem);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="926"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="890"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="154"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="959"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="921"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="167"/>
         <source>Changed Connection Profile</source>
         <translation>Verbindungsprofil geändert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="927"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="891"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="155"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="960"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="922"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="168"/>
         <source>The current profile has unsaved changes. Shall these be saved?</source>
         <translation>Das aktuelle Profil hat ungesicherte Änderungen. Sollen diese gesichert werden?</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="182"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="175"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="199"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="191"/>
         <source>New Connection Profile</source>
         <translation>Neues Verbindungsprofil</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="176"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="192"/>
         <source>Enter name for the new Connection Profile:</source>
         <translation>Gib eine Bezeichnung für das neue Verbindungsprofil ein:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="183"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="229"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="200"/>
         <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Eine Verbindung mit der Bezeichnung &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="209"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="202"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="228"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="220"/>
         <source>Copy Connection Profile</source>
         <translation>Verbindungsprofil kopieren</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="203"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="221"/>
         <source>Enter name for the copied Connection Profile:</source>
         <translation>Gib eine Bezeichnung für das kopierte Verbindungsprofil ein:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="235"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="256"/>
         <source>Delete Connection Profile</source>
         <translation>Verbindungsprofil löschen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="236"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="257"/>
         <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soll das Verbindungsprofil &lt;b&gt;{0}&lt;/b&gt; wirklich gelöscht werden?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="636"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="664"/>
         <source>Invalid Connection Parameters</source>
         <translation>Ungültige Verbindungsparameter</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="637"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="665"/>
         <source>An empty Client ID requires a clean session.</source>
         <translation>Eine leere Client ID setzt eine neue Session voraus.</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="732"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="760"/>
         <source>Last Will User Properties</source>
         <translation>Benutzereigenschaften für Letzter Wille</translation>
     </message>
     <message>
         <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
-        <location filename="../MqttConnectionProfilesDialog.py" line="788"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="817"/>
         <source>SSL/TLS Enabled</source>
         <translation>SSL/TLS aktiviert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="789"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="818"/>
         <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
         <translation>Eine mit SSL/TLS verschlüsselte Verbindung wurde aktiviert. Jedoch ist der Brokerport noch auf den standardmäßigen, unverschlüsselten Port (Port 1883) eingestellt. Soll dies geändert werden?</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="802"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="833"/>
         <source>SSL/TLS Disabled</source>
         <translation>SSL/TLS deaktiviert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="803"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="834"/>
         <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
         <translation>Eine mit SSL/TLS verschlüsselte Verbindung wurde deaktiviert. Jedoch ist der Brokerport noch auf den standardmäßigen, verschlüsselten Port (Port 8883) eingestellt. Soll dies geändert werden?</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="903"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="936"/>
         <source>Changed Connection Profiles</source>
         <translation>Verbindungsprofile geändert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="904"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="937"/>
         <source>The list of connection profiles has unsaved changes.</source>
         <translation>Die Liste der Verbindungsprofile hat ungesicherte Änderungen.</translation>
     </message>
@@ -722,83 +722,83 @@
 <context>
     <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="687"/>
+        <location filename="../MqttClient.py" line="864"/>
         <source>No error.</source>
         <translation>Kein Fehler.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="691"/>
+        <location filename="../MqttClient.py" line="866"/>
         <source>Out of memory.</source>
         <translation>Nicht genügend Speicher.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="695"/>
+        <location filename="../MqttClient.py" line="868"/>
         <source>A network protocol error occurred when communicating with the broker.</source>
         <translation>Bei der Kommunikation mit dem Broker ist ein Netzprotokollfehler aufgetreten.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="700"/>
+        <location filename="../MqttClient.py" line="873"/>
         <source>Invalid function arguments provided.</source>
         <translation>Ungültige Funktionsargumente angegeben.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="704"/>
+        <location filename="../MqttClient.py" line="877"/>
         <source>The client is not currently connected.</source>
         <translation>Der Client ist momentan nicht verbunden.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="708"/>
+        <location filename="../MqttClient.py" line="881"/>
         <source>The connection was refused.</source>
         <translation>Die Verbindung wurde abgelehnt.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="712"/>
+        <location filename="../MqttClient.py" line="885"/>
         <source>Message not found (internal error).</source>
         <translation>Nachricht nicht gefunden (interner Fehler).</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="716"/>
+        <location filename="../MqttClient.py" line="889"/>
         <source>The connection was lost.</source>
         <translation>Die Verbindung wurde unterbrochen.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="720"/>
+        <location filename="../MqttClient.py" line="893"/>
         <source>A TLS error occurred.</source>
         <translation>Es ist ein TLS-Fehler aufgetreten.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="724"/>
+        <location filename="../MqttClient.py" line="895"/>
         <source>Payload too large.</source>
         <translation>Nutzdaten zu groß.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="728"/>
+        <location filename="../MqttClient.py" line="897"/>
         <source>This feature is not supported.</source>
         <translation>Diese Funktion wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="732"/>
+        <location filename="../MqttClient.py" line="901"/>
         <source>Authorisation failed.</source>
         <translation>Authorisierung fehlgeschlagen.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="736"/>
+        <location filename="../MqttClient.py" line="903"/>
         <source>Access denied by ACL.</source>
         <translation>Zugriff durch ACL verweigert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="752"/>
-        <location filename="../MqttClient.py" line="740"/>
+        <location filename="../MqttClient.py" line="911"/>
+        <location filename="../MqttClient.py" line="905"/>
         <source>Unknown error.</source>
         <translation>Unbekannter Fehler.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="744"/>
+        <location filename="../MqttClient.py" line="907"/>
         <source>Error defined by errno.</source>
         <translation>Fehler durch errno definiert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="748"/>
+        <location filename="../MqttClient.py" line="909"/>
         <source>Message queue full.</source>
         <translation>Warteschlange ist voll.</translation>
     </message>
@@ -806,38 +806,38 @@
 <context>
     <name>MqttLogLevelString</name>
     <message>
-        <location filename="../MqttClient.py" line="791"/>
-        <location filename="../MqttClient.py" line="773"/>
+        <location filename="../MqttClient.py" line="947"/>
+        <location filename="../MqttClient.py" line="930"/>
         <source>Unknown</source>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="778"/>
+        <location filename="../MqttClient.py" line="935"/>
         <source>Info</source>
         <translation>Info</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="780"/>
+        <location filename="../MqttClient.py" line="937"/>
         <source>Notice</source>
         <translation>Notiz</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="782"/>
+        <location filename="../MqttClient.py" line="939"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="784"/>
+        <location filename="../MqttClient.py" line="941"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="786"/>
+        <location filename="../MqttClient.py" line="943"/>
         <source>Debug</source>
         <translation>Debug</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="788"/>
+        <location filename="../MqttClient.py" line="945"/>
         <source>Logging Disabled</source>
         <translation>Protokollierung aus</translation>
     </message>
@@ -845,49 +845,49 @@
 <context>
     <name>MqttMonitorPlugin</name>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="193"/>
-        <location filename="../../PluginMqttMonitor.py" line="190"/>
-        <location filename="../../PluginMqttMonitor.py" line="78"/>
+        <location filename="../../PluginMqttMonitor.py" line="202"/>
+        <location filename="../../PluginMqttMonitor.py" line="198"/>
+        <location filename="../../PluginMqttMonitor.py" line="81"/>
         <source>MQTT Monitor</source>
         <translation>MQTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="97"/>
+        <location filename="../../PluginMqttMonitor.py" line="103"/>
         <source>(package not available)</source>
         <translation>(Paket nicht verfügbar)</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="102"/>
+        <location filename="../../PluginMqttMonitor.py" line="109"/>
         <source>MQTT</source>
         <translation>MQTT</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="103"/>
+        <location filename="../../PluginMqttMonitor.py" line="110"/>
         <source>paho-mqtt</source>
         <translation>paho-mqtt</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="172"/>
+        <location filename="../../PluginMqttMonitor.py" line="180"/>
         <source>The &apos;paho-mqtt&apos; package is not available.</source>
         <translation>Das &apos;paho-mqtt&apos; Paket ist nicht verfügbar.</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="194"/>
+        <location filename="../../PluginMqttMonitor.py" line="203"/>
         <source>M&amp;QTT Monitor</source>
         <translation>M&amp;QTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="195"/>
+        <location filename="../../PluginMqttMonitor.py" line="204"/>
         <source>Alt+Shift+Q</source>
         <translation>Alt+Shift+Q</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="198"/>
+        <location filename="../../PluginMqttMonitor.py" line="210"/>
         <source>Switch the input focus to the MQTT Monitor window.</source>
         <translation>Schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="200"/>
+        <location filename="../../PluginMqttMonitor.py" line="213"/>
         <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
         <translation>&lt;b&gt;MQTT Monitor aktivieren&lt;/b&gt;&lt;p&gt;Dies schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.&lt;/p&gt;</translation>
     </message>
@@ -945,7 +945,7 @@
         <translation>Pub/Sub</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1022"/>
+        <location filename="../MqttMonitorWidget.py" line="1101"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
         <source>Subscribe</source>
@@ -988,7 +988,7 @@
         <translation>Drücken, um die &apos;User Properties&apos; zu bearbeiten</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1018"/>
+        <location filename="../MqttMonitorWidget.py" line="1096"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
         <source>Unsubscribe</source>
         <translation>Abo kündigen</translation>
@@ -1045,7 +1045,7 @@
         <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="284"/>
+        <location filename="../MqttMonitorWidget.py" line="346"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
@@ -1119,7 +1119,7 @@
         <translation>Status</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1024"/>
+        <location filename="../MqttMonitorWidget.py" line="1103"/>
         <location filename="../MqttMonitorWidget.ui" line="0"/>
         <source>Press to activate the status display</source>
         <translation>Drücken, um die Statusanzeige zu aktivieren</translation>
@@ -1350,139 +1350,139 @@
         <translation>Empfangenen Protokollmeldungen folgen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="76"/>
+        <location filename="../MqttMonitorWidget.py" line="93"/>
         <source>All Files (*)</source>
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="276"/>
+        <location filename="../MqttMonitorWidget.py" line="334"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="280"/>
+        <location filename="../MqttMonitorWidget.py" line="340"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="328"/>
+        <location filename="../MqttMonitorWidget.py" line="391"/>
         <source>{0} - Session still present</source>
         <translation>{0} - Sitzung existiert noch</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="364"/>
+        <location filename="../MqttMonitorWidget.py" line="429"/>
         <source>Connection timed out</source>
         <translation>Zeitlimit für Verbindung überschritten</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="391"/>
+        <location filename="../MqttMonitorWidget.py" line="457"/>
         <source>Connection to Broker shut down cleanly.</source>
         <translation>Die Verbindung zum Broker wurde ordnungsgemäß beendet.</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="448"/>
+        <location filename="../MqttMonitorWidget.py" line="517"/>
         <source>{0}: {1}</source>
         <translation>{0}: {1}</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="671"/>
+        <location filename="../MqttMonitorWidget.py" line="737"/>
         <source>SUBSCRIBE: User Properties for &apos;{0}&apos;</source>
         <translation>SUBSCRIBE: Benutzereigenschaften für &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="697"/>
+        <location filename="../MqttMonitorWidget.py" line="763"/>
         <source>Subscribe to Topic</source>
         <translation>Thema abonnieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="698"/>
+        <location filename="../MqttMonitorWidget.py" line="764"/>
         <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
         <translation>Abonnements zum Statusthema &apos;$SYS&apos; werden auf der Registerkarte &apos;Status&apos; ausgeführt.</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="719"/>
+        <location filename="../MqttMonitorWidget.py" line="788"/>
         <source>UNSUBSCRIBE: User Properties for &apos;{0}&apos;</source>
         <translation>UNSUBSCRIBE: Benutzereigenschaften für &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="759"/>
+        <location filename="../MqttMonitorWidget.py" line="826"/>
         <source>PUBLISH: User Properties for &apos;{0}&apos;</source>
         <translation>PUBLISH: Benutzereigenschaften für &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="795"/>
+        <location filename="../MqttMonitorWidget.py" line="862"/>
         <source>Read Payload from File</source>
         <translation>Nutzdaten aus Datei lesen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="796"/>
+        <location filename="../MqttMonitorWidget.py" line="863"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden. Abbruch...&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="943"/>
-        <location filename="../MqttMonitorWidget.py" line="929"/>
-        <location filename="../MqttMonitorWidget.py" line="911"/>
+        <location filename="../MqttMonitorWidget.py" line="1014"/>
+        <location filename="../MqttMonitorWidget.py" line="998"/>
+        <location filename="../MqttMonitorWidget.py" line="979"/>
         <source>Save Messages</source>
         <translation>Meldungen speichern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="913"/>
+        <location filename="../MqttMonitorWidget.py" line="981"/>
         <source>Messages Files (*.txt);;All Files (*)</source>
         <translation>Meldungsdateien (*.txt);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="986"/>
-        <location filename="../MqttMonitorWidget.py" line="930"/>
+        <location filename="../MqttMonitorWidget.py" line="1060"/>
+        <location filename="../MqttMonitorWidget.py" line="999"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Überschreiben?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1000"/>
-        <location filename="../MqttMonitorWidget.py" line="944"/>
+        <location filename="../MqttMonitorWidget.py" line="1076"/>
+        <location filename="../MqttMonitorWidget.py" line="1015"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht geschrieben werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="999"/>
-        <location filename="../MqttMonitorWidget.py" line="985"/>
-        <location filename="../MqttMonitorWidget.py" line="967"/>
+        <location filename="../MqttMonitorWidget.py" line="1075"/>
+        <location filename="../MqttMonitorWidget.py" line="1059"/>
+        <location filename="../MqttMonitorWidget.py" line="1040"/>
         <source>Save Log Messages</source>
         <translation>Protokollmeldungen speichern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="969"/>
+        <location filename="../MqttMonitorWidget.py" line="1042"/>
         <source>Log Files (*.log);;All Files (*)</source>
         <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1020"/>
+        <location filename="../MqttMonitorWidget.py" line="1098"/>
         <source>Press to deactivate the status display</source>
         <translation>Drücken, um die Statusanzeige zu deaktivieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1189"/>
+        <location filename="../MqttMonitorWidget.py" line="1265"/>
         <source>QoS: {0}
 </source>
         <translation>QoS: {0}
 </translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1193"/>
+        <location filename="../MqttMonitorWidget.py" line="1269"/>
         <source>Retained Message
 </source>
         <translation>Gemerkte Meldung
 </translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1198"/>
+        <location filename="../MqttMonitorWidget.py" line="1273"/>
         <source>Properties:
 </source>
         <translation>Eigenschaften:
 </translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1202"/>
+        <location filename="../MqttMonitorWidget.py" line="1277"/>
         <source>{0}: {1}
 </source>
         <comment>property name, property value</comment>
@@ -1490,23 +1490,48 @@
 </translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1207"/>
+        <location filename="../MqttMonitorWidget.py" line="1283"/>
         <source>Message:
 </source>
         <translation>Meldung:
 </translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1214"/>
+        <location filename="../MqttMonitorWidget.py" line="1290"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;leer&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1382"/>
-        <location filename="../MqttMonitorWidget.py" line="1336"/>
+        <location filename="../MqttMonitorWidget.py" line="1496"/>
+        <location filename="../MqttMonitorWidget.py" line="1447"/>
         <source>Connecting to {0}:{1} ...</source>
         <translation>Verbinde zu {0}:{1} ...</translation>
     </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1641"/>
+        <source>{0} Bytes</source>
+        <translation>{0} Bytes</translation>
+    </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1646"/>
+        <source>{0} KiB</source>
+        <translation>{0} KiB</translation>
+    </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1651"/>
+        <source>{0} MiB</source>
+        <translation>{0} MiB</translation>
+    </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1656"/>
+        <source>{0} GiB</source>
+        <translation>{0} GiB</translation>
+    </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1661"/>
+        <source>{0} TiB</source>
+        <translation>{0} TiB</translation>
+    </message>
 </context>
 <context>
     <name>MqttPage</name>
@@ -1584,237 +1609,237 @@
 <context>
     <name>MqttReasonCodeNames</name>
     <message>
-        <location filename="../MqttReasonCodes.py" line="16"/>
+        <location filename="../MqttReasonCodes.py" line="15"/>
         <source>Success</source>
         <translation>Erfolg</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="21"/>
+        <location filename="../MqttReasonCodes.py" line="24"/>
         <source>Normal disconnection</source>
         <translation>Normale Trennung</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="24"/>
+        <location filename="../MqttReasonCodes.py" line="27"/>
         <source>Granted QoS 0</source>
         <translation>QoS 0 genehmigt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="28"/>
+        <location filename="../MqttReasonCodes.py" line="32"/>
         <source>Granted QoS 1</source>
         <translation>QoS 1 genehmigt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="32"/>
+        <location filename="../MqttReasonCodes.py" line="37"/>
         <source>Granted QoS 2</source>
         <translation>QoS 2 genehmigt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="36"/>
+        <location filename="../MqttReasonCodes.py" line="42"/>
         <source>Disconnect with will message</source>
         <translation>Trennung mit letztem Willen</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="40"/>
+        <location filename="../MqttReasonCodes.py" line="47"/>
         <source>No matching subscribers</source>
         <translation>Keine passenden Abonnenten</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="44"/>
+        <location filename="../MqttReasonCodes.py" line="53"/>
         <source>No subscription found</source>
         <translation>Kein Abonnement gefunden</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="48"/>
+        <location filename="../MqttReasonCodes.py" line="58"/>
         <source>Continue authentication</source>
         <translation>Authentisierung fortsetzen</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="52"/>
+        <location filename="../MqttReasonCodes.py" line="63"/>
         <source>Re-authenticate</source>
         <translation>Neuauthentisierung</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="56"/>
+        <location filename="../MqttReasonCodes.py" line="68"/>
         <source>Unspecified error</source>
         <translation>Unspezifizierter Fehler</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="62"/>
+        <location filename="../MqttReasonCodes.py" line="78"/>
         <source>Malformed packet</source>
         <translation>Fehlerhaftes Paket</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="66"/>
+        <location filename="../MqttReasonCodes.py" line="84"/>
         <source>Protocol error</source>
         <translation>Protokollfehler</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="70"/>
+        <location filename="../MqttReasonCodes.py" line="90"/>
         <source>Implementation specific error</source>
         <translation>Implementierungsspezifischer Fehler</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="76"/>
+        <location filename="../MqttReasonCodes.py" line="102"/>
         <source>Unsupported protocol version</source>
         <translation>Nicht unterstützte Protokollversion</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="80"/>
+        <location filename="../MqttReasonCodes.py" line="107"/>
         <source>Client identifier not valid</source>
         <translation>Client-ID nicht gültig</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="84"/>
+        <location filename="../MqttReasonCodes.py" line="112"/>
         <source>Bad user name or password</source>
         <translation>Ungültiger Nutzername oder Kennwort</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="88"/>
+        <location filename="../MqttReasonCodes.py" line="117"/>
         <source>Not authorized</source>
         <translation>Nicht authorisiert</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="94"/>
+        <location filename="../MqttReasonCodes.py" line="127"/>
         <source>Server unavailable</source>
         <translation>Server nicht verfügbar</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="98"/>
+        <location filename="../MqttReasonCodes.py" line="132"/>
         <source>Server busy</source>
         <translation>Server ausgelastet</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="102"/>
+        <location filename="../MqttReasonCodes.py" line="138"/>
         <source>Banned</source>
         <translation>Gebannt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="106"/>
+        <location filename="../MqttReasonCodes.py" line="143"/>
         <source>Server shutting down</source>
         <translation>Server fährt herunter</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="110"/>
+        <location filename="../MqttReasonCodes.py" line="148"/>
         <source>Bad authentication method</source>
         <translation>Ungültige Authentifizierungsmethode</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="114"/>
+        <location filename="../MqttReasonCodes.py" line="153"/>
         <source>Keep alive timeout</source>
         <translation>Keep Alive Timeout</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="118"/>
+        <location filename="../MqttReasonCodes.py" line="158"/>
         <source>Session taken over</source>
         <translation>Sitzung übernommen</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="122"/>
+        <location filename="../MqttReasonCodes.py" line="163"/>
         <source>Topic filter invalid</source>
         <translation>Themenfilter ungültig</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="127"/>
+        <location filename="../MqttReasonCodes.py" line="170"/>
         <source>Topic name invalid</source>
         <translation>Themenname ungültig</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="132"/>
+        <location filename="../MqttReasonCodes.py" line="178"/>
         <source>Packet identifier in use</source>
         <translation>Paketkennung in Verwendung</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="137"/>
+        <location filename="../MqttReasonCodes.py" line="186"/>
         <source>Packet identifier not found</source>
         <translation>Paketkennung nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="141"/>
+        <location filename="../MqttReasonCodes.py" line="191"/>
         <source>Receive maximum exceeded</source>
         <translation>Empfangsmaximum überschritten</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="145"/>
+        <location filename="../MqttReasonCodes.py" line="196"/>
         <source>Topic alias invalid</source>
         <translation>Themenalias ungültig</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="149"/>
+        <location filename="../MqttReasonCodes.py" line="201"/>
         <source>Packet too large</source>
         <translation>Paket zu groß</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="153"/>
+        <location filename="../MqttReasonCodes.py" line="207"/>
         <source>Message rate too high</source>
         <translation>Meldungsrate zu hoch</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="157"/>
+        <location filename="../MqttReasonCodes.py" line="212"/>
         <source>Quota exceeded</source>
         <translation>Quota überschritten</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="163"/>
+        <location filename="../MqttReasonCodes.py" line="221"/>
         <source>Administrative action</source>
         <translation>Administrative Aktion</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="167"/>
+        <location filename="../MqttReasonCodes.py" line="226"/>
         <source>Payload format invalid</source>
         <translation>Nutzlastformat ungültig</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="171"/>
+        <location filename="../MqttReasonCodes.py" line="233"/>
         <source>Retain not supported</source>
         <translation>Merken nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="175"/>
+        <location filename="../MqttReasonCodes.py" line="239"/>
         <source>QoS not supported</source>
         <translation>QoS nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="179"/>
+        <location filename="../MqttReasonCodes.py" line="245"/>
         <source>Use another server</source>
         <translation>Verwende anderen Server</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="183"/>
+        <location filename="../MqttReasonCodes.py" line="251"/>
         <source>Server moved</source>
         <translation>Server umgezogen</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="187"/>
+        <location filename="../MqttReasonCodes.py" line="257"/>
         <source>Shared subscription not supported</source>
         <translation>Geteiltes Abonnement nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="191"/>
+        <location filename="../MqttReasonCodes.py" line="262"/>
         <source>Connection rate exceeded</source>
         <translation>Verbindungsrate überschritten</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="195"/>
+        <location filename="../MqttReasonCodes.py" line="268"/>
         <source>Maximum connect time</source>
         <translation>Maximale Verbindungszeit</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="199"/>
+        <location filename="../MqttReasonCodes.py" line="273"/>
         <source>Subscription identifiers not supported</source>
         <translation>Abonnement-IDs nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="203"/>
+        <location filename="../MqttReasonCodes.py" line="278"/>
         <source>Wildcard subscription not supported</source>
         <translation>Wildcard-Abonnement nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="222"/>
+        <location filename="../MqttReasonCodes.py" line="298"/>
         <source>Unknown result code ({0})</source>
         <translation>Unbekannter Ergebniscode ({0})</translation>
     </message>
     <message>
-        <location filename="../MqttReasonCodes.py" line="229"/>
+        <location filename="../MqttReasonCodes.py" line="307"/>
         <source>Unknown result code ({0}) for packet type &apos;{1}&apos;</source>
         <translation>Unbekannter Ergebniscode ({0}) für Pakettyp &apos;{1}&apos;</translation>
     </message>
@@ -1855,7 +1880,7 @@
 <context>
     <name>MqttUserPropertiesEditorDialog</name>
     <message>
-        <location filename="../MqttUserPropertiesEditor.py" line="134"/>
+        <location filename="../MqttUserPropertiesEditor.py" line="142"/>
         <source>User Properties</source>
         <translation>Benutzereigenschaften</translation>
     </message>
--- a/MqttMonitor/i18n/mqttmonitor_empty.ts	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/i18n/mqttmonitor_empty.ts	Tue Jul 04 15:13:37 2023 +0200
@@ -4,37 +4,37 @@
   <context>
     <name>MqttConnackMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="647" />
+      <location filename="../MqttClient.py" line="826" />
       <source>Connection Accepted.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="651" />
+      <location filename="../MqttClient.py" line="828" />
       <source>Connection Refused: unacceptable protocol version.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="655" />
+      <location filename="../MqttClient.py" line="832" />
       <source>Connection Refused: identifier rejected.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="659" />
+      <location filename="../MqttClient.py" line="836" />
       <source>Connection Refused: broker unavailable.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="663" />
+      <location filename="../MqttClient.py" line="840" />
       <source>Connection Refused: bad user name or password.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="667" />
+      <location filename="../MqttClient.py" line="844" />
       <source>Connection Refused: not authorised.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="671" />
+      <location filename="../MqttClient.py" line="848" />
       <source>Connection Refused: unknown reason.</source>
       <translation type="unfinished" />
     </message>
@@ -268,22 +268,22 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="50" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="53" />
       <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="80" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="82" />
       <source>Invalid Connection Parameters</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="81" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="83" />
       <source>An empty Client ID requires a clean session.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="187" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="185" />
       <source>Last Will User Properties</source>
       <translation type="unfinished" />
     </message>
@@ -291,112 +291,112 @@
   <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="76" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="72" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="68" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="84" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="78" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
       <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="80" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="90" />
       <source>Key Files (*.key *.pem);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="926" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="890" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="154" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="959" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="921" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="167" />
       <source>Changed Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="927" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="891" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="155" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="960" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="922" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="168" />
       <source>The current profile has unsaved changes. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="182" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="175" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
       <source>New Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="176" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
       <source>Enter name for the new Connection Profile:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="210" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="183" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="229" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="200" />
       <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="209" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="202" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="228" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="220" />
       <source>Copy Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="203" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="221" />
       <source>Enter name for the copied Connection Profile:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="235" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="256" />
       <source>Delete Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="236" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="257" />
       <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="636" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="664" />
       <source>Invalid Connection Parameters</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="637" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="665" />
       <source>An empty Client ID requires a clean session.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="732" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="760" />
       <source>Last Will User Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="788" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="817" />
       <source>SSL/TLS Enabled</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="789" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="818" />
       <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="802" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="833" />
       <source>SSL/TLS Disabled</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="803" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="834" />
       <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="903" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="936" />
       <source>Changed Connection Profiles</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="904" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="937" />
       <source>The list of connection profiles has unsaved changes.</source>
       <translation type="unfinished" />
     </message>
@@ -722,83 +722,83 @@
   <context>
     <name>MqttErrorMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="687" />
+      <location filename="../MqttClient.py" line="864" />
       <source>No error.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="691" />
+      <location filename="../MqttClient.py" line="866" />
       <source>Out of memory.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="695" />
+      <location filename="../MqttClient.py" line="868" />
       <source>A network protocol error occurred when communicating with the broker.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="700" />
+      <location filename="../MqttClient.py" line="873" />
       <source>Invalid function arguments provided.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="704" />
+      <location filename="../MqttClient.py" line="877" />
       <source>The client is not currently connected.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="708" />
+      <location filename="../MqttClient.py" line="881" />
       <source>The connection was refused.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="712" />
+      <location filename="../MqttClient.py" line="885" />
       <source>Message not found (internal error).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="716" />
+      <location filename="../MqttClient.py" line="889" />
       <source>The connection was lost.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="720" />
+      <location filename="../MqttClient.py" line="893" />
       <source>A TLS error occurred.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="724" />
+      <location filename="../MqttClient.py" line="895" />
       <source>Payload too large.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="728" />
+      <location filename="../MqttClient.py" line="897" />
       <source>This feature is not supported.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="732" />
+      <location filename="../MqttClient.py" line="901" />
       <source>Authorisation failed.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="736" />
+      <location filename="../MqttClient.py" line="903" />
       <source>Access denied by ACL.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="752" />
-      <location filename="../MqttClient.py" line="740" />
+      <location filename="../MqttClient.py" line="911" />
+      <location filename="../MqttClient.py" line="905" />
       <source>Unknown error.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="744" />
+      <location filename="../MqttClient.py" line="907" />
       <source>Error defined by errno.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="748" />
+      <location filename="../MqttClient.py" line="909" />
       <source>Message queue full.</source>
       <translation type="unfinished" />
     </message>
@@ -806,38 +806,38 @@
   <context>
     <name>MqttLogLevelString</name>
     <message>
-      <location filename="../MqttClient.py" line="791" />
-      <location filename="../MqttClient.py" line="773" />
+      <location filename="../MqttClient.py" line="947" />
+      <location filename="../MqttClient.py" line="930" />
       <source>Unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="778" />
+      <location filename="../MqttClient.py" line="935" />
       <source>Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="780" />
+      <location filename="../MqttClient.py" line="937" />
       <source>Notice</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="782" />
+      <location filename="../MqttClient.py" line="939" />
       <source>Warning</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="784" />
+      <location filename="../MqttClient.py" line="941" />
       <source>Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="786" />
+      <location filename="../MqttClient.py" line="943" />
       <source>Debug</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="788" />
+      <location filename="../MqttClient.py" line="945" />
       <source>Logging Disabled</source>
       <translation type="unfinished" />
     </message>
@@ -845,49 +845,49 @@
   <context>
     <name>MqttMonitorPlugin</name>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="193" />
-      <location filename="../../PluginMqttMonitor.py" line="190" />
-      <location filename="../../PluginMqttMonitor.py" line="78" />
+      <location filename="../../PluginMqttMonitor.py" line="202" />
+      <location filename="../../PluginMqttMonitor.py" line="198" />
+      <location filename="../../PluginMqttMonitor.py" line="81" />
       <source>MQTT Monitor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="97" />
+      <location filename="../../PluginMqttMonitor.py" line="103" />
       <source>(package not available)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="102" />
+      <location filename="../../PluginMqttMonitor.py" line="109" />
       <source>MQTT</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="103" />
+      <location filename="../../PluginMqttMonitor.py" line="110" />
       <source>paho-mqtt</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="172" />
+      <location filename="../../PluginMqttMonitor.py" line="180" />
       <source>The 'paho-mqtt' package is not available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="194" />
+      <location filename="../../PluginMqttMonitor.py" line="203" />
       <source>M&amp;QTT Monitor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="195" />
+      <location filename="../../PluginMqttMonitor.py" line="204" />
       <source>Alt+Shift+Q</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="198" />
+      <location filename="../../PluginMqttMonitor.py" line="210" />
       <source>Switch the input focus to the MQTT Monitor window.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="200" />
+      <location filename="../../PluginMqttMonitor.py" line="213" />
       <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -945,7 +945,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <location filename="../MqttMonitorWidget.py" line="1101" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Subscribe</source>
@@ -988,7 +988,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1018" />
+      <location filename="../MqttMonitorWidget.py" line="1096" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Unsubscribe</source>
       <translation type="unfinished" />
@@ -1045,7 +1045,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="284" />
+      <location filename="../MqttMonitorWidget.py" line="346" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
@@ -1119,7 +1119,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1024" />
+      <location filename="../MqttMonitorWidget.py" line="1103" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Press to activate the status display</source>
       <translation type="unfinished" />
@@ -1350,158 +1350,183 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="76" />
+      <location filename="../MqttMonitorWidget.py" line="93" />
       <source>All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="276" />
+      <location filename="../MqttMonitorWidget.py" line="334" />
       <source>Copy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="280" />
+      <location filename="../MqttMonitorWidget.py" line="340" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="328" />
-      <source>{0} - Session still present</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttMonitorWidget.py" line="364" />
-      <source>Connection timed out</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttMonitorWidget.py" line="391" />
+      <source>{0} - Session still present</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="429" />
+      <source>Connection timed out</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="457" />
       <source>Connection to Broker shut down cleanly.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="448" />
+      <location filename="../MqttMonitorWidget.py" line="517" />
       <source>{0}: {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="671" />
+      <location filename="../MqttMonitorWidget.py" line="737" />
       <source>SUBSCRIBE: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="697" />
+      <location filename="../MqttMonitorWidget.py" line="763" />
       <source>Subscribe to Topic</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="698" />
+      <location filename="../MqttMonitorWidget.py" line="764" />
       <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="719" />
+      <location filename="../MqttMonitorWidget.py" line="788" />
       <source>UNSUBSCRIBE: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="759" />
+      <location filename="../MqttMonitorWidget.py" line="826" />
       <source>PUBLISH: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="795" />
+      <location filename="../MqttMonitorWidget.py" line="862" />
       <source>Read Payload from File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="796" />
+      <location filename="../MqttMonitorWidget.py" line="863" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="943" />
-      <location filename="../MqttMonitorWidget.py" line="929" />
-      <location filename="../MqttMonitorWidget.py" line="911" />
+      <location filename="../MqttMonitorWidget.py" line="1014" />
+      <location filename="../MqttMonitorWidget.py" line="998" />
+      <location filename="../MqttMonitorWidget.py" line="979" />
       <source>Save Messages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="913" />
+      <location filename="../MqttMonitorWidget.py" line="981" />
       <source>Messages Files (*.txt);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="986" />
-      <location filename="../MqttMonitorWidget.py" line="930" />
+      <location filename="../MqttMonitorWidget.py" line="1060" />
+      <location filename="../MqttMonitorWidget.py" line="999" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1000" />
-      <location filename="../MqttMonitorWidget.py" line="944" />
+      <location filename="../MqttMonitorWidget.py" line="1076" />
+      <location filename="../MqttMonitorWidget.py" line="1015" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="999" />
-      <location filename="../MqttMonitorWidget.py" line="985" />
-      <location filename="../MqttMonitorWidget.py" line="967" />
+      <location filename="../MqttMonitorWidget.py" line="1075" />
+      <location filename="../MqttMonitorWidget.py" line="1059" />
+      <location filename="../MqttMonitorWidget.py" line="1040" />
       <source>Save Log Messages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="969" />
+      <location filename="../MqttMonitorWidget.py" line="1042" />
       <source>Log Files (*.log);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1020" />
+      <location filename="../MqttMonitorWidget.py" line="1098" />
       <source>Press to deactivate the status display</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1189" />
+      <location filename="../MqttMonitorWidget.py" line="1265" />
       <source>QoS: {0}
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1193" />
+      <location filename="../MqttMonitorWidget.py" line="1269" />
       <source>Retained Message
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1198" />
+      <location filename="../MqttMonitorWidget.py" line="1273" />
       <source>Properties:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1202" />
+      <location filename="../MqttMonitorWidget.py" line="1277" />
       <source>{0}: {1}
 </source>
       <comment>property name, property value</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1207" />
+      <location filename="../MqttMonitorWidget.py" line="1283" />
       <source>Message:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1214" />
+      <location filename="../MqttMonitorWidget.py" line="1290" />
       <source>&lt;empty&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1382" />
-      <location filename="../MqttMonitorWidget.py" line="1336" />
+      <location filename="../MqttMonitorWidget.py" line="1496" />
+      <location filename="../MqttMonitorWidget.py" line="1447" />
       <source>Connecting to {0}:{1} ...</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1641" />
+      <source>{0} Bytes</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1646" />
+      <source>{0} KiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1651" />
+      <source>{0} MiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1656" />
+      <source>{0} GiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1661" />
+      <source>{0} TiB</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MqttPage</name>
@@ -1579,237 +1604,237 @@
   <context>
     <name>MqttReasonCodeNames</name>
     <message>
-      <location filename="../MqttReasonCodes.py" line="16" />
+      <location filename="../MqttReasonCodes.py" line="15" />
       <source>Success</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="21" />
-      <source>Normal disconnection</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="24" />
+      <source>Normal disconnection</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="27" />
       <source>Granted QoS 0</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="28" />
+      <location filename="../MqttReasonCodes.py" line="32" />
       <source>Granted QoS 1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="32" />
+      <location filename="../MqttReasonCodes.py" line="37" />
       <source>Granted QoS 2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="36" />
+      <location filename="../MqttReasonCodes.py" line="42" />
       <source>Disconnect with will message</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="40" />
+      <location filename="../MqttReasonCodes.py" line="47" />
       <source>No matching subscribers</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="44" />
+      <location filename="../MqttReasonCodes.py" line="53" />
       <source>No subscription found</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="48" />
+      <location filename="../MqttReasonCodes.py" line="58" />
       <source>Continue authentication</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="52" />
+      <location filename="../MqttReasonCodes.py" line="63" />
       <source>Re-authenticate</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="56" />
+      <location filename="../MqttReasonCodes.py" line="68" />
       <source>Unspecified error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="62" />
+      <location filename="../MqttReasonCodes.py" line="78" />
       <source>Malformed packet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="66" />
-      <source>Protocol error</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="70" />
-      <source>Implementation specific error</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="76" />
-      <source>Unsupported protocol version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="80" />
-      <source>Client identifier not valid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="84" />
+      <source>Protocol error</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="90" />
+      <source>Implementation specific error</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="102" />
+      <source>Unsupported protocol version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="107" />
+      <source>Client identifier not valid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="112" />
       <source>Bad user name or password</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="88" />
+      <location filename="../MqttReasonCodes.py" line="117" />
       <source>Not authorized</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="94" />
+      <location filename="../MqttReasonCodes.py" line="127" />
       <source>Server unavailable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="98" />
+      <location filename="../MqttReasonCodes.py" line="132" />
       <source>Server busy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="102" />
+      <location filename="../MqttReasonCodes.py" line="138" />
       <source>Banned</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="106" />
+      <location filename="../MqttReasonCodes.py" line="143" />
       <source>Server shutting down</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="110" />
+      <location filename="../MqttReasonCodes.py" line="148" />
       <source>Bad authentication method</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="114" />
+      <location filename="../MqttReasonCodes.py" line="153" />
       <source>Keep alive timeout</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="118" />
+      <location filename="../MqttReasonCodes.py" line="158" />
       <source>Session taken over</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="122" />
-      <source>Topic filter invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="127" />
-      <source>Topic name invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="132" />
-      <source>Packet identifier in use</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="137" />
-      <source>Packet identifier not found</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="141" />
-      <source>Receive maximum exceeded</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="145" />
-      <source>Topic alias invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="149" />
-      <source>Packet too large</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="153" />
-      <source>Message rate too high</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="157" />
-      <source>Quota exceeded</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="163" />
+      <source>Topic filter invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="170" />
+      <source>Topic name invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="178" />
+      <source>Packet identifier in use</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="186" />
+      <source>Packet identifier not found</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="191" />
+      <source>Receive maximum exceeded</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="196" />
+      <source>Topic alias invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="201" />
+      <source>Packet too large</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="207" />
+      <source>Message rate too high</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="212" />
+      <source>Quota exceeded</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="221" />
       <source>Administrative action</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="167" />
+      <location filename="../MqttReasonCodes.py" line="226" />
       <source>Payload format invalid</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="171" />
+      <location filename="../MqttReasonCodes.py" line="233" />
       <source>Retain not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="175" />
+      <location filename="../MqttReasonCodes.py" line="239" />
       <source>QoS not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="179" />
+      <location filename="../MqttReasonCodes.py" line="245" />
       <source>Use another server</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="183" />
+      <location filename="../MqttReasonCodes.py" line="251" />
       <source>Server moved</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="187" />
+      <location filename="../MqttReasonCodes.py" line="257" />
       <source>Shared subscription not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="191" />
+      <location filename="../MqttReasonCodes.py" line="262" />
       <source>Connection rate exceeded</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="195" />
+      <location filename="../MqttReasonCodes.py" line="268" />
       <source>Maximum connect time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="199" />
+      <location filename="../MqttReasonCodes.py" line="273" />
       <source>Subscription identifiers not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="203" />
+      <location filename="../MqttReasonCodes.py" line="278" />
       <source>Wildcard subscription not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="222" />
+      <location filename="../MqttReasonCodes.py" line="298" />
       <source>Unknown result code ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="229" />
+      <location filename="../MqttReasonCodes.py" line="307" />
       <source>Unknown result code ({0}) for packet type '{1}'</source>
       <translation type="unfinished" />
     </message>
@@ -1850,7 +1875,7 @@
   <context>
     <name>MqttUserPropertiesEditorDialog</name>
     <message>
-      <location filename="../MqttUserPropertiesEditor.py" line="134" />
+      <location filename="../MqttUserPropertiesEditor.py" line="142" />
       <source>User Properties</source>
       <translation type="unfinished" />
     </message>
--- a/MqttMonitor/i18n/mqttmonitor_en.ts	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/i18n/mqttmonitor_en.ts	Tue Jul 04 15:13:37 2023 +0200
@@ -4,37 +4,37 @@
   <context>
     <name>MqttConnackMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="647" />
+      <location filename="../MqttClient.py" line="826" />
       <source>Connection Accepted.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="651" />
+      <location filename="../MqttClient.py" line="828" />
       <source>Connection Refused: unacceptable protocol version.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="655" />
+      <location filename="../MqttClient.py" line="832" />
       <source>Connection Refused: identifier rejected.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="659" />
+      <location filename="../MqttClient.py" line="836" />
       <source>Connection Refused: broker unavailable.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="663" />
+      <location filename="../MqttClient.py" line="840" />
       <source>Connection Refused: bad user name or password.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="667" />
+      <location filename="../MqttClient.py" line="844" />
       <source>Connection Refused: not authorised.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="671" />
+      <location filename="../MqttClient.py" line="848" />
       <source>Connection Refused: unknown reason.</source>
       <translation type="unfinished" />
     </message>
@@ -268,22 +268,22 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="50" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="53" />
       <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="80" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="82" />
       <source>Invalid Connection Parameters</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="81" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="83" />
       <source>An empty Client ID requires a clean session.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="187" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="185" />
       <source>Last Will User Properties</source>
       <translation type="unfinished" />
     </message>
@@ -291,112 +291,112 @@
   <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="76" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="72" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="68" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="84" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="78" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
       <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="80" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="90" />
       <source>Key Files (*.key *.pem);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="926" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="890" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="154" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="959" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="921" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="167" />
       <source>Changed Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="927" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="891" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="155" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="960" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="922" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="168" />
       <source>The current profile has unsaved changes. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="182" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="175" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
       <source>New Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="176" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
       <source>Enter name for the new Connection Profile:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="210" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="183" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="229" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="200" />
       <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="209" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="202" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="228" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="220" />
       <source>Copy Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="203" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="221" />
       <source>Enter name for the copied Connection Profile:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="235" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="256" />
       <source>Delete Connection Profile</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="236" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="257" />
       <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="636" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="664" />
       <source>Invalid Connection Parameters</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="637" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="665" />
       <source>An empty Client ID requires a clean session.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="732" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="760" />
       <source>Last Will User Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="788" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="817" />
       <source>SSL/TLS Enabled</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="789" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="818" />
       <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="802" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="833" />
       <source>SSL/TLS Disabled</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="803" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="834" />
       <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="903" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="936" />
       <source>Changed Connection Profiles</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="904" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="937" />
       <source>The list of connection profiles has unsaved changes.</source>
       <translation type="unfinished" />
     </message>
@@ -722,83 +722,83 @@
   <context>
     <name>MqttErrorMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="687" />
+      <location filename="../MqttClient.py" line="864" />
       <source>No error.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="691" />
+      <location filename="../MqttClient.py" line="866" />
       <source>Out of memory.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="695" />
+      <location filename="../MqttClient.py" line="868" />
       <source>A network protocol error occurred when communicating with the broker.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="700" />
+      <location filename="../MqttClient.py" line="873" />
       <source>Invalid function arguments provided.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="704" />
+      <location filename="../MqttClient.py" line="877" />
       <source>The client is not currently connected.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="708" />
+      <location filename="../MqttClient.py" line="881" />
       <source>The connection was refused.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="712" />
+      <location filename="../MqttClient.py" line="885" />
       <source>Message not found (internal error).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="716" />
+      <location filename="../MqttClient.py" line="889" />
       <source>The connection was lost.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="720" />
+      <location filename="../MqttClient.py" line="893" />
       <source>A TLS error occurred.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="724" />
+      <location filename="../MqttClient.py" line="895" />
       <source>Payload too large.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="728" />
+      <location filename="../MqttClient.py" line="897" />
       <source>This feature is not supported.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="732" />
+      <location filename="../MqttClient.py" line="901" />
       <source>Authorisation failed.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="736" />
+      <location filename="../MqttClient.py" line="903" />
       <source>Access denied by ACL.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="752" />
-      <location filename="../MqttClient.py" line="740" />
+      <location filename="../MqttClient.py" line="911" />
+      <location filename="../MqttClient.py" line="905" />
       <source>Unknown error.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="744" />
+      <location filename="../MqttClient.py" line="907" />
       <source>Error defined by errno.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="748" />
+      <location filename="../MqttClient.py" line="909" />
       <source>Message queue full.</source>
       <translation type="unfinished" />
     </message>
@@ -806,38 +806,38 @@
   <context>
     <name>MqttLogLevelString</name>
     <message>
-      <location filename="../MqttClient.py" line="791" />
-      <location filename="../MqttClient.py" line="773" />
+      <location filename="../MqttClient.py" line="947" />
+      <location filename="../MqttClient.py" line="930" />
       <source>Unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="778" />
+      <location filename="../MqttClient.py" line="935" />
       <source>Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="780" />
+      <location filename="../MqttClient.py" line="937" />
       <source>Notice</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="782" />
+      <location filename="../MqttClient.py" line="939" />
       <source>Warning</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="784" />
+      <location filename="../MqttClient.py" line="941" />
       <source>Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="786" />
+      <location filename="../MqttClient.py" line="943" />
       <source>Debug</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttClient.py" line="788" />
+      <location filename="../MqttClient.py" line="945" />
       <source>Logging Disabled</source>
       <translation type="unfinished" />
     </message>
@@ -845,49 +845,49 @@
   <context>
     <name>MqttMonitorPlugin</name>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="193" />
-      <location filename="../../PluginMqttMonitor.py" line="190" />
-      <location filename="../../PluginMqttMonitor.py" line="78" />
+      <location filename="../../PluginMqttMonitor.py" line="202" />
+      <location filename="../../PluginMqttMonitor.py" line="198" />
+      <location filename="../../PluginMqttMonitor.py" line="81" />
       <source>MQTT Monitor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="97" />
+      <location filename="../../PluginMqttMonitor.py" line="103" />
       <source>(package not available)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="102" />
+      <location filename="../../PluginMqttMonitor.py" line="109" />
       <source>MQTT</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="103" />
+      <location filename="../../PluginMqttMonitor.py" line="110" />
       <source>paho-mqtt</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="172" />
+      <location filename="../../PluginMqttMonitor.py" line="180" />
       <source>The 'paho-mqtt' package is not available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="194" />
+      <location filename="../../PluginMqttMonitor.py" line="203" />
       <source>M&amp;QTT Monitor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="195" />
+      <location filename="../../PluginMqttMonitor.py" line="204" />
       <source>Alt+Shift+Q</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="198" />
+      <location filename="../../PluginMqttMonitor.py" line="210" />
       <source>Switch the input focus to the MQTT Monitor window.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="200" />
+      <location filename="../../PluginMqttMonitor.py" line="213" />
       <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -945,7 +945,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <location filename="../MqttMonitorWidget.py" line="1101" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Subscribe</source>
@@ -988,7 +988,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1018" />
+      <location filename="../MqttMonitorWidget.py" line="1096" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Unsubscribe</source>
       <translation type="unfinished" />
@@ -1045,7 +1045,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="284" />
+      <location filename="../MqttMonitorWidget.py" line="346" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
@@ -1119,7 +1119,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1024" />
+      <location filename="../MqttMonitorWidget.py" line="1103" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Press to activate the status display</source>
       <translation type="unfinished" />
@@ -1350,158 +1350,183 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="76" />
+      <location filename="../MqttMonitorWidget.py" line="93" />
       <source>All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="276" />
+      <location filename="../MqttMonitorWidget.py" line="334" />
       <source>Copy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="280" />
+      <location filename="../MqttMonitorWidget.py" line="340" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="328" />
-      <source>{0} - Session still present</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttMonitorWidget.py" line="364" />
-      <source>Connection timed out</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttMonitorWidget.py" line="391" />
+      <source>{0} - Session still present</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="429" />
+      <source>Connection timed out</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="457" />
       <source>Connection to Broker shut down cleanly.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="448" />
+      <location filename="../MqttMonitorWidget.py" line="517" />
       <source>{0}: {1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="671" />
+      <location filename="../MqttMonitorWidget.py" line="737" />
       <source>SUBSCRIBE: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="697" />
+      <location filename="../MqttMonitorWidget.py" line="763" />
       <source>Subscribe to Topic</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="698" />
+      <location filename="../MqttMonitorWidget.py" line="764" />
       <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="719" />
+      <location filename="../MqttMonitorWidget.py" line="788" />
       <source>UNSUBSCRIBE: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="759" />
+      <location filename="../MqttMonitorWidget.py" line="826" />
       <source>PUBLISH: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="795" />
+      <location filename="../MqttMonitorWidget.py" line="862" />
       <source>Read Payload from File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="796" />
+      <location filename="../MqttMonitorWidget.py" line="863" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="943" />
-      <location filename="../MqttMonitorWidget.py" line="929" />
-      <location filename="../MqttMonitorWidget.py" line="911" />
+      <location filename="../MqttMonitorWidget.py" line="1014" />
+      <location filename="../MqttMonitorWidget.py" line="998" />
+      <location filename="../MqttMonitorWidget.py" line="979" />
       <source>Save Messages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="913" />
+      <location filename="../MqttMonitorWidget.py" line="981" />
       <source>Messages Files (*.txt);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="986" />
-      <location filename="../MqttMonitorWidget.py" line="930" />
+      <location filename="../MqttMonitorWidget.py" line="1060" />
+      <location filename="../MqttMonitorWidget.py" line="999" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1000" />
-      <location filename="../MqttMonitorWidget.py" line="944" />
+      <location filename="../MqttMonitorWidget.py" line="1076" />
+      <location filename="../MqttMonitorWidget.py" line="1015" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="999" />
-      <location filename="../MqttMonitorWidget.py" line="985" />
-      <location filename="../MqttMonitorWidget.py" line="967" />
+      <location filename="../MqttMonitorWidget.py" line="1075" />
+      <location filename="../MqttMonitorWidget.py" line="1059" />
+      <location filename="../MqttMonitorWidget.py" line="1040" />
       <source>Save Log Messages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="969" />
+      <location filename="../MqttMonitorWidget.py" line="1042" />
       <source>Log Files (*.log);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1020" />
+      <location filename="../MqttMonitorWidget.py" line="1098" />
       <source>Press to deactivate the status display</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1189" />
+      <location filename="../MqttMonitorWidget.py" line="1265" />
       <source>QoS: {0}
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1193" />
+      <location filename="../MqttMonitorWidget.py" line="1269" />
       <source>Retained Message
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1198" />
+      <location filename="../MqttMonitorWidget.py" line="1273" />
       <source>Properties:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1202" />
+      <location filename="../MqttMonitorWidget.py" line="1277" />
       <source>{0}: {1}
 </source>
       <comment>property name, property value</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1207" />
+      <location filename="../MqttMonitorWidget.py" line="1283" />
       <source>Message:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1214" />
+      <location filename="../MqttMonitorWidget.py" line="1290" />
       <source>&lt;empty&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1382" />
-      <location filename="../MqttMonitorWidget.py" line="1336" />
+      <location filename="../MqttMonitorWidget.py" line="1496" />
+      <location filename="../MqttMonitorWidget.py" line="1447" />
       <source>Connecting to {0}:{1} ...</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1641" />
+      <source>{0} Bytes</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1646" />
+      <source>{0} KiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1651" />
+      <source>{0} MiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1656" />
+      <source>{0} GiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1661" />
+      <source>{0} TiB</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MqttPage</name>
@@ -1579,237 +1604,237 @@
   <context>
     <name>MqttReasonCodeNames</name>
     <message>
-      <location filename="../MqttReasonCodes.py" line="16" />
+      <location filename="../MqttReasonCodes.py" line="15" />
       <source>Success</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="21" />
-      <source>Normal disconnection</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="24" />
+      <source>Normal disconnection</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="27" />
       <source>Granted QoS 0</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="28" />
+      <location filename="../MqttReasonCodes.py" line="32" />
       <source>Granted QoS 1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="32" />
+      <location filename="../MqttReasonCodes.py" line="37" />
       <source>Granted QoS 2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="36" />
+      <location filename="../MqttReasonCodes.py" line="42" />
       <source>Disconnect with will message</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="40" />
+      <location filename="../MqttReasonCodes.py" line="47" />
       <source>No matching subscribers</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="44" />
+      <location filename="../MqttReasonCodes.py" line="53" />
       <source>No subscription found</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="48" />
+      <location filename="../MqttReasonCodes.py" line="58" />
       <source>Continue authentication</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="52" />
+      <location filename="../MqttReasonCodes.py" line="63" />
       <source>Re-authenticate</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="56" />
+      <location filename="../MqttReasonCodes.py" line="68" />
       <source>Unspecified error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="62" />
+      <location filename="../MqttReasonCodes.py" line="78" />
       <source>Malformed packet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="66" />
-      <source>Protocol error</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="70" />
-      <source>Implementation specific error</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="76" />
-      <source>Unsupported protocol version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="80" />
-      <source>Client identifier not valid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="84" />
+      <source>Protocol error</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="90" />
+      <source>Implementation specific error</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="102" />
+      <source>Unsupported protocol version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="107" />
+      <source>Client identifier not valid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="112" />
       <source>Bad user name or password</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="88" />
+      <location filename="../MqttReasonCodes.py" line="117" />
       <source>Not authorized</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="94" />
+      <location filename="../MqttReasonCodes.py" line="127" />
       <source>Server unavailable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="98" />
+      <location filename="../MqttReasonCodes.py" line="132" />
       <source>Server busy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="102" />
+      <location filename="../MqttReasonCodes.py" line="138" />
       <source>Banned</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="106" />
+      <location filename="../MqttReasonCodes.py" line="143" />
       <source>Server shutting down</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="110" />
+      <location filename="../MqttReasonCodes.py" line="148" />
       <source>Bad authentication method</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="114" />
+      <location filename="../MqttReasonCodes.py" line="153" />
       <source>Keep alive timeout</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="118" />
+      <location filename="../MqttReasonCodes.py" line="158" />
       <source>Session taken over</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="122" />
-      <source>Topic filter invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="127" />
-      <source>Topic name invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="132" />
-      <source>Packet identifier in use</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="137" />
-      <source>Packet identifier not found</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="141" />
-      <source>Receive maximum exceeded</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="145" />
-      <source>Topic alias invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="149" />
-      <source>Packet too large</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="153" />
-      <source>Message rate too high</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="157" />
-      <source>Quota exceeded</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="163" />
+      <source>Topic filter invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="170" />
+      <source>Topic name invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="178" />
+      <source>Packet identifier in use</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="186" />
+      <source>Packet identifier not found</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="191" />
+      <source>Receive maximum exceeded</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="196" />
+      <source>Topic alias invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="201" />
+      <source>Packet too large</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="207" />
+      <source>Message rate too high</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="212" />
+      <source>Quota exceeded</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="221" />
       <source>Administrative action</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="167" />
+      <location filename="../MqttReasonCodes.py" line="226" />
       <source>Payload format invalid</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="171" />
+      <location filename="../MqttReasonCodes.py" line="233" />
       <source>Retain not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="175" />
+      <location filename="../MqttReasonCodes.py" line="239" />
       <source>QoS not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="179" />
+      <location filename="../MqttReasonCodes.py" line="245" />
       <source>Use another server</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="183" />
+      <location filename="../MqttReasonCodes.py" line="251" />
       <source>Server moved</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="187" />
+      <location filename="../MqttReasonCodes.py" line="257" />
       <source>Shared subscription not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="191" />
+      <location filename="../MqttReasonCodes.py" line="262" />
       <source>Connection rate exceeded</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="195" />
+      <location filename="../MqttReasonCodes.py" line="268" />
       <source>Maximum connect time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="199" />
+      <location filename="../MqttReasonCodes.py" line="273" />
       <source>Subscription identifiers not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="203" />
+      <location filename="../MqttReasonCodes.py" line="278" />
       <source>Wildcard subscription not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="222" />
+      <location filename="../MqttReasonCodes.py" line="298" />
       <source>Unknown result code ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="229" />
+      <location filename="../MqttReasonCodes.py" line="307" />
       <source>Unknown result code ({0}) for packet type '{1}'</source>
       <translation type="unfinished" />
     </message>
@@ -1850,7 +1875,7 @@
   <context>
     <name>MqttUserPropertiesEditorDialog</name>
     <message>
-      <location filename="../MqttUserPropertiesEditor.py" line="134" />
+      <location filename="../MqttUserPropertiesEditor.py" line="142" />
       <source>User Properties</source>
       <translation type="unfinished" />
     </message>
--- a/MqttMonitor/i18n/mqttmonitor_es.ts	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/i18n/mqttmonitor_es.ts	Tue Jul 04 15:13:37 2023 +0200
@@ -4,37 +4,37 @@
   <context>
     <name>MqttConnackMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="647" />
+      <location filename="../MqttClient.py" line="826" />
       <source>Connection Accepted.</source>
       <translation>Conexión Aceptada.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="651" />
+      <location filename="../MqttClient.py" line="828" />
       <source>Connection Refused: unacceptable protocol version.</source>
       <translation>Conexión Rechazada: versión de protocolo no aceptable.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="655" />
+      <location filename="../MqttClient.py" line="832" />
       <source>Connection Refused: identifier rejected.</source>
       <translation>Conexión Rechazada: identificador rechazado.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="659" />
+      <location filename="../MqttClient.py" line="836" />
       <source>Connection Refused: broker unavailable.</source>
       <translation>Conexión Rechazada: broker no disponible.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="663" />
+      <location filename="../MqttClient.py" line="840" />
       <source>Connection Refused: bad user name or password.</source>
       <translation>Conexión Rechazada: nombre de usuario o contraseña no válidos.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="667" />
+      <location filename="../MqttClient.py" line="844" />
       <source>Connection Refused: not authorised.</source>
       <translation>Conexión Rechazada: no autorizado.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="671" />
+      <location filename="../MqttClient.py" line="848" />
       <source>Connection Refused: unknown reason.</source>
       <translation>Conexión Rechazada: razón desconocida.</translation>
     </message>
@@ -268,22 +268,22 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="50" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="53" />
       <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
       <translation>Archivos de Certificado (*.crt *.pem);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="80" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="82" />
       <source>Invalid Connection Parameters</source>
       <translation>Parámetros de Conexión No Válidos</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="81" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="83" />
       <source>An empty Client ID requires a clean session.</source>
       <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="187" />
+      <location filename="../MqttConnectionOptionsDialog.py" line="185" />
       <source>Last Will User Properties</source>
       <translation type="unfinished" />
     </message>
@@ -295,112 +295,112 @@
   <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="76" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="72" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="68" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="84" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="78" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
       <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
       <translation>Archivos de Certificado (*.crt *.pem);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="80" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="90" />
       <source>Key Files (*.key *.pem);;All Files (*)</source>
       <translation>Archivos de Clave (*.key *.pem);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="926" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="890" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="154" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="959" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="921" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="167" />
       <source>Changed Connection Profile</source>
       <translation>Perfil de Conexión Cambiado</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="927" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="891" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="155" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="960" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="922" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="168" />
       <source>The current profile has unsaved changes. Shall these be saved?</source>
       <translation>El perfil actual tiene cambios sin guardar. ¿Desea guardarlos?</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="182" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="175" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
       <source>New Connection Profile</source>
       <translation>Nuevo Perfil de Conexión</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="176" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
       <source>Enter name for the new Connection Profile:</source>
       <translation>ntroducir nombre para el nuevo Perfil de Conexión:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="210" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="183" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="229" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="200" />
       <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Una conexión llamada &lt;b&gt;{0}&lt;/b&gt; ya existe. Abortando...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="209" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="202" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="228" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="220" />
       <source>Copy Connection Profile</source>
       <translation>Copiar Perfil de Conexión</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="203" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="221" />
       <source>Enter name for the copied Connection Profile:</source>
       <translation>Introducir nombre para el Perfil de Conexión copiado:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="235" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="256" />
       <source>Delete Connection Profile</source>
       <translation>Borrar Perfil de Conexión</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="236" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="257" />
       <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
       <translation>&lt;p&gt;¿Realmente desea eliminar el Perfil de Conexión &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="636" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="664" />
       <source>Invalid Connection Parameters</source>
       <translation>Parámetros de Conexión No Válidos</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="637" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="665" />
       <source>An empty Client ID requires a clean session.</source>
       <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="732" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="760" />
       <source>Last Will User Properties</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="788" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="817" />
       <source>SSL/TLS Enabled</source>
       <translation>SSL/TLS Habilitado</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="789" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="818" />
       <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
       <translation>Se ha habilitado conexión encriptada utilizando SSL/TLS. Sin embargo, el puerto del broker sigue siendo el puerto por defecto no encriptado (puerto 1883). ¿Desea cambiarlo?</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="802" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="833" />
       <source>SSL/TLS Disabled</source>
       <translation>SSL/TLS Deshabilitado</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="803" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="834" />
       <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
       <translation>Se ha deshabilitado conexión encriptada utilizando SSL/TLS. Sin embargo, el puerto del broker sigue siendo el puerto por defecto no encriptado (puerto 1883). ¿Desea cambiarlo?</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="903" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="936" />
       <source>Changed Connection Profiles</source>
       <translation>Perfiles de Conexión Cambiados</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="904" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="937" />
       <source>The list of connection profiles has unsaved changes.</source>
       <translation>La lista de perfiles de conexión tienen cambios sin guardar.</translation>
     </message>
@@ -726,83 +726,83 @@
   <context>
     <name>MqttErrorMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="687" />
+      <location filename="../MqttClient.py" line="864" />
       <source>No error.</source>
       <translation>No error.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="691" />
+      <location filename="../MqttClient.py" line="866" />
       <source>Out of memory.</source>
       <translation>Out of memory.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="695" />
+      <location filename="../MqttClient.py" line="868" />
       <source>A network protocol error occurred when communicating with the broker.</source>
       <translation>Ha ocurrido un error de protocolo de red con la comunicación con el broker.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="700" />
+      <location filename="../MqttClient.py" line="873" />
       <source>Invalid function arguments provided.</source>
       <translation>Se han proporcionado argumentos de función no válidos.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="704" />
+      <location filename="../MqttClient.py" line="877" />
       <source>The client is not currently connected.</source>
       <translation>El cliente no está actualmente conectado.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="708" />
+      <location filename="../MqttClient.py" line="881" />
       <source>The connection was refused.</source>
       <translation>La conexión se ha rechazado.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="712" />
+      <location filename="../MqttClient.py" line="885" />
       <source>Message not found (internal error).</source>
       <translation>Mensaje no encontrado (error interno).</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="716" />
+      <location filename="../MqttClient.py" line="889" />
       <source>The connection was lost.</source>
       <translation>Se ha perdido la conexión.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="720" />
+      <location filename="../MqttClient.py" line="893" />
       <source>A TLS error occurred.</source>
       <translation>Ha ocurrido un error de TLS .</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="724" />
+      <location filename="../MqttClient.py" line="895" />
       <source>Payload too large.</source>
       <translation>Carga útil demasiado grande.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="728" />
+      <location filename="../MqttClient.py" line="897" />
       <source>This feature is not supported.</source>
       <translation>Esta característica no está soportada.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="732" />
+      <location filename="../MqttClient.py" line="901" />
       <source>Authorisation failed.</source>
       <translation>Ha fallado la Autorización.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="736" />
+      <location filename="../MqttClient.py" line="903" />
       <source>Access denied by ACL.</source>
       <translation>Acceso denegado por ACL.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="752" />
-      <location filename="../MqttClient.py" line="740" />
+      <location filename="../MqttClient.py" line="911" />
+      <location filename="../MqttClient.py" line="905" />
       <source>Unknown error.</source>
       <translation>Error desconocido.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="744" />
+      <location filename="../MqttClient.py" line="907" />
       <source>Error defined by errno.</source>
       <translation>Error definido por errno.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="748" />
+      <location filename="../MqttClient.py" line="909" />
       <source>Message queue full.</source>
       <translation>Cola de mensajes completa.</translation>
     </message>
@@ -810,38 +810,38 @@
   <context>
     <name>MqttLogLevelString</name>
     <message>
-      <location filename="../MqttClient.py" line="791" />
-      <location filename="../MqttClient.py" line="773" />
+      <location filename="../MqttClient.py" line="947" />
+      <location filename="../MqttClient.py" line="930" />
       <source>Unknown</source>
       <translation>Desconocido</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="778" />
+      <location filename="../MqttClient.py" line="935" />
       <source>Info</source>
       <translation>Info</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="780" />
+      <location filename="../MqttClient.py" line="937" />
       <source>Notice</source>
       <translation>Nota</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="782" />
+      <location filename="../MqttClient.py" line="939" />
       <source>Warning</source>
       <translation>Advertencia</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="784" />
+      <location filename="../MqttClient.py" line="941" />
       <source>Error</source>
       <translation>Error</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="786" />
+      <location filename="../MqttClient.py" line="943" />
       <source>Debug</source>
       <translation>Debug</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="788" />
+      <location filename="../MqttClient.py" line="945" />
       <source>Logging Disabled</source>
       <translation>Logging Deshabilitado</translation>
     </message>
@@ -849,49 +849,49 @@
   <context>
     <name>MqttMonitorPlugin</name>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="193" />
-      <location filename="../../PluginMqttMonitor.py" line="190" />
-      <location filename="../../PluginMqttMonitor.py" line="78" />
+      <location filename="../../PluginMqttMonitor.py" line="202" />
+      <location filename="../../PluginMqttMonitor.py" line="198" />
+      <location filename="../../PluginMqttMonitor.py" line="81" />
       <source>MQTT Monitor</source>
       <translation>MQTT Monitor</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="97" />
+      <location filename="../../PluginMqttMonitor.py" line="103" />
       <source>(package not available)</source>
       <translation>(package no disponible)</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="102" />
+      <location filename="../../PluginMqttMonitor.py" line="109" />
       <source>MQTT</source>
       <translation>MQTT</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="103" />
+      <location filename="../../PluginMqttMonitor.py" line="110" />
       <source>paho-mqtt</source>
       <translation>paho-mqtt</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="172" />
+      <location filename="../../PluginMqttMonitor.py" line="180" />
       <source>The 'paho-mqtt' package is not available.</source>
       <translation>El package 'paho-mqtt' no está disponible.</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="194" />
+      <location filename="../../PluginMqttMonitor.py" line="203" />
       <source>M&amp;QTT Monitor</source>
       <translation>M&amp;QTT Monitor</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="195" />
+      <location filename="../../PluginMqttMonitor.py" line="204" />
       <source>Alt+Shift+Q</source>
       <translation>Alt+Shift+Q</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="198" />
+      <location filename="../../PluginMqttMonitor.py" line="210" />
       <source>Switch the input focus to the MQTT Monitor window.</source>
       <translation>Cambiar el foco de input a la ventana de MQTT Monitor.</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="200" />
+      <location filename="../../PluginMqttMonitor.py" line="213" />
       <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Activar MQTT Monitor&lt;/b&gt;&lt;p&gt;Cambia el foco de input a la ventana de MQTT Monitor.&lt;/p&gt;</translation>
     </message>
@@ -949,7 +949,7 @@
       <translation>Pub/Sub</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <location filename="../MqttMonitorWidget.py" line="1101" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Subscribe</source>
@@ -992,7 +992,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1018" />
+      <location filename="../MqttMonitorWidget.py" line="1096" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Unsubscribe</source>
       <translation>Retirar subscripción</translation>
@@ -1049,7 +1049,7 @@
       <translation>Pulsar para limpiar los datos de publicación</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="284" />
+      <location filename="../MqttMonitorWidget.py" line="346" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
@@ -1123,7 +1123,7 @@
       <translation>Estado</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1024" />
+      <location filename="../MqttMonitorWidget.py" line="1103" />
       <location filename="../MqttMonitorWidget.ui" line="0" />
       <source>Press to activate the status display</source>
       <translation>Pulsar para activar la visualización de status</translation>
@@ -1354,160 +1354,185 @@
       <translation>Seguir mensajes de log recibidos</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="76" />
+      <location filename="../MqttMonitorWidget.py" line="93" />
       <source>All Files (*)</source>
       <translation>Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="276" />
+      <location filename="../MqttMonitorWidget.py" line="334" />
       <source>Copy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="280" />
+      <location filename="../MqttMonitorWidget.py" line="340" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="328" />
+      <location filename="../MqttMonitorWidget.py" line="391" />
       <source>{0} - Session still present</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="364" />
+      <location filename="../MqttMonitorWidget.py" line="429" />
       <source>Connection timed out</source>
       <translation>Se ha agotado el tiempo de conexión</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="391" />
+      <location filename="../MqttMonitorWidget.py" line="457" />
       <source>Connection to Broker shut down cleanly.</source>
       <translation>Conexión a Broker detenida limpiamente.</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="448" />
+      <location filename="../MqttMonitorWidget.py" line="517" />
       <source>{0}: {1}</source>
       <translation>{0}: {1}</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="671" />
+      <location filename="../MqttMonitorWidget.py" line="737" />
       <source>SUBSCRIBE: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="697" />
+      <location filename="../MqttMonitorWidget.py" line="763" />
       <source>Subscribe to Topic</source>
       <translation>Subscribir a Tema</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="698" />
+      <location filename="../MqttMonitorWidget.py" line="764" />
       <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
       <translation>Las subscripciones al tema de Status '$SYS' se deben hacer en la pestaña de 'Status'.</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="719" />
+      <location filename="../MqttMonitorWidget.py" line="788" />
       <source>UNSUBSCRIBE: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="759" />
+      <location filename="../MqttMonitorWidget.py" line="826" />
       <source>PUBLISH: User Properties for '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="795" />
+      <location filename="../MqttMonitorWidget.py" line="862" />
       <source>Read Payload from File</source>
       <translation>Leer Payload desde Archivo</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="796" />
+      <location filename="../MqttMonitorWidget.py" line="863" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido leer. Abortando...&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="943" />
-      <location filename="../MqttMonitorWidget.py" line="929" />
-      <location filename="../MqttMonitorWidget.py" line="911" />
+      <location filename="../MqttMonitorWidget.py" line="1014" />
+      <location filename="../MqttMonitorWidget.py" line="998" />
+      <location filename="../MqttMonitorWidget.py" line="979" />
       <source>Save Messages</source>
       <translation>Guardar Mensajes</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="913" />
+      <location filename="../MqttMonitorWidget.py" line="981" />
       <source>Messages Files (*.txt);;All Files (*)</source>
       <translation>Archivos de Mensaje (*.txt);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="986" />
-      <location filename="../MqttMonitorWidget.py" line="930" />
+      <location filename="../MqttMonitorWidget.py" line="1060" />
+      <location filename="../MqttMonitorWidget.py" line="999" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
       <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; ya existe. ¿Sobreescribirlo?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1000" />
-      <location filename="../MqttMonitorWidget.py" line="944" />
+      <location filename="../MqttMonitorWidget.py" line="1076" />
+      <location filename="../MqttMonitorWidget.py" line="1015" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido guardar.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="999" />
-      <location filename="../MqttMonitorWidget.py" line="985" />
-      <location filename="../MqttMonitorWidget.py" line="967" />
+      <location filename="../MqttMonitorWidget.py" line="1075" />
+      <location filename="../MqttMonitorWidget.py" line="1059" />
+      <location filename="../MqttMonitorWidget.py" line="1040" />
       <source>Save Log Messages</source>
       <translation>Guardar Mensajes de Log</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="969" />
+      <location filename="../MqttMonitorWidget.py" line="1042" />
       <source>Log Files (*.log);;All Files (*)</source>
       <translation>Archivos de Log (*.log);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1020" />
+      <location filename="../MqttMonitorWidget.py" line="1098" />
       <source>Press to deactivate the status display</source>
       <translation>Pulsar para activar la visualización de status</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1189" />
+      <location filename="../MqttMonitorWidget.py" line="1265" />
       <source>QoS: {0}
 </source>
       <translation>QoS: {0}
 </translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1193" />
+      <location filename="../MqttMonitorWidget.py" line="1269" />
       <source>Retained Message
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1198" />
+      <location filename="../MqttMonitorWidget.py" line="1273" />
       <source>Properties:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1202" />
+      <location filename="../MqttMonitorWidget.py" line="1277" />
       <source>{0}: {1}
 </source>
       <comment>property name, property value</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1207" />
+      <location filename="../MqttMonitorWidget.py" line="1283" />
       <source>Message:
 </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1214" />
+      <location filename="../MqttMonitorWidget.py" line="1290" />
       <source>&lt;empty&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1382" />
-      <location filename="../MqttMonitorWidget.py" line="1336" />
+      <location filename="../MqttMonitorWidget.py" line="1496" />
+      <location filename="../MqttMonitorWidget.py" line="1447" />
       <source>Connecting to {0}:{1} ...</source>
       <translation>Connectando a {0}:{1} ...</translation>
     </message>
     <message>
+      <location filename="../MqttMonitorWidget.py" line="1641" />
+      <source>{0} Bytes</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1646" />
+      <source>{0} KiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1651" />
+      <source>{0} MiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1656" />
+      <source>{0} GiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="1661" />
+      <source>{0} TiB</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <source>&lt;b&gt;Load&lt;/b&gt;</source>
       <translation type="vanished">&lt;b&gt;Carga&lt;/b&gt;</translation>
     </message>
@@ -1588,237 +1613,237 @@
   <context>
     <name>MqttReasonCodeNames</name>
     <message>
-      <location filename="../MqttReasonCodes.py" line="16" />
+      <location filename="../MqttReasonCodes.py" line="15" />
       <source>Success</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="21" />
-      <source>Normal disconnection</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="24" />
+      <source>Normal disconnection</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="27" />
       <source>Granted QoS 0</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="28" />
+      <location filename="../MqttReasonCodes.py" line="32" />
       <source>Granted QoS 1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="32" />
+      <location filename="../MqttReasonCodes.py" line="37" />
       <source>Granted QoS 2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="36" />
+      <location filename="../MqttReasonCodes.py" line="42" />
       <source>Disconnect with will message</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="40" />
+      <location filename="../MqttReasonCodes.py" line="47" />
       <source>No matching subscribers</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="44" />
+      <location filename="../MqttReasonCodes.py" line="53" />
       <source>No subscription found</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="48" />
+      <location filename="../MqttReasonCodes.py" line="58" />
       <source>Continue authentication</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="52" />
+      <location filename="../MqttReasonCodes.py" line="63" />
       <source>Re-authenticate</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="56" />
+      <location filename="../MqttReasonCodes.py" line="68" />
       <source>Unspecified error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="62" />
+      <location filename="../MqttReasonCodes.py" line="78" />
       <source>Malformed packet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="66" />
-      <source>Protocol error</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="70" />
-      <source>Implementation specific error</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="76" />
-      <source>Unsupported protocol version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="80" />
-      <source>Client identifier not valid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="84" />
+      <source>Protocol error</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="90" />
+      <source>Implementation specific error</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="102" />
+      <source>Unsupported protocol version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="107" />
+      <source>Client identifier not valid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="112" />
       <source>Bad user name or password</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="88" />
+      <location filename="../MqttReasonCodes.py" line="117" />
       <source>Not authorized</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="94" />
+      <location filename="../MqttReasonCodes.py" line="127" />
       <source>Server unavailable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="98" />
+      <location filename="../MqttReasonCodes.py" line="132" />
       <source>Server busy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="102" />
+      <location filename="../MqttReasonCodes.py" line="138" />
       <source>Banned</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="106" />
+      <location filename="../MqttReasonCodes.py" line="143" />
       <source>Server shutting down</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="110" />
+      <location filename="../MqttReasonCodes.py" line="148" />
       <source>Bad authentication method</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="114" />
+      <location filename="../MqttReasonCodes.py" line="153" />
       <source>Keep alive timeout</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="118" />
+      <location filename="../MqttReasonCodes.py" line="158" />
       <source>Session taken over</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="122" />
-      <source>Topic filter invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="127" />
-      <source>Topic name invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="132" />
-      <source>Packet identifier in use</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="137" />
-      <source>Packet identifier not found</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="141" />
-      <source>Receive maximum exceeded</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="145" />
-      <source>Topic alias invalid</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="149" />
-      <source>Packet too large</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="153" />
-      <source>Message rate too high</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="157" />
-      <source>Quota exceeded</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MqttReasonCodes.py" line="163" />
+      <source>Topic filter invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="170" />
+      <source>Topic name invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="178" />
+      <source>Packet identifier in use</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="186" />
+      <source>Packet identifier not found</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="191" />
+      <source>Receive maximum exceeded</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="196" />
+      <source>Topic alias invalid</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="201" />
+      <source>Packet too large</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="207" />
+      <source>Message rate too high</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="212" />
+      <source>Quota exceeded</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttReasonCodes.py" line="221" />
       <source>Administrative action</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="167" />
+      <location filename="../MqttReasonCodes.py" line="226" />
       <source>Payload format invalid</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="171" />
+      <location filename="../MqttReasonCodes.py" line="233" />
       <source>Retain not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="175" />
+      <location filename="../MqttReasonCodes.py" line="239" />
       <source>QoS not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="179" />
+      <location filename="../MqttReasonCodes.py" line="245" />
       <source>Use another server</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="183" />
+      <location filename="../MqttReasonCodes.py" line="251" />
       <source>Server moved</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="187" />
+      <location filename="../MqttReasonCodes.py" line="257" />
       <source>Shared subscription not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="191" />
+      <location filename="../MqttReasonCodes.py" line="262" />
       <source>Connection rate exceeded</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="195" />
+      <location filename="../MqttReasonCodes.py" line="268" />
       <source>Maximum connect time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="199" />
+      <location filename="../MqttReasonCodes.py" line="273" />
       <source>Subscription identifiers not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="203" />
+      <location filename="../MqttReasonCodes.py" line="278" />
       <source>Wildcard subscription not supported</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="222" />
+      <location filename="../MqttReasonCodes.py" line="298" />
       <source>Unknown result code ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="229" />
+      <location filename="../MqttReasonCodes.py" line="307" />
       <source>Unknown result code ({0}) for packet type '{1}'</source>
       <translation type="unfinished" />
     </message>
@@ -1859,7 +1884,7 @@
   <context>
     <name>MqttUserPropertiesEditorDialog</name>
     <message>
-      <location filename="../MqttUserPropertiesEditor.py" line="134" />
+      <location filename="../MqttUserPropertiesEditor.py" line="142" />
       <source>User Properties</source>
       <translation type="unfinished" />
     </message>
Binary file MqttMonitor/i18n/mqttmonitor_ru.qm has changed
--- a/MqttMonitor/i18n/mqttmonitor_ru.ts	Sat Dec 31 16:27:45 2022 +0100
+++ b/MqttMonitor/i18n/mqttmonitor_ru.ts	Tue Jul 04 15:13:37 2023 +0200
@@ -1,1863 +1,1888 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="ru_RU">
-  <context>
+<context>
     <name>MqttConnackMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="647" />
-      <source>Connection Accepted.</source>
-      <translation>Соединение установлено.</translation>
+        <location filename="../MqttClient.py" line="826"/>
+        <source>Connection Accepted.</source>
+        <translation>Соединение установлено.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="651" />
-      <source>Connection Refused: unacceptable protocol version.</source>
-      <translation>Соединение отклонено: неприемлемая версия протокола.</translation>
+        <location filename="../MqttClient.py" line="828"/>
+        <source>Connection Refused: unacceptable protocol version.</source>
+        <translation>Соединение отклонено: неприемлемая версия протокола.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="655" />
-      <source>Connection Refused: identifier rejected.</source>
-      <translation>Соединение отклонено: идентификатор отклонен.</translation>
+        <location filename="../MqttClient.py" line="832"/>
+        <source>Connection Refused: identifier rejected.</source>
+        <translation>Соединение отклонено: идентификатор отклонен.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="659" />
-      <source>Connection Refused: broker unavailable.</source>
-      <translation>Соединение отклонено: брокер недоступен.</translation>
+        <location filename="../MqttClient.py" line="836"/>
+        <source>Connection Refused: broker unavailable.</source>
+        <translation>Соединение отклонено: брокер недоступен.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="663" />
-      <source>Connection Refused: bad user name or password.</source>
-      <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation>
+        <location filename="../MqttClient.py" line="840"/>
+        <source>Connection Refused: bad user name or password.</source>
+        <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="667" />
-      <source>Connection Refused: not authorised.</source>
-      <translation>Соединение отклонено: нет авторизации.</translation>
+        <location filename="../MqttClient.py" line="844"/>
+        <source>Connection Refused: not authorised.</source>
+        <translation>Соединение отклонено: нет авторизации.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="671" />
-      <source>Connection Refused: unknown reason.</source>
-      <translation>Соединение отклонено: неизвестная причина.</translation>
+        <location filename="../MqttClient.py" line="848"/>
+        <source>Connection Refused: unknown reason.</source>
+        <translation>Соединение отклонено: неизвестная причина.</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttConnectionOptionsDialog</name>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>MQTT Connection Options</source>
-      <translation>Параметры подключения MQTT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>MQTT Connection Options</source>
+        <translation>Параметры подключения MQTT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>General</source>
-      <translation>Главное</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>General</source>
+        <translation>Главное</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Client ID:</source>
-      <translation>ID клиента:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Client ID:</source>
+        <translation>ID клиента:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the ID string for this client</source>
-      <translation>Введите ID для этого клиента</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the ID string for this client</source>
+        <translation>Введите ID для этого клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Press to generate a client ID</source>
-      <translation>Генерировать ID клиента</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Press to generate a client ID</source>
+        <translation>Генерировать ID клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Generate</source>
-      <translation>Генерировать</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Generate</source>
+        <translation>Генерировать</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>MQTT Protocol</source>
-      <translation>Протокол MQTT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>MQTT Protocol</source>
+        <translation>Протокол MQTT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to use the MQTT 3.1 protocol</source>
-      <translation>Выбор протокола MQTT 3.1</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to use the MQTT 3.1 protocol</source>
+        <translation>Выбор протокола MQTT 3.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>v 3.1</source>
-      <translation>вер 3.1</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>v 3.1</source>
+        <translation>вер 3.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to use the MQTT 3.1.1 protocol</source>
-      <translation>Выбор протокола MQTT 3.1.1</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to use the MQTT 3.1.1 protocol</source>
+        <translation>Выбор протокола MQTT 3.1.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>v 3.1.1</source>
-      <translation>вер. 3.1.1</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>v 3.1.1</source>
+        <translation>вер. 3.1.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to use the MQTT 5.0 protocol</source>
-      <translation>Выбор протокола MQTT 5.0</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to use the MQTT 5.0 protocol</source>
+        <translation>Выбор протокола MQTT 5.0</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>v 5.0</source>
-      <translation>вер. 5.0</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>v 5.0</source>
+        <translation>вер. 5.0</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Connection Timeout:</source>
-      <translation>Время ожидания соединения:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Connection Timeout:</source>
+        <translation>Время ожидания соединения:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the connection timeout in seconds</source>
-      <translation>Задайте время ожидания соединения, в секундах</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the connection timeout in seconds</source>
+        <translation>Задайте время ожидания соединения, в секундах</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source> s</source>
-      <translation> сек</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source> s</source>
+        <translation> сек</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Keep Alive Interval:</source>
-      <translation>Интервал удержания:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Keep Alive Interval:</source>
+        <translation>Интервал удержания:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the keep alive interval in seconds</source>
-      <translation>Задайте интервал удержания, в секундах</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the keep alive interval in seconds</source>
+        <translation>Задайте интервал удержания, в секундах</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to start with a clean session</source>
-      <translation>Разрешить начинать чистый сеанс</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to start with a clean session</source>
+        <translation>Разрешить начинать чистый сеанс</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Clean Session</source>
-      <translation>Очищать сеанс</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Clean Session</source>
+        <translation>Очищать сеанс</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>User Credentials</source>
-      <translation>Учетные данные пользователя</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>User Credentials</source>
+        <translation>Учетные данные пользователя</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>User Name:</source>
-      <translation>Имя пользователя:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>User Name:</source>
+        <translation>Имя пользователя:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the user name</source>
-      <translation>Введите имя пользователя</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the user name</source>
+        <translation>Введите имя пользователя</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Password:</source>
-      <translation>Пароль:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Password:</source>
+        <translation>Пароль:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the password</source>
-      <translation>Введите пароль</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the password</source>
+        <translation>Введите пароль</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Last Will</source>
-      <translation>'Последняя воля'</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Last Will</source>
+        <translation>&apos;Последняя воля&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the topic of the last will</source>
-      <translation>Введите тему 'последней воли'</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the topic of the last will</source>
+        <translation>Введите тему &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>QoS:</source>
-      <translation>QoS:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>QoS:</source>
+        <translation>QoS:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the desired QoS value</source>
-      <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the desired QoS value</source>
+        <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to retain the last will message</source>
-      <translation>Разрешить удерживать сообщение 'последней воли'</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to retain the last will message</source>
+        <translation>Разрешить удерживать сообщение &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Retain</source>
-      <translation>Удерживать</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Retain</source>
+        <translation>Удерживать</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Press to edit the user properties</source>
-      <translation>Правка пользовательских свойств</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Press to edit the user properties</source>
+        <translation>Правка пользовательских свойств</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the last will message to be sent</source>
-      <translation>Введите сообщение 'последней воли' для отправки</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the last will message to be sent</source>
+        <translation>Введите сообщение &apos;последней воли&apos; для отправки</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>SSL/TLS</source>
-      <translation>SSL/TLS</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>SSL/TLS</source>
+        <translation>SSL/TLS</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to enable SSL/TLS connections</source>
-      <translation>Разрешить SSL/TLS соединения</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to enable SSL/TLS connections</source>
+        <translation>Разрешить SSL/TLS соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>SSL/TLS Enabled</source>
-      <translation>Разрешить SSL/TLS</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>SSL/TLS Enabled</source>
+        <translation>Разрешить SSL/TLS</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>CA File:</source>
-      <translation>Файл CA:</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>CA File:</source>
+        <translation>Файл CA:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
-      <translation>Введите полный путь к файлу сертификата CA; оставьте поле пустым, чтобы использовать платформу по умолчанию</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
+        <translation>Введите полный путь к файлу сертификата CA; оставьте поле пустым, чтобы использовать платформу по умолчанию</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>User Properties</source>
-      <translation>Пользовательские свойства</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>User Properties</source>
+        <translation>Пользовательские свойства</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to edit the CONNECT user properties</source>
-      <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to edit the CONNECT user properties</source>
+        <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>CONNECT</source>
-      <translation>CONNECT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>CONNECT</source>
+        <translation>CONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to edit the DISCONNECT user properties</source>
-      <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to edit the DISCONNECT user properties</source>
+        <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>DISCONNECT</source>
-      <translation>DISCONNECT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>DISCONNECT</source>
+        <translation>DISCONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Select to use the CONNECT user properties when disconnecting</source>
-      <translation>Разрешить использовать пользовательские свойства пакета CONNECT при отключении</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Select to use the CONNECT user properties when disconnecting</source>
+        <translation>Разрешить использовать пользовательские свойства пакета CONNECT при отключении</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
-      <source>Use CONNECT properties for DISCONNECT</source>
-      <translation>Использовать свойства CONNECT для DISCONNECT</translation>
+        <location filename="../MqttConnectionOptionsDialog.ui" line="0"/>
+        <source>Use CONNECT properties for DISCONNECT</source>
+        <translation>Использовать свойства CONNECT для DISCONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="50" />
-      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-      <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
+        <location filename="../MqttConnectionOptionsDialog.py" line="53"/>
+        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+        <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="80" />
-      <source>Invalid Connection Parameters</source>
-      <translation>Недопустимые параметры соединения</translation>
+        <location filename="../MqttConnectionOptionsDialog.py" line="82"/>
+        <source>Invalid Connection Parameters</source>
+        <translation>Недопустимые параметры соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="81" />
-      <source>An empty Client ID requires a clean session.</source>
-      <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
+        <location filename="../MqttConnectionOptionsDialog.py" line="83"/>
+        <source>An empty Client ID requires a clean session.</source>
+        <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionOptionsDialog.py" line="187" />
-      <source>Last Will User Properties</source>
-      <translation>Пользовательские свойства 'последней воли'</translation>
+        <location filename="../MqttConnectionOptionsDialog.py" line="185"/>
+        <source>Last Will User Properties</source>
+        <translation>Пользовательские свойства &apos;последней воли&apos;</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="76" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="72" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="68" />
-      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-      <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="84"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="78"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="74"/>
+        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+        <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="80" />
-      <source>Key Files (*.key *.pem);;All Files (*)</source>
-      <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="90"/>
+        <source>Key Files (*.key *.pem);;All Files (*)</source>
+        <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="926" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="890" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="154" />
-      <source>Changed Connection Profile</source>
-      <translation>Измененный профиль соединения</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="959"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="921"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="167"/>
+        <source>Changed Connection Profile</source>
+        <translation>Измененный профиль соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="927" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="891" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="155" />
-      <source>The current profile has unsaved changes. Shall these be saved?</source>
-      <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="960"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="922"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="168"/>
+        <source>The current profile has unsaved changes. Shall these be saved?</source>
+        <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="182" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="175" />
-      <source>New Connection Profile</source>
-      <translation>Новый профиль соединения</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="199"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="191"/>
+        <source>New Connection Profile</source>
+        <translation>Новый профиль соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="176" />
-      <source>Enter name for the new Connection Profile:</source>
-      <translation>Введите имя нового профиля соединения:</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="192"/>
+        <source>Enter name for the new Connection Profile:</source>
+        <translation>Введите имя нового профиля соединения:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="210" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="183" />
-      <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Уже существует соединение с именем &lt;b&gt;{0}&lt;/b&gt;. Прерывание... &lt;/ p&gt;</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="229"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="200"/>
+        <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Уже существует соединение с именем &lt;b&gt;{0}&lt;/b&gt;. Прерывание... &lt;/ p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="209" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="202" />
-      <source>Copy Connection Profile</source>
-      <translation>Копировать профиль соединения</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="228"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="220"/>
+        <source>Copy Connection Profile</source>
+        <translation>Копировать профиль соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="203" />
-      <source>Enter name for the copied Connection Profile:</source>
-      <translation>Введите имя для скопированного профиля соединения:</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="221"/>
+        <source>Enter name for the copied Connection Profile:</source>
+        <translation>Введите имя для скопированного профиля соединения:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="235" />
-      <source>Delete Connection Profile</source>
-      <translation>Удалить профиль соединения</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="256"/>
+        <source>Delete Connection Profile</source>
+        <translation>Удалить профиль соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="236" />
-      <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Действительно удалить профиль соединения &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="257"/>
+        <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Действительно удалить профиль соединения &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="636" />
-      <source>Invalid Connection Parameters</source>
-      <translation>Недопустимые параметры соединения</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="664"/>
+        <source>Invalid Connection Parameters</source>
+        <translation>Недопустимые параметры соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="637" />
-      <source>An empty Client ID requires a clean session.</source>
-      <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="665"/>
+        <source>An empty Client ID requires a clean session.</source>
+        <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="732" />
-      <source>Last Will User Properties</source>
-      <translation>Пользовательские свойства 'последней воли'</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="760"/>
+        <source>Last Will User Properties</source>
+        <translation>Пользовательские свойства &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.py" line="788" />
-      <source>SSL/TLS Enabled</source>
-      <translation>Разрешить SSL/TLS</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <location filename="../MqttConnectionProfilesDialog.py" line="817"/>
+        <source>SSL/TLS Enabled</source>
+        <translation>Разрешить SSL/TLS</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="789" />
-      <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
-      <translation>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="818"/>
+        <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
+        <translation>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="802" />
-      <source>SSL/TLS Disabled</source>
-      <translation>SSL/TLS запрещено</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="833"/>
+        <source>SSL/TLS Disabled</source>
+        <translation>SSL/TLS запрещено</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="803" />
-      <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
-      <translation>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="834"/>
+        <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
+        <translation>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="903" />
-      <source>Changed Connection Profiles</source>
-      <translation>Измененные профили соединений</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="936"/>
+        <source>Changed Connection Profiles</source>
+        <translation>Измененные профили соединений</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.py" line="904" />
-      <source>The list of connection profiles has unsaved changes.</source>
-      <translation>В списке профилей соединений имеются несохраненные изменения.</translation>
+        <location filename="../MqttConnectionProfilesDialog.py" line="937"/>
+        <source>The list of connection profiles has unsaved changes.</source>
+        <translation>В списке профилей соединений имеются несохраненные изменения.</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>MQTT Connection Profiles</source>
-      <translation>Профили подключения MQTT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>MQTT Connection Profiles</source>
+        <translation>Профили подключения MQTT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Press to add a new profile</source>
-      <translation>Добавить новый профиль</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Press to add a new profile</source>
+        <translation>Добавить новый профиль</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Press to copy the selected profile</source>
-      <translation>Копировать выбранный профиль</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Press to copy the selected profile</source>
+        <translation>Копировать выбранный профиль</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Press to delete the selected profile</source>
-      <translation>Удалить выбранный профиль</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Press to delete the selected profile</source>
+        <translation>Удалить выбранный профиль</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Profile Name:</source>
-      <translation>Имя профиля:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Profile Name:</source>
+        <translation>Имя профиля:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Broker Address:</source>
-      <translation>Адрес брокера:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Broker Address:</source>
+        <translation>Адрес брокера:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the broker server address</source>
-      <translation>Введите адрес брокер-сервера</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the broker server address</source>
+        <translation>Введите адрес брокер-сервера</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Broker Port:</source>
-      <translation>Порт брокера:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Broker Port:</source>
+        <translation>Порт брокера:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the broker port number (default 1883)</source>
-      <translation>Задайте номер порта брокера (по умолчанию 1883)</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the broker port number (default 1883)</source>
+        <translation>Задайте номер порта брокера (по умолчанию 1883)</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Client ID:</source>
-      <translation>ID клиента:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Client ID:</source>
+        <translation>ID клиента:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the ID string for this client</source>
-      <translation>Введите ID для этого клиента</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the ID string for this client</source>
+        <translation>Введите ID для этого клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Press to generate a client ID</source>
-      <translation>Генерировать ID клиента</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Press to generate a client ID</source>
+        <translation>Генерировать ID клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Generate</source>
-      <translation>Генерировать</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Generate</source>
+        <translation>Генерировать</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>General</source>
-      <translation>Главное</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>General</source>
+        <translation>Главное</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>MQTT Protocol</source>
-      <translation>Протокол MQTT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>MQTT Protocol</source>
+        <translation>Протокол MQTT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use the MQTT 3.1 protocol</source>
-      <translation>Выбор протокола MQTT 3.1</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use the MQTT 3.1 protocol</source>
+        <translation>Выбор протокола MQTT 3.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>v 3.1</source>
-      <translation>вер. 3.1</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>v 3.1</source>
+        <translation>вер. 3.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use the MQTT 3.1.1 protocol</source>
-      <translation>Выбор протокола MQTT 3.1.1</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use the MQTT 3.1.1 protocol</source>
+        <translation>Выбор протокола MQTT 3.1.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>v 3.1.1</source>
-      <translation>вер. 3.1.1</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>v 3.1.1</source>
+        <translation>вер. 3.1.1</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use the MQTT 5.0 protocol</source>
-      <translation>Выбор протокола MQTT 5.0</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use the MQTT 5.0 protocol</source>
+        <translation>Выбор протокола MQTT 5.0</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>v 5.0</source>
-      <translation>вер. 5.0</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>v 5.0</source>
+        <translation>вер. 5.0</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Connection Timeout:</source>
-      <translation>Время ожидания соединения:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Connection Timeout:</source>
+        <translation>Время ожидания соединения:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the connection timeout in seconds</source>
-      <translation>Задайте время ожидания соединения, в секундах</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the connection timeout in seconds</source>
+        <translation>Задайте время ожидания соединения, в секундах</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source> s</source>
-      <translation> сек</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source> s</source>
+        <translation> сек</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Keep Alive Interval:</source>
-      <translation>Интервал удержания:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Keep Alive Interval:</source>
+        <translation>Интервал удержания:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the keep alive interval in seconds</source>
-      <translation>Задайте интервал удержания, в секундах</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the keep alive interval in seconds</source>
+        <translation>Задайте интервал удержания, в секундах</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to start with a clean session</source>
-      <translation>Разрешить начинать чистый сеанс</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to start with a clean session</source>
+        <translation>Разрешить начинать чистый сеанс</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Clean Session</source>
-      <translation>Очищать сеанс</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Clean Session</source>
+        <translation>Очищать сеанс</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>User Credentials</source>
-      <translation>Учетные данные пользователя</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>User Credentials</source>
+        <translation>Учетные данные пользователя</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>User Name:</source>
-      <translation>Имя пользователя:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>User Name:</source>
+        <translation>Имя пользователя:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the user name</source>
-      <translation>Введите имя пользователя</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the user name</source>
+        <translation>Введите имя пользователя</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Password:</source>
-      <translation>Пароль:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Password:</source>
+        <translation>Пароль:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the password</source>
-      <translation>Введите пароль</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the password</source>
+        <translation>Введите пароль</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Toggle to show the password</source>
-      <translation>Отображение пароля</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Toggle to show the password</source>
+        <translation>Отображение пароля</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Last Will</source>
-      <translation>'Последняя воля'</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Last Will</source>
+        <translation>&apos;Последняя воля&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the topic of the last will</source>
-      <translation>Введите тему 'последней воли'</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the topic of the last will</source>
+        <translation>Введите тему &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>QoS:</source>
-      <translation>QoS:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>QoS:</source>
+        <translation>QoS:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the desired QoS value</source>
-      <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the desired QoS value</source>
+        <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to retain the last will message</source>
-      <translation>Разрешить удерживать сообщение 'последней воли'</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to retain the last will message</source>
+        <translation>Разрешить удерживать сообщение &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Retain</source>
-      <translation>Удерживать</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Retain</source>
+        <translation>Удерживать</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Press to edit the user properties</source>
-      <translation>Правка пользовательских свойств</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Press to edit the user properties</source>
+        <translation>Правка пользовательских свойств</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the last will message to be sent</source>
-      <translation>Введите сообщение 'последней воли' для отправки</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the last will message to be sent</source>
+        <translation>Введите сообщение &apos;последней воли&apos; для отправки</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>SSL/TLS</source>
-      <translation>SSL/TLS</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>SSL/TLS</source>
+        <translation>SSL/TLS</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to enable SSL/TLS connections</source>
-      <translation>Разрешить SSL/TLS соединения</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to enable SSL/TLS connections</source>
+        <translation>Разрешить SSL/TLS соединения</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use the default certificate file of the client</source>
-      <translation>Разрешить использовать файл сертификата клиента по умолчанию</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use the default certificate file of the client</source>
+        <translation>Разрешить использовать файл сертификата клиента по умолчанию</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>CA signed server certificate</source>
-      <translation>Сертификат подписываемый сервером CA</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>CA signed server certificate</source>
+        <translation>Сертификат подписываемый сервером CA</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use a specific certificate file</source>
-      <translation>Разрешить использовать определенный файл сертификата</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use a specific certificate file</source>
+        <translation>Разрешить использовать определенный файл сертификата</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>CA certificate file</source>
-      <translation>Файл сертификата CA</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>CA certificate file</source>
+        <translation>Файл сертификата CA</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>CA File:</source>
-      <translation>Файл CA:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>CA File:</source>
+        <translation>Файл CA:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the full path to the CA certificate file</source>
-      <translation>Введите полный путь к файлу сертификата CA</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the full path to the CA certificate file</source>
+        <translation>Введите полный путь к файлу сертификата CA</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use a self signed client certificate</source>
-      <translation>Разрешить использовать самостоятельно подписываемый сертификат клиента</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use a self signed client certificate</source>
+        <translation>Разрешить использовать самостоятельно подписываемый сертификат клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Self signed certificates</source>
-      <translation>Самостоятельно подписываемые сертификаты</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Self signed certificates</source>
+        <translation>Самостоятельно подписываемые сертификаты</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Client Certificate File:</source>
-      <translation>Файл сертификата клиента:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Client Certificate File:</source>
+        <translation>Файл сертификата клиента:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the full path to the client certificate file</source>
-      <translation>Введите полный путь к файлу сертификата клиента</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the full path to the client certificate file</source>
+        <translation>Введите полный путь к файлу сертификата клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Client Key File:</source>
-      <translation>Файл ключа клиента:</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Client Key File:</source>
+        <translation>Файл ключа клиента:</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Enter the full path to the client key file</source>
-      <translation>Введите полный путь к файлу ключа клиента</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Enter the full path to the client key file</source>
+        <translation>Введите полный путь к файлу ключа клиента</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>User Properties</source>
-      <translation>Пользовательские свойства</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>User Properties</source>
+        <translation>Пользовательские свойства</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to edit the CONNECT user properties</source>
-      <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to edit the CONNECT user properties</source>
+        <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>CONNECT</source>
-      <translation>CONNECT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>CONNECT</source>
+        <translation>CONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to edit the DISCONNECT user properties</source>
-      <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to edit the DISCONNECT user properties</source>
+        <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>DISCONNECT</source>
-      <translation>DISCONNECT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>DISCONNECT</source>
+        <translation>DISCONNECT</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Select to use the CONNECT user properties when disconnecting</source>
-      <translation>Разрешить использовать пользовательские свойства CONNECT при отключении</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Select to use the CONNECT user properties when disconnecting</source>
+        <translation>Разрешить использовать пользовательские свойства CONNECT при отключении</translation>
     </message>
     <message>
-      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
-      <source>Use CONNECT properties for DISCONNECT</source>
-      <translation>Использовать свойства CONNECT для DISCONNECT</translation>
+        <location filename="../MqttConnectionProfilesDialog.ui" line="0"/>
+        <source>Use CONNECT properties for DISCONNECT</source>
+        <translation>Использовать свойства CONNECT для DISCONNECT</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttErrorMessage</name>
     <message>
-      <location filename="../MqttClient.py" line="687" />
-      <source>No error.</source>
-      <translation>Нет ошибки.</translation>
+        <location filename="../MqttClient.py" line="864"/>
+        <source>No error.</source>
+        <translation>Нет ошибки.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="691" />
-      <source>Out of memory.</source>
-      <translation>Недостаточно памяти.</translation>
+        <location filename="../MqttClient.py" line="866"/>
+        <source>Out of memory.</source>
+        <translation>Недостаточно памяти.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="695" />
-      <source>A network protocol error occurred when communicating with the broker.</source>
-      <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation>
+        <location filename="../MqttClient.py" line="868"/>
+        <source>A network protocol error occurred when communicating with the broker.</source>
+        <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="700" />
-      <source>Invalid function arguments provided.</source>
-      <translation>Предоставлены недопустимые аргументы функции.</translation>
+        <location filename="../MqttClient.py" line="873"/>
+        <source>Invalid function arguments provided.</source>
+        <translation>Предоставлены недопустимые аргументы функции.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="704" />
-      <source>The client is not currently connected.</source>
-      <translation>В настоящее время клиент не подключен.</translation>
+        <location filename="../MqttClient.py" line="877"/>
+        <source>The client is not currently connected.</source>
+        <translation>В настоящее время клиент не подключен.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="708" />
-      <source>The connection was refused.</source>
-      <translation>Соединение было отклонено.</translation>
+        <location filename="../MqttClient.py" line="881"/>
+        <source>The connection was refused.</source>
+        <translation>Соединение было отклонено.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="712" />
-      <source>Message not found (internal error).</source>
-      <translation>Сообщение не найдено (внутренняя ошибка).</translation>
+        <location filename="../MqttClient.py" line="885"/>
+        <source>Message not found (internal error).</source>
+        <translation>Сообщение не найдено (внутренняя ошибка).</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="716" />
-      <source>The connection was lost.</source>
-      <translation>Соединение было потеряно.</translation>
+        <location filename="../MqttClient.py" line="889"/>
+        <source>The connection was lost.</source>
+        <translation>Соединение было потеряно.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="720" />
-      <source>A TLS error occurred.</source>
-      <translation>Произошла ошибка TLS.</translation>
+        <location filename="../MqttClient.py" line="893"/>
+        <source>A TLS error occurred.</source>
+        <translation>Произошла ошибка TLS.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="724" />
-      <source>Payload too large.</source>
-      <translation>Слишком большая полезная нагрузка.</translation>
+        <location filename="../MqttClient.py" line="895"/>
+        <source>Payload too large.</source>
+        <translation>Слишком большая полезная нагрузка.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="728" />
-      <source>This feature is not supported.</source>
-      <translation>Эта функция не поддерживается.</translation>
+        <location filename="../MqttClient.py" line="897"/>
+        <source>This feature is not supported.</source>
+        <translation>Эта функция не поддерживается.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="732" />
-      <source>Authorisation failed.</source>
-      <translation>Ошибка авторизации.</translation>
+        <location filename="../MqttClient.py" line="901"/>
+        <source>Authorisation failed.</source>
+        <translation>Ошибка авторизации.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="736" />
-      <source>Access denied by ACL.</source>
-      <translation>Отказано в доступе к ACL.</translation>
+        <location filename="../MqttClient.py" line="903"/>
+        <source>Access denied by ACL.</source>
+        <translation>Отказано в доступе к ACL.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="752" />
-      <location filename="../MqttClient.py" line="740" />
-      <source>Unknown error.</source>
-      <translation>Неизвестная ошибка.</translation>
+        <location filename="../MqttClient.py" line="911"/>
+        <location filename="../MqttClient.py" line="905"/>
+        <source>Unknown error.</source>
+        <translation>Неизвестная ошибка.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="744" />
-      <source>Error defined by errno.</source>
-      <translation>Ошибка, определяемая errno.</translation>
+        <location filename="../MqttClient.py" line="907"/>
+        <source>Error defined by errno.</source>
+        <translation>Ошибка, определяемая errno.</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="748" />
-      <source>Message queue full.</source>
-      <translation>Очередь сообщений заполнена.</translation>
+        <location filename="../MqttClient.py" line="909"/>
+        <source>Message queue full.</source>
+        <translation>Очередь сообщений заполнена.</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttLogLevelString</name>
     <message>
-      <location filename="../MqttClient.py" line="791" />
-      <location filename="../MqttClient.py" line="773" />
-      <source>Unknown</source>
-      <translation>Unknown</translation>
+        <location filename="../MqttClient.py" line="947"/>
+        <location filename="../MqttClient.py" line="930"/>
+        <source>Unknown</source>
+        <translation>Unknown</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="778" />
-      <source>Info</source>
-      <translation>Info</translation>
+        <location filename="../MqttClient.py" line="935"/>
+        <source>Info</source>
+        <translation>Info</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="780" />
-      <source>Notice</source>
-      <translation>Notice</translation>
+        <location filename="../MqttClient.py" line="937"/>
+        <source>Notice</source>
+        <translation>Notice</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="782" />
-      <source>Warning</source>
-      <translation>Warning</translation>
+        <location filename="../MqttClient.py" line="939"/>
+        <source>Warning</source>
+        <translation>Warning</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="784" />
-      <source>Error</source>
-      <translation>Error</translation>
+        <location filename="../MqttClient.py" line="941"/>
+        <source>Error</source>
+        <translation>Error</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="786" />
-      <source>Debug</source>
-      <translation>Debug</translation>
+        <location filename="../MqttClient.py" line="943"/>
+        <source>Debug</source>
+        <translation>Debug</translation>
     </message>
     <message>
-      <location filename="../MqttClient.py" line="788" />
-      <source>Logging Disabled</source>
-      <translation>Ведение журнала запрещено</translation>
+        <location filename="../MqttClient.py" line="945"/>
+        <source>Logging Disabled</source>
+        <translation>Ведение журнала запрещено</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttMonitorPlugin</name>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="193" />
-      <location filename="../../PluginMqttMonitor.py" line="190" />
-      <location filename="../../PluginMqttMonitor.py" line="78" />
-      <source>MQTT Monitor</source>
-      <translation>MQTT Monitor</translation>
+        <location filename="../../PluginMqttMonitor.py" line="202"/>
+        <location filename="../../PluginMqttMonitor.py" line="198"/>
+        <location filename="../../PluginMqttMonitor.py" line="81"/>
+        <source>MQTT Monitor</source>
+        <translation>MQTT Monitor</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="97" />
-      <source>(package not available)</source>
-      <translation>(пакет не доступен)</translation>
+        <location filename="../../PluginMqttMonitor.py" line="103"/>
+        <source>(package not available)</source>
+        <translation>(пакет не доступен)</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="102" />
-      <source>MQTT</source>
-      <translation>MQTT - клиентская библиотека Python</translation>
+        <location filename="../../PluginMqttMonitor.py" line="109"/>
+        <source>MQTT</source>
+        <translation>MQTT - клиентская библиотека Python</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="103" />
-      <source>paho-mqtt</source>
-      <translation>paho-mqtt</translation>
+        <location filename="../../PluginMqttMonitor.py" line="110"/>
+        <source>paho-mqtt</source>
+        <translation>paho-mqtt</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="172" />
-      <source>The 'paho-mqtt' package is not available.</source>
-      <translation>Пакет 'paho-mqtt' недоступен.</translation>
+        <location filename="../../PluginMqttMonitor.py" line="180"/>
+        <source>The &apos;paho-mqtt&apos; package is not available.</source>
+        <translation>Пакет &apos;paho-mqtt&apos; недоступен.</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="194" />
-      <source>M&amp;QTT Monitor</source>
-      <translation>M&amp;QTT Monitor</translation>
+        <location filename="../../PluginMqttMonitor.py" line="203"/>
+        <source>M&amp;QTT Monitor</source>
+        <translation>M&amp;QTT Monitor</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="195" />
-      <source>Alt+Shift+Q</source>
-      <translation>Alt+Shift+Q</translation>
+        <location filename="../../PluginMqttMonitor.py" line="204"/>
+        <source>Alt+Shift+Q</source>
+        <translation>Alt+Shift+Q</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="198" />
-      <source>Switch the input focus to the MQTT Monitor window.</source>
-      <translation>Переключить фокус ввода в окно MQTT Monitor.</translation>
+        <location filename="../../PluginMqttMonitor.py" line="210"/>
+        <source>Switch the input focus to the MQTT Monitor window.</source>
+        <translation>Переключить фокус ввода в окно MQTT Monitor.</translation>
     </message>
     <message>
-      <location filename="../../PluginMqttMonitor.py" line="200" />
-      <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;Активировать MQTT Monitor&lt;/b&gt;&lt;p&gt;Переключение фокуса ввода в окно MQTT Monitor.&lt;/p&gt;</translation>
+        <location filename="../../PluginMqttMonitor.py" line="213"/>
+        <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Активировать MQTT Monitor&lt;/b&gt;&lt;p&gt;Переключение фокуса ввода в окно MQTT Monitor.&lt;/p&gt;</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttMonitorWidget</name>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
-      <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
+        <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Broker</source>
-      <translation>Брокер</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Broker</source>
+        <translation>Брокер</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to switch the mode between profiles and direct connection</source>
-      <translation>Переключить режим подключения  -  профили или прямое соединение</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to switch the mode between profiles and direct connection</source>
+        <translation>Переключить режим подключения  -  профили или прямое соединение</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select the profile to be used to connect to the broker</source>
-      <translation>Выберите профиль, который будет использоваться для соединения с брокером</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select the profile to be used to connect to the broker</source>
+        <translation>Выберите профиль, который будет использоваться для соединения с брокером</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the host name of the broker</source>
-      <translation>Введите имя хоста брокера</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the host name of the broker</source>
+        <translation>Введите имя хоста брокера</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the broker port to connect to</source>
-      <translation>Задайте порт брокера для соединения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the broker port to connect to</source>
+        <translation>Задайте порт брокера для соединения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to open a dialog to enter connection options</source>
-      <translation>Открыть диалог ввода параметров соединения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to open a dialog to enter connection options</source>
+        <translation>Открыть диалог ввода параметров соединения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to connect to/disconnect from the broker</source>
-      <translation>Подключиться к брокеру/отключиться от брокера</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to connect to/disconnect from the broker</source>
+        <translation>Подключиться к брокеру/отключиться от брокера</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select to clear a previously set last will message</source>
-      <translation>Разрешить очищать установленные ранее сообщения 'последней воли'</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select to clear a previously set last will message</source>
+        <translation>Разрешить очищать установленные ранее сообщения &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Pub/Sub</source>
-      <translation>Подписки/Публикации</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Pub/Sub</source>
+        <translation>Подписки/Публикации</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1022" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Subscribe</source>
-      <translation>Подписаться</translation>
+        <location filename="../MqttMonitorWidget.py" line="1101"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Subscribe</source>
+        <translation>Подписаться</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Topic:</source>
-      <translation>Тема:</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Topic:</source>
+        <translation>Тема:</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the topic</source>
-      <translation>Введите тему</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the topic</source>
+        <translation>Введите тему</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>QoS:</source>
-      <translation>QoS:</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>QoS:</source>
+        <translation>QoS:</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the desired QoS value</source>
-      <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the desired QoS value</source>
+        <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to subscribe to the given topic</source>
-      <translation>Подписаться на данную тему</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to subscribe to the given topic</source>
+        <translation>Подписаться на данную тему</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to edit the user properties</source>
-      <translation>Разрешить редактировать пользовательские свойства</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to edit the user properties</source>
+        <translation>Разрешить редактировать пользовательские свойства</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1018" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Unsubscribe</source>
-      <translation>Отписаться</translation>
+        <location filename="../MqttMonitorWidget.py" line="1096"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Unsubscribe</source>
+        <translation>Отписаться</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select the topic to unsubscribe</source>
-      <translation>Выберите тему для отписки</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select the topic to unsubscribe</source>
+        <translation>Выберите тему для отписки</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to unsubscribe the selected topic</source>
-      <translation>Отписаться от выбранной темы</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to unsubscribe the selected topic</source>
+        <translation>Отписаться от выбранной темы</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Publish</source>
-      <translation>Опубликовать</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Publish</source>
+        <translation>Опубликовать</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the topic to publish to</source>
-      <translation>Введите тему для публикации</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the topic to publish to</source>
+        <translation>Введите тему для публикации</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select to retain the published message</source>
-      <translation>Разрешить удерживать опубликованное сообщение</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select to retain the published message</source>
+        <translation>Разрешить удерживать опубликованное сообщение</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Retain</source>
-      <translation>Удерживать</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Retain</source>
+        <translation>Удерживать</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the string data to be sent</source>
-      <translation>Введите строку данных для отправки</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the string data to be sent</source>
+        <translation>Введите строку данных для отправки</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Payload File:</source>
-      <translation>Файл полезной нагрузки:</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Payload File:</source>
+        <translation>Файл полезной нагрузки:</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Enter the full path to a file containing the message payload</source>
-      <translation>Введите полный путь к файлу, содержащему полезную нагрузку сообщения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Enter the full path to a file containing the message payload</source>
+        <translation>Введите полный путь к файлу, содержащему полезную нагрузку сообщения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to clear the publish data</source>
-      <translation>Очистить данные публикации</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to clear the publish data</source>
+        <translation>Очистить данные публикации</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="284" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Clear</source>
-      <translation>Очистить</translation>
+        <location filename="../MqttMonitorWidget.py" line="346"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Clear</source>
+        <translation>Очистить</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to clear the retained messages of the selected topic</source>
-      <translation>Разрешить очищать сохраненные сообщения выбранной темы</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to clear the retained messages of the selected topic</source>
+        <translation>Разрешить очищать сохраненные сообщения выбранной темы</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Clear Retained</source>
-      <translation>Очищать сохраненные</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Clear Retained</source>
+        <translation>Очищать сохраненные</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select to clear the publish data after the message was published</source>
-      <translation>Разрешить очищать данные публикации после опубликования сообщения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select to clear the publish data after the message was published</source>
+        <translation>Разрешить очищать данные публикации после опубликования сообщения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Clear when sent</source>
-      <translation>Очищать после отправки</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Clear when sent</source>
+        <translation>Очищать после отправки</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Properties</source>
-      <translation>Свойства</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Properties</source>
+        <translation>Свойства</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>MQTT V5 Properties</source>
-      <translation>Свойства MQTT вер. 5</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>MQTT V5 Properties</source>
+        <translation>Свойства MQTT вер. 5</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Messages</source>
-      <translation>Сообщения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Messages</source>
+        <translation>Сообщения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to save the received messages to a file</source>
-      <translation>Сохранить полученные сообщения в файл</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to save the received messages to a file</source>
+        <translation>Сохранить полученные сообщения в файл</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Save</source>
-      <translation>Сохранить</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Save</source>
+        <translation>Сохранить</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to clear the list of received messages</source>
-      <translation>Очистить список полученных сообщений</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to clear the list of received messages</source>
+        <translation>Очистить список полученных сообщений</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select to scroll to the most recently received message</source>
-      <translation>Разрешить прокручивать список до последнего полученного сообщения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select to scroll to the most recently received message</source>
+        <translation>Разрешить прокручивать список до последнего полученного сообщения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Follow received messages</source>
-      <translation>Следовать за получаемыми сообщениями</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Follow received messages</source>
+        <translation>Следовать за получаемыми сообщениями</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Status</source>
-      <translation>Статус</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Status</source>
+        <translation>Статус</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1024" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to activate the status display</source>
-      <translation>Активировать отображение статуса</translation>
+        <location filename="../MqttMonitorWidget.py" line="1103"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to activate the status display</source>
+        <translation>Активировать отображение статуса</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;Broker&lt;/b&gt;</source>
-      <translation>&lt;b&gt;Брокер&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;Broker&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Брокер&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Version</source>
-      <translation>Версия</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Version</source>
+        <translation>Версия</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>-</source>
-      <translation>-</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>-</source>
+        <translation>-</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Timestamp</source>
-      <translation>Метки времени</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Timestamp</source>
+        <translation>Метки времени</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Uptime</source>
-      <translation>Время работы</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Uptime</source>
+        <translation>Время работы</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Subscriptions</source>
-      <translation>Подписки</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Subscriptions</source>
+        <translation>Подписки</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;Clients&lt;/b&gt;</source>
-      <translation>&lt;b&gt;Клиенты&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;Clients&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Клиенты&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Connected</source>
-      <translation>Подключено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Connected</source>
+        <translation>Подключено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Disconnected</source>
-      <translation>Отключено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Disconnected</source>
+        <translation>Отключено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Expired</source>
-      <translation>Завершено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Expired</source>
+        <translation>Завершено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Maximum</source>
-      <translation>Максимум</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Maximum</source>
+        <translation>Максимум</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Total</source>
-      <translation>Всего</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Total</source>
+        <translation>Всего</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;Messages&lt;/b&gt;</source>
-      <translation>&lt;b&gt;Сообщения&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;Messages&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Сообщения&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Sent</source>
-      <translation>Отправлено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Sent</source>
+        <translation>Отправлено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Received</source>
-      <translation>Получено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Received</source>
+        <translation>Получено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Stored</source>
-      <translation>Сохранено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Stored</source>
+        <translation>Сохранено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Inflight</source>
-      <translation>В полете</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Inflight</source>
+        <translation>В полете</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Retained</source>
-      <translation>Удержано</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Retained</source>
+        <translation>Удержано</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
-      <translation>&lt;b&gt;PUBLISH сообщения&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
+        <translation>&lt;b&gt;PUBLISH сообщения&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Dropped</source>
-      <translation>Сброшено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Dropped</source>
+        <translation>Сброшено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
-      <translation>&lt;b&gt;Трафик&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Трафик&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Bytes Sent</source>
-      <translation>Байт отправлено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Bytes Sent</source>
+        <translation>Байт отправлено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Bytes Received</source>
-      <translation>Байт принято</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Bytes Received</source>
+        <translation>Байт принято</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>&lt;b&gt;Load&lt;/b&gt; (1 min / 5 min / 15 min)</source>
-      <translation>&lt;b&gt;Загрузка&lt;/b&gt; (1 мин / 5 мин / 15 мин)</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>&lt;b&gt;Load&lt;/b&gt; (1 min / 5 min / 15 min)</source>
+        <translation>&lt;b&gt;Загрузка&lt;/b&gt; (1 мин / 5 мин / 15 мин)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>- / - / -</source>
-      <translation>- / - / -</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>- / - / -</source>
+        <translation>- / - / -</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Messages Sent</source>
-      <translation>Сообщений отправлено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Messages Sent</source>
+        <translation>Сообщений отправлено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Messages Received</source>
-      <translation>Сообщений принято</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Messages Received</source>
+        <translation>Сообщений принято</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>PUBLISH Sent</source>
-      <translation>PUBLISH отправлено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>PUBLISH Sent</source>
+        <translation>PUBLISH отправлено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>PUBLISH Received</source>
-      <translation>PUBLISH принято</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>PUBLISH Received</source>
+        <translation>PUBLISH принято</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>PUBLISH Dropped</source>
-      <translation>PUBLISH сброшено</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>PUBLISH Dropped</source>
+        <translation>PUBLISH сброшено</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Connections</source>
-      <translation>Соединения</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Connections</source>
+        <translation>Соединения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Sockets</source>
-      <translation>Сокеты</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Sockets</source>
+        <translation>Сокеты</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Log</source>
-      <translation>Журнал</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Log</source>
+        <translation>Журнал</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Max. Log Level:</source>
-      <translation>Максимальный уровень журнала:</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Max. Log Level:</source>
+        <translation>Максимальный уровень журнала:</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select the maximum log level to show</source>
-      <translation>Выберите максимальный уровень журнала для показа</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select the maximum log level to show</source>
+        <translation>Выберите максимальный уровень журнала для показа</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to save the received log messages to a file</source>
-      <translation>Сохранить полученные сообщения журнала в файл</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to save the received log messages to a file</source>
+        <translation>Сохранить полученные сообщения журнала в файл</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Press to clear the list of received log messages</source>
-      <translation>Очистить список принятых сообщений журнала</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Press to clear the list of received log messages</source>
+        <translation>Очистить список принятых сообщений журнала</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Select to scroll to the most recently received log message</source>
-      <translation>Разрешить прокручивать список до последнего полученного сообщения журнала</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Select to scroll to the most recently received log message</source>
+        <translation>Разрешить прокручивать список до последнего полученного сообщения журнала</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.ui" line="0" />
-      <source>Follow received log messages</source>
-      <translation>Следовать за получаемыми сообщениями</translation>
+        <location filename="../MqttMonitorWidget.ui" line="0"/>
+        <source>Follow received log messages</source>
+        <translation>Следовать за получаемыми сообщениями</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="76" />
-      <source>All Files (*)</source>
-      <translation>Все файлы (*)</translation>
+        <location filename="../MqttMonitorWidget.py" line="93"/>
+        <source>All Files (*)</source>
+        <translation>Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="276" />
-      <source>Copy</source>
-      <translation>Копировать</translation>
+        <location filename="../MqttMonitorWidget.py" line="334"/>
+        <source>Copy</source>
+        <translation>Копировать</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="280" />
-      <source>Select All</source>
-      <translation>Выбрать все</translation>
+        <location filename="../MqttMonitorWidget.py" line="340"/>
+        <source>Select All</source>
+        <translation>Выбрать все</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="328" />
-      <source>{0} - Session still present</source>
-      <translation>{0} - Сеанс установлен</translation>
+        <location filename="../MqttMonitorWidget.py" line="391"/>
+        <source>{0} - Session still present</source>
+        <translation>{0} - Сеанс установлен</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="364" />
-      <source>Connection timed out</source>
-      <translation>Время ожидания соединения истекло</translation>
+        <location filename="../MqttMonitorWidget.py" line="429"/>
+        <source>Connection timed out</source>
+        <translation>Время ожидания соединения истекло</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="391" />
-      <source>Connection to Broker shut down cleanly.</source>
-      <translation>Соединение с брокером закрыто. Очистка произведена.</translation>
+        <location filename="../MqttMonitorWidget.py" line="457"/>
+        <source>Connection to Broker shut down cleanly.</source>
+        <translation>Соединение с брокером закрыто. Очистка произведена.</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="448" />
-      <source>{0}: {1}</source>
-      <translation>{0}: {1}</translation>
+        <location filename="../MqttMonitorWidget.py" line="517"/>
+        <source>{0}: {1}</source>
+        <translation>{0}: {1}</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="671" />
-      <source>SUBSCRIBE: User Properties for '{0}'</source>
-      <translation>SUBSCRIBE: Пользовательские свойства '{0}'</translation>
+        <location filename="../MqttMonitorWidget.py" line="737"/>
+        <source>SUBSCRIBE: User Properties for &apos;{0}&apos;</source>
+        <translation>SUBSCRIBE: Пользовательские свойства &apos;{0}&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="697" />
-      <source>Subscribe to Topic</source>
-      <translation>Подписаться на тему</translation>
+        <location filename="../MqttMonitorWidget.py" line="763"/>
+        <source>Subscribe to Topic</source>
+        <translation>Подписаться на тему</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="698" />
-      <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
-      <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation>
+        <location filename="../MqttMonitorWidget.py" line="764"/>
+        <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
+        <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="719" />
-      <source>UNSUBSCRIBE: User Properties for '{0}'</source>
-      <translation>UNSUBSCRIBE: Пользовательские свойства '{0}'</translation>
+        <location filename="../MqttMonitorWidget.py" line="788"/>
+        <source>UNSUBSCRIBE: User Properties for &apos;{0}&apos;</source>
+        <translation>UNSUBSCRIBE: Пользовательские свойства &apos;{0}&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="759" />
-      <source>PUBLISH: User Properties for '{0}'</source>
-      <translation>PUBLISH: Пользовательские свойства '{0}'</translation>
+        <location filename="../MqttMonitorWidget.py" line="826"/>
+        <source>PUBLISH: User Properties for &apos;{0}&apos;</source>
+        <translation>PUBLISH: Пользовательские свойства &apos;{0}&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="795" />
-      <source>Read Payload from File</source>
-      <translation>Чтение полезной нагрузки из файла</translation>
+        <location filename="../MqttMonitorWidget.py" line="862"/>
+        <source>Read Payload from File</source>
+        <translation>Чтение полезной нагрузки из файла</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="796" />
-      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Не удалось прочитать файл &lt;b&gt;{0}&lt;/b&gt;. Отмена...&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
+        <location filename="../MqttMonitorWidget.py" line="863"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Не удалось прочитать файл &lt;b&gt;{0}&lt;/b&gt;. Отмена...&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="943" />
-      <location filename="../MqttMonitorWidget.py" line="929" />
-      <location filename="../MqttMonitorWidget.py" line="911" />
-      <source>Save Messages</source>
-      <translation>Сохранить сообщения</translation>
+        <location filename="../MqttMonitorWidget.py" line="1014"/>
+        <location filename="../MqttMonitorWidget.py" line="998"/>
+        <location filename="../MqttMonitorWidget.py" line="979"/>
+        <source>Save Messages</source>
+        <translation>Сохранить сообщения</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="913" />
-      <source>Messages Files (*.txt);;All Files (*)</source>
-      <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation>
+        <location filename="../MqttMonitorWidget.py" line="981"/>
+        <source>Messages Files (*.txt);;All Files (*)</source>
+        <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="986" />
-      <location filename="../MqttMonitorWidget.py" line="930" />
-      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; уже существует. Переписать его?&lt;/p&gt;</translation>
+        <location filename="../MqttMonitorWidget.py" line="1060"/>
+        <location filename="../MqttMonitorWidget.py" line="999"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; уже существует. Переписать его?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1000" />
-      <location filename="../MqttMonitorWidget.py" line="944" />
-      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; не может быть записан.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
+        <location filename="../MqttMonitorWidget.py" line="1076"/>
+        <location filename="../MqttMonitorWidget.py" line="1015"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; не может быть записан.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="999" />
-      <location filename="../MqttMonitorWidget.py" line="985" />
-      <location filename="../MqttMonitorWidget.py" line="967" />
-      <source>Save Log Messages</source>
-      <translation>Сохранить сообщения журнала</translation>
+        <location filename="../MqttMonitorWidget.py" line="1075"/>
+        <location filename="../MqttMonitorWidget.py" line="1059"/>
+        <location filename="../MqttMonitorWidget.py" line="1040"/>
+        <source>Save Log Messages</source>
+        <translation>Сохранить сообщения журнала</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="969" />
-      <source>Log Files (*.log);;All Files (*)</source>
-      <translation>Файлы журнала (*.log);;Все файлы (*)</translation>
+        <location filename="../MqttMonitorWidget.py" line="1042"/>
+        <source>Log Files (*.log);;All Files (*)</source>
+        <translation>Файлы журнала (*.log);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1020" />
-      <source>Press to deactivate the status display</source>
-      <translation>Деактивировать отображение статуса</translation>
+        <location filename="../MqttMonitorWidget.py" line="1098"/>
+        <source>Press to deactivate the status display</source>
+        <translation>Деактивировать отображение статуса</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1189" />
-      <source>QoS: {0}
+        <location filename="../MqttMonitorWidget.py" line="1265"/>
+        <source>QoS: {0}
 </source>
-      <translation>QoS: {0}
+        <translation>QoS: {0}
 </translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1193" />
-      <source>Retained Message
+        <location filename="../MqttMonitorWidget.py" line="1269"/>
+        <source>Retained Message
 </source>
-      <translation>Сохраненное сообщение
+        <translation>Сохраненное сообщение
 </translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1198" />
-      <source>Properties:
+        <location filename="../MqttMonitorWidget.py" line="1273"/>
+        <source>Properties:
 </source>
-      <translation>Свойства:
+        <translation>Свойства:
 </translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1202" />
-      <source>{0}: {1}
+        <location filename="../MqttMonitorWidget.py" line="1277"/>
+        <source>{0}: {1}
 </source>
-      <comment>property name, property value</comment>
-      <translation>{0}: {1}
+        <comment>property name, property value</comment>
+        <translation>{0}: {1}
 </translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1207" />
-      <source>Message:
+        <location filename="../MqttMonitorWidget.py" line="1283"/>
+        <source>Message:
 </source>
-      <translation>Сообщение:
+        <translation>Сообщение:
 </translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1214" />
-      <source>&lt;empty&gt;</source>
-      <translation>&lt;empty&gt;</translation>
+        <location filename="../MqttMonitorWidget.py" line="1290"/>
+        <source>&lt;empty&gt;</source>
+        <translation>&lt;empty&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1496"/>
+        <location filename="../MqttMonitorWidget.py" line="1447"/>
+        <source>Connecting to {0}:{1} ...</source>
+        <translation>Соединение с {0}:{1} ...</translation>
     </message>
     <message>
-      <location filename="../MqttMonitorWidget.py" line="1382" />
-      <location filename="../MqttMonitorWidget.py" line="1336" />
-      <source>Connecting to {0}:{1} ...</source>
-      <translation>Соединение с {0}:{1} ...</translation>
+        <location filename="../MqttMonitorWidget.py" line="1641"/>
+        <source>{0} Bytes</source>
+        <translation>{0} байтов</translation>
     </message>
-  </context>
-  <context>
-    <name>MqttPage</name>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>&lt;b&gt;Configure MQTT Monitor&lt;/b&gt;</source>
-      <translation>&lt;b&gt;Настройка MQTT Monitor&lt;/b&gt;</translation>
+        <location filename="../MqttMonitorWidget.py" line="1646"/>
+        <source>{0} KiB</source>
+        <translation>{0} KiB</translation>
+    </message>
+    <message>
+        <location filename="../MqttMonitorWidget.py" line="1651"/>
+        <source>{0} MiB</source>
+        <translation>{0} MiB</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Default MQTT Protocol</source>
-      <translation>Протокол MQTT по умолчанию</translation>
+        <location filename="../MqttMonitorWidget.py" line="1656"/>
+        <source>{0} GiB</source>
+        <translation>{0} GiB</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Select to use the MQTT 3.1 protocol</source>
-      <translation>Выбор протокола MQTT 3.1</translation>
+        <location filename="../MqttMonitorWidget.py" line="1661"/>
+        <source>{0} TiB</source>
+        <translation>{0} TiB</translation>
+    </message>
+</context>
+<context>
+    <name>MqttPage</name>
+    <message>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>&lt;b&gt;Configure MQTT Monitor&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Настройка MQTT Monitor&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>v 3.1</source>
-      <translation>вер. 3.1</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Default MQTT Protocol</source>
+        <translation>Протокол MQTT по умолчанию</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Select to use the MQTT 3.1.1 protocol</source>
-      <translation>Выбор протокола MQTT 3.1.1</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Select to use the MQTT 3.1 protocol</source>
+        <translation>Выбор протокола MQTT 3.1</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>v 3.1.1</source>
-      <translation>вер. 3.1.1</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>v 3.1</source>
+        <translation>вер. 3.1</translation>
+    </message>
+    <message>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Select to use the MQTT 3.1.1 protocol</source>
+        <translation>Выбор протокола MQTT 3.1.1</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Select to use the MQTT 5.0 protocol</source>
-      <translation>Выбор протокола MQTT 5.0</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>v 3.1.1</source>
+        <translation>вер. 3.1.1</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>v 5.0</source>
-      <translation>вер. 5.0</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Select to use the MQTT 5.0 protocol</source>
+        <translation>Выбор протокола MQTT 5.0</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Recent Brokers</source>
-      <translation>Недавние брокеры</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>v 5.0</source>
+        <translation>вер. 5.0</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Number of recent brokers:</source>
-      <translation>Количество недавних брокеров:</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Recent Brokers</source>
+        <translation>Недавние брокеры</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Enter the number of recent brokers to remember</source>
-      <translation>Задайте количество брокеров для запоминания</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Number of recent brokers:</source>
+        <translation>Количество недавних брокеров:</translation>
+    </message>
+    <message>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Enter the number of recent brokers to remember</source>
+        <translation>Задайте количество брокеров для запоминания</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Recent Topics</source>
-      <translation>Недавние темы</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Recent Topics</source>
+        <translation>Недавние темы</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Number of recent topics:</source>
-      <translation>Количество недавних тем:</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Number of recent topics:</source>
+        <translation>Количество недавних тем:</translation>
     </message>
     <message>
-      <location filename="../ConfigurationPage/MqttPage.ui" line="0" />
-      <source>Enter the number of recent topics to remember</source>
-      <translation>Задайте количество тем для запоминания</translation>
+        <location filename="../ConfigurationPage/MqttPage.ui" line="0"/>
+        <source>Enter the number of recent topics to remember</source>
+        <translation>Задайте количество тем для запоминания</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttReasonCodeNames</name>
     <message>
-      <location filename="../MqttReasonCodes.py" line="16" />
-      <source>Success</source>
-      <translation>Успешно</translation>
+        <location filename="../MqttReasonCodes.py" line="15"/>
+        <source>Success</source>
+        <translation>Успешно</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="21" />
-      <source>Normal disconnection</source>
-      <translation>Нормальное разъединение</translation>
+        <location filename="../MqttReasonCodes.py" line="24"/>
+        <source>Normal disconnection</source>
+        <translation>Нормальное разъединение</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="24" />
-      <source>Granted QoS 0</source>
-      <translation>Предоставлен QoS 0</translation>
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="28" />
-      <source>Granted QoS 1</source>
-      <translation>Предоставлен QoS 1</translation>
+        <location filename="../MqttReasonCodes.py" line="27"/>
+        <source>Granted QoS 0</source>
+        <translation>Предоставлен QoS 0</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="32" />
-      <source>Granted QoS 2</source>
-      <translation>Предоставлен QoS 2</translation>
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="36" />
-      <source>Disconnect with will message</source>
-      <translation>Отключить посредством сообщения 'последней воли'</translation>
+        <location filename="../MqttReasonCodes.py" line="32"/>
+        <source>Granted QoS 1</source>
+        <translation>Предоставлен QoS 1</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="40" />
-      <source>No matching subscribers</source>
-      <translation>Нет соответствующих подписчиков</translation>
+        <location filename="../MqttReasonCodes.py" line="37"/>
+        <source>Granted QoS 2</source>
+        <translation>Предоставлен QoS 2</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="44" />
-      <source>No subscription found</source>
-      <translation>Подписка не найдена</translation>
+        <location filename="../MqttReasonCodes.py" line="42"/>
+        <source>Disconnect with will message</source>
+        <translation>Отключить посредством сообщения &apos;последней воли&apos;</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="48" />
-      <source>Continue authentication</source>
-      <translation>Продолжить аутентификацию</translation>
+        <location filename="../MqttReasonCodes.py" line="47"/>
+        <source>No matching subscribers</source>
+        <translation>Нет соответствующих подписчиков</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="52" />
-      <source>Re-authenticate</source>
-      <translation>Повторить аутентификацию</translation>
+        <location filename="../MqttReasonCodes.py" line="53"/>
+        <source>No subscription found</source>
+        <translation>Подписка не найдена</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="56" />
-      <source>Unspecified error</source>
-      <translation>Неопределенная ошибка</translation>
+        <location filename="../MqttReasonCodes.py" line="58"/>
+        <source>Continue authentication</source>
+        <translation>Продолжить аутентификацию</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="62" />
-      <source>Malformed packet</source>
-      <translation>Плохо сформированный пакет</translation>
+        <location filename="../MqttReasonCodes.py" line="63"/>
+        <source>Re-authenticate</source>
+        <translation>Повторить аутентификацию</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="66" />
-      <source>Protocol error</source>
-      <translation>Ошибка протокола</translation>
+        <location filename="../MqttReasonCodes.py" line="68"/>
+        <source>Unspecified error</source>
+        <translation>Неопределенная ошибка</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="70" />
-      <source>Implementation specific error</source>
-      <translation>Ошибка конкретной реализации</translation>
+        <location filename="../MqttReasonCodes.py" line="78"/>
+        <source>Malformed packet</source>
+        <translation>Плохо сформированный пакет</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="76" />
-      <source>Unsupported protocol version</source>
-      <translation>Неподдерживаемая версия протокола</translation>
+        <location filename="../MqttReasonCodes.py" line="84"/>
+        <source>Protocol error</source>
+        <translation>Ошибка протокола</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="80" />
-      <source>Client identifier not valid</source>
-      <translation>Недействительный идентификатор клиента</translation>
+        <location filename="../MqttReasonCodes.py" line="90"/>
+        <source>Implementation specific error</source>
+        <translation>Ошибка конкретной реализации</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="84" />
-      <source>Bad user name or password</source>
-      <translation>Неверное имя пользователя или пароль</translation>
+        <location filename="../MqttReasonCodes.py" line="102"/>
+        <source>Unsupported protocol version</source>
+        <translation>Неподдерживаемая версия протокола</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="88" />
-      <source>Not authorized</source>
-      <translation>Не авторизован</translation>
-    </message>
-    <message>
-      <location filename="../MqttReasonCodes.py" line="94" />
-      <source>Server unavailable</source>
-      <translation>Сервер недоступен</translation>
+        <location filename="../MqttReasonCodes.py" line="107"/>
+        <source>Client identifier not valid</source>
+        <translation>Недействительный идентификатор клиента</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="98" />
-      <source>Server busy</source>
-      <translation>Сервер занят</translation>
+        <location filename="../MqttReasonCodes.py" line="112"/>
+        <source>Bad user name or password</source>
+        <translation>Неверное имя пользователя или пароль</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="102" />
-      <source>Banned</source>
-      <translation>Запрещено</translation>
+        <location filename="../MqttReasonCodes.py" line="117"/>
+        <source>Not authorized</source>
+        <translation>Не авторизован</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="106" />
-      <source>Server shutting down</source>
-      <translation>Выключение сервера</translation>
+        <location filename="../MqttReasonCodes.py" line="127"/>
+        <source>Server unavailable</source>
+        <translation>Сервер недоступен</translation>
+    </message>
+    <message>
+        <location filename="../MqttReasonCodes.py" line="132"/>
+        <source>Server busy</source>
+        <translation>Сервер занят</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="110" />
-      <source>Bad authentication method</source>
-      <translation>Неверный метод аутентификации</translation>
+        <location filename="../MqttReasonCodes.py" line="138"/>
+        <source>Banned</source>
+        <translation>Запрещено</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="114" />
-      <source>Keep alive timeout</source>
-      <translation>Период сохранения активности</translation>
+        <location filename="../MqttReasonCodes.py" line="143"/>
+        <source>Server shutting down</source>
+        <translation>Выключение сервера</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="118" />
-      <source>Session taken over</source>
-      <translation>Сессия завершена</translation>
+        <location filename="../MqttReasonCodes.py" line="148"/>
+        <source>Bad authentication method</source>
+        <translation>Неверный метод аутентификации</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="122" />
-      <source>Topic filter invalid</source>
-      <translation>Неверный фильтр тем</translation>
+        <location filename="../MqttReasonCodes.py" line="153"/>
+        <source>Keep alive timeout</source>
+        <translation>Период сохранения активности</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="127" />
-      <source>Topic name invalid</source>
-      <translation>Недопустимое имя темы</translation>
+        <location filename="../MqttReasonCodes.py" line="158"/>
+        <source>Session taken over</source>
+        <translation>Сессия завершена</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="132" />
-      <source>Packet identifier in use</source>
-      <translation>Идентификатор пакета используется</translation>
+        <location filename="../MqttReasonCodes.py" line="163"/>
+        <source>Topic filter invalid</source>
+        <translation>Неверный фильтр тем</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="137" />
-      <source>Packet identifier not found</source>
-      <translation>Идентификатор пакета не найден</translation>
+        <location filename="../MqttReasonCodes.py" line="170"/>
+        <source>Topic name invalid</source>
+        <translation>Недопустимое имя темы</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="141" />
-      <source>Receive maximum exceeded</source>
-      <translation>Превышено максимальное количество</translation>
+        <location filename="../MqttReasonCodes.py" line="178"/>
+        <source>Packet identifier in use</source>
+        <translation>Идентификатор пакета используется</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="145" />
-      <source>Topic alias invalid</source>
-      <translation>Недействительный псевдоним темы</translation>
+        <location filename="../MqttReasonCodes.py" line="186"/>
+        <source>Packet identifier not found</source>
+        <translation>Идентификатор пакета не найден</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="149" />
-      <source>Packet too large</source>
-      <translation>Слишком большой пакет</translation>
+        <location filename="../MqttReasonCodes.py" line="191"/>
+        <source>Receive maximum exceeded</source>
+        <translation>Превышено максимальное количество</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="153" />
-      <source>Message rate too high</source>
-      <translation>Скорость получения сообщений слишком высока</translation>
+        <location filename="../MqttReasonCodes.py" line="196"/>
+        <source>Topic alias invalid</source>
+        <translation>Недействительный псевдоним темы</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="157" />
-      <source>Quota exceeded</source>
-      <translation>Превышена квота</translation>
+        <location filename="../MqttReasonCodes.py" line="201"/>
+        <source>Packet too large</source>
+        <translation>Слишком большой пакет</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="163" />
-      <source>Administrative action</source>
-      <translation>Административное действие</translation>
+        <location filename="../MqttReasonCodes.py" line="207"/>
+        <source>Message rate too high</source>
+        <translation>Скорость получения сообщений слишком высока</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="167" />
-      <source>Payload format invalid</source>
-      <translation>Неверный формат полезной нагрузки</translation>
+        <location filename="../MqttReasonCodes.py" line="212"/>
+        <source>Quota exceeded</source>
+        <translation>Превышена квота</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="171" />
-      <source>Retain not supported</source>
-      <translation>Сохранение не поддерживается</translation>
+        <location filename="../MqttReasonCodes.py" line="221"/>
+        <source>Administrative action</source>
+        <translation>Административное действие</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="175" />
-      <source>QoS not supported</source>
-      <translation>QoS не поддерживается</translation>
+        <location filename="../MqttReasonCodes.py" line="226"/>
+        <source>Payload format invalid</source>
+        <translation>Неверный формат полезной нагрузки</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="179" />
-      <source>Use another server</source>
-      <translation>Используйте другой сервер</translation>
+        <location filename="../MqttReasonCodes.py" line="233"/>
+        <source>Retain not supported</source>
+        <translation>Сохранение не поддерживается</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="183" />
-      <source>Server moved</source>
-      <translation>Сервер перемещен</translation>
+        <location filename="../MqttReasonCodes.py" line="239"/>
+        <source>QoS not supported</source>
+        <translation>QoS не поддерживается</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="187" />
-      <source>Shared subscription not supported</source>
-      <translation>Общая подписка не поддерживается</translation>
+        <location filename="../MqttReasonCodes.py" line="245"/>
+        <source>Use another server</source>
+        <translation>Используйте другой сервер</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="191" />
-      <source>Connection rate exceeded</source>
-      <translation>Превышена скорость соединения</translation>
+        <location filename="../MqttReasonCodes.py" line="251"/>
+        <source>Server moved</source>
+        <translation>Сервер перемещен</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="195" />
-      <source>Maximum connect time</source>
-      <translation>Максимальное время соединения</translation>
+        <location filename="../MqttReasonCodes.py" line="257"/>
+        <source>Shared subscription not supported</source>
+        <translation>Общая подписка не поддерживается</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="199" />
-      <source>Subscription identifiers not supported</source>
-      <translation>Идентификаторы подписки не поддерживаются</translation>
+        <location filename="../MqttReasonCodes.py" line="262"/>
+        <source>Connection rate exceeded</source>
+        <translation>Превышена скорость соединения</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="203" />
-      <source>Wildcard subscription not supported</source>
-      <translation>Подписка с подстановочными знаками не поддерживается</translation>
+        <location filename="../MqttReasonCodes.py" line="268"/>
+        <source>Maximum connect time</source>
+        <translation>Максимальное время соединения</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="222" />
-      <source>Unknown result code ({0})</source>
-      <translation>Неизвестный код результата ({0})</translation>
+        <location filename="../MqttReasonCodes.py" line="273"/>
+        <source>Subscription identifiers not supported</source>
+        <translation>Идентификаторы подписки не поддерживаются</translation>
+    </message>
+    <message>
+        <location filename="../MqttReasonCodes.py" line="278"/>
+        <source>Wildcard subscription not supported</source>
+        <translation>Подписка с подстановочными знаками не поддерживается</translation>
     </message>
     <message>
-      <location filename="../MqttReasonCodes.py" line="229" />
-      <source>Unknown result code ({0}) for packet type '{1}'</source>
-      <translation>Неизвестный код результата ({0}) для типа пакета '{1}'</translation>
+        <location filename="../MqttReasonCodes.py" line="298"/>
+        <source>Unknown result code ({0})</source>
+        <translation>Неизвестный код результата ({0})</translation>
     </message>
-  </context>
-  <context>
+    <message>
+        <location filename="../MqttReasonCodes.py" line="307"/>
+        <source>Unknown result code ({0}) for packet type &apos;{1}&apos;</source>
+        <translation>Неизвестный код результата ({0}) для типа пакета &apos;{1}&apos;</translation>
+    </message>
+</context>
+<context>
     <name>MqttUserPropertiesEditor</name>
     <message>
-      <location filename="../MqttUserPropertiesEditor.ui" line="0" />
-      <source>User Properties</source>
-      <translation>Пользовательские свойства</translation>
+        <location filename="../MqttUserPropertiesEditor.ui" line="0"/>
+        <source>User Properties</source>
+        <translation>Пользовательские свойства</translation>
     </message>
     <message>
-      <location filename="../MqttUserPropertiesEditor.ui" line="0" />
-      <source>Key</source>
-      <translation>Ключ</translation>
-    </message>
-    <message>
-      <location filename="../MqttUserPropertiesEditor.ui" line="0" />
-      <source>Value</source>
-      <translation>Значение</translation>
+        <location filename="../MqttUserPropertiesEditor.ui" line="0"/>
+        <source>Key</source>
+        <translation>Ключ</translation>
     </message>
     <message>
-      <location filename="../MqttUserPropertiesEditor.ui" line="0" />
-      <source>Press to add a new empty row</source>
-      <translation>Добавить новую пустую строку</translation>
+        <location filename="../MqttUserPropertiesEditor.ui" line="0"/>
+        <source>Value</source>
+        <translation>Значение</translation>
     </message>
     <message>
-      <location filename="../MqttUserPropertiesEditor.ui" line="0" />
-      <source>Press to delete the selected properties</source>
-      <translation>Удалить выбранные свойства</translation>
+        <location filename="../MqttUserPropertiesEditor.ui" line="0"/>
+        <source>Press to add a new empty row</source>
+        <translation>Добавить новую пустую строку</translation>
+    </message>
+    <message>
+        <location filename="../MqttUserPropertiesEditor.ui" line="0"/>
+        <source>Press to delete the selected properties</source>
+        <translation>Удалить выбранные свойства</translation>
     </message>
     <message>
-      <location filename="../MqttUserPropertiesEditor.ui" line="0" />
-      <source>Press to delete all properties</source>
-      <translation>Удалить все свойства</translation>
+        <location filename="../MqttUserPropertiesEditor.ui" line="0"/>
+        <source>Press to delete all properties</source>
+        <translation>Удалить все свойства</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>MqttUserPropertiesEditorDialog</name>
     <message>
-      <location filename="../MqttUserPropertiesEditor.py" line="134" />
-      <source>User Properties</source>
-      <translation>Пользовательские свойства</translation>
+        <location filename="../MqttUserPropertiesEditor.py" line="142"/>
+        <source>User Properties</source>
+        <translation>Пользовательские свойства</translation>
     </message>
-  </context>
+</context>
 </TS>
--- a/PluginMqttMonitor.epj	Sat Dec 31 16:27:45 2022 +0100
+++ b/PluginMqttMonitor.epj	Tue Jul 04 15:13:37 2023 +0200
@@ -1,7 +1,7 @@
 {
   "header": {
     "comment": "eric project file for project PluginMqttMonitor",
-    "copyright": "Copyright (C) 2022 Detlev Offenbach, detlev@die-offenbachs.de"
+    "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de"
   },
   "project": {
     "AUTHOR": "Detlev Offenbach",
@@ -11,10 +11,14 @@
           "AllowStarArgAny": false,
           "AllowUntypedDefs": false,
           "AllowUntypedNested": false,
+          "CheckFutureAnnotations": false,
           "DispatchDecorators": [
             "singledispatch",
             "singledispatchmethod"
           ],
+          "ExemptedTypingSymbols": [
+            ""
+          ],
           "ForceFutureAnnotations": false,
           "MaximumComplexity": 3,
           "MaximumLength": 7,
@@ -62,15 +66,19 @@
         "CopyrightAuthor": "",
         "CopyrightMinFileSize": 0,
         "DocstringType": "eric_black",
-        "EnabledCheckerCategories": "C, D, E, M, N, S, Y, W",
-        "ExcludeFiles": "*/Ui_*.py, */*_rc.py",
-        "ExcludeMessages": "C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,W293,W503,Y119,Y401,Y402",
+        "EnabledCheckerCategories": "C, D, E, I, M, NO, N, Y, U, W",
+        "ExcludeFiles": "*/Ui_*.py",
+        "ExcludeMessages": "C101,E203,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,W293,W503,Y119,Y401,Y402",
         "FixCodes": "",
         "FixIssues": false,
         "FutureChecker": "",
         "HangClosing": false,
         "ImportsChecker": {
-          "ApplicationPackageNames": [],
+          "ApplicationPackageNames": [
+            "MqttMonitor",
+            "PluginMqttMonitor",
+            "eric7"
+          ],
           "BanRelativeImports": "",
           "BannedModules": []
         },
@@ -80,6 +88,18 @@
         "MaxCodeComplexity": 10,
         "MaxDocLineLength": 88,
         "MaxLineLength": 88,
+        "NameOrderChecker": {
+          "ApplicationPackageNames": [
+            "MqttMonitor",
+            "PluginMqttMonitor",
+            "eric7"
+          ],
+          "CombinedAsImports": true,
+          "SortCaseSensitive": false,
+          "SortFromFirst": false,
+          "SortIgnoringStyle": false,
+          "SortOrder": "natural"
+        },
         "NoFixCodes": "E501",
         "RepeatMessages": true,
         "SecurityChecker": {
@@ -113,6 +133,19 @@
           "WeakKeySizeRsaMedium": "2048"
         },
         "ShowIgnored": false,
+        "UnusedChecker": {
+          "IgnoreAbstract": true,
+          "IgnoreDunderGlobals": true,
+          "IgnoreDunderMethods": true,
+          "IgnoreEventHandlerMethods": true,
+          "IgnoreLambdas": false,
+          "IgnoreNestedFunctions": false,
+          "IgnoreOverload": true,
+          "IgnoreOverride": true,
+          "IgnoreSlotMethods": true,
+          "IgnoreStubs": true,
+          "IgnoreVariadicNames": false
+        },
         "ValidEncodings": "latin-1, utf-8"
       }
     },
--- a/PluginMqttMonitor.py	Sat Dec 31 16:27:45 2022 +0100
+++ b/PluginMqttMonitor.py	Tue Jul 04 15:13:37 2023 +0200
@@ -29,7 +29,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "10.4.0"
+version = "10.4.1"
 className = "MqttMonitorPlugin"
 packageName = "MqttMonitor"
 shortDescription = "Plug-in implementing a tool to connect to a MQTT broker"
@@ -50,7 +50,7 @@
 mqttPluginObject = None
 
 
-def createMqttPage(configDlg):
+def createMqttPage(configDlg):  # noqa: U100
     """
     Module function to create the autocompletion configuration page.
 
@@ -60,7 +60,7 @@
     @rtype AutoCompletionRopePage
     """
     global mqttPluginObject
-    from MqttMonitor.ConfigurationPage.MqttPage import MqttPage
+    from MqttMonitor.ConfigurationPage.MqttPage import MqttPage  # noqa: I101
 
     page = MqttPage(mqttPluginObject)
     return page
@@ -96,7 +96,7 @@
     @rtype dict
     """
     try:
-        import paho.mqtt
+        import paho.mqtt  # noqa: I101, I102
 
         version = paho.mqtt.__version__
     except ImportError:
@@ -180,7 +180,7 @@
             error = self.tr("The 'paho-mqtt' package is not available.")
             return None, False
 
-        from MqttMonitor.MqttMonitorWidget import MqttMonitorWidget
+        from MqttMonitor.MqttMonitorWidget import MqttMonitorWidget  # noqa: I101
 
         usesDarkPalette = ericApp().usesDarkPalette()
         iconSuffix = "dark" if usesDarkPalette else "light"
@@ -357,4 +357,4 @@
 
 
 #
-# eflag: noqa = M801
+# eflag: noqa = M801, U200
Binary file PluginMqttMonitor.zip has changed

eric ide

mercurial