LG webOS no Node-red! Controle a TV no Node-red! + Notificações em Pop-up!

Olá, gostaria de controlar a sua tv da LG com webOS usando o Node-red? Claro né! rs

Então primeiro você deve adicionar a sua tv ao Home-Assistant:

Como já adicionou sua televisão ao Home Assistant, tem na sua mão o ip dela. Guarde esse ip que vamos precisar (caso não saiba onde achar o ip, olhe no seu roteador, lá aparece o ip da televisão).
Agora vamos para o Node-red!

No Node-red clique no menu no canto da direita a cima e vá em Manage palette.

Clique em Install e escreva lg para procurar “node-red-contrib-lgtv” e clique em install (no meu caso já está instalado rs). Os nodes necessários para controlar sua tv vão ser instalados!

Com os nodes instalados, vai aparecer uma nova aba da lgtv.

Agora vamos adicionar a sua televisão ao Node-red! Pegue o node “app”, dentro dele clique no lápis para adicionar sua televisão!

Em Host coloque o ip da sua televisão e clique em Connect!

Na sua televisão vai aparecer uma mensagem confirmando a conexão com o Node-red! Clique em sim!

Vai aparecer Token e clique em Add! Pronto, seu Node-red vai estar configurado para usar sua LG webOS.

Mas e agora, como vamos usar os nodes para controlar a tv? No próprio node tem uma explicação de como funciona os comandos para a televisão. Com um node da lgtv selecionado vamos na aba de exibição “help”, embaixo vai aparecer como deve ser o “msg.payload” para aquele node.

Por exemplo: No node app a “msg.payload” é “netflix” para abrir o app netflix na televisão, “com.webos.app.livetv” para mudar para os canais de televisão ou “com.webos.app.hdmi1” para mudar para a entrada hdmi1 da televisão. O comando para o Amazon Prime Video é “amazon”.

Sabendo disso, como vamos usar? O “msg.payload” podemos usar com o node function ou outro node que podemos trocar a mensagem payload pela mensagem desajada como netflix ou o comando para a tv.

Por exemplo: vamos criar esse flow para abrir o app da netflix na televisão.

Não vamos mexer no node inject, no node funcion vamos escrever msg.payload = ‘netflix’ (como vimos no exemplo de como deve ser a mensagem payload para o node app) e no node app deixe adicionada a sua televisão.

O node function vai ficar como abaixo!

Clique em deploy para tudo funcionar e agora clique no quadradinho do injection, vai perceber que a televisão vai mudar para o app da Netflix!

Uma dica de uso que posso dar para vocês é usar esses nodes da LG webOS em conjunto com os nodes NORA! Não conhece os nodes NORA? Pode conhecer aqui embaixo:

Podemos usar os nodes NORA dessa forma:

Vamos usar um node NORA switch, um node switch (amarelo), dois nodes change e um node lgtv app

Vamos ligar os nodes da forma como na imagem!

Já sabemos que o node NORA switch separa o “ligar” e “desligar” do comando na google assistant em true para o ligar e false para o desligar.

No node switch (amarelo) vamos configurar dessa formar:

Para quando for ligar (true) for para o caminho de cima e quando for desligar (false) for para o caminho de baixo do flow.

Agora temos que mudar o payload. Antes o payload (a mensagem passada) era true e false, mas temos que muda-lo para os comandos da televisão e para isso vamos usar os nodes change.

No node change do comando para ligar o app vamos alterar assim como na imagem, para quando o payload for true ele mudar para netflix!

No node change do comando para desligar o app, no meu caso eu uso a televisão como monitor do meu computador, então na minha entrada hdmi1 da televisão uso o computador, então coloquei para alterar para a hdmi1.

Caso você use prefira mudar para os canais de televisão pode colocar “com.webos.app.livetv” no lugar de “com.webos.app.hdmi1”.

Então o payload for false vai mudar para os canais de televisão ou opção que preferir.

Pronto! Agora quando falar: “Ok, google! Ligar Netflix!” A televisão vai ligar o app e quando falar para desligar netflix a televisão vai mudar para os canais. (no meu caso vai mudar para o meu computador.)

Para a Alexa também é possível com os nodes Amazon Echo.

Para usar o pop-up de notificações da sua tv webOS, use um node call service e configure assim:

Em Data vai preencher assim:

{
    "message": "Escreva sua mensagem aqui!"
}

Vai ficar assim na sua tv webOS:

É isso, um abraço!

2 Likes

@LeandroIssa,
Excelente.
Eu segui a documentação para integração e reiniciei o HA. NAs notificações apareceu para eu parear com a TV, mas quando clico em “Start Pairing Request”, nada aparece na minha TV.

Bem estranho, vc pegou o ip da tv certinho no roteador?
Sua tv está no cabo de rede ou na wifi?

Sim, inclusive fixei o IP no roteador,
a TV está via WiFi.

Olha no seu Home Assistant se apareceu um media player chamado “media_player.living_room_tv”, se apareceu é a sua tv no Home Assistant.

Refiz um tanto de coisas, e foi.
A Alexa está integrada ao HA e encontrou a TV.
Adicionei o card com o media_player.tv_da_sala, mas ainda nao descobri como mudar pra Netflix, Amazon Prime, Livetv pela alexa, somente clicando no card respectivo.

Opa meu amigo, tudo blz? cara, primeiramente obrigado pelo excelente tutorial, fiquei com uma dúvida, o ip da tv precisa ser fixo ou só preciso dele para configurar em um primeiro momento?

Precisa ser fixo, se o ip da tv muda as automações não vão funcionar!

1 Like

Ótimo tutorial, aqui deu tudo certo :slight_smile:

Alguém sabe se é possível acessar os apps instalados, por exemplo, Globoplay? Apesar de aparecer no log como source não consegui fazer funcionar.

Desde já agradeço.

Abs,

Paulo Leonardo.

Boa noite.

Sou novo no home assistant e não consegui configurar minha tv, ela já esta autorizada no HA.

Mas quando vou instalar no node-red apresenta erro, o log está abaixo.

O que estou fazendo de errado?


2021-11-30T05:44:17.948Z Install : node-red-contrib-lgtv 1.1.0

2021-11-30T05:44:18.059Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-lgtv@1.1.0
2021-11-30T05:44:40.117Z [err] npm
2021-11-30T05:44:40.118Z [err] ERR! code 1
2021-11-30T05:44:40.119Z [err] npm ERR! path /config/node-red/node_modules/bufferutil
2021-11-30T05:44:40.145Z [err] npm ERR!
2021-11-30T05:44:40.146Z [err] command failed
2021-11-30T05:44:40.146Z [err] npm ERR! command sh -c node-gyp-build
2021-11-30T05:44:40.146Z [err] npm
2021-11-30T05:44:40.147Z [err] ERR! gyp info it worked if it ends with ok
2021-11-30T05:44:40.147Z [err] npm ERR! gyp info using node-gyp@7.1.2
2021-11-30T05:44:40.150Z [err] npm
2021-11-30T05:44:40.151Z [err] ERR! gyp info using node@14.18.1 | linux | arm64
2021-11-30T05:44:40.151Z [err] npm ERR! gyp info find Python using Python version 3.9.5 found at “/usr/bin/python3”
2021-11-30T05:44:40.151Z [err] npm ERR! gyp info spawn /usr/bin/python3
2021-11-30T05:44:40.151Z [err] npm ERR!
2021-11-30T05:44:40.152Z [err] gyp info spawn args [
2021-11-30T05:44:40.152Z [err] npm ERR! gyp info spawn args ‘/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py’,
2021-11-30T05:44:40.152Z [err] npm ERR! gyp info spawn args ‘binding.gyp’,
2021-11-30T05:44:40.152Z [err] npm ERR! gyp info spawn args ‘-f’,
2021-11-30T05:44:40.152Z [err] npm
2021-11-30T05:44:40.153Z [err] ERR! gyp info spawn args ‘make’,
2021-11-30T05:44:40.153Z [err] npm ERR! gyp info spawn args ‘-I’,
2021-11-30T05:44:40.153Z [err] npm ERR! gyp info spawn args ‘/config/node-red/node_modules/bufferutil/build/config.gypi’,
2021-11-30T05:44:40.153Z [err] npm ERR! gyp info spawn args ‘-I’,
2021-11-30T05:44:40.153Z [err] npm
2021-11-30T05:44:40.154Z [err] ERR! gyp info spawn args ‘/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi’,
2021-11-30T05:44:40.154Z [err] npm ERR! gyp info spawn args ‘-I’,
2021-11-30T05:44:40.154Z [err] npm ERR! gyp info spawn args ‘/root/.cache/node-gyp/14.18.1/include/node/common.gypi’,
2021-11-30T05:44:40.154Z [err] npm ERR! gyp info spawn args ‘-Dlibrary=shared_library’,
2021-11-30T05:44:40.154Z [err] npm
2021-11-30T05:44:40.155Z [err] ERR! gyp info spawn args ‘-Dvisibility=default’,
2021-11-30T05:44:40.155Z [err] npm ERR! gyp info spawn args ‘-Dnode_root_dir=/root/.cache/node-gyp/14.18.1’,
2021-11-30T05:44:40.155Z [err] npm ERR! gyp info spawn args ‘-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp’,
2021-11-30T05:44:40.155Z [err] npm ERR! gyp info spawn args ‘-Dnode_lib_file=/root/.cache/node-gyp/14.18.1/<(target_arch)/node.lib’,
2021-11-30T05:44:40.155Z [err] npm
2021-11-30T05:44:40.156Z [err] ERR! gyp info spawn args ‘-Dmodule_root_dir=/config/node-red/node_modules/bufferutil’,
2021-11-30T05:44:40.156Z [err] npm ERR! gyp info spawn args ‘-Dnode_engine=v8’,
2021-11-30T05:44:40.156Z [err] npm ERR! gyp info spawn args ‘–depth=.’,
2021-11-30T05:44:40.156Z [err] npm ERR!
2021-11-30T05:44:40.157Z [err] gyp info spawn args ‘–no-parallel’,
2021-11-30T05:44:40.157Z [err] npm ERR! gyp info spawn args ‘–generator-output’,
2021-11-30T05:44:40.157Z [err] npm ERR! gyp info spawn args ‘build’,
2021-11-30T05:44:40.157Z [err] npm ERR! gyp info spawn args ‘-Goutput_dir=.’
2021-11-30T05:44:40.158Z [err] npm ERR! gyp info spawn args ]
2021-11-30T05:44:40.158Z [err] npm ERR! gyp ERR! build error
2021-11-30T05:44:40.158Z [err] npm ERR! gyp ERR! stack Error: not found: make
2021-11-30T05:44:40.158Z [err] npm
2021-11-30T05:44:40.159Z [err] ERR! gyp ERR! stack at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:10:17)
2021-11-30T05:44:40.159Z [err] npm ERR! gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:57:18
2021-11-30T05:44:40.159Z [err] npm ERR! gyp ERR! stack at new Promise ()
2021-11-30T05:44:40.159Z [err] npm ERR!
2021-11-30T05:44:40.160Z [err] gyp ERR! stack at step (/usr/lib/node_modules/npm/node_modules/which/which.js:54:21)
2021-11-30T05:44:40.160Z [err] npm ERR! gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:71:22
2021-11-30T05:44:40.160Z [err] npm ERR! gyp ERR! stack at new Promise ()
2021-11-30T05:44:40.160Z [err] npm ERR! gyp ERR! stack at subStep (/usr/lib/node_modules/npm/node_modules/which/which.js:69:33)
2021-11-30T05:44:40.160Z [err] npm
2021-11-30T05:44:40.160Z [err] ERR! gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:80:22
2021-11-30T05:44:40.160Z [err] npm ERR! gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
2021-11-30T05:44:40.160Z [err] npm ERR! gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
2021-11-30T05:44:40.160Z [err] npm
2021-11-30T05:44:40.161Z [err] ERR! gyp ERR! System Linux 5.10.17-v8
2021-11-30T05:44:40.161Z [err] npm ERR! gyp ERR! command “/usr/bin/node” “/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” “rebuild”
2021-11-30T05:44:40.161Z [err] npm ERR! gyp ERR! cwd /config/node-red/node_modules/bufferutil
2021-11-30T05:44:40.161Z [err] npm ERR! gyp ERR! node -v v14.18.1
2021-11-30T05:44:40.161Z [err] npm ERR! gyp ERR! node-gyp -v v7.1.2
2021-11-30T05:44:40.161Z [err] npm
2021-11-30T05:44:40.162Z [err] ERR! gyp ERR! not ok
2021-11-30T05:44:40.248Z [err]
2021-11-30T05:44:40.249Z [err] npm ERR! A complete log of this run can be found in:
2021-11-30T05:44:40.249Z [err] npm ERR! /root/.npm/_logs/2021-11-30T05_44_40_168Z-debug.log
2021-11-30T05:44:40.297Z rc=1