I am trying to integrate two AirGradient devices into an existing MQTT environment and have encountered an issue with password parsing.
It appears that the configuration parser does not accept a dollar sign ($) when it is the last character of the MQTT password. The same credentials work without issues in multiple other MQTT-enabled products in my environment.
Examples:
Fails:
mqtt://username:password**$**@192.nnn.nnn.nnn:1883
Works:
mqtt://username:passwor**$**d@192.nnn.nnn.nnn:1883
This behavior suggests that the parser may incorrectly handle special characters immediately before the @ delimiter, rather than treating the password as a fully URL-encoded field.
Could you please review the MQTT URI parsing logic, particularly around handling special characters in credentials? Proper support for standard URI encoding would resolve this issue.