Skip to content

MQTT 控制端口开关(turn_on_port / turn_off_port)设备无物理反应,但命令响应 status=0 #7

Description

@VunGamFI

设备信息

  • 产品:AI小电拼(CanOS / IonBridge)
  • 端口数:5 (A, C1, C2, C3, C4)
  • 版本号:v0.8.58
  • MQTT Broker:[MQTT_BROKER_IP]:1883(无认证,同局域网)

问题描述
通过 MQTT 发送 turn_on_port(命令值 48)或 turn_off_port(命令值 49)后,设备在 device/{SN}/enduser/response/48 主题返回 CommandResponse,且 status=0(表示成功)。但是物理端口没有任何变化(指示灯不改变,连接的设备不断电/通电)。
遥测数据(温度、功率、WiFi 信号等)正常工作,说明 MQTT 连接和 protobuf 解析均正常。

已尝试的排查步骤

  1. 确认主题格式:使用官方 CLI 源码中的规范 device/{SN}/enduser/request/{ServiceCommand.value}
  2. 发送 enable_release_mode(命令值 4):收到 status=1 的响应(应该成功)。
  3. 端口索引映射:正确使用 A=0, C1=1, C2=2, C3=3, C4=4
  4. 使用官方 CLI:在 Docker 中运行 mqtt_client.cli,同样现象(设备返回成功,物理无反应)。
  5. 抓包:用 mosquitto_sub -t "#" 确认命令发出,设备响应存在。
  6. 尝试其他命令get_all_power_statistics(47)等均正常返回数据。

日志证据(节选自桥接脚本运行日志)

2026-04-05 17:26:45,200 - INFO - Sent enable_release_mode to device/[YOUR_SN]/enduser/request/4, id=1588511952
2026-04-05 17:26:45,307 - INFO - Command response id=1588511952, status=1

2026-04-05 17:27:19,601 - INFO - Sent turn_on_port to device/[YOUR_SN]/enduser/request/48, id=1588546352
2026-04-05 17:27:22,694 - INFO - Command response id=1588546352, status=0   # 成功,但物理无反应

2026-04-05 17:27:19,933 - INFO - Sent turn_off_port to device/[YOUR_SN]/enduser/request/49, id=1588546685
2026-04-05 17:27:25,554 - INFO - Command response id=1588546685, status=1   # 可能因为端口已关,返回失败

期望行为
发送 turn_on_port 后,对应 USB 端口应真正通电(指示灯亮,连接的设备充电);发送 turn_off_port 后应断电。

问题

  1. 是否当前固件版本不支持 MQTT 物理控制(只支持遥测上报)?
  2. 是否需要额外的“开发者模式”或“调试模式”才能启用 MQTT 控制?
  3. 是否存在其他命令(如 SetPortConfigReqSetDevicePowerStateReq)可以替代 turn_on_port
  4. 如果 MQTT 控制确实不可行,官方是否推荐使用 BLE 控制?能否提供 BLE 控制的最小示例?

环境补充

  • MQTT Broker:Mosquitto,无认证
  • 网络:设备与 Broker 在同一局域网(10.31.0.x)
  • 使用的 protobuf 定义来自本仓库 command.proto
Image Image

感谢开发者的工作,期待您的回复!

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