DM-aiomqtt
Urls
Usage
Example
from dm_aiomqtt import DMAioMqttClient
import asyncio
# create handler for 'test' topic
async def test_topic_handler(publish: DMAioMqttClient.publish, topic: str, payload: str) -> None:
print(f"Received message from {topic}: {payload}")
publish("test/success", payload=True)
async def main():
# create client
mqtt_client = DMAioMqttClient("localhost", 1883, "username", "password")
# add handler for 'test' topic
mqtt_client.add_topic_handler("test", test_topic_handler)
# start connection
await mqtt_client.start()
# publish
mqtt_client.publish("test", payload="Hello World!", sent_logging=True)
# other code (for example, endless waiting)
await asyncio.Event().wait()
if __name__ == "__main__":
asyncio.run(main())
TLS connection
-
NOT required client certificate
mqtt_client = DMAioMqttClient( host="localhost", port=8883, ca_crt="ssl/ca.crt" )
-
REQUIRED client certificate
mqtt_client = DMAioMqttClient( host="localhost", port=8883, ca_crt="ssl/ca.crt", client_crt="ssl/client.crt", client_key="ssl/client.key" )
RESEND_NOT_SUCCESS_MESSAGES
Set this parameter resend_not_success_messages=True when create mqtt client
mqtt_client = DMAioMqttClient(
host="localhost",
port=1883,
resend_not_success_messages=True
)
Now, in case of loss of connection, all messages that were sent during this period will be re-sent as soon as the connection appears again.
BUT the payload will be in a changed format [your_payload]_dt_[iso_local_datetime]
Example:
Your payload: "{"temp": 12}"
Edited payload: "{"temp": 12}_dt_2024-04-19T09:57:40"
Set custom logger
If you want set up custom logger
from dm_aiomqtt import DMAioMqttClient
# create custom logger
class MyLogger:
def debug(self, message):
pass
def info(self, message):
pass
def warning(self, message):
print(message)
def error(self, message):
print(message)
# set up custom logger for all clients
DMAioMqttClient.set_logger(MyLogger())
Publish method parameters
| Parameter | Type | Default Value | Description |
|---|---|---|---|
topic |
str |
(required) | Topic name |
payload |
str |
"DEBUG" |
Content to send |
qos |
0 | 1 | 2 |
True |
MQTT QoS |
payload_to_json |
bool | "auto" |
True |
Whether to convert content to JSON |
sent_logging |
bool |
False |
Whether to print the sending notification |
error_logging |
bool |
False |
Whether to print a send error warning |
Run in Windows
If you run async code in Windows, set correct selector
import asyncio
import sys
if sys.platform == "win32":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
Release files for dm-aiomqtt 0.4.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dm_aiomqtt-0.4.6.tar.gz | 5.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dm_aiomqtt-0.4.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.9 kB
Release files / dm_aiomqtt-0.4.6.tar.gz
| Download URL | dm_aiomqtt-0.4.6.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
066c2dd09c859323ddf30530f36b91b5eff3c03a9be6d7771e0e65cd7bf3c5b0
|
|
BLAKE2b-256 checksum How to use checksums |
55bfbdfa05ef4a1f5e8eb460b9e6ebc8e8bf41a82e86639fd2708086c7355909
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / dm_aiomqtt-0.4.6-py3-none-any.whl
| Download URL | dm_aiomqtt-0.4.6-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
370189fa8afb8b30cc82517b149314dd322ae3668ac0631e49944279a895bda1
|
|
BLAKE2b-256 checksum How to use checksums |
c97e140d1f50a486293c698a54b4d6c7cb12b7126f4b4d1b755170e1559f1781
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|