Os dispositivos virtuais Matter são úteis para desenvolver e testar soluções Matter. Eles podem ser comissionados usando o Google Home app (GHA) e controlados usando GHA e Google Assistant, assim como dispositivos Matter físicos.
Para desenvolvedores de apps e outras pessoas que precisam testar ou emular um dispositivo Matter virtual, mas não têm os recursos para criar um dispositivo físico ou virtual Matter, o Google oferece o Matter Virtual Device (MVD). O MVD é uma ferramenta leve independente para Linux ou macOS que simula diferentes tipos de dispositivos Matter virtuais e fornece uma interface gráfica do usuário para controlar e mostrar os estados do dispositivo Matter virtual.
Ao contrário de um dispositivo Matter físico, o MVD não depende do Bluetooth® de baixa energia (BLE) ou do Thread® para se conectar a um fabric Matter. Em vez disso, ele usa a conexão de rede Wi-Fi existente da máquina Linux ou macOS host para comissionamento.
Em comparação com outras ferramentas
O MVD é diferente do Virtual Device Controller (VDC) porque é uma solução independente, que combina um dispositivo virtual com uma interface para controlá-lo. Por outro lado, o VDC é usado para controlar um dispositivo Matter virtual separado.
O MVD contém vários dispositivos virtuais pré-criados diferentes e inclui uma interface integrada para executá-los e controlá-los.
Dispositivos compatíveis
O MVD oferece suporte aos seguintes tipos de dispositivo Matter:
Matter Tipo de dispositivo | Clusters de aplicativos | Tipo de ecossistema doméstico |
---|---|---|
Purificador de ar |
0x0202 0x0006 0x0071 |
Purificador de ar |
Sensor de qualidade do ar |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
Sensor |
Player de vídeo básico |
0x0006 0x0506 0x0509 |
TV |
Luz de temperatura de cor |
0x0300 0x0008 0x0006 |
Claro |
Sensor de contato |
0x0045 |
Sensor |
Luz regulável |
0x0008 0x0006 |
Claro |
Trava na porta |
0x0101 |
Bloquear |
Luz de cor estendida |
0x0300 0x0008 0x0006 |
Claro |
Ventilador |
0x0202 0x0006 |
Ventilador |
Sensor de fluxo |
0x0404 |
Sensor |
Switch genérico |
0x003b |
Switch |
Sensor de umidade |
0x0405 |
Sensor |
Sensor de luz |
0x0400 |
Sensor |
Sensor de ocupação |
0x0406 |
Sensor |
Luz de ativação/desativação |
0x0008 0x0006 |
Claro |
Interruptor de luz liga/desliga |
0x0006 |
Switch |
Unidade de plugue liga/desliga |
0x0008 0x0006 |
Tomadas |
Sensor de pressão |
0x0403 |
Sensor |
Bomba |
0x0006 0x0200 0x0402 0x0403 0x0404 |
Bomba-d'água |
Robô aspirador |
0x0054 0x0055 0x0061 |
Aspirador de pó |
Ar-condicionado do quarto |
0x0006 0x0201 0x0202 |
Ac |
Alarme de fumaça/monóxido de carbono |
0x005C |
Fum |
Sensor de temperatura |
0x0402 |
Sensor |
Termostato |
0x0201 |
Termostato |
Cortina de janela |
0x0102 |
Persianas |
Instalar o MVD
O MVD é executado em máquinas com processador x86 de 64 bits que executam o Debian (11 ou mais recente), Ubuntu (20.04 ou mais recente) ou macOS.
Linux
Faça o download do pacote MVD Debian (.deb)
Faça o download do arquivo de assinatura ASCII blindada (.asc).
Em seguida, execute dpkg
para instalar o pacote MVD
Debian (.deb):
sudo dpkg -i mvd_1.5.0_amd64.deb
macOS
Fazer o download do arquivo dmg do MVD (macOS x86)
Fazer o download do arquivo dmg do MVD (ARM64 M1)
Em seguida, clique duas vezes no arquivo dmg
para abrir a janela de
instalação.
Para concluir a instalação, selecione e arraste o ícone mvd
para a pasta Applications
:
Verificar o uso da porta
O módulo de controlador em MVD usa a porta TCP 33000 para fazer chamadas RPC para o dispositivo virtual. Portanto, se essa porta já estiver em uso por outro processo no computador, libere-a.
Para saber se algum processo está usando a porta 33000:
Linux
sudo fuser -v 33000/tcp
macOS
lsof -i:33000
É possível interromper qualquer processo usando a porta TCP 33000 com um único comando:
Linux
sudo fuser -k 33000/tcp
macOS
lsof -ti:33000 | xargs kill
Executar MVD
Linux
No Linux, execute MVD na pasta de aplicativos ou no terminal:
mvd
macOS
No macOS, use o Launchpad para abrir MVD ou execute MVD no terminal:
cd /Applications
open mvd.app
Configurar o dispositivo
A tela principal aparece na inicialização e permite configurar um dispositivo virtual:
- Tipo de dispositivo: selecione o tipo de dispositivo (por exemplo, luz, interruptor, sensor etc.).
- Nome do dispositivo: dê um nome fácil de usar ao dispositivo.
- Discriminador: um número de 12 bits usado para discernir entre vários
anúncios de dispositivos comissionáveis. (Padrão:
3840
). - Porta Matter: uma porta para comissionamento e comunicação de Matter por redes IP. O Matter usa a porta TCP/UDP 5540 por padrão, mas é possível configurar o dispositivo virtual para usar uma porta diferente, desde que nenhum outro serviço a esteja usando.
- ID do fornecedor: apenas o ID de teste do fornecedor
0xFFF1
é aceito. - ID do produto: apenas os IDs de produtos de teste de
0x8000
a0x801F
são aceitos.
Configurar seu firewall
Linux
Se você tiver um firewall em execução no computador, desligue-o ou permita conexões TCP/UDP de entrada na porta Matter.
Para conferir as regras de firewall netfilter ativas, execute:
sudo iptables -L -n
Se você estiver usando o "ufw", ele poderá ser desativado com:
sudo ufw disable
E pode ser reativado com:
sudo ufw enable
macOS
Para configurar ou desativar o firewall no macOS:
- Acesse o menu Apple e escolha System Settings.
- Clique em Rede na lista da barra lateral.
- Clique em Firewall.
- Mude a chave de Firewall para a posição Desativado.
Executar o dispositivo
Depois que o dispositivo estiver configurado, clique em Criar dispositivo. Quando o dispositivo é criado, a tela Controlador aparece. Dependendo do tipo de dispositivo selecionado, você poderá encontrar um ou mais dos seguintes controles:
- Ativar/desativar: comum na maioria dos dispositivos.
- Nível: por exemplo, uma luz pode ter um controle deslizante de nível para ajustar o brilho.
- Cor: por exemplo, uma luz colorida pode ter esse controle.
- Ocupação: o sensor de ocupação oferece esse controle para simular o estado ocupado ou desocupado.
Todos os dispositivos virtuais têm os seguintes controles:
- QRCode: mostra o código QR usado para comissionamento.
- Reboot: reinicia o dispositivo virtual. O dispositivo é desconectado da rede por um breve período.
- Redefinir: redefine o dispositivo atual para a configuração original e limpa todo o estado, incluindo a comissionamento, o estado dos controles atuais e assim por diante.
- Excluir: destrói o dispositivo e retorna à tela Criar dispositivo.
Comissionar o dispositivo
O dispositivo pode ser comissionado assim que é criado.
Há alguns pré-requisitos para comissionar o dispositivo:
Você precisa ter um projeto em Google Home Developer Console. Esse projeto precisa conter uma integração Matter com a mesma combinação de VID/PID usada na configuração do dispositivo virtual. Consulte o guia de criação de projetos para mais detalhes.
É necessário ter um Google Nest Hub compatível com o Matter.
Você precisa ter um smartphone com o Android 8.1 ou mais recente e GHA instalado.
O smartphone Android precisa estar conectado à mesma rede Wi-Fi que o hub.
A máquina host precisa estar conectada à rede Wi-Fi.
Para comissionar o dispositivo usando o GHA, clique em QRCode para mostrar o código QR do dispositivo e siga as instruções em Parear um dispositivo Matter, que explicam como integrar um dispositivo Matter usando o GHA. Também é possível comissionar o dispositivo usando o Google Home Sample App for Matter.
Consulte nosso Matter Introdutório para saber como funciona a ativação do Matter.
Controlar o dispositivo
Depois de comissionar um dispositivo virtual, você pode controlá-lo usando o app Google Home ou o Google Assistente por voz. Você pode fazer o seguinte:
- Controle o dispositivo usando GHA ou Assistant enquanto monitora as mudanças de estado no dispositivo virtual ou
- Controle o dispositivo usando o Sample App for Matter enquanto monitora as mudanças de estado no dispositivo virtual ou
- Controle o estado do dispositivo pelo próprio MVD enquanto monitora as mudanças de estado em GHA ou Assistant.
Testar com o dispositivo
Para testar com Assistant, recomendamos usar um simulador de expressões, como a extensão do Google Home para o VS Code ou o plug-in do Google Home para o Android Studio.
Conferir detalhes do dispositivo
A tela Detalhes do dispositivo mostra informações detalhadas sobre o dispositivo:
- Nome:o nome amigável atribuído ao dispositivo.
- Tipo de dispositivo: o tipo de dispositivo selecionado.
- Discriminador: o discriminador do dispositivo atual.
- ID do fornecedor: o ID do fornecedor do dispositivo atual.
- ID do produto: o ID do produto do dispositivo atual.
- Porta RPC: a porta RPC que o dispositivo usa para se comunicar com os controladores (GUI).
- Porta Matter: a porta usada pelo dispositivo atual para se comunicar pela rede IP.
- Código de acesso: o PIN usado para comissionar o dispositivo pela rede.
- Pasta de configuração: é a pasta em que o dispositivo virtual armazena a configuração.
- Informações de comissão: mostra os fabrics aos quais o dispositivo se juntou e o ID do nó do dispositivo no fabric.
Conferir os registros do dispositivo
Se você tiver iniciado o MVD no terminal, a saída do registro vai aparecer
em stdout
.
Também é possível conferir os registros de dispositivo na guia Registros de dispositivo.
Parar o dispositivo
Para interromper e destruir o dispositivo, clique em Excluir.
Encerrar o app
Fechar a janela de controle destrói o dispositivo e encerra o aplicativo MVD. Se você tiver iniciado o aplicativo no terminal, também poderá encerrar o aplicativo digitando Ctrl-C no terminal.
Ajuda
Para receber ajuda com MVD, informar um bug ou solicitar um novo recurso, entre em contato com seu contato de suporte do Google.
Clique no botão de ajuda
no canto superior direito da janela para acessar esta página.Informar um bug
Se você achar que encontrou um defeito no MVD, poderá registrar um bug clicando no botão no canto superior direito da janela.
Enviar feedback
Para enviar sua opinião sobre o que você gosta em MVD ou como podemos melhorar sua experiência com a ferramenta, preencha nosso formulário de feedback.
O formulário pode ser iniciado pelo botão de feedback
no canto superior direito da janela ou clicando no botão abaixo.