求助:Python调用pyAdax修改Adax加热器室温无效果问题
修复Adax加热器温度调整代码
你的代码存在几个关键问题,导致无法正常修改加热器温度:
- 缺失必要导入:未导入
Adax类,且aiohttp仅导入了ClientError,缺少ClientSession - 语法错误:for循环未正确闭合,括号不匹配
- 错误使用异步方法:
set_room_target_temperature是异步执行方法,无需遍历其返回值 - 调用私有方法:直接调用
_write_set_room_target_temperature(以下划线开头的是库内部私有方法,不应直接调用)
修复后的完整代码如下:
import asyncio from aiohttp import ClientSession, ClientError from adax import Adax # 补充导入Adax类 ACCOUNTID = "****" # 从Adax WiFi应用的账户页面获取6位账户ID PASSWORD = "*****" # 在应用的"Remote Api"下创建服务密码 async def main(): async with ClientSession() as session: heater = Adax(ACCOUNTID, PASSWORD, session) # 调用公开方法设置房间目标温度,参数为room_id、目标温度,可选device_id(不需要则省略) await heater.set_room_target_temperature(544514, 28) # 可选:验证温度是否设置成功,获取房间信息 rooms = await heater.get_rooms() for room in rooms: if room["id"] == 544514: print(f"房间ID {room['id']} 当前目标温度: {room['targetTemperature']}") asyncio.run(main())
注意事项:
- 确保
room_id(544514)正确,可通过heater.get_rooms()获取所有房间的ID和当前状态,确认目标房间ID无误 - 确认ACCOUNTID和PASSWORD正确,服务密码需在Adax应用的"Remote Api"选项中单独创建
- 运行代码时保证网络正常,能连接到Adax的API服务器
内容的提问来源于stack exchange,提问作者Pilaarbijter
相关产品推荐
相关产品推荐

