1. 简介
WeConnect-MQTT是一个用于将大众汽车WeConnect服务数据发布到MQTT协议的客户端。MQTT(Message Queuing Telemetry Transport)是一种标准协议,用于集成来自WeConnect启用的汽车的数据。该客户端允许您将数据集成到您选择的MQTT代理中,例如家庭自动化解决方案(如ioBroker、FHEM或Home Assistant)。
2. 硬件和软件要求
在您的系统上安装Python 3是必需的,最低要求的Python版本为3.8。如果您的车型使用新的WeConnect API,您可能需要同意新的WeConnect接口的条款和条件。最简单的方式是在智能手机上安装大众汽车应用程序并在那里登录。
3. 安装
要使用WeConnect-MQTT,最简单的方式是从PyPI获取它。只需运行以下命令进行安装:
pip3 install weconnect-mqtt
4. 升级
如果您希望升级WeConnect-MQTT,最简单的方式是运行以下命令:
pip3 install weconnect-mqtt --upgrade
5. Docker支持
还提供了一个Docker镜像,以轻松托管WeConnect-MQTT,您可以在Dockerhub上找到它。
6. 使用说明
您可以通过命令行启动WeConnect-MQTT客户端:
weconnect-mqtt
您可以使用"--help"命令来获取所有使用说明:
weconnect-mqtt --help
以下是一个连接到MQTT代理地址为192.168.0.1,使用用户名test和密码test123的示例:
weconnect-mqtt --username test@test.de --password test123 --mqttbroker 192.168.0.1 --mqtt-username test --mqtt-password test123 --prefix weconnect
在此示例中,客户端使用用户名test@test.de和密码test123连接到WeConnect。
7. S-PIN
对于某些命令(例如,某些车型支持的锁定/解锁功能),除了登录,您还需要提供S-PIN(安全个人识别码),您可以使用"--spin"选项来提供:
weconnect-mqtt --username test@test.de --password test123 --spin 1234 --mqttbroker 192.168.0.1 --mqtt-username test --mqtt-password test123 --prefix weconnect
8. 凭据
如果您不想每次都提供用户名和密码,您可以在适当的位置(通常是主文件夹)创建一个".netrc"文件:
# 对于WeConnect
machine volkswagen.de
login test@test.de
password testpassword123
# 对于MQTT代理
machine 192.168.0.1
login test
password testpassword123
您还可以使用"--netrc"选项来指定".netrc"文件的位置。
9. 充电站数据
您还可以通过添加位置和半径信息来获取充电站的数据,例如"--chargingLocation 52.437132 10.796628 --chargingLocationRadius=500"。充电站的数据主要是静态的,但您可以查看当前的可用性。
10. 主题
如果您的MQTT代理不允许您观察所有可用主题,您可以传递参数"--list-topics"以在命令行上显示所有主题。带有"(writeable)"标记的主题可以进行操作。还有两个主题,用于以逗号分隔的列表形式接收所有可用主题:"weconnect/0/mqtt/topics"和"weconnect/0/mqtt/writeableTopics"。
11. 禁用功能
您可以使用"--no-capabilities"选项来禁用车辆功能数据。如果只需要数据的子集,您可以使用"--selective"选项。例如,"--selective climatisation"。
12. 图像
您可以使用"--pictures"选项来启用汽车的ASCII Art图片。
13. PNG车辆图片
如果您的MQTT客户端可以处理通过MQTT接收的PNG图片,您可以使用"--picture-format png"选项。
14. 时间设置
默认情况下,车辆传来的时间是UTC isoformat。您可以通过添加"--convert-times"选项将时间转换为本地时区。要将时间设置为特定的时区,可以使用"--convert-times Europe/Berlin"。您还可以通过"--timeformat"将时间格式化为本地时间格式,例如"--timeformat '%a %d %b %Y %T'"。如果要使用不同于系统默认语言的日期格式,可以使用"--locale"选项。
15. 原始JSON数据
如果您想继续处理完整的数据,您还可以使用"--with-raw-json-topic"选项启用原始JSON数据主题。该主题在JSON字符串发生更改时发布。
16. 已测试车型
- 大众ID.3(2021年车型)
- 大众Passat GTE(2021年车型)
17. 相关项目
- WeConnect-cli:用于与大众汽车WeConnect服务进行交互的命令行界面
- WeConnect-python:连接到大众汽车WeConnect服务的Python API
- VWsFriend:VWsFriend是一款可视化记录汽车统计数据并允许通过HomeKit进行控制的软件。
通过WeConnect-MQTT,您可以轻松将大众汽车WeConnect服务的数据发布到MQTT,并将其集成到您的自动化解决方案中。这个客户端提供了丰富的功能和选项,使其非常灵活,适用于多种应用场景。
回复