奥迪互联集成到Home Assistant
注意
由于API变更,目前可能并非所有功能都可用。请开启一个问题报告您缺少的主题。
寻求维护者
由于时间限制,该项目不再积极维护。只要奥迪不再次更改API,它就会继续工作。 然而,我欢迎其他人接手领导。如果您想成为维护者,请联系我。
描述
audiconnect
组件提供了与奥迪互联云服务的集成。它添加了存在检测、里程、行驶里程和油量等传感器,并提供了锁车/解锁和设置预热器等车辆操作。
注意: 某些功能需要奥迪的特殊权限,如通过GPS更新位置。
最初API发现的功劳归功于ioBroker VW-Connect论坛的成员,他们成功破解了API和PIN哈希的工作原理。同时也要感谢davidgiga1993开发的原始AudiAPI Python包,本代码部分基于该包。
安装
有两种方法可以将此集成安装到Home Assistant中。
最简单且推荐的方法是使用HACS安装集成,这使得未来的更新易于跟踪和安装。
或者,可以通过将此存储库中的文件复制到Home Assistant配置目录中的custom_components
目录来手动安装:
- 打开Home Assistant安装的配置目录。
- 如果没有
custom_components
目录,请创建一个。 - 在
custom_components
目录中,创建一个名为audiconnect
的新目录。 - 将此存储库中
custom_components/audiconnect/
目录下的所有文件复制到audiconnect
目录中。 - 重启Home Assistant。
- 将集成添加到Home Assistant(参见配置)。
配置
配置通过Home Assistant用户界面完成。
要添加集成,请转到设置 ➤ 设备与服务 ➤ 集成,点击**➕ 添加集成**,然后搜索"Audi Connect"。
配置变量
username
- (字符串)(必填) 与您的奥迪互联账户关联的用户名。
password
- (字符串)(必填) 您的奥迪互联账户密码。
S-PIN
- (字符串)(可选) 您的奥迪互联账户的S-PIN。
region
- (字符串)(必填) 您的奥迪互联账户注册的地区。
- 'DE' 表示欧洲(或留空)
- 'US' 表示美国
- 'CA' 表示加拿大
- 'CN' 表示中国
scan_interval
- (数字)(可选) 从奥迪互联获取状态数据的频率(以分钟为单位)。(可选。默认为15分钟,不能频繁于15分钟。)
选项
在设置 ➤ 设备与服务 ➤ 集成 ➤ Audi Connect ➤ 配置下找到配置选项:
- 启动时云更新(
bool
): 在集成启动时切换云更新。适用于开发或频繁重启HA的情况。 - 按扫描间隔进行主动轮询(
bool
): 启用或禁用主动轮询。 - 扫描间隔(
int
): 定义轮询频率(以分钟为单位,最小15)。仅在启用"按扫描间隔进行主动轮询"时生效。
注意:更改生效需要重启Home Assistant。
服务
奥迪互联:刷新车辆数据
audiconnect.refresh_vehicle_data
正常更新从奥迪互联云服务检索数据,不直接与车辆交互。_此_服务触发从车辆本身更新请求。当成功检索数据时,Home Assistant会自动更新。该服务需要车辆识别号(VIN)作为参数。
服务参数
vin
: 您想控制的奥迪车辆的车辆识别号(VIN)。
奥迪互联:刷新云数据
audiconnect.refresh_cloud_data
_此_服务触发从云端更新请求。
- 功能:从在线数据源更新所有车辆的数据,模仿集成启动时或定期刷新间隔期间执行的操作。
- 行为:不强制进行车辆端数据刷新。因此,如果车辆最近没有推送更新,检索到的数据可能已过时。
- 注意:此服务复制了主动轮询的功能,但不进行调度,从而提供了对数据刷新时刻更精细的控制。
- **重要提示:**此服务没有内置使用限制。过度使用可能导致您的帐户暂时被暂停。
服务参数
无
奥迪互联:执行车辆操作
audiconnect.execute_vehicle_action
此服务允许您对奥迪车辆执行操作,通过车辆识别号(VIN)和所需操作来指定。
服务参数
vin
:您要控制的奥迪车辆的车辆识别号(VIN)。action
:要对车辆执行的具体操作。可用操作包括:lock
:锁定车辆。unlock
:解锁车辆。start_climatisation
:启动车辆的空调系统。(旧版)stop_climatisation
:停止车辆的空调系统。start_charger
:开始给车辆充电。start_timed_charger
:启动车辆定时充电器。stop_charger
:停止给车辆充电。start_preheater
:启动车辆的预热系统。stop_preheater
:停止车辆的预热系统。start_window_heating
:开始加热车辆的车窗。stop_window_heating
:停止加热车辆的车窗。
使用示例
要对VIN为WAUZZZ4G7EN123456
的车辆启动锁定操作,请使用以下服务调用:
service: audiconnect.execute_vehicle_action
data:
vin: "WAUZZZ4G7EN123456"
action: "lock"
注意事项
- 某些操作需要在配置中设置S-PIN。
- 当操作成功执行时,会自动触发更新请求。
奥迪互联:启动空调控制
audiconnect.start_climate_control
此服务允许您启动空调控制,可选择温度、玻璃表面加热和自动座椅舒适度。
服务参数
vin
:您要控制的奥迪车辆的车辆识别号(VIN)。temp_f
(可选):期望的华氏温度。默认为70
。temp_c
(可选):期望的摄氏温度。默认为21
。glass_heating
(可选):启用(True
)或禁用(False
)玻璃加热。默认为False
。seat_fl
(可选):启用(True
)或禁用(False
)前左座椅加热器。默认为False
。seat_fr
(可选):启用(True
)或禁用(False
)前右座椅加热器。默认为False
。seat_rl
(可选):启用(True
)或禁用(False
)后左座椅加热器。默认为False
。seat_rr
(可选):启用(True
)或禁用(False
)后右座椅加热器。默认为False
。
使用示例
要对VIN为WAUZZZ4G7EN123456
的车辆启动空调控制,设置温度为72°F,启用玻璃加热,并激活两个前座椅加热器,请使用以下服务调用:
service: audiconnect.start_climate_control
data:
vin: "WAUZZZ4G7EN123456"
temp_f: 72
glass_heating: True
seat_fl: True
seat_fr: True
注意事项
temp_f
和temp_c
参数是互斥的。如果同时提供两者,temp_f
优先。- 如果既没有提供
temp_f
也没有提供temp_c
,系统默认为70°F或21°C。 - 某些操作需要在配置中设置S-PIN。
- 当操作成功执行时,会自动触发更新请求。
示例仪表板卡片
以下是一个仪表板(Lovelace)卡片示例,展示了此Home Assistant插件提供的一些传感器。
该卡片需要以下前端模块:
这些模块可以(像本集成一样)使用HACS安装。
该卡片在 ui-lovelace.yaml
(或者你的仪表板配置所在的位置)中使用以下代码:
- type: picture-elements
image: /local/pictures/audi_sq7.jpeg
style: |
ha-card {
border-radius: 10px;
border: solid 1px rgba(100,100,100,0.3);
box-shadow: 3px 3px rgba(0,0,0,0.4);
overflow: hidden;
}
elements:
- type: image
image: /local/pictures/cardbackK.png
style:
left: 50%
top: 90%
width: 100%
height: 60px
- type: icon
icon: mdi:car-door
entity: sensor.doors_trunk_sq7
tap_action: more_info
style: {color: white, left: 10%, top: 86%}
- type: state-label
entity: sensor.doors_trunk_sq7
style: {color: white, left: 10%, top: 95%}
- type: state-icon
entity: sensor.windows_sq7
tap_action: more_info
style: {color: white, left: 30%, top: 86%}
- type: state-label
entity: sensor.windows_sq7
style: {color: white, left: 30%, top: 95%}
- type: icon
icon: mdi:oil
entity: sensor.audi_sq7_oil_level
tap_action: more_info
style: {color: white, left: 50%, top: 86%}
- type: state-label
entity: sensor.audi_sq7_oil_level
style: {color: white, left: 50%, top: 95%}
- type: icon
icon: mdi:room-service-outline
entity: sensor.audi_sq7_service_inspection_time
tap_action: more_info
style: {color: white, left: 70%, top: 86%}
- type: state-label
entity: sensor.audi_sq7_service_inspection_time
style: {color: white, left: 70%, top: 95%}
- type: icon
icon: mdi:speedometer
entity: sensor.audi_sq7_mileage
tap_action: more_info
style: {color: white, left: 90%, top: 86%}
- type: state-label
entity: sensor.audi_sq7_mileage
style: {color: white, left: 90%, top: 95%}
- type: custom:circle-sensor-card
entity: sensor.audi_sq7_tank_level
max: 100
min: 0
stroke_width: 15
gradient: true
fill: '#aaaaaabb'
name: tank
units: ' '
font_style:
font-size: 1.0em
font-color: white
text-shadow: '1px 1px black'
style:
top: 5%
left: 80%
width: 4em
height: 4em
transform: none
- type: custom:circle-sensor-card
entity: sensor.audi_sq7_range
max: 630
min: 0
stroke_width: 15
gradient: true
fill: '#aaaaaabb'
name: range
units: ' '
font_style:
font-size: 1.0em
font-color: white
text-shadow: '1px 1px black'
style:
top: 5%
left: 5%
width: 4em
height: 4em
transform: none