💡 3 Maddede Bu Yazının Özeti
OpenClaw için geliştirilen özel LG webOS TV becerisinin doğal dil, yerel ağ kontrolü, erişilebilirlik, güvenlik ve doğrulama katmanlarını ayrıntılı biçimde inceliyoruz.
“Netflix’i aç”, “Kanal D’ye geç”, “sesi 20 yap” ya da “televizyonun durumunu söyle.” OpenClaw için hazırlanan özel bir LG webOS TV becerisi, bu doğal dil isteklerini yerel ağda çalışan doğrulanabilir televizyon komutlarına dönüştürebiliyor. Böylece uzaktan kumandanın katmanlı menülerinde dolaşmak yerine sohbet ekranından uygulama, kanal, ses ve medya denetimi yapılabiliyor.
Bu yazı, gerçek bir OpenClaw skill yapısından hareketle entegrasyonun nasıl tasarlandığını; hangi parçaların birlikte çalıştığını, güvenlik ve mahremiyetin nasıl korunması gerektiğini, erişilebilirlik açısından ne kazandırdığını ve dijital platformlarda neden her zaman “doğrudan içerik oynatma” garantisi verilemediğini ayrıntılı biçimde anlatıyor. Buradaki beceri, OpenClaw’ın beceri sistemi üzerinde geliştirilmiş özel bir entegrasyondur; OpenClaw’ın her LG televizyonu kurulum yapmadan yönettiği anlamına gelmez.
OpenClaw skill nedir?
OpenClaw’da bir skill, ajana belirli bir işi ne zaman ve nasıl yapacağını öğreten yeniden kullanılabilir bir yönerge paketidir. Resmî OpenClaw belgelerine göre her becerinin merkezinde YAML ön bilgisi ile Markdown yönergelerini içeren bir SKILL.md dosyası bulunur. Beceri klasörü gerektiğinde komut dosyaları, başvuru belgeleri ve başka destek dosyaları da taşıyabilir.
Bu ayrım önemlidir: Büyük dil modeli, televizyonun özel protokolünü kendiliğinden tahmin etmek zorunda kalmaz. Skill; desteklenen komutları, hangi durumda hangi aracın çağrılacağını, başarılı sonucun nasıl doğrulanacağını ve kullanıcıya ne söyleneceğini açıkça tarif eder. Modelin görevi doğal dildeki amacı anlamak ve izin verilen, önceden tanımlı işlemlerden doğru olanı seçmektir.
OpenClaw’ın beceri envanteri; çalışma alanı, paylaşılan beceri dizini veya eklenti paketi gibi kaynaklardan yüklenebilir. openclaw skills list, info ve check komutlarıyla bir becerinin bulunup bulunmadığı, gereksinimlerinin karşılanıp karşılanmadığı ve ajana görünür olup olmadığı denetlenebilir. Bu, “dosya var ama neden çalışmıyor?” türü sorunları sistematik biçimde ayırmaya yardımcı olur.
LG TV entegrasyonunun mimarisi
Entegrasyon beş katmanlı, küçük ama anlaşılır bir mimariye dayanıyor:
- Sohbet katmanı: Kullanıcı Telegram veya başka bir OpenClaw kanalında doğal dilde isteğini iletiyor.
- Amaç ve politika katmanı: OpenClaw, isteğin televizyonla ilgili olduğunu saptıyor; LG becerisini yüklüyor ve becerideki güvenlik kurallarını uyguluyor.
- Komut uyarlayıcısı: Sınırlı bir komut satırı arayüzü; “uygulama aç”, “kanal değiştir”, “sesi ayarla” veya “durumu oku” gibi işlemleri standartlaştırıyor.
- webOS istemcisi: Node.js tarafındaki istemci, televizyonla yerel ağ üzerinden WebSocket bağlantısı kuruyor ve uygun SSAP isteğini gönderiyor.
- Sonuç ve doğrulama: Televizyondan dönen yanıt kısa, anlaşılır bir Türkçe sonuç mesajına çevriliyor; gerekli işlemlerde aktif uygulama, kanal veya ses durumu yeniden okunuyor.
Bu tasarımda sohbet kanalı doğrudan televizyona bağlanmıyor. OpenClaw’ın çalıştığı güvenilir cihaz, yerel ağdaki kontrol köprüsü görevini görüyor. Böylece TV denetimi için bulutta herkese açık bir kontrol paneli açmak ya da ev ağına port yönlendirmek gerekmiyor. Bununla birlikte sohbet sağlayıcısına yazılan komutun o sağlayıcının sunucularından geçebileceği unutulmamalı; yerel olan bölüm, kontrol köprüsü ile televizyon arasındaki bağlantıdır.
LG webOS tarafında kullanılan açık kaynak lgtv2 istemcisi; yeni televizyonlarda güvenli WebSocket bağlantısını, eski modellerdeki bağlantı seçeneğini, ilk eşleştirme istemini, istemci anahtarının daha sonraki bağlantılarda kullanılmasını ve Wake-on-LAN desteğini belgeliyor. Entegrasyon, bu düşük düzey ayrıntıları kullanıcıdan saklayarak görev odaklı komutlar sunuyor.
Beceri neleri kontrol edebiliyor?
İncelenen beceri, sık kullanılan televizyon görevlerini dört ana grupta topluyor:
Uygulama ve kaynak seçimi
- Netflix, YouTube, Prime Video, Disney+ ve Spotify gibi uygulamaları açma;
- canlı televizyona veya desteklenen HDMI girişlerine geçme;
- ana ekrana dönme ve geri komutu gönderme.
Kanal denetimi
- kanal numarasıyla doğrudan geçiş;
- “Kanal D”, “TRT 1” veya “Show TV” gibi adla kanal bulma;
- kanal adındaki HD, SD, FHD ve 4K gibi ekleri ayıklayarak daha dayanıklı eşleştirme.
Ses ve medya
- sesi belirli bir düzeye ayarlama;
- sesi artırma, azaltma, kapatma ve yeniden açma;
- oynatma, duraklatma, durdurma, ileri ve geri sarma düğmeleri.
Canlı durum
- televizyonun bağlantı durumunu okuma;
- ön plandaki uygulamayı öğrenme;
- ses düzeyini ve sessiz modunu denetleme.
Komut satırı katmanı örneğin şu tür çağrılar sunabilir:
python3 scripts/lg_control.py status
python3 scripts/lg_control.py app netflix
python3 scripts/lg_control.py channel "Kanal D"
python3 scripts/lg_control.py set_volume 20
python3 scripts/lg_control.py pause
Bu örneklerde özel ağ adresi, eşleştirme anahtarı veya cihaz kimliği bulunmuyor. Bu değerler hiçbir zaman makaleye, sohbet yanıtına veya genel günlük kaydına eklenmemeli.
Doğal dil isteği nasıl TV komutuna dönüşüyor?
“Kanal D’yi aç” isteğinde modelin doğrudan rastgele bir webOS çağrısı üretmesi yerine kontrollü bir zincir kullanılıyor. Önce LG becerisi seçiliyor. Beceri, kanal değiştirme için tek bir izinli komut biçimi tanımlıyor. Komut uyarlayıcısı televizyonun kanal listesini alıyor, kullanıcının yazdığı adı sadeleştiriyor, en güvenli eşleşmeyi buluyor ve yalnız bulunan kanalın kimliğiyle geçiş isteği gönderiyor.
“Ses 20 olsun” isteğinde de benzer bir koruma var. Girdi sayıya çevriliyor ve geçerli aralığın dışındaysa sınırlandırılıyor. “Netflix’i aç” komutunda insanın kullandığı kısa ad, televizyonun beklediği uygulama kimliğine eşleniyor. Böylece kullanıcı teknik uygulama kimliklerini ezberlemiyor.
Bu yapı, üretken yapay zekânın güçlü olduğu dil anlama işini; kesin, denetlenebilir ve sınırlı cihaz komutlarından ayırıyor. Model “ne istendiğini” belirliyor, adaptör ise “bu isteğin cihazda hangi izinli işlemle yapılacağını” uyguluyor. Güvenilir ev otomasyonu için en önemli tasarım kararlarından biri bu ayrımdır.
Kurulum ve ilk eşleştirme yaklaşımı
Genel kurulumda OpenClaw’ın çalıştığı cihaz ile televizyonun birbirine erişebildiği aynı güvenilir yerel ağda bulunması gerekir. Node.js istemcisi ve LG kontrol betikleri kurulduktan sonra TV adresi, kullanıcıya açık makale veya sohbet yerine yerel yapılandırmada tutulur.
İlk bağlantıda televizyon ekranda bir eşleştirme onayı gösterebilir. Bu onay, kumandayla bir kez kabul edilir. Oluşan istemci anahtarı daha sonraki bağlantılarda yeniden kullanılır. Anahtar parola gibi korunmalı; dosya izinleri yalnız ilgili kullanıcı hesabının okuyabileceği biçimde sınırlandırılmalıdır. Yedeklere, hata raporlarına veya örnek kod depolarına yanlışlıkla girmemesi ayrıca denetlenmelidir.
TV derin beklemedeyken WebSocket bağlantısına cevap vermeyebilir. Wake-on-LAN için televizyondaki “mobil cihazla açma”, “Wi-Fi ile açma” veya modeline göre benzer adlı ayarın etkin olması gerekir. Denetleyici önce doğrudan bağlantıyı dener; yanıt alamazsa uyandırma paketini gönderip kısa, sınırlı bir süre yeniden bağlanmayı deneyebilir. Sonsuz döngü veya sürekli ağ taraması yerine zaman aşımıyla başarısızlığı açıkça bildirmek daha güvenlidir.
Kanal adlarını güvenilir biçimde eşleştirmek
Kanal adları sandığımız kadar tutarlı değildir. Aynı yayın “Kanal D”, “Kanal D HD” veya operatörün eklediği farklı bir biçimde görünebilir. Beceri bu nedenle sorguyu ve listedeki adları küçük harfe çeviriyor; boşluk ve noktalama işaretlerini sadeleştiriyor; HD, SD, FHD, 4K ve UHD gibi kalite etiketlerini karşılaştırmadan çıkarıyor.
Eşleştirme sırası da önem taşıyor. Önce kanal numarası, sonra tam ad, ardından kontrollü başlangıç eşleşmesi ve en son içerme kontrolü deneniyor. İlk bulunan belirsiz sonucu açmak yerine birden fazla benzer aday olduğunda kullanıcıdan daha net ad istemek, yanlış kanala geçme riskini azaltır. Özellikle aynı ağın haber, spor ve belgesel kanalları benzer ad taşıyabilir.
Bu yaklaşım Türkçe karakterleri de korumalıdır. “Ş”, “İ”, “Ö” ve “Ü” harflerini tümüyle silen kaba bir ASCII dönüşümü, beklenmedik eşleşmelere yol açabilir. Doğal dil kolaylığı, kanal kimliğini tahmin etmek anlamına gelmemeli; nihai geçiş daima TV’nin güncel kanal listesindeki gerçek bir kayda dayanmalıdır.
Netflix, YouTube ve diğer uygulamaları açmak
Uygulama açmak için insan dostu adlarla webOS uygulama kimlikleri arasında bir takma ad tablosu kullanılıyor. Kullanıcı “YouTube’u aç” dediğinde beceri gerekli kimliği kendisi seçiyor. Uygulama kimlikleri televizyon modeli, bölge ve uygulama sürümüne göre değişebileceğinden bu tablo her ortamda körlemesine kopyalanmamalı; kurulu uygulama listesi üzerinden doğrulanmalıdır.
Buradaki kritik ayrım şudur: uygulamayı açmak ile belirli filmi ya da bölümü oynatmak aynı işlem değildir. Bazı uygulamalar içerik hedefini kabul ederken bazıları yalnız ana sayfayı açar. Kullanıcı profili seçimi, ebeveyn denetimi, devam et düğmesi, reklam veya oturum durumu doğrudan oynatmayı engelleyebilir. Bu nedenle beceri, uygulama başlatma yanıtını “film başladı” şeklinde yorumlamamalıdır.
Doğrudan içerik bağlantısı çalışmıyorsa ikinci yol uygulamanın kendi arama ve seçim arayüzünde uzaktan kumanda düğmeleriyle ilerlemektir. Ancak bu yol daha yavaş ve arayüz değişikliklerine daha duyarlıdır. Doğru tasarım, önce daha önce doğrulanmış doğrudan yolu denemek; yalnız başarısızsa ekran gezinmesine geçmek ve oynatma başladıktan sonra durumu yeniden kontrol etmektir.
En kısa doğrulanmış yol neden önemli?
Bir dijital platformda her seferinde ana sayfadan başlayıp yön tuşlarıyla arama yapmak teknik olarak mümkün olabilir; fakat iyi bir kullanıcı deneyimi değildir. Menü sırası profil, kampanya, ülke ve uygulama güncellemesiyle değişebilir. Aynı sayıda sağ ve aşağı tuşuna basmak bugün çalışırken yarın yanlış içeriği açabilir.
Bu yüzden entegrasyonun çalışma ilkesi şöyle olmalı:
- İstenen sonuca götüren daha önce doğrulanmış doğrudan komutu kullan.
- Komutun sonucunu etkin uygulama, kanal veya medya durumu üzerinden bir kez doğrula.
- Doğrudan yol başarısızsa kontrollü ekran gezinmesine geç.
- Yeni yol başarıyla doğrulanırsa bunu sonraki kullanım için yeniden kullanılabilir bir yordam hâline getir.
Bu kural yalnız LG televizyona özgü değil; Netflix, Disney+, YouTube, Prime Video ve benzeri tüm dijital platformlarda geçerli. Amaç kullanıcının bekleme süresini azaltırken, değişken arayüzlerde yanlış düğme zincirlerinin birikmesini önlemek.
Erişilebilirlik açısından gerçek kazanım
Bu entegrasyonda erişilebilirlik doğrudan kullanım senaryosunun merkezinde. Kör veya az gören bir kullanıcı için televizyonun ekrandaki uygulama satırlarını, odak konumunu ve değişken menülerini takip etmek zahmetli olabilir. Sesli Rehber etkin olsa bile uygulamalar arasında erişilebilirlik tutarlılığı aynı değildir; bazı özel video oynatıcıları odağı veya düğme adlarını eksik bildirebilir.
Sohbet tabanlı denetim, görevi görsel arayüzden metin tabanlı bir hedefe dönüştürüyor. Kullanıcı “Kanal D’yi aç”, “sesi üç kademe azalt”, “oynatmayı durdur” veya “şu anda hangi uygulama açık?” diyebiliyor. Sonuç da kopyalanabilir kısa metin olarak dönüyor. Bu, hem ekran okuyucu hem fiziksel klavye kullanan kişiler için uzaktan kumanda üzerinde yön bulma yükünü azaltıyor.
Yine de yapay zekâ yanıtı tek başına kanıt değildir. Erişilebilir bir sistem, “komutu gönderdim” ile “istenen sonuç ekranda gerçekleşti” ifadelerini ayırmalıdır. Etkin uygulama ve ses düzeyi okunabiliyorsa doğrulama yapılmalı; içerik başlığı API tarafından paylaşılmıyorsa bunun doğrulanamadığı açıkça söylenmelidir. Kullanıcıya gerektiğinde klavye ve ekran okuyucuyla uygulanabilecek metin tabanlı bir alternatif yol da verilmelidir.
Mahremiyet ve güvenlik modeli
Ev otomasyonu yazılarında çalışan örneği göstermek adına gerçek bağlantı ayrıntılarını yayımlamak ciddi bir hatadır. Televizyonun yerel adresi, donanım adresi, eşleştirme anahtarı, cihaz kimliği, Wi-Fi adı, ev ağı yapısı ve kontrol bilgisayarının kullanıcı bilgileri özel kabul edilmelidir. Bu yazıda bu değerlerin hiçbiri paylaşılmıyor.
Güvenli bir uygulama için temel kurallar şunlardır:
- Yerel erişim: TV denetim servisini doğrudan internete açmayın ve sırf uzaktan kontrol için yönlendiricide port yayımlamayın.
- Dar komut yüzeyi: Modelin keyfî SSAP adresi veya kabuk komutu üretmesine izin vermek yerine, önceden tanımlı komut listesi kullanın.
- Gizli dosyalar: Eşleştirme anahtarını ve uyanma için kullanılan cihaz bilgisini yalnız gerekli kullanıcı hesabının okuyabildiği dosyalarda saklayın.
- Günlük temizliği: Hata günlüklerinde kimlik anahtarı, özel ağ adresi veya ham bağlantı çerçevesi bulunmadığını denetleyin.
- Yetki ayrımı: Durum sorgusu televizyonu değiştirmemeli; ses, kanal, uygulama ve güç komutları yalnız açık kullanıcı isteğiyle çalışmalı.
- İlk eşleştirme: TV ekranındaki bağlantı isteğini yalnız kendi denetleyiciniz için onaylayın; tanımadığınız istemleri reddedin.
lgtv2 belgeleri, yeni modellerde güvenli WebSocket bağlantısını önce denediğini ve ilk bağlantıda alınan istemci anahtarını sonraki oturumlarda kullandığını açıklıyor. Kütüphane ayrıca sertifika doğrulama ve ilk kullanımda güvenme gibi ek seçenekler sunuyor. Hangi korumanın etkinleştirileceği televizyon modeli ve tehdit değerlendirmesine göre belirlenmeli; varsayılanların otomatik olarak en yüksek güvenlik seviyesi olduğu varsayılmamalı.
Hata yönetimi ve doğrulama
Televizyon kontrolünde “başarısız oldu, tekrar dene” yaklaşımı sınırsız uygulanmamalı. Aynı komut art arda gönderildiğinde ses beklenenden fazla değişebilir, geri düğmesi iki ekran atlayabilir veya güç durumu belirsizleşebilir. Entegrasyonun her işlem için kısa bir zaman aşımı, sınırlı yeniden deneme ve açık sonuç sözleşmesi kullanması gerekir.
Önerilen doğrulama örnekleri:
- uygulama açıldıktan sonra ön plandaki uygulamayı yeniden oku;
- ses değiştiğinde güncel ses düzeyini kontrol et;
- kanal değişiminden sonra canlı TV bağlamı destekliyorsa mevcut kanalı sorgula;
- kapatma komutunda bağlantının hemen kesilmesini tek başına hata sayma;
- uyandırma sonrasında TV’nin erişilebilir olmasını bekle, fakat belirli süre sonunda kullanıcıya gerçek durumu bildir.
İlk eşleştirme gerektiğinde beceri, TV ekranındaki onayın beklendiğini söylemeli. Televizyon kapalıysa karmaşık ağ açıklamalarıyla kullanıcıyı yormak yerine önce basit ve gözlenebilir çözümü sunmalı. Buna karşılık ağ bağlantısı gerçekten yoksa “uygulama açıldı” gibi hayalî başarı mesajı verilmemelidir.
Sınırlar ve yanlış beklentiler
Bu entegrasyon güçlü olsa da televizyonun bütün ayarlarını kapsamaz. lgtv2 projesi, eşleştirme bildirimindeki izinlerle sunulmayan görüntü ayarları ve enerji tasarrufu gibi bazı işlevlerin SSAP üzerinden erişilemeyebileceğini belirtiyor. Üretici yazılımı değiştikçe bazı uç noktalar 403, 404 veya uygulama hatası döndürebilir.
Başlıca sınırlar şöyle:
- uygulama kimlikleri ve içerik bağlantıları model, bölge ve sürüme göre farklılaşabilir;
- uygulamayı açmak, seçilen film veya bölümün oynadığını kanıtlamaz;
- medya durumunu bildiren servis her webOS sürümünde bulunmayabilir;
- canlı kanal listesi, anten veya uydu kanalları ayarlanmamış televizyonlarda kullanılamayabilir;
- TV tamamen enerjisizse Wake-on-LAN çalışmaz;
- ekranın görsel içeriği ayrı ve açıkça yetkilendirilmiş bir yakalama yöntemi olmadan bilinemez.
Bu nedenle beceri, desteklenmeyen bir işlevi varmış gibi göstermemeli. Televizyondan yalnız “Disney+ ön planda” bilgisi alınabiliyorsa “Konuşanlar’ın son bölümü oynuyor” sonucuna atlamamalıdır. Güvenilir otomasyonun değeri çok şey söylemesinde değil, bildiği ve bilmediği durumu doğru ayırmasındadır.
Beceriyi geliştirmek için öneriler
Temel kontrol tamamlandıktan sonra entegrasyon şu yönlerde geliştirilebilir:
- Dinamik uygulama keşfi: Sabit uygulama tablosunu kurulu uygulama listesinden doğrulamak ve yeni kimlikleri güvenli biçimde eşlemek.
- İşlem sonrası kanıt: Her değiştirici komut için küçük ve tek seferlik bir durum kontrolü eklemek.
- İdempotent komutlar: “Sessize al” isteğinde mevcut durum zaten sessizse yeniden işlem göndermemek.
- Profil ve içerik yolları: Dijital platformlarda doğrulanmış kısa yolları sürüm bilgisiyle saklamak; eskiyen yolları otomatik başarı saymamak.
- Erişilebilir geri bildirim: Sonucu önce kısa metinle vermek; istenirse aynı içeriği sesli yanıtla tamamlamak.
- Gizlilik denetimi: Makale, günlük ve hata raporlarında özel ağ değerlerini yakalayan otomatik kontroller çalıştırmak.
- Test modu: Komutu TV’ye göndermeden hangi işlem yapılacağını gösteren kuru çalışma seçeneği eklemek.
OpenClaw’ın resmî beceri araçlarıyla envanter, gereksinim ve görünürlük denetlenebilir. Skill yönergeleri ile komut dosyalarını aynı sürüm altında tutmak, “yönergede var ama kodda yok” türü uyumsuzlukları azaltır. Değişiklikten sonra en küçük uçtan uca test; durum sorgusu, tek bir uygulama açma, ses değişimi ve geri alma adımlarını kapsamalıdır.
Sonuç
OpenClaw ile LG webOS TV entegrasyonunun asıl değeri, televizyona birkaç ağ komutu göndermekten daha büyük. Skill; doğal dil, izinli cihaz işlemleri, yerel bağlantı, erişilebilir geri bildirim ve sonuç doğrulamasını tek bir kontrollü akışta birleştiriyor. Kullanıcı teknik uygulama kimliklerini ya da protokol adreslerini bilmeden “kanalı aç”, “sesi azalt” ve “durumu söyle” gibi hedefler verebiliyor.
Başarılı tasarımın üç ilkesi öne çıkıyor: özel bağlantı bilgilerini kesinlikle yayımlamamak, her dijital platformda önce en kısa doğrulanmış yolu kullanmak ve komut gönderimini fiziksel sonuçla karıştırmamak. Bu ilkeler korunduğunda sohbet tabanlı TV kontrolü yalnız ilgi çekici bir yapay zekâ gösterisi olmaktan çıkıp günlük yaşamda gerçekten yararlı, daha erişilebilir ve denetlenebilir bir ev teknolojisine dönüşüyor.