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

Antes de tudo recomendo que leiam esse tutorial básico para aprenderem como configurar os nodes no node-red:

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

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 node injection, vai perceber que a televisão vai mudar para o app da Netflix!

Pronto! Agora já está tudo configurado e funcionado, agora é usar sua imaginação para criar suas automações.

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!

1 Curtiu

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.)

Espero ter ajudado! Um abraço!

Pode ser feito com a Alexa:

1 Curtiu

Bom trabalho @LeandroIssa, obrigado pela partilha.

1 Curtiu

A primeira parte do tutorial não tem nada a ver… Se queres controlar a TV por NR não precisas de adicionar ao HA… Ou seja, são 2 coisas completamente independentes e não dependem minimamente uma da outra…

O intuito foi a pessoa ter o ip pra adicionar após e também na maioria das vezes quem procura um tutorial não sabe que pode adicionar ao HA a televisão.

Um dos grandes problemas na maioria das vezes em tutoriais é que já partem do pressuposto que o básico as pessoas já fizeram, sendo que na sua maioria nem fizeram.
Procuro sempre explicar até o básico e o óbvio porque nem todos entendem de programação (eu mesmo não entendo), sabem inglês ou tem facilidades em entender.

2 Curtiram

Qual seria o esquema, para desligar a TV?

Seria esse aqui pra desligar a tv!

2

Para ligar só utilizando um Broadlink.

Eu tenho o Broadlink, e já tenho os comandos no HA

Não estou a conseguir criar o node para desligar

Vou tentar da forma que disseste

Olá Leandro.

Já consegui criar o node para receber os dados do comando da TV com o broadlink

Como consigo agora criar um node, para que seja enviado o comando para a TV?
Por exemplo, acende a luz, e o volume aumenta

NOTA: no RM3 mini está data sent porque estive a tentar enviar comandos, mas eu sei fazer a leitura do comando e ver o código

Consegues fazer isso precisas de dois nodes para enviar o comando:

image

No primeiro metes assim:

image
onde está amarelo metes o código que queres enviar

{
   "action" : "send",
   "data" : [ 38,0,204,0,113,58,14,14,15,43,14,14,15,14,15,14,14,14,14,15,14,15,14,14,15,14,14,15,14,14,15,14,14,43,15,14,14,15,13,15,15,14,14,14,15,14,15,14,14,14,15,14,15,42,15,14,14,15,13,15,14,15,14,15,13,15,14,15,14,15,13,15,14,15,14,43,15,14,14,43,15,14,13,44,15,42,15,14,15,14,13,44,15,14,14,43,14,15,13,44,14,15,13,0,9,153,113,58,15,14,13,44,15,14,13,15,14,15,14,15,13,15,15,14,15,14,13,15,15,14,14,15,14,14,14,44,14,14,15,14,14,15,14,14,14,15,14,14,15,14,15,14,14,14,14,44,14,14,14,15,14,15,13,15,14,15,14,15,14,14,14,15,14,15,13,15,14,43,15,14,14,43,14,15,15,42,15,43,14,14,14,15,14,43,15,14,14,43,15,14,14,43,14,15,14,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0] 
}

No último node colocas assim, alterando para o mac do teu RM

image

Depois a frente do node, continuas com a automação que queres.

1 Curtiu

Tentei fazer mas não está a dar

Tenho assim
image

Ao acender a luz, o volume deveria baixar, mas não faz nada :confused:
A leitura do comando consigo fazer bem

image

Penso que o meu problema pode estar aqui

image

Eu tenho de criar uma pasta por exemplo /config/broadlinkremote e colocar tal e qual desta forma no campo Catalog?

Mete o Mac Address com dois :
24:df: por ai fora…

1 Curtiu

Não dá.

Colocando ai os : fico com uma configuração invalida

É isto que me da, e não envia o comando kkk

image

Mostra la onde novamente uma imagem corrigida como te disse.

Estou no telemóvel, e é mais difícil, mas envio os prints

Aqui foi onde fiz a alteração

Aqui é como tenho o node configurado (e aqui sim já tenho de ter os :

Mas quando faço deploy, é isto que recebi

Há ai um problema qualquer na sala das máquinas, passa no discord para vermos isso mais ao pormenor depois voltamos aqui com a solução.

Já consegui fazer o que pretendo.

Primeiro usei este node para descobrir o broadlink

Em que no discover, vemos os dados do broadlink, e eu no type tinha os dados mal
image

Configuramos os dados corretos para o broadlink (tal como está em cima. MAC sem os : e o type certo), e com este node já fica a funcionar

Quando Tento instalar o nó da LGTV da esse erro:

2023-11-05T01:16:12.325Z Instalar : node-red-contrib-lgtv-with-turnon 1.0.3

2023-11-05T01:16:12.239Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-lgtv-with-turnon@1.0.3
2023-11-05T01:16:13.712Z [err] npm
2023-11-05T01:16:13.714Z [err]  WARN
2023-11-05T01:16:13.714Z [err]  config production Use `--omit=dev` instead.
2023-11-05T01:16:23.144Z [err] npm
2023-11-05T01:16:23.144Z [err]  ERR! 
2023-11-05T01:16:23.144Z [err] code 1
2023-11-05T01:16:23.145Z [err] npm 
2023-11-05T01:16:23.146Z [err] ERR! path /config/node-red/node_modules/bufferutil
2023-11-05T01:16:23.152Z [err] npm 
2023-11-05T01:16:23.152Z [err] ERR! command failed
2023-11-05T01:16:23.152Z [err] npm 
2023-11-05T01:16:23.152Z [err] ERR! command sh -c node-gyp-build
2023-11-05T01:16:23.153Z [err] npm 
2023-11-05T01:16:23.153Z [err] ERR! gyp info it worked if it ends with ok
2023-11-05T01:16:23.153Z [err] npm 
2023-11-05T01:16:23.153Z [err] ERR! gyp info using node-gyp@9.3.1
2023-11-05T01:16:23.153Z [err] npm
2023-11-05T01:16:23.153Z [err]  ERR! gyp info using node@18.18.2 | linux | arm64
2023-11-05T01:16:23.153Z [err] npm ERR!
2023-11-05T01:16:23.153Z [err]  gyp ERR! find Python 
2023-11-05T01:16:23.153Z [err] npm 
2023-11-05T01:16:23.153Z [err] ERR!
2023-11-05T01:16:23.154Z [err]  gyp ERR! find Python checking Python explicitly set from command line or npm configuration
2023-11-05T01:16:23.154Z [err] npm
2023-11-05T01:16:23.154Z [err]  ERR! gyp ERR! find Python - "--python=" or "npm config get python" is "/usr/bin/python3"
2023-11-05T01:16:23.154Z [err] npm ERR!
2023-11-05T01:16:23.154Z [err]  gyp ERR! find Python - "/usr/bin/python3" is not in PATH or produced an error
2023-11-05T01:16:23.154Z [err] npm ERR!
2023-11-05T01:16:23.154Z [err]  gyp ERR! find Python Python is not set from environment variable PYTHON
2023-11-05T01:16:23.154Z [err] npm ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python checking if "python3" can be used
2023-11-05T01:16:23.155Z [err] npm ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python - "python3" is not in PATH or produced an error
2023-11-05T01:16:23.155Z [err] npm ERR! gyp ERR! find Python checking if "python" can be used
2023-11-05T01:16:23.155Z [err] npm ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python - "python" is not in PATH or produced an error
2023-11-05T01:16:23.155Z [err] npm ERR! gyp ERR! find Python 
2023-11-05T01:16:23.155Z [err] npm 
2023-11-05T01:16:23.155Z [err] ERR! gyp ERR! find Python **********************************************************
2023-11-05T01:16:23.155Z [err] npm
2023-11-05T01:16:23.155Z [err]  ERR! gyp ERR! find Python You need to install the latest version of Python.
2023-11-05T01:16:23.155Z [err] npm
2023-11-05T01:16:23.155Z [err]  ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
2023-11-05T01:16:23.155Z [err] npm ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python you can try one of the following options:
2023-11-05T01:16:23.155Z [err] npm 
2023-11-05T01:16:23.155Z [err] ERR! gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
2023-11-05T01:16:23.155Z [err] npm ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python   (accepted by both node-gyp and npm)
2023-11-05T01:16:23.155Z [err] npm ERR!
2023-11-05T01:16:23.155Z [err]  gyp ERR! find Python - Set the environment variable PYTHON
2023-11-05T01:16:23.155Z [err] npm 
2023-11-05T01:16:23.155Z [err] ERR! gyp ERR! find Python - Set the npm configuration variable python:
2023-11-05T01:16:23.156Z [err] npm ERR!
2023-11-05T01:16:23.156Z [err]  gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
2023-11-05T01:16:23.156Z [err] npm ERR!
2023-11-05T01:16:23.156Z [err]  gyp ERR! find Python For more information consult the documentation at:
2023-11-05T01:16:23.156Z [err] npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
2023-11-05T01:16:23.156Z [err] npm ERR! gyp ERR! find Python **********************************************************
2023-11-05T01:16:23.156Z [err] npm ERR! gyp ERR! find Python 
2023-11-05T01:16:23.156Z [err] npm
2023-11-05T01:16:23.156Z [err]  ERR! gyp ERR! configure error 
2023-11-05T01:16:23.156Z [err] npm ERR!
2023-11-05T01:16:23.156Z [err]  gyp ERR! stack Error: Could not find any Python installation to use
2023-11-05T01:16:23.156Z [err] npm 
2023-11-05T01:16:23.156Z [err] ERR! gyp ERR! stack     at PythonFinder.fail (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:330:47)
2023-11-05T01:16:23.156Z [err] npm
2023-11-05T01:16:23.156Z [err]  ERR!
2023-11-05T01:16:23.156Z [err]  gyp ERR! stack     at PythonFinder.runChecks (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:159:21)
2023-11-05T01:16:23.156Z [err] npm ERR!
2023-11-05T01:16:23.156Z [err]  gyp ERR! stack     at PythonFinder.<anonymous> (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:202:16)
2023-11-05T01:16:23.156Z [err] npm 
2023-11-05T01:16:23.156Z [err] ERR! gyp ERR! stack     at PythonFinder.execFileCallback (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:294:16)
2023-11-05T01:16:23.156Z [err] npm
2023-11-05T01:16:23.157Z [err]  ERR! gyp ERR! stack     at exithandler (node:child_process:430:5)
2023-11-05T01:16:23.157Z [err] npm ERR!
2023-11-05T01:16:23.157Z [err]  gyp ERR! stack     at ChildProcess.errorhandler (node:child_process:442:5)
2023-11-05T01:16:23.157Z [err] npm 
2023-11-05T01:16:23.157Z [err] ERR! gyp ERR! stack     at ChildProcess.emit (node:events:517:28)
2023-11-05T01:16:23.157Z [err] npm
2023-11-05T01:16:23.157Z [err]  ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:290:12)
2023-11-05T01:16:23.157Z [err] npm ERR!
2023-11-05T01:16:23.157Z [err]  gyp ERR! stack     at onErrorNT (node:internal/child_process:477:16)
2023-11-05T01:16:23.157Z [err] npm 
2023-11-05T01:16:23.157Z [err] ERR! gyp ERR! stack     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
2023-11-05T01:16:23.157Z [err] npm ERR!
2023-11-05T01:16:23.157Z [err]  gyp ERR! System Linux 6.1.21-v8
2023-11-05T01:16:23.157Z [err] npm ERR!
2023-11-05T01:16:23.157Z [err]  gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2023-11-05T01:16:23.157Z [err] npm 
2023-11-05T01:16:23.157Z [err] ERR! gyp ERR! cwd /config/node-red/node_modules/bufferutil
2023-11-05T01:16:23.157Z [err] npm
2023-11-05T01:16:23.157Z [err]  ERR!
2023-11-05T01:16:23.157Z [err]  gyp ERR! node -v v18.18.2
2023-11-05T01:16:23.157Z [err] npm ERR!
2023-11-05T01:16:23.157Z [err]  gyp ERR! node-gyp -v v9.3.1
2023-11-05T01:16:23.157Z [err] npm 
2023-11-05T01:16:23.157Z [err] ERR! gyp ERR! not ok
2023-11-05T01:16:23.163Z [err] 
2023-11-05T01:16:23.164Z [err] npm 
2023-11-05T01:16:23.164Z [err] ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-11-05T01_16_13_608Z-debug-0.log
2023-11-05T01:16:23.193Z rc=1

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade