homelab-agent-ha

CT 209’da (192.168.1.32, /opt/homelab-agent) homelab-agent-ha.service systemd daemon’u olarak çalışan otonom Home Assistant ops ajanı. CT 207’deki genel homelab-agent’tan farklı, kardeş bir proje; çekirdek ajanın bilerek dokunmadığı ‘HA operatörün alanıdır’ boşluğunu doldurur. Repo: ahmetem/homelab-agent-ha. Dashboard: https://hadashboard.ahmetkaraca.com/dashboard/.

Ne yapar

HA’yı remote ha-mcp ile canlı yoklar, Claude Opus 4.8’e (Claude Code CLI üzerinden) danışıp katı bir güvenlik zarfı içinde self-heal eder.

MCP bağlantısı

  • claude-mcp.json’da tek server: homeassistant (ha-mcp). Uzak HTTP üzerinden clients/ha_mcp.py ile erişilir; tool-search/proxy modunda ~84 tool kataloğuna 8 birinci-sınıf tool + 3 generic proxy (ha_call_read/write/delete_tool) ile erişim verir.^[çıkarım]
  • Önemli mimari: stdio MCP havuzu (config/mcp_servers.yaml, MCPPool) boştur; homeassistant stdio değil uzak HTTP MCP’dir. Bu yüzden executor onaylı homeassistant.* aksiyonlarını stdio havuzuna yönlendirince ‘MCP server homeassistant not in pool’ hatası veriyordu.

Güvenlik kapısı (HA’ya özel gevşetme)

Ayrıntı ve gerekçe: bkz. 2026-06-27-homelab-agent-ha-guvenlik-kapisi. Özet: HA S4 → otomatik (otonom dahil onaysız), HA S5 → Telegram onayıyla çalıştırılabilir; otomatik onaylayıcı yoktur (S5 her zaman insan dokunuşu ister). Proxmox/postgres/pbs/IMC merdiveni aynen kaldı (S4→onay, S5→yasak).

  • v0.6.2: onaylı homeassistant.* aksiyonları artık executor.py içinden ha_mcp.call_tool_result() ile HTTP üzerinden (Claude’unkiyle birebir aynı ad+argüman) tekrarlanır; ha_config_get_* salt-okuma tool’ları S4→S1 sınıflandı (gereksiz onay bitti).
  • v0.6.3: Telegram onay kartına ‘GERİ ALINAMAZ (S5)’ banner’ı; describe_action HA-bilinçli (recorder.purge → ‘TÜM geçmiş KALICI SİLİNECEK’ vb.).

Açık footgun (henüz çözülmedi)

safety.py::_classify_ha tanınmayan/yeni bir ha_* tool’unu default S4’e sınıflar; HA S4 artık otonom-otomatik olduğundan ileride ha-mcp’ye eklenecek bilinmeyen bir tool insan olmadan fiziksel evde çalışabilir. Öneri: tanınmayanlar onaya çekilsin — karar Ahmet’e bırakıldı.^[çıkarım]

Dashboard teması

Marka: parlak gök-camgöbeği (sky-cyan, hue ~192, primary #15657a) + ev (home) ikonu; kırmızı/mor/amber aksanlar anomali/uyarı/layer renkleri. Önceki yeşil tema değiştirildi (v0.6.1). Sürüm canlıda /health::__version__’dan dinamik gelir.

Sürümleme

Her commit homelab_agent/__init__.py::__version__ bump + docs/changelog.md. Bkz. calisma-tarzi § Sürümleme ve değişiklik kaydı kuralı.

İlgili