这种集成仅支持“旧的” Skoda API(与称为Skoda Essentials的旧移动应用相关联),并且当Skoda关闭旧的API时,它将停止工作。这将于2024年12月2日宣布,但该日期已经发生了变化。
如果您无法使用Skoda Essentials应用程序,那么此集成将对您不起作用。据报道,这种新的斯柯达帐户就是这种情况。
此集成的开发基本上已经完全停止,并且不会更新以支持新的应用程序/API。
正在开发一个新的集成,以与“新” Skoda API(与新移动应用相关联):https://github.com/skodaconnect/homeassistant-myskoda
新的集成是积极开发的,目前只有几个模型得到了支持。我们仍然强烈鼓励每个人尝试新的整合,并通过GitHub问题或不和谐提供反馈。
如果您是家庭助理的新手,请先阅读家庭助理文档。
这是Robinostlund/homeassistant-volkswagencarnet修改以通过本机应用API支持Skoda Connect/myskoda的叉子(API直接调用VWG-Connect服务)
家庭助理的集成将从Skoda Connect服务器中获取与Skoda Connect启用的汽车相关的数据。 Skoda Connect永远不会直接从汽车获取数据,汽车将更新的数据发送给VAG服务器,以了解特定事件,例如锁/解锁,充电事件,气候化事件以及车辆停放时。然后,集成将从服务器中获取此数据。当车辆的动作失败或没有响应而返回时,力刷新可能会有所帮助。这将触发从VAG服务器到汽车的“唤醒”呼叫。 scan_interval是集成的频率应多久从服务器中获取数据,如果没有汽车的新数据,则不会更新实体。
该项目包含家庭助理自定义组件代码。它取决于https://github.com/skodaconnect/skodaconnect,该库提供了与Skoda API相互作用的Python库。
如果您具有Skoda Connect/Myškoda功能,则此集成仅适用于您的汽车。使用其他第三方的汽车,半官方的移动应用程序,例如丹麦互联车的“ Minskoda”无法使用。用于API通信的库是从Myskoda Android应用程序进行反向设计的。已经为SmartLink和较新的API汽车(例如Enyaq IV)添加了初始支持。
必须将汽车隐私设置设置为“共享我的位置”,以实现此集成的全部功能。没有此设置,如果设置为“使用我的位置”,则位置的传感器(设备跟踪器),剩余的请求和停车时间可能无法可靠或根本无法工作。设置为更严格的隐私设置将进一步限制功能。
如果您遇到无法设置集成的问题,或者您收到未知术语或EULA的错误,则可能是由于您的移动应用程序平台。基础库是通过对Android应用程序行为进行反向工程构建的,因此它使用与Android设备相同的客户端配置。如果您仅在iPhone/iOS设备上使用该应用程序,则可能会引起此集成问题。
可能的解决方法:
如果这对您不起作用以及您面临的特定问题,请打开问题并提供尽可能详细的问题描述和相关的调试日志。
如果您安装了HACS(家庭助理社区商店),只需搜索Skoda Connect并直接从HACS安装。 HACS将跟踪更新,当有新版本可用时,您可以轻松升级到最新版本。
如果您没有安装它,请在此处查看:HACS
克隆或复制存储库,然后复制文件夹“ homeassistant-skodaconnect/custom_component/skodaconnect”中的“ [config dir]/custom_components'。安装所需的Python库(调整以适合您的环境):
pip install skodaconnect
对于全面的调试记录,您可以将其添加到您的<config dir>/configuration.yaml
:
logger :
default : info
logs :
skodaconnect.connection : debug
skodaconnect.vehicle : debug
custom_components.skodaconnect : debug
custom_components.skodaconnect.climate : debug
custom_components.skodaconnect.lock : debug
custom_components.skodaconnect.device_tracker : debug
custom_components.skodaconnect.switch : debug
custom_components.skodaconnect.binary_sensor : debug
custom_components.skodaconnect.sensor : debug
Skodaconnect.connection:设置Skoda Connect库的连接类的调试级别。这将处理对API的GET/设置请求
Skodaconnect.Vehicle:设置Skoda Connect库的车辆类的调试级别。一个为每个车辆创建的对象,并存储所有数据。
Skodaconnect.dashboard:设置Skoda Connect库仪表板类的调试级别。 HASS组件和库之间的包装类别。
custom_components.skodaconnect:设置自定义组件的调试级别。哈斯和图书馆之间的通信。
custom_components.skodaconnect.xyz设置自定义组件中各个实体类型的调试级别。
configuration.yaml中的配置现在已弃用,可以干扰集成设置。要配置集成,请转到家庭助手侧面面板中的配置,然后选择集成。单击右下角的“添加集成”按钮,然后搜索/选择skodaconnect。按照这些步骤输入并输入所需的信息。由于数据是如何存储和处理在家庭助理中的,因此每辆车将有一个集成。通过多次添加集成来设置多个车辆。
通过单击集成上的“配置”文本,可以在设置后更改集成选项。可用的选项是:
轮询频率(以秒为单位)将服务器进行轮询以获取更新数据。使用60秒或更低时,有几个用户报告是限制速率(HTTP 429)。建议从120或180s的值开始。参见#215。
S针的S针为车辆。这是可选的,仅对于某些车辆请求/操作(辅助加热器,锁等)才需要。
可变选择以允许与车辆相互作用,开始气候化等。
完整的API调试记录启用完整的调试记录。这将打印从API到Homeassistant.log的完整呼吸。仅启用故障排除,因为它将生成许多日志。
用于监视的资源选择您希望监控车辆的资源。
距离/单位转换选择是否要转换距离/单位。
在此示例中,我们将通知发送到iOS设备。 Android Companion App当前不支持通知(地图等)中的动态内容
将这些自动化保存在您的自动化文件中<config dir>/automations.yaml
首先通过configuration.yaml或其他包含的配置文件或通过GUI帮助者编辑器创建一个Input_number,通过编辑器。将最小值设置为10,最大为60,然后步骤为10很重要。否则,服务调用可能不起作用。
# configuration.yaml
input_number :
pheater_duration :
name : " Pre-heater duration "
initial : 20
min : 10
max : 60
step : 10
unit_of_measurement : min
在YAML或通过GUI编辑器中创建自动化。您可以通过转到设置 - >设备和服务,然后单击Skodaconnect车辆的设备来找到设备ID。设备ID将在“/config/device/device/”之后显示在Web浏览器地址栏中。 ID也可以通过使用开发人员工具下的GUI服务编辑器来找到。选择Skodaconnect服务之一,然后选择您的车辆。更改为YAML模式并复制设备ID。
# automations.yaml
- alias : Pre-heater duration
description : " "
trigger :
- platform : state
entity_id : input_number.pheater_duration
condition : []
action :
- service : skodaconnect.set_pheater_duration
data_template :
device_id : <Your Device ID for vehicle>
duration : " {{ (states('input_number.pheater_duration') | float ) | round(0) }} "
mode : single
感谢@HaraldPaulsen根据电池容量和剩余时间报告的估计充电率模板传感器。替换为车辆的名称,并用WH的电池容量代替。
template :
- sensor :
- name : " Charge speed guesstimate "
state : >
{% if is_state('switch.skoda_<name>_charging', 'on') %}
{% set battery_capacity = <battery-size-in-kwh> | int %}
{% set charge = { "remaining": states('sensor.skoda_<name>_minimum_charge_level') | int - states('sensor.skoda_<name>_battery_level') | int } %}
{% set timeleft = states('sensor.skoda_<name>_charging_time_left') | int %}
{% set chargeleft = battery_capacity * charge.remaining / 100 %}
{% set chargespeed = chargeleft / (timeleft / 60) %}
{{ chargespeed | round (1) }}
{% else %}
0
{% endif %}
unit_of_measurement : " kW "
state_class : measurement
注意:由于Android Companion App尚不支持iOS设备,因此仅适用于iOS设备。这可能会被打破,因为设备_TRACKER更改行为时1.0.30。
- id : notify_skoda_position_change
description : Notify when position has been changed
alias : Skoda position changed notification
trigger :
- platform : state
entity_id : device_tracker.kodiaq
condition : template
condition : template
value_template : " {{ trigger.to_state.state != trigger.from_state.state }} "
action :
- service : notify.ios_my_ios_device
data_template :
title : " Kodiaq Position Changed "
message : |
? Skoda Car is now on a new place.
data :
url : /lovelace/car
apns_headers :
' apns-collapse-id ' : ' car_position_state_{{ trigger.entity_id.split(".")[1] }} '
push :
category : map
thread-id : " HA Car Status "
action_data :
latitude : " {{trigger.from_state.attributes.latitude}} "
longitude : " {{trigger.from_state.attributes.longitude}} "
second_latitude : " {{trigger.to_state.attributes.latitude}} "
second_longitude : " {{trigger.to_state.attributes.longitude}} "
shows_traffic : true
- id : ' notify_skoda_car_is_unlocked '
alias : Skoda is at home and unlocked
trigger :
- entity_id : binary_sensor.vw_carid_external_power
platform : state
to : ' on '
for : 00:10:00
condition :
- condition : state
entity_id : lock.kodiaq_door_locked
state : unlocked
- condition : state
entity_id : device_tracker.kodiaq
state : home
- condition : time
after : ' 07:00:00 '
before : ' 21:00:00 '
action :
# Notification via push message to smartphone
- service : notify.device
data :
message : " The car is unlocked! "
target :
- device/my_device
# Notification via smart speaker (kitchen)
- service : media_player.volume_set
data :
entity_id : media_player.kitchen
volume_level : ' 0.6 '
- service : tts.google_translate_say
data :
entity_id : media_player.kitchen
message : " My Lord, the car is unlocked. Please attend this this issue at your earliest inconvenience! "