philipkocanda/wican-cli

GitHub: philipkocanda/wican-cli

一款用于在终端远程管理 WiCAN Pro OBD-II WiFi 设备配置、日志和车辆配置文件的 Python 命令行工具。

Stars: 0 | Forks: 0

# wican-cli 用于管理 [WiCAN Pro](https://github.com/meatpiHQ/wican-fw) OBD-II WiFi 设备的命令行工具。 从终端查看和保存设备配置、切换睡眠模式、切换协议模式、查询 SD 卡日志、检查 AutoPID 值、管理车辆配置文件以及重启设备。 Screenshot 2026-05-19 at 21 36 38 Screenshot 2026-05-19 at 21 30 26 ## 安装 使用 [uv](https://docs.astral.sh/uv/) 安装(推荐): ``` uv tool install wican-cli ``` 或者使用 pip 安装: ``` pip install wican-cli ``` ## 快速开始 ``` # 连接到 WiCAN 的默认 AP 地址 (192.168.80.1) wican status # 或者指定设备地址 wican --use 192.168.1.100 status # 设置配置文件以避免每次都输入地址 mkdir -p ~/.config/wican-cli cat > ~/.config/wican-cli/config.yaml << 'EOF' wican_addresses: home: "192.168.1.100" vpn: "10.8.0.50" default_wican: home EOF # 现在只需使用命名的别名(或者省略 --use 来自动发现) wican status wican --use vpn status ``` ## 命令 | 命令 | 描述 | |---------|-------------| | `wican config` | 查看设备配置(可选择保存到文件) | | `wican sleep` | 查看或修改睡眠/电源设置 | | `wican status` | 设备状态摘要 | | `wican protocol` | 查看或切换 CAN 协议模式 | | `wican logs` | 列出、下载或查询 SD 卡 OBD 日志数据库 | | `wican autopid` | 显示最新的 AutoPID 缓存值 | | `wican profile` | 查看或上传车辆配置文件(AutoPID 配置) | | `wican reboot` | 重启设备 | ### 示例 ``` # 保存已剥离凭据的配置快照 wican config --save --redact # 启用休眠模式,阈值为 12.5V wican sleep --enable --voltage 12.5 # 切换到 ELM327 模式以配合 Torque/Car Scanner 使用 wican protocol --set elm327 # 从 SD 卡下载所有日志数据库 wican logs --download # 从最新日志中查询特定参数 wican logs --query SOC_BMS --limit 20 # 显示按名称过滤的 AutoPID 值 wican autopid -f tyre # 查看当前车辆配置文件 wican profile # 上传新的车辆配置文件并重启以应用 wican profile --upload ioniq-2017.json --reboot ``` ## 配置 wican-cli 按以下顺序查找配置: 1. `WICAN_URL` 环境变量(覆盖所有其他配置) 2. `./config.yaml`(项目本地) 3. `~/.config/wican-cli/config.yaml`(用户全局) 如果未找到,则默认为 `192.168.80.1`(WiCAN 的内置 AP)。 ### 配置文件格式 ``` wican_addresses: home: "192.168.1.100" # Device on local LAN vpn: "10.8.0.50" # Device via VPN tunnel ap: "192.168.80.1" # Direct AP connection (WiCAN default) default_wican: home # Which address to use by default ``` 使用 `--use ` 选择不同的地址,或直接传入 IP/URL:`--use 192.168.1.100`。 当省略 `--use` 时,CLI 会首先探测默认地址,然后自动回退到其他已配置的地址。 ## 全局标志 | 标志 | 描述 | |------|-------------| | `--use ADDR` | 设备地址:命名别名或 IP/URL(省略时自动发现) | | `--timeout SEC` | 请求超时时间(秒)(默认:10) | | `--json` | JSON 输出(适用于大多数命令) | | `--version` | 显示版本并退出 | ## Shell 自动补全 wican-cli 使用 [argcomplete](https://github.com/kislyuk/argcomplete) 在 bash、zsh 和 fish 中实现 Tab 键补全。 ### 全局激活(所有启用 argcomplete 的工具) ``` # bash(添加到 ~/.bashrc) activate-global-python-argcomplete # zsh(添加到 ~/.zshrc) autoload -U bashcompinit && bashcompinit activate-global-python-argcomplete # fish register-python-argcomplete --shell fish wican | source ``` ### 针对特定命令激活 ``` # bash(添加到 ~/.bashrc) eval "$(register-python-argcomplete wican)" # zsh(添加到 ~/.zshrc) autoload -U bashcompinit && bashcompinit eval "$(register-python-argcomplete wican)" # fish(添加到 ~/.config/fish/completions/wican.fish) register-python-argcomplete --shell fish wican | source ``` ## 本地开发 前置条件:Python 3.10+ 和 [uv](https://docs.astral.sh/uv/)。 ``` # Clone repository git clone https://github.com/philipkocanda/wican-cli.git cd wican-cli # 安装依赖(包括 dev extras) uv sync --extra dev # 本地运行 CLI uv run wican --help # 运行测试 uv run pytest # 运行带有覆盖率统计的测试 uv run pytest --cov # Lint 和格式化 uv run ruff check . uv run ruff format . ``` ## 什么是 WiCAN? [WiCAN Pro](https://github.com/meatpiHQ/wican-fw) 是一款基于 ESP32 的 WiFi/BLE OBD-II 适配器,支持多种协议(AutoPID、SLCAN、ELM327、SavvyCAN、RealDash)。它可以通过 MQTT 将车辆数据发布到 Home Assistant,记录到 SD 卡,并提供 WebSocket 终端接口。 此 CLI 工具用于管理设备本身——它不会向车辆发送 CAN/OBD 请求。如需执行此操作,请使用 [python-can](https://github.com/hardbyte/python-can)、[SavvyCAN](https://github.com/collin80/SavvyCAN) 或 [Torque](https://torque-bhp.com/) 等工具。 ## 许可证 公共领域——详见 [LICENSE](LICENSE)(Unlicense)。
标签:OBD-II, Python, 安全规则引擎, 文档结构分析, 无后门, 汽车诊断, 物联网, 设备管理, 逆向工具