Uzak Sanal Cihaz

Cihaz SDK'sı

Matter sanal cihazlar, Matter çözümlerini geliştirmek ve test etmek için kullanışlıdır. Fiziksel Matter cihazlar gibi Google Home app (GHA) kullanılarak devreye alınabilir ve GHA ile Google Assistant kullanılarak kontrol edilebilir.

Uygulama geliştiriciler ve sanal Matter cihazı test etmeleri veya taklit etmeleri gereken ancak kendi fiziksel veya sanal Matter cihazlarını oluşturacak kaynaklara sahip olmayanlar için Google, Matter Virtual Device (MVD)'i sunar. MVD, farklı türde sanal Matter cihazları simüle eden ve sanal Matter cihazın durumlarını kontrol edip görüntülemek için grafik bir kullanıcı arayüzü sağlayan hafif, bağımsız bir Linux veya macOS masaüstü aracıdır.

Fiziksel bir Matter cihazın aksine, MVD bir Matter ağına katılmak için Bluetooth® Düşük Enerji (BDE) veya Thread®'i kullanmaz. Bunun yerine, ilk çalıştırma için ana Linux veya macOS makinesinin mevcut kablosuz ağ bağlantısını kullanır.

Diğer araçlara kıyasla

MVD, sanal bir cihazı kontrol etmek için kullanıcı arayüzüyle birleştiren bağımsız bir çözüm olması bakımından Virtual Device Controller (VDC)'den farklıdır. Buna karşılık VDC, Matter Virtual Device Development Environment (MVD-DE)'da oluşturduğumuz gibi ayrı bir sanal Matter cihazı kontrol etmek için kullanılır.

MVD-DE kod laboratuvarını daha önce kullanmış olabilirsiniz. Bu codelab'de tek bir sanal cihaz türü (akıllı ampul) oluşturacaksınız. Buna karşılık MVD, önceden oluşturulmuş birkaç farklı sanal cihaz içerir ve bunları çalıştırıp kontrol etmek için entegre bir kullanıcı arayüzü sunar.

Tablo: Sanal Matter cihaz aracı karşılaştırması
MVD VDC MVD-DE (Codelab)
Matter cihazı emülasyonu
Öykünülen bir Matter cihazı kontrol etme
Geliştirme çalışması gerekli
İndir 100 MB'tan az 9 GB 20 GB

Desteklenen cihazlar

MVD, aşağıdaki Matter cihaz türlerini destekler:

için desteklenen Matter cihaz türleri
Tablo: MVD
Matter Cihaz Türü Uygulama Kümeleri Ev Ekosistemi Türü
Temel Video Oynatıcı 0x0006
0x0506
0x0509
Tv
Renk Sıcaklığı Işığı 0x0300
0x0008
0x0006
Hafif
Temas Sensörü 0x0045
Sensor
Karartılabilir Işık 0x0008
0x0006
Hafif
Kapı Kilidi 0x0101
Kilitle
Genişletilmiş Renk Işığı 0x0300
0x0008
0x0006
Hafif
Vantilatör 0x0202
0x0006
Takipçi
Akış Sensörü 0x0404
Sensor
Genel Anahtar 0x003b
Geç
Nem Sensörü 0x0405
Sensor
Işık Sensörü 0x0400
Sensor
Doluluk Sensörü 0x0406
Sensor
Açma/kapatma ışığı 0x0008
0x0006
Hafif
Açma/Kapatma Işık Anahtarı 0x0006
Geç
Açma/Kapatma Takıp Çıkartılabilen Birimi 0x0008
0x0006
Outlet
Basınç Sensörü 0x0403
Sensor
Pompa 0x0006
0x0200
0x0402
0x0403
0x0404
Su Pompası
Robot Süpürge 0x0054
0x0055
0x0061
Vacuum
Oda Kliması 0x0006
0x0201
0x0202
Ac
Duman ve Karbonmonoksit Alarmı 0x005C
Duman
Sıcaklık Sensörü 0x0402
Sensor
Termostat 0x0201
Termostat
Pencere Örtüsü 0x0102
Panjur

MVD'yi yükleme

MVD, Debian (11 veya üzeri), Ubuntu (20.04 veya üzeri) ya da macOS çalıştıran 64 bit x86 işlemcili makinelerde çalışır.

Linux

MVD Debian (.deb) paketini indirin

Zırhlı ASCII imza (.asc) dosyasını indirin

Ardından, MVD Debian (.deb) paketini yüklemek için dpkg'ü çalıştırın:

sudo dpkg -i mvd_1.4.0_amd64.deb

macOS

MVD (macOS x86) dmg dosyasını indirin

MVD (ARM64 M1) dmg dosyasını indirme

Ardından, yükleme penceresini açmak için dmg dosyasını çift tıklayın.

Yüklemeyi tamamlamak için mvd simgesini seçip Applications klasörüne sürükleyin:

macOS yükleme

Bağlantı noktası kullanımını kontrol etme

MVD'teki denetleyici modülü, sanal cihaza RPC çağrıları yapmak için 33000 numaralı TCP bağlantı noktasını kullanır. Bu bağlantı noktası bilgisayarınızda başka bir işlem tarafından kullanılıyorsa bağlantı noktasını boşalttığınızdan emin olun.

Herhangi bir işlemin 33000 numaralı bağlantı noktasını kullanıp kullanmadığını görmek için:

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

33000 numaralı TCP bağlantı noktasını kullanan tüm işlemleri tek bir komutla sonlandırabilirsiniz:

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

MVD'yi çalıştırma

Linux

Linux'ta, uygulamaların klasöründen veya terminalden MVD'ü çalıştırın:

mvd

macOS

macOS'te MVD'ü açmak için Launchpad'i kullanın veya MVD'ü terminalden çalıştırın:

cd /Applications
open mvd.app

Cihazınızı yapılandırma

Başlatma sırasında ana ekran gösterilir ve sanal cihaz yapılandırmanıza olanak tanır:

  • Cihaz Türü: Cihaz türünü (ör. ışık, anahtar, sensör vb.) seçin.
  • Cihaz Adı: Cihaza kullanıcı dostu bir ad verin.
  • Ayırt edici: Komisyonlu birden fazla cihaz reklamı arasında ayrım yapmak için kullanılan 12 bitlik bir sayı. (Varsayılan: 3840).
  • Matter Bağlantı Noktası: Matter devreye alma ve IP ağları üzerinden iletişim için bir bağlantı noktası. Matter varsayılan olarak 5540 numaralı TCP/UDP bağlantı noktasını kullanır ancak başka bir hizmet tarafından kullanılmadığı sürece sanal cihazı farklı bir bağlantı noktası kullanacak şekilde yapılandırabilirsiniz.
  • Satıcı kimliği: Yalnızca test satıcı kimliği 0xFFF1 desteklenir.
  • Ürün kimliği: Yalnızca 0x8000 ile 0x801F arasındaki test ürün kimlikleri desteklenir.

Sanal cihaz yapılandırma ekranı

Güvenlik duvarınızı yapılandırma

Linux

Bilgisayarınızda çalışan bir güvenlik duvarınız varsa kapatın veya Matter bağlantı noktasında gelen TCP/UDP bağlantılarına izin verin.

Mevcut etkin netfilter güvenlik duvarı kurallarını görüntülemek için:

sudo iptables -L -n

`ufw` kullanıyorsanız aşağıdaki komutla devre dışı bırakılabilir:

sudo ufw disable

Ayrıca aşağıdaki yöntemlerle yeniden etkinleştirilebilir:

sudo ufw enable

macOS

macOS'te güvenlik duvarını yapılandırmak veya devre dışı bırakmak için:

  1.  Apple menüsüne gidin ve Sistem Ayarları'nı seçin.
  2. Kenar çubuğundaki listeden 'ı tıklayın.
  3. Güvenlik Duvarı'nı tıklayın.
  4. Güvenlik Duvarı anahtarını Kapalı konumuna getirin.

Cihazınızı çalıştırma

Cihaz yapılandırıldıktan sonra Cihaz oluştur'u tıklayın. Cihaz oluşturulduğunda Denetleyici ekranı görünür. Seçtiğiniz cihaz türüne bağlı olarak aşağıdaki kontrollerden birini veya daha fazlasını görebilirsiniz:

  • Açık/Kapalı: Cihazların çoğunda bulunur.
  • Seviye: Örneğin, bir ışıkta parlaklığı ayarlamak için seviye kaydırma çubuğu bulunabilir.
  • Renk: Örneğin, renkli bir ışıkta bu kontrol bulunabilir.
  • Doluluk: Doluluk Sensörü, dolu veya boş durumu simüle etmek için bu denetimi sunar.

Tüm sanal cihazlarda aşağıdaki kontroller bulunur:

  • QRCode: Devreye alma işlemi için kullanılan QR kodunu gösterir.
  • Yeniden başlat: Sanal cihazı yeniden başlatır. Cihazın ağ bağlantısı kısa süreliğine kesilir.
  • Sıfırla: Mevcut cihazı fabrika ayarlarına sıfırlar ve devreye alma, mevcut kontroller durumu vb. dahil tüm durumları temizler
  • Sil: Cihazı siler ve Cihaz oluştur ekranına geri döner.

Sanal cihaz kontrol ekranı

Cihazınızı kurma

Cihaz, oluşturulduğu anda komisyona tabi olur.

Cihazı devreye almak için birkaç ön koşul vardır:

  • Google Home Developer Console'te bir projeniz olmalıdır. Bu proje, sanal cihazınızı ayarlarken kullandığınızla aynı VID/PID kombinasyonuna sahip bir Matter entegrasyonu içermelidir. Ayrıntılar için proje oluşturma kılavuzuna bakın.

  • Matter'ı destekleyen bir Google Nest Hub'ınız olmalıdır.

  • Android 8.1 veya sonraki bir sürümü çalıştıran ve GHA yüklü olan bir Android telefonunuz olmalıdır.

  • Android telefon, hub ile aynı kablosuz ağa bağlı olmalıdır.

  • Ana makine kablosuz ağa bağlı olmalıdır.

Cihazı GHA kullanarak devreye almak için QRCode'nu tıklayarak cihazın QR kodunu görüntüleyin, ardından GHA'ü kullanarak Matter cihazın nasıl kullanılacağını açıklayan Matter cihazı eşleme bölümündeki talimatları uygulayın. Google Home Sample App for Matter simgesini kullanarak da cihazı devreye alabilirsiniz.

MatterDevreye Alma'nın işleyiş şeklini öğrenmek için Matter Primer makalemizi inceleyin.

Cihazı kontrol etme

Sanal bir cihazı kullanıma aldıktan sonra Google Home uygulamasını veya Google Asistan'ı sesli olarak kullanarak cihazı kontrol edebilirsiniz. Aşağıdaki yöntemlerden birini uygulayabilirsiniz:

  • Sanal cihazdaki durum değişikliklerini izlerken GHA veya Assistant aracılığıyla cihazı kontrol edin ya da
  • Sanal cihazdaki durum değişikliklerini izlerken Sample App for Matter simgesini kullanarak cihazı kontrol edin veya
  • GHA veya Assistant'deki durum değişikliklerini izlerken cihaz durumunu MVD üzerinden kontrol edin.

Cihazla test etme

Assistant ile test yapmak için VS Code için Google Home Uzantısı veya Android Studio için Google Home Eklentisi gibi bir ifade simülasyon aracı kullanmanızı öneririz.

Cihaz ayrıntılarını görüntüleme

Cihaz ayrıntıları ekranında ayrıntılı cihaz bilgileri gösterilir:

  • Ad: Cihaza verilen kullanıcı adı.
  • Cihaz Türü: Seçilen cihaz türü.
  • Ayrıştırıcı: Geçerli cihaz ayırıcısı.
  • Satıcı kimliği: Mevcut cihaz satıcı kimliği.
  • Ürün kimliği: Mevcut cihazın ürün kimliği.
  • RPC Bağlantı Noktası: Cihazın denetleyicilerle (GUI) iletişim kurduğu RPC bağlantı noktası.
  • Matter Bağlantı noktası: Geçerli cihazın IP ağı üzerinden iletişim kurmak için kullandığı bağlantı noktası.
  • Geçiş kodu: Cihazı ağ üzerinden devreye almak için kullanılan PIN.
  • Yapılandırma Klasörü: Sanal cihazın yapılandırmayı depoladığı klasör.
  • Komisyon Bilgileri: Cihazın katıldığı kumaşları ve kumaştaki cihazın düğüm kimliğini gösterir.

Cihaz günlüklerini görüntüleme

MVD'ü terminalden başlattıysanız günlük çıkışı stdout'te görünür. Cihaz günlüklerini Cihaz günlükleri sekmesinde de görüntüleyebilirsiniz.

Cihazı durdurma

Cihazı durdurup imha etmek için Sil'i tıklayın.

Uygulamayı sonlandırma

Kontrol penceresi kapatıldığında cihaz imha edilir ve MVD uygulaması sonlandırılır. Terminalden başlattıysanız terminalde Ctrl-C yazarak da uygulamayı sonlandırabilirsiniz.

Yardım alın

MVD ile ilgili yardım almak, hata bildirmek veya yeni bir özellik istemek için Google destek temsilcinizle iletişime geçin.

Pencerenin sağ üst köşesindeki yardım düğmesini tıkladığınızda bu sayfaya yönlendirilirsiniz.

Hata bildir

MVD'te bir kusur bulduğunuzu düşünüyorsanız pencerenin sağ üst köşesindeki Sorun düğmesini tıklayarak hata kaydı oluşturabilirsiniz.

Geri bildirim gönder

MVD ile ilgili beğendiğiniz özellikler veya araçla ilgili deneyiminizi nasıl iyileştirebileceğimiz hakkındaki düşüncelerinizi göndermek için geri bildirim formumuzu doldurun.

Form, pencerenin sağ üst köşesindeki geri bildirim düğmesinden veya aşağıdaki düğmeyi tıklayarak başlatılabilir.

Geri bildiriminizi gönderin