Adax加热器BLE注册脚本无结果及urllib报错求助
解决Adax BLE注册脚本的两个问题:无Token返回与urllib错误
修复AttributeError: module 'urllib' has no attribute 'parse'
这个错误是Python版本兼容问题导致的:Python 3里urllib.parse是独立的子模块,若脚本里直接调用urllib.parse但没正确导入,就会触发报错。按以下步骤修正:
- 打开脚本文件,找到涉及
urllib.parse的代码段 - 二选一修改导入方式:
- 在脚本顶部添加
import urllib.parse,调用时保持urllib.parse.xxx格式(比如urllib.parse.urlencode()) - 替换导入语句为
from urllib import parse,调用时改成parse.xxx格式
- 在脚本顶部添加
- 保存后重新运行脚本
示例修正前后对比:
错误写法:
import urllib # ... encoded_data = urllib.parse.urlencode(request_params)
修正后写法一:
import urllib.parse # ... encoded_data = urllib.parse.urlencode(request_params)
修正后写法二:
from urllib import parse # ... encoded_data = parse.urlencode(request_params)
解决脚本仅提示按OK键但无Token返回的问题
从以下几个方向排查:
- 确认加热器进入配对模式:按住OK键直到设备指示灯闪烁(具体参考Adax设备手册),必须在脚本提示按键后立刻操作,确保设备处于BLE配对就绪状态。
- 检查蓝牙权限:
- Windows:系统设置→隐私和安全性→蓝牙,确认PyCharm/CMD有蓝牙访问权限,同时确保电脑蓝牙已开启。
- macOS:系统设置→隐私与安全性→蓝牙,允许终端/PyCharm访问蓝牙。
- Linux:运行脚本时加
sudo,或者执行sudo usermod -aG bluetooth $USER将当前用户加入蓝牙用户组,重启终端后再试。
- 排除蓝牙干扰:关闭电脑连接的其他蓝牙设备,比如手机、耳机,避免占用蓝牙通道影响配对。
- 调整脚本参数:
- 检查脚本中BLE扫描的超时设置,比如找到类似
timeout=5的参数,改成10或15秒,给设备足够的响应时间。 - 确认脚本依赖的BLE库(比如
bleak)版本符合Adax官方要求,执行pip install bleak==<指定版本>(若官方文档有标注版本)。
- 检查脚本中BLE扫描的超时设置,比如找到类似
- 开启调试日志:在脚本开头添加日志打印代码,排查连接细节:
import logging logging.basicConfig(level=logging.DEBUG)
运行后查看详细日志,定位是扫描不到设备,还是连接后无法获取数据。
内容的提问来源于stack exchange,提问作者Pilaarbijter
相关产品推荐
相关产品推荐

