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 SSLCode 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. Medan diperlukan ditanda dengan *

Related Post