You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to use the AdafruitIO library instead of (or with) Adafruit MiniMQTT. I've tried on both an S3 MatrixPortal and a Pico W.
It fails on the line: io.connect() with the error:
Traceback (most recent call last):
File "code.py", line 79, in <module>
File "adafruit_io/adafruit_io.py", line 116, in connect
AdafruitIO_MQTTError: MQTT Error: Unable to connect to Adafruit IO.
Here's a short example with the Pico W. If I swap out the line io = IO_MQTT(mqtt_client) and use a normal MQTT setup, it works fine and I can subscribe to my feed. I've tried using SSL and non-SSL (like below). I don't know if anyone can verify that io.connect() works for them.
import os
import ssl
import time
import json
import adafruit_minimqtt.adafruit_minimqtt as MQTT
import socketpool
import wifi
import displayio
import terminalio
import adafruit_display_text.label
from adafruit_io.adafruit_io import IO_MQTT
wifi.radio.connect(os.getenv('CIRCUITPY_WIFI_SSID'), os.getenv('CIRCUITPY_WIFI_PASSWORD'))
pool = socketpool.SocketPool(wifi.radio)
ssl_context = ssl.create_default_context()
# ------------- MQTT Topic Setup ------------- #
mqtt_topic = "prcutler/feeds/audio"
mqtt_client = MQTT.MQTT(
broker="io.adafruit.com",
port=1883,
username=os.getenv('aio_username'),
password=os.getenv('aio_key'),
socket_pool=pool,
)
### Code ###
# Define callback methods which are called when events occur
# pylint: disable=unused-argument, redefined-outer-name
def connected(client, userdata, flags, rc):
# This function will be called when the client is connected
# successfully to the broker.
print("Subscribing to %s" % mqtt_topic)
client.subscribe(mqtt_topic)
def subscribe(client, userdata, topic, granted_qos):
# This method is called when the client subscribes to a new feed.
print("Subscribed to {0} with QOS level {1}".format(topic, granted_qos))
def unsubscribe(client, userdata, topic, pid):
# This method is called when the client unsubscribes from a feed.
print("Unsubscribed from {0} with PID {1}".format(topic, pid))
def disconnected(client, userdata, rc):
# This method is called when the client is disconnected
print("Disconnected from MQTT Broker!")
def message(client, topic, message):
"""Method callled when a client's subscribed feed has a new
value.
:param str topic: The topic of the feed with a new value.
:param str message: The new value
"""
print(topic, message)
print(message)
io = IO_MQTT(mqtt_client)
io.on_connect = connected
io.on_disconnect = disconnected
io.on_subscribe = subscribe
io.on_unsubscribe = unsubscribe
io.on_message = message
# Connect to Adafruit IO
print("Connecting to Adafruit IO...")
io.connect()
while True:
io.loop()
The text was updated successfully, but these errors were encountered:
If you attempt to connect over port 1883 on these device it will raise the mentioned exception.
I was able to successfully test a basic connection to adafruit IO on both a Feather S3 and a PicoW using port 8883 using circuitpython 9.2.0 and current libraries.
Hi,
I'm trying to use the AdafruitIO library instead of (or with) Adafruit MiniMQTT. I've tried on both an S3 MatrixPortal and a Pico W.
It fails on the line:
io.connect()
with the error:Here's a short example with the Pico W. If I swap out the line
io = IO_MQTT(mqtt_client)
and use a normal MQTT setup, it works fine and I can subscribe to my feed. I've tried using SSL and non-SSL (like below). I don't know if anyone can verify thatio.connect()
works for them.The text was updated successfully, but these errors were encountered: