Skip to main content

Android TV / Google TV

Controle dispositivos Android TV e Google TV diretamente pelo Portal usando o mesmo protocolo do aplicativo Google TV (Android TV Remote v2). Suporta sticks de streaming, TVs com Android TV embarcado, dongles Chromecast com Google TV, e qualquer outro dispositivo que rode o serviço Android TV Remote Service.

Pré-requisitos

  • O dispositivo Android TV precisa estar ligado e na mesma rede do edge local.
  • O serviço Android TV Remote Service já vem pré-instalado em todos os dispositivos Google TV / Android TV oficiais — não é necessário ativar modo desenvolvedor nem ADB.
  • A integração precisa rodar em um edge local. Crie um em Configurações → Edges antes de adicionar.

Configurar

1

Adicione a integração

Va em Configurações → Integrações → Adicionar → Android TV / Google TV.
2

Informe o IP

Digite o endereço IP local da TV (ex: 192.168.1.50). O nome amigável é opcional.
3

Digite o PIN

A TV exibirá um código de 6 caracteres. Digite-o no Portal para concluir o pareamento. O certificado gerado fica armazenado e o pareamento não precisa ser repetido.
4

Controle

Duas entidades são criadas:
  • media_player.android_tv_<ip>_media_player — controle de mídia (play/pause, volume, fontes)
  • remote.android_tv_<ip>_remote — envio de comandos de tecla arbitrários

Funcionalidades

  • Liga/desliga (toggle via KEYCODE_POWER)
  • Volume up/down/mute
  • Play / Pause / Next / Previous
  • Channel up/down
  • Lançar app por deep link (ex: https://www.netflix.com/title.*)
  • Envio de qualquer KEYCODE Android via remote.send_command

Comandos de tecla suportados

A entidade remote aceita qualquer keycode Android. Exemplos comuns:
ComandoKeycode
SetasKEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT
ConfirmarKEYCODE_DPAD_CENTER, KEYCODE_ENTER
Voltar / HomeKEYCODE_BACK, KEYCODE_HOME
PowerKEYCODE_POWER
VolumeKEYCODE_VOLUME_UP, KEYCODE_VOLUME_DOWN, KEYCODE_VOLUME_MUTE
MídiaKEYCODE_MEDIA_PLAY_PAUSE, KEYCODE_MEDIA_NEXT, KEYCODE_MEDIA_PREVIOUS
Entradas HDMIKEYCODE_TV_INPUT_HDMI_1..KEYCODE_TV_INPUT_HDMI_4
A lista completa segue as constantes do Android KeyEvent.
Você pode usar nomes curtos: o Portal automaticamente prefixa KEYCODE_ quando necessário. remote.send_command com command: "home" é equivalente a KEYCODE_HOME.

Dashboard

Use o card Media Player para exibir o estado (ligado/desligado, app atual, volume) e o card Remote para envio de comandos por botão.

Comandos ADB (avançado)

Além do protocolo Android TV Remote v2, a integração expõe um canal ADB (Android Debug Bridge) que permite executar qualquer comando shell no dispositivo — útil para automações de baixo nível, abrir activities específicas, listar pacotes, ler logs, etc.

Pré-requisitos para ADB

1

Habilite o ADB sobre rede

Em Configurações → Sistema → Sobre → Build (toque 7 vezes para ativar modo desenvolvedor). Depois em Configurações → Sistema → Opções de desenvolvedor, ative Depuração USB e Depuração via rede (ou “ADB sobre Wi-Fi”, dependendo do dispositivo).
2

Aprove o edge na primeira conexão

Na primeira chamada adb_command, a TV exibe um diálogo “Permitir depuração USB?” com o fingerprint RSA do edge. Marque “Sempre permitir deste computador” e clique em Permitir.

Action: android_tv.adb_command

Aceita um campo command que pode ser:
  • Um alias curto: HOME, BACK, UP, DOWN, LEFT, RIGHT, CENTER, POWER, SLEEP, WAKEUP, MENU, ENTER, VOLUME_UP, VOLUME_DOWN, MUTE, PLAY, PAUSE, PLAY_PAUSE, STOP, NEXT, PREVIOUS, CHANNEL_UP, CHANNEL_DOWN.
  • Um comando shell ADB cru, ex.: input keyevent 26, am start -a android.intent.action.VIEW -d "https://youtube.com", pm list packages, dumpsys media_session.
Exemplo — apertar HOME:
action: android_tv.adb_command
target:
  entity_id: media_player.android_tv_192_168_1_50_media_player
data:
  command: HOME
Exemplo — abrir Netflix por intent:
action: android_tv.adb_command
target:
  entity_id: media_player.android_tv_192_168_1_50_media_player
data:
  command: "am start -a android.intent.action.VIEW -d 'https://www.netflix.com/title.*'"
Exemplo — listar apps instalados:
action: android_tv.adb_command
target:
  entity_id: media_player.android_tv_192_168_1_50_media_player
data:
  command: "pm list packages -3"
A saída do comando volta no campo result.response da resposta HTTP do serviço.
Comandos ADB são mais lentos que o protocolo Remote v2 (TCP handshake por chamada). Use o remote.send_command para teclas comuns e o adb_command para coisas que o Remote v2 não cobre.

Solução de problemas

  • “Sessão de pareamento expirou” — o PIN só pode ser enviado dentro de 5 minutos após o início do pareamento. Recomece a partir do passo do IP.
  • “Android TV reportou unpaired” — alguém removeu o pareamento no menu Configurações → Apps → Android TV Remote Service da TV. Remova a integração no Portal e refaça.
  • TV não exibe PIN — verifique se a TV está ligada e na mesma rede do edge. Algumas TVs precisam estar no menu inicial (não em modo standby profundo).
  • “adb connect rejeitado: failed to authenticate” — você ainda não aprovou o edge na TV. Execute o adb_command uma vez, aceite o diálogo na TV e tente novamente.
  • “adb connect rejeitado: unable to connect” — ADB não está ativado nas opções de desenvolvedor, ou a porta 5555 está bloqueada por firewall.