8000 Recurring exception in loop() function · Issue #177 · adafruit/Adafruit_CircuitPython_MiniMQTT · GitHub
[go: up one dir, main page]

Skip to content
Recurring exception in loop() function #177
@heximcz

Description

@heximcz

After updating MiniMQTT from version 7.3.2 to 7.4.1, I have a problem with the loop() function, which, upon closer investigation, throws an MMQTTException (this issue occurs every second call). The exact link where the error occurs is here: L1035. For my purposes, I am modified the line to return an error.

raise MMQTTException(f"OSError: error: {error}, errno: {error.errno}.")

Here is a snippet from the testing code:

    try:
        # check if subscribes is enabled
        if mqtt.is_subscriber():
            try: 
                mqtt.mqtt_client.loop()
            except MQTT.MMQTTException as e:
                print('MQTTException ...')
                print(e)
            else:
               print ('Loop OK ...')

        # BME680
        pub_data = dict({})
        pub_data["temperature"], \
            pub_data["humidity"], \
            pub_data["pressure"], \
            pub_data["gas"], \
            pub_data["altitude"], \
            pub_data["dewpoint"] = bme680.get_measurement(dew_point=True)

        # pub values from sensor
        mqtt.pub(pub_data)

        # wait one minute
        time.sleep(60)
    except KeyboardInterrupt as e:
        print("Keyboard exit!")
        import sys
        sys.exit()
    except:
        microcontroller.reset()

Here is the output from Thonny's debugging console:

Attempting to connect to broker.
Connected to MQTT Broker!
Flags: 0
RC: 0
Subscribed to <topic> with QOS level 0

MQTTException ...
OSError: error: -116, errno: -116.
RAW T: 34.2737, CPU T: 31.3517
T: 30.7, RH: 100, hPa: 642, Gas: 430446, Alt: 347, Dew: 30.7
Published to <topic> with PID 1

Loop OK ...
RAW T: 30.9062, CPU T: 31.3517
T: 27.6, RH: 51, hPa: 1018, Gas: 482123, Alt: 218, Dew: 16.6
Published to <topic> with PID 1

MQTTException ...
OSError: error: -116, errno: -116.
RAW T: 29.5876, CPU T: 30.8835
T: 26.4, RH: 55, hPa: 1018, Gas: 449328, Alt: 218, Dew: 16.6
Published to <topic> with PID 1

...

In version 7.3.2, the loop() function worked without any issues. From what I have investigated, it appears that the error is not affected by whether I am using the original CircuitPython 8.0.5 or the latest version 8.2.6.

Links to my complete example code and the MiniMQTT wrapper.

Hardware:
Raspberry Pico W

Broker:
Mosquitto 2.0.18

Can I modify my code as I'm writing below, but it doesn't seem very elegant to me, especially since it worked in the previous version.

try:
    mqtt.mqtt_client.loop()
except MQTT.MMQTTException as e:
    pass       

Thank you and have a great day!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0