Bu entegrasyon, iltekin/vestel-ac-remote-control projesinin üzerine inşa edilerek Home Assistant kullanımına uyarlanmıştır.
Vestel Akıllı Yaşam (HomeVSmart) API'si üzerinden Vestel klimaları Home Assistant'a entegre eden custom component.
- Hub mimarisi — tek seferinde kurulum, tüm klimalar otomatik keşfedilir
- Climate entity — mod (soğutma / ısıtma / nem alma), fan hızı, hedef sıcaklık
- Oda sıcaklığı sensörü — klimadan okunan anlık sıcaklık
- Aylık enerji tüketimi — 12 aylık kWh ve maliyet geçmişi
- Günlük enerji tüketimi — mevcut ayın günlük kWh ve maliyet geçmişi
- Güç switch'i — basit açma/kapama (otomasyonlar için)
- HM03 ve HM07 wifi kart tipleri desteklenir
- Optimistic update — komutlar anında UI'ya yansır
- Token otomatik yenileme (AWS Cognito)
- Home Assistant 2024.1+
- Vestel Akıllı Yaşam hesabı
- AWS Cognito OAuth kimlik bilgileri (aşağıya bakın)
custom_components/vestel_ac/klasörünü HA config dizinine kopyala:<ha-config>/custom_components/vestel_ac/- Home Assistant'ı yeniden başlat
- Ayarlar → Cihazlar ve Servisler → Entegrasyon Ekle → "Vestel AC"
HACS desteği planlanmaktadır.
Entegrasyon kurulumu için 4 değer gereklidir:
| Alan | Açıklama |
|---|---|
| OAuth Client ID | Vestel Cognito app client ID |
| OAuth Client Secret | Vestel Cognito app client secret |
| Cognito Username | Hesabınızın Cognito username (UUID formatında) |
| Refresh Token | AWS Cognito refresh token |
Vestel Akıllı Yaşam mobil uygulamasının ağ trafiğini bir HTTP proxy (mitmproxy, Charles Proxy vb.) ile yakalayarak cognito-idp.eu-west-1.amazonaws.com adresine giden InitiateAuth isteğinden ClientId değerini alabilirsiniz.
Vestel uygulaması SSL pinning kullandığından trafiği yakalamak için root erişimine sahip bir Android ortamı gerekmektedir. Önerilen yöntem:
BlueStacks (Android emülatör) kullanın:
- BlueStacks'i indirip kurun
- Multi-Instance Manager'dan Android 11, ABI: ARM instance oluşturun
- Root access'i config dosyasından aktif edin:
- BlueStacks'i tamamen kapatın
- Instance config dosyasını açın:
C:\ProgramData\BlueStacks_nxt\Engine\<instance_adı>\bluestacks.conf - Dosyada şu satırı bulun ve değiştirin:
→
bst.feature.rooting="0"bst.feature.rooting="1" - Dosyayı kaydedin ve BlueStacks'i yeniden başlatın
- BlueStacks içinde Play Store'dan Magisk uygulamasını arayın — bulunamazsa APK olarak yükleyin:
# Magisk APK'yı bilgisayardan BlueStacks'e yükle adb connect 127.0.0.1:5555 adb -s emulator-5554 install magisk.apkMagisk APK için: github.com/topjohnwu/Magisk/releases adresinden indirin.
- Magisk uygulamasını açın, kurulumu tamamlayın ve BlueStacks'i yeniden başlatın
- Bilgisayarınızda mitmproxy kurun:
pip install mitmproxy mitmwebkomutunu çalıştırın
# BlueStacks'e ADB ile bağlan
adb connect 127.0.0.1:5555
# SELinux'u devre dışı bırak (Frida ve sistem sertifikası için gerekli)
adb -s emulator-5554 shell "su -c 'setenforce 0'"
# Proxy ayarla (bilgisayarınızın IP'si ile)
adb -s emulator-5554 shell settings put global http_proxy 192.168.x.x:8080Not: BlueStacks her yeniden başlatıldığında SELinux tekrar etkinleşebilir, bu durumda
setenforce 0komutunu tekrar çalıştırın.
# Sertifika hash'ini hesapla
openssl x509 -inform PEM -subject_hash_old -noout -in ~/.mitmproxy/mitmproxy-ca-cert.pem
# Sertifikayı kopyala (hash değerinizle değiştirin, örn: c8750f0d)
adb -s emulator-5554 shell "su -c 'mkdir -p /data/adb/modules/cert/system/etc/security/cacerts'"
adb -s emulator-5554 push ~/.mitmproxy/mitmproxy-ca-cert.pem /data/local/tmp/<hash>.0
adb -s emulator-5554 shell "su -c 'cp /data/local/tmp/<hash>.0 /data/adb/modules/cert/system/etc/security/cacerts/ && chmod 644 /data/adb/modules/cert/system/etc/security/cacerts/<hash>.0'"
# BlueStacks'i yeniden başlat- Play Store'dan Vestel Akıllı Yaşam uygulamasını yükleyin
- Proxy aktifken uygulamayı açın ve hesabınızla giriş yapın
- mitmweb arayüzünde (
http://127.0.0.1:8081)cognito-idp.eu-west-1.amazonaws.comadresine gidenInitiateAuthyanıtını bulun:AuthenticationResult.RefreshToken→ Refresh Token
- Aynı yanıttaki
IdToken'ı jwt.io ile decode edin:cognito:usernamealanı → Cognito Username
Not: Refresh token genellikle 30+ gün geçerlidir. Süresi dolduğunda Ayarlar → Entegrasyonlar → Vestel AC → Yapılandır üzerinden yenileyebilirsiniz.
Her klima için şu entity'ler oluşturulur:
| Entity | Tür | Açıklama |
|---|---|---|
climate.<oda> |
climate | Ana kontrol (mod, fan, sıcaklık) |
sensor.<oda>_oda_sicakligi |
sensor | Anlık oda sıcaklığı (°C) |
sensor.<oda>_aylik_tuketim |
sensor | Bu ayın tüketimi (kWh) |
sensor.<oda>_gunluk_tuketim |
sensor | Bugünün tüketimi (kWh) |
switch.<oda>_guc |
switch | Güç açma/kapama |
Aylık tüketim (monthly_history):
[
{"date": "7.2026", "energy_kwh": 4.38, "cost": 14.19},
{"date": "6.2026", "energy_kwh": 3.00, "cost": 9.72},
...
]Günlük tüketim (daily_history):
[
{"date": "15.7.2026", "energy_kwh": 0.0, "cost": 0.0},
{"date": "14.7.2026", "energy_kwh": 0.068, "cost": 0.22},
...
]ApexCharts Card ile enerji tüketimini grafik olarak gösterebilirsiniz.
Aylık tüketim grafiği:
type: custom:apexcharts-card
header:
title: Aylık Tüketim (kWh)
show: true
graph_span: 13month
span:
end: month
series:
- entity: sensor.oda_aylik_tuketim
name: Tüketim
type: column
extend_to: false
data_generator: |
return entity.attributes.monthly_history.map(e => {
const parts = e.date.split('.');
const d = new Date(parseInt(parts[1]), parseInt(parts[0]) - 1, 1);
return [d.getTime(), e.energy_kwh];
});Günlük tüketim grafiği:
type: custom:apexcharts-card
header:
title: Günlük Tüketim (kWh)
show: true
graph_span: 31d
span:
end: day
series:
- entity: sensor.oda_gunluk_tuketim
name: Tüketim
type: column
extend_to: false
data_generator: |
return entity.attributes.daily_history.map(e => {
const parts = e.date.split('.');
const d = new Date(parseInt(parts[2]), parseInt(parts[1]) - 1, parseInt(parts[0]));
return [d.getTime(), e.energy_kwh];
});Bu entegrasyon aşağıdaki Vestel/HomeVSmart API endpoint'lerini kullanır:
| Endpoint | Açıklama |
|---|---|
cognito-idp.eu-west-1.amazonaws.com |
AWS Cognito kimlik doğrulama |
sh-native-api.homevsmart.com/v1.0/homes |
Ev listesi |
sh-native-api.homevsmart.com/v1.0/homes/{id}/devices |
Cihaz listesi |
sh-native-api.homevsmart.com/v1.0/homeappliances/legacy/status |
Cihaz durumu |
sh-native-api.homevsmart.com/v1.0/customer/devices/{id}/legacy/command |
Komut gönderme |
sh-native-api.homevsmart.com/v1.0/energymanagement/consumption/month |
Aylık enerji |
sh-native-api.homevsmart.com/v1.0/energymanagement/consumption/day |
Günlük enerji |
- Hub mimarisi: tek config entry, tüm cihazlar otomatik
- Enerji tüketim sensörleri eklendi (aylık + günlük)
- HM03/HM07 wifi kart tipi desteği
- Optimistic update
- İlk sürüm: her cihaz ayrı config entry
MIT