Mosquitto桥接Dyson本地MQTT Broker,连接建立后被拒绝问题求助
问题引发原因
- 客户端ID不匹配:Mosquitto桥接模式默认会给配置的
remote_clientid自动拼接local.前缀,你配置的ID是paho33095379815290,实际向Dyson Broker发起连接时使用的ID是local.paho33095379815290,与你单独测试时用的ID不一致,Dyson Broker对客户端ID有权限校验,不匹配就会直接拒绝连接。 - 通配符订阅触发权限限制:你配置了
topic # both 0订阅所有主题,Dyson本地Broker默认禁止客户端订阅顶级通配符#,触发安全限制后返回broker unavailable错误。
解决配置调整
修改桥接段配置如下:
listener 9001 protocol websockets allow_anonymous true listener 1883 protocol mqtt allow_anonymous true connection paho33095379815290 address 10.0.0.248:1883 remote_clientid paho33095379815290 # 新增配置:关闭客户端ID前缀,避免自动拼接local. id_prefix '' remote_username VS9-EU-233232A remote_password ****** bridge_protocol_version mqttv311 cleansession true try_private false # 替换通配符为你实际需要的Dyson设备主题前缀,比如设备序列号开头的主题 topic <你的设备序列号>/# both 0 # 如果你不知道主题前缀,可以替换为dyson/# 或者先测试单个明确的设备主题 log_type all
额外排查建议
如果调整配置后仍然连接失败,可以尝试将bridge_protocol_version改为mqttv31,部分旧款Dyson设备的本地Broker仅支持MQTT 3.1版本协议。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

