這種集成僅支持“舊的” 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! "