Menyelesaikan masalah prenggunaan MQTT dalam circuitpython dengan pustaka adafruit_espatcontrol dan adafruit_minimqtt

Saya menghadapi masalah ini apabila cuba menggunakan pustaka adafruit_espatcontrol bersama adafruit_minimqtt untuk menyambungkan kepada MQTT yang dipasang di pada Raspberry Pi

Traceback (most recent call last): File "code.py", line 117, in <module> File "/lib/adafruit_minimqtt/adafruit_minimqtt.py", line 447, in connect File "/lib/adafruit_minimqtt/adafruit_minimqtt.py", line 270, in _get_connect_socket File "/lib/adafruit_espatcontrol/adafruit_espatcontrol_socket.py", line 85, in connect File "/lib/adafruit_espatcontrol/adafruit_espatcontrol.py", line 202, in socket_connect RuntimeError: Connection type must be TCP, UDL or SSL
Code language: Bash (bash)

Saya menjejak ralat tersebutdan mendapati bahawa, oleh kerana MQTT (tanpa SSL) menggunakan port 1883, tiada definisi conntype (Jenis sambungan. MQTT dengan SSL tiada masalah kerana terdapat fungsi khusus untuk MQTT dengan SSL.

jadi saya edit fail adafruit_espatcontrol.py dan menambah kod ini

# Determine the conntype from port if not specified. if conntype is None: if port == 80: conntype = "TCP" elif port == 443: conntype = "SSL" #sidik.my tambah dua baris dibawah ini elif port == 1883: conntype = "TCP"
Code language: Python (python)

sambungan berjaya~~!!

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable. code.py output: Connecting to WiFi... Connected! Connected to MQTT broker! Listening for topic changes on /feeds/testfeed Subscribing to lala/lulu Publishing to lala/lulu Unsubscribing from lala/lulu Disconnecting from 192.168.1.110 Disconnected from MQTT Broker!
Code language: Bash (bash)

Leave a Reply

Alamat e-mel anda tidak akan disiarkan.

Related Post