İçeriğe geç
Teknik rehber Editör onaylı Orta 45 dk

Raspberry Pi'de SD kart yıpranmasını azaltmak için Home Assistant veritabanı taşınması

Home Assistant'ın sürekli büyüyen kayıt veritabanını (recorder) SD kart üzerinden ayrı bir USB SSD'ye taşıma adımları: MariaDB eklentisi kurulumu, recorder bağlantı ayarı, eski kayıtların temizlenmesi ve SD kart yazma yükünün doğrulanması.

Hakan DurmazYapay zeka Editör: Hakan Durmaz Yayın: Güncelleme: Sürüm 1 Home Assistant 0 okunma 0 faydalı

Tehlikeli işlem — hayati risk

Bu rehber şebeke elektriği (230/400 V), yüksek akımlı bataryalar, gaz veya basınçlı sistemler gibi ölümcül yaralanma, yangın ve maddi hasara yol açabilecek işlemler içerir. Bu işler yalnızca yetkili ve ehliyetli kişilerce yapılmalıdır. Uygulamadan önce mutlaka yetkili bir uzmana danışın; sigortaları kapatmak ve gerilim yokluğunu ölçerek doğrulamak dahil tüm önlemleri alın. Rehber bilgilendirme amaçlıdır, kurulum veya proje onayı yerine geçmez.

Gerekenler

8 kalem
  • Raspberry Pi 4 veya daha yeni model, USB 3.0 portu boş
  • USB 3.0 dış disk yuvası ve 2,5" SSD (60 GB üzeri önerilir)
  • Home Assistant Operating System (HAOS) kurulu ve çalışan sistem
  • SSH ya da Samba eklentisi ile dosya erişimi
  • MariaDB resmî eklentisi (Add-on store'dan)
  • Yedek: sistem snapshot ya da tam yedek
  • Terminal erişimi için Advanced mode etkin hesap
  • USB kablosu (dış yuva ile gelen, kısa ve kalın kesitli)

Giriş ve kapsam

Raspberry Pi üzerinde HAOS çalıştıran çoğu kurulumda Home Assistant, home-assistant_v2.db adlı SQLite dosyasını doğrudan SD karta yazar. Bu dosya, varlık (entity) sayısına ve kayıt tutulan sürekliliğe bağlı olarak aylar içinde birkaç GB'ye ulaşır. SQLite sürekli küçük yazma işlemleri yapar; SD kartlarda bu, yıpranmanın birincil sebeplerinden biridir. Belirtiler genelde şöyle olur: sistem aylarca sorunsuz çalışır, sonra SD kart salt-okunur hale gelir ya da Pi açılışta dosya sistemini tamir etmeye çalışır.

Bu rehberde veritabanını MariaDB eklentisiyle ayrı bir USB SSD'ye taşıyacağız. Anlatım HAOS kurulumlarına özgüdür; Docker ya da Core kurulumunda dizin yolları ve eklenti yaklaşımı farklıdır.

İşleme başlamadan önce tam bir yedek alın; veritabanı taşıma sırasında yapılandırma hataları kayıt geçmişini boşa çıkarabilir.

MariaDB eklentisi kurulumu

  1. Home Assistant arayüzünde sol alttaki profil simgesinden Advanced mode seçeneğini etkinleştirin. Bu, eklenti mağazasında sistem eklentilerinin görünmesini sağlar.
  2. Settings > Add-ons > Add-on Store yolunu izleyin ve MariaDB eklentisini arayıp kurun.
  3. Eklentinin Configuration sekmesinde bir root parolası belirleyin. Eklenti varsayılan olarak homeassistant adında bir veritabanı ve aynı adda bir kullanıcı oluşturur.
  4. Start on boot seçeneğini işaretleyin ve eklentiyi başlatın. Log sekmesinde "MariaDB is alive" satırını görene kadar bekleyin.

Bu aşamada MariaDB hâlâ Pi'nin SD kartında çalışıyor; veriyi SSD'ye taşıma adımına henüz gelmedik. Önce bağlantıyı kurup çalıştığını doğrulamak, hatayı ayırmayı kolaylaştırır.

USB SSD hazırlığı ve bağlantı

  1. SSD'yi dış yuvasına takın ve Pi'nin USB 3.0 portuna (mavi renkli olanlar) bağlayın. USB 2.0 port da çalışır ama veritabanı erişimi belirgin biçimde yavaşlar.
  2. SSD'yi bir kez FAT32 ya da exFAT ile teslim aldıysanız, HAOS üzerindeki Disk Manager eklentisiyle ya da başka bir bilgisayarda ext4 dosya sistemiyle biçimlendirin. FAT ailesi dosya sistemlerinde MariaDB'nin dosya kilitleme davranışı güvenilir değildir.
  3. SSD'yi Pi'ye bağladıktan sonra Settings > System > Hardware ekranında diskin listede göründüğünü doğrulayın.

SSD'yi beslemek için yuvanın harici güç Adaptörü varsa kullanın. Yalnızca USB'den beslenen 2,5" SSD'ler Pi 4 üzerinde genelde sorunsuz çalışır ama Anadolu'da yaz kış şebeke dalgalanması yaşanan yerlerde harici besleme daha güvenilir bir seçimdir.

Home Assistant recorder ayarı

Veritabanı bağlantısı configuration.yaml içindeki recorder bloğuyla tanımlanır:

recorder:
db_url: mysql://homeassistant:SIFRENIZ@core-mariadb/homeassistant?charset=utf8mb4
  1. SIFRENIZ yerine eklenti ayarında belirlediğiniz kullanıcının parolasını yazın; parolada @ ya da : karakteri geçiyorsa bunları URL kodlu biçimde yazın (@ için %40).
  2. Yapılandırmayı kaydedip Home Assistant'ı yeniden başlatın.
  3. Settings > System > Logs ekranında recorder bileşeniyle ilgili hata olmadığını kontrol edin.
  4. Developer Tools > Statistics ekranında istatistiklerin göründüğünü doğrulayın; bu ekranın dolu olması, kayıt verisinin yeni veritabanına yazıldığını gösterir.

Veritabanı bu noktada MariaDB eklentisinin kendi veri hacminde, yani hâlâ SD kartta duruyor. SSD'ye taşıma için son adım, eklentinin veri dizinini harici diske bağlamaktır; bunu Settings > System > Storage ekranındaki eklenti verisini taşıma seçeneğiyle ya da Disk Manager eklentisiyle yapabilirsiniz. Taşıma öncesi MariaDB eklentisini durdurun, taşıma sonrası yeniden başlatın.

recorder purge ile veri hacmini kontrol altında tutma

Veritabanını SSD'ye taşımak yıpranma sorununu azaltır ama boyutu kontrolsüz büyüyen bir veritabanı, SSD dolunca yeni sorun üretir. recorder bloğuna şu satırları ekleyin:

recorder:
db_url: mysql://homeassistant:SIFRENIZ@core-mariadb/homeassistant?charset=utf8mb4
purge_keep_days: 14
commit_interval: 20
  • purge_keep_days: 14 eski kayıtları 14 günde bir otomatik temizler. Enerji izleme gibi uzun vadeli veriler long_term_statistics içinde ayrı tutulur ve bu temizlemeden etkilenmez.
  • commit_interval: 20 yazma işlemlerini 20 saniyelik gruplar hâlinde yaparak I/O sayısını düşürür. Varsayılan değer 1 saniyedir; artırmak geçmiş kartlarında güncellemenin birkaç saniye gecikmesine yol açabilir.

Sorun giderme

  • Home Assistant başlamıyor, logda "cannot connect to database" yazıyor: MariaDB eklentisinin çalıştığını ve parolanın doğru olduğunu kontrol edin. Bağlantı dizesindeki core-mariadb ana makine adı HAOS eklenti ağına özgüdür; localhost yazmayın.
  • Eklenti güncellemesinden sonra bağlantı kopuyor: MariaDB eklentisini ve Home Assistant'ı sırayla yeniden başlatın; iki hizmet açılış sırası yüzünden birbirini bekliyor olabilir.
  • Geçmiş kartları boş görünüyor: Eski SQLite verisi yeni veritabanına kopyalanmaz; taşıma anından itibaren yeni kayıtlar yazılır. Eski kayıtlara ihtiyacınız varsa, taşımadan önce .storage içindeki recorder durumunu değil, doğrudan SQLite dosyasının yedeğini saklayın.

Kullandığınız SSD'nin veya yuvanın yazma ömrü, hız ve güç tüketimi değerleri için üreticinin veri sayfasına bakın; ucuz yuvalarda UASP desteği eksik olabilir ve bu, MariaDB performansını düşürür.

Güvenlik uyarısı

Bu rehber şebeke gerilimi (230/400 V) ya da yüksek akımlı batarya içeren işlere değiniyor. Bu tür işleri yalnızca yetkili ve deneyimli kişiler yapmalıdır; şebeke tarafındaki bağlantıları lisanslı bir elektrikçiye bırak. Koruma elemanlarını (sigorta, kaçak akım rölesi, BMS, topraklama) asla atlama ya da devre dışı bırakma. Çalışmadan önce enerjiyi kes, gerilimsizliği ölç ve ekipmanın veri sayfasındaki sınırlara uy.

Faydalı buldum Henüz değerlendirilmedi

Aynı kategoriden rehberler

Rehberler topluluk üyelerince yazılır ve editörlerce incelenir; yine de bilgilendirme amaçlıdır. Elektrik, batarya, gaz ve tesisat işlerinde yetkili bir uzmana danış. Hatalı veya tehlikeli bir yönlendirme görürsen “Raporla” ile bildir.

Emin misin?