guimatheus92 / node-red-homeassistant-three-way

This project is a web application designed to help users manage their Home Assistant devices and mappings, focusing on creating virtual three-way switch setups and virtual parallel switch setups throught Node-RED. The application allows users to independently manage their own device configurations and mappings.
4 stars 2 forks source link

It's not running #5

Closed juslex closed 4 months ago

juslex commented 4 months ago

Olá, parabéns pela iniciativa em automatizar o flow do node-red para construir um three-way. Criei um contêiner lxc no Proxmox para rodar-lo. Instalei o pip e as dependências, criei o token de longa duração e ao acionar flask run tenho como resposta que está rodando na porta 5000, contudo, ao colocar o ip do lxc e a porta não tenho acesso à interface.

Hello, congratulations on the initiative to automate the node-red flow to build a three-way. I created an lxc container in Proxmox to run it. I installed the pip and the dependencies, I created the long-term token and when triggering flask run I have as an answer that it is running on port 5000, however, when I put the ip of the lxc and the port I do not have access to the interface.

guimatheus92 commented 4 months ago

Hi, thanks! Let me know which language do you speak, so that we can switch between Portuguese or English.

That's new for me, I had a similar experience using Nabu Casa link where it only worked using my localhost IP. Can you try that before please and let me know? In case you have questions regarding how this works, let me know as well.

juslex commented 4 months ago

Olá, falo português, fiz uma tradução para inglês para que os demais usuários que porventura estejam com o mesmo problema, possam acompanhar.

Eu instalei em um LXC ubuntu 22. Não sei se tá faltando alguma coisa, pois não aparece qualquer erro na tela. Há algum movo verbose para depurar?

Veja o print a seguir:

Captura de Tela 2024-07-22 às 13 40 38
juslex commented 4 months ago
Captura de Tela 2024-07-22 às 13 42 03
guimatheus92 commented 4 months ago

Boa, valeu pelo cuidado na issue! Pra você rodar no modo debug, você vai no arquivo run.py e altera para app = create_app('config.DevelopmentConfig').

Mas como eu falei antes, vou pedir pra você fazer esse teste na sua máquina local ao invés no container no Proxmox. Você vai na página Settings da aplicação e coloca o ip do seu Home Assistant e em seguida o token, dessa forma ve se funciona por favor:

image

juslex commented 4 months ago

Então, eu instalei o ambiente em um LXC e não apareceu a página da configuração da aplicação. Qual foi o ambiente que você rodou ela? Você usa o Home Assistant como? Máquina virtual ou roda sobre algum distro linux? Instalou o pip e os pacotes dos requeriments dentro do próprio SO onde roda o Home Assistant? Não seria interessante criar um contêiner Docker?

guimatheus92 commented 4 months ago

Eu rodei na minha própria máquina Windows, eu uso o Home Assistant supervisionado em um mini PC Debian, não é máquina virtual.

Não cheguei a fazer o teste dessa aplicação dentro do mini pc pra ver como seria, fiz no meu próprio laptop que está na mesma rede do Home Assistant entendeu? Mas sim, seria mega interessante criar um container Docker pra rodar isso. Só não tive tempo mesmo ainda, mas está no meu ToDo-List. Inclusive caso tenha conhecimento, pode ficar a vontade de ajudar no projeto.

Faz o teste que eu mencionei dessa forma, ve se funciona. Além disso, a página de configuração era pra aparecer normalmente. Caso não tenha aparecido, é só ir no arquivo config.yaml e alterar as informações manualmente lá também e dar um refresh na página da aplicação que ela vai começar a ver as alterações que você fez manualmente.

juslex commented 4 months ago

Então eu tentei rodar a tua aplicação em um ambiente linux e não deu certo. A página web não abre, daí fica prejudicada a tentativa de fornecer o token e o endereço onde o HA está rodando. Tentas rodar a tua aplicação em um ambiente linux, é preciso certificar que ela vai rodar em linux para então pensamos em contenerizar em docker ela.

guimatheus92 commented 4 months ago

Estou um pouco atarefado no momento, mas tentarei rodar num ambiente Linux e atualizarei o projeto se necessário. Porém você não acabou fazendo o teste que solicitei pra ver se estaria funcionando corretamente com você, tente rodar a aplicação num ambiente Windows conforme mencionei antes e me avisa depois se der certo por favor, se puder.

guimatheus92 commented 4 months ago

@juslex consegui rodar minha aplicação num ambiente Linux através do Docker normalmente. Poderia fazer o checkout para a branch users/guimatheus92/onboard-docker e testar por favor?

image

Comandos:

  1. docker build -t guimatheus92/node-red-homeassistant-three-way .
  2. docker run -d -p 5000:5000 guimatheus92/node-red-homeassistant-three-way
  3. docker ps pra ver o container executando

Aplicação:

image

guimatheus92 commented 4 months ago

@juslex Acabei de adicionar um docker compose pra facilitar na aplicação e utilizar mounts pros arquivos que são gerados/editados durante a aplicação, portante só fazer o checkout da branch que eu falei e utilizar o comando apenas: docker-compose up --build. Após isso, só acessar a aplicação que foi criada no Docker.

Espero que consiga testar até o final de semana, senão eu vou fazer o merge e fechar essa issue como concluida. Valeu!

juslex commented 4 months ago

Muito obrigado, eu vou testar e te falo imediatamente

juslex commented 4 months ago

docker-compose up --build ERROR: Can't find a suitable configuration file in this directory or any parent. Are you in the right directory?

    Supported filenames: docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml

No branch principal que tu faz remissão no comando do git clone não consta o arquivo docker para que o compose possa criar o container

guimatheus92 commented 4 months ago

Então, por isso que no meu comentário acima eu te pedi pra fazer o teste/checkout na minha branch onboard-docker, ao invés da branch main rs. Porque eu ainda não fiz o merge, estava esperando seu teste.

Você sabe fazer isso? Se não souber, não tem problema. Eu te ajudo..

juslex commented 4 months ago

Se puder me ajudar, agradeço, sou bem fraco em GitHub. Eu baixei o zip do novo branch e to aqui tentando rodar.

juslex commented 4 months ago

Consegui rodar a aplicação usando o container docker

guimatheus92 commented 4 months ago

Boa, ótima noticia! Conseguiu acessar a aba "Settings" e atualizar com seus dados? Após isso, só seguir o passo a passo que deixei no arquivo README.

juslex commented 4 months ago

Atualizei, mas não consigo fazer o fetch devices mesmo com o token informado no config.yaml e na interface.

Captura de Tela 2024-07-25 às 23 57 17
guimatheus92 commented 4 months ago

Estranho, pra mim foi certinho aqui. Poderia mandar um print da sua pagina Settings por favor? Se seu token estiver mostrando tudo na imagem, só "rabiscar" utilizando o Paint ou outra ferramenta.

Me manda um print da tela inteira por favor. Roda o comando docker ps e me manda também um print.

Deixa eu tirar outra duvida importante, a query está trazendo dispositivos somente da Tuya e do 2MQTT, quais os dispositivos que você gostaria de obter? Essa query precisa ser testada no seu home assistant, acabei não colocando na aplicação, está somente via código. Mas irei!

juslex commented 4 months ago
Captura de Tela 2024-07-26 às 00 01 43
juslex commented 4 months ago

o container tá rodando.

Captura de Tela 2024-07-26 às 00 03 10
guimatheus92 commented 4 months ago

Atualizei meu comentário anterior com mais informações, pega o código que está aqui, e tenta rodar no seu Home Assistant, pode ser que seja diferente pra você e precise fazer algumas alterações.

juslex commented 4 months ago

Opa. Vou tentar ver e te aviso. Qualquer coisa abro outro issue já que o atual já foi resolvido.

guimatheus92 commented 4 months ago

Eu atualizei a aplicação agora com muitas coisas novas, deixei o código do template disponivel na página Settings, só pegar esse código e testar no seu Home Assistant antes de atualizar na aplicação. Porque cada usuário renomeia os seus dispositivos e entidades de uma certa forma. Testei no Docker e está tudo funcionando bonitinho.

Recomendo atualizar o repositório, utilizando a branch main mesmo.