Problema com deteção de presença em Life360 + Node-Red

node-red
life360

(Guga Machado de Carvalho) #21

OK… Vou deixar e estou tentando testar.

Tks.


(Guga Machado de Carvalho) #22

@j_assuncao uma pergunta.

Na hora em que o tracker da minha esposa entra em uma zona, embaixo do node ele aparece o friendly_name que eu atribui no customize.yaml. Será que isso pode estar interferindo no payload que ele envia? Porque no node de switch, eu coloco o nome da zona só que sem o prefixo “zona.” na frente do nome.

Abraço,


(Jorge Assunção) #23

Sim, é possível que esteja a alterar o nome do tracker.


(Guga Machado de Carvalho) #24

Vou testar sem o friendly_name e ver se funciona. Porque com não está funcionando.

Abraço,


(Guga Machado de Carvalho) #25

Parece que realmente o friendly_name interfere no payload. Eu deixei sem e funcionou na hora em que a zona foi deixada. Agora eu vou testar colocando o friendly_name no node switch (Out from Where) e ver se vai funcionar também. Caso funcione, estara resolvido o problema.

Abraço,


(Jorge Assunção) #26

Óptimo, depois diz se funcionou!


(André) #27

Jorge, que grande flow. Uma pessoa olha para algo desta dimensão e chega à conclusão que 1. ainda tem muito que aprender e que 2. Há muita coisa que não conhecemos que deve de dar muito jeito de certeza :grin:
Que tipo de validações fazes, podes partilhar?


(Jorge Assunção) #28

Lol… Deu trabalho a fazer mas é relativamente simples. De referir que o HA tem configurado um input_select para cada device tracker, o qual serve para guardar o estado/localização de cada pessoa. O flow consiste em 5 partes.:

  1. A leitura da localização dos device tracker,
  2. A detecção estendida de presenças (acabou de sair, saiu, acabou de chegar, chegou, ausência prolongada),
  3. A detecção de entradas nas zonas,
  4. A detecção de saídas das zonas,
  5. A detecção de inicio e fim do modo de férias (que é activado quando todos os device trackers entram em ausência prolongada).

O flow até é pequeno pois logo nos primeiros nodes é retirada a informação do nome do device tracker que é guardada como variável (imagem do Change node que o Guga colocou acima) para depois saber qual o texto a inserir na mensagem. Isto faz com que para enviar uma mensagem tenho apenas uma linha de flow em vez de uma para cada device tracker. Se não fosse assim o flow tinha o triplo do tamanho.

Validações não tenho nada. Apenas uso o um RBE node que apenas deixa correr o flow se o estado mudar, senão cada vez que chega uma localização igual à anterior estava sempre a mandar a mesma mensagem. Assim obriga a ter de mudar de localização para receber nova mensagem.

Se precisares de saber mais alguma coisa é só perguntar.


(Guga Machado de Carvalho) #29

@j_assuncao tudo funcionando perfeitamente!!!:smiley::smiley::smiley:

O problema estava realmente no friendly_name que o node não aceita. Se ele injeta no events: state um determinado payload (seja o friendly_name ou o zone name), ele obrigatoriamente tem que constar o mesmo no switch node. Você não pode colocar o friendly_name em um, e o zone name em outro, porque não vai funcionar.

Essa é a solução para tudo funcionar.

Lembrando que tudo isso só é possível graças a sua enorme contribuição sempre aqui no fórum. Sem o seu flow seria complicado para nós, os pobres mortais em programação, realizarmos essa automação.

Muito obrigado.

Abração,


(Jorge Assunção) #30

Obrigado @guga_carvalho, estamos cá para ajudar!


(Guga Machado de Carvalho) #31

@j_assuncao, aqui está tudo funcionando perfeitamente, a exceção de que cada vez que a minha esposa entra em uma zona diferente, eu fico recebendo diversas mensagens de que ela adentrou aquela zona.

Estas mensagens chegam uma atrás da outra, as vezes com intervalo de alguns poucos segundos.

Alguma idéia do que possa estar ocorrendo?

Tenho também uma questão de não estar reconhecendo quando ela sai da minha casa. No node switch com todas as zonas, eu coloquei uma chamada not_home, e mesmo assim ele não está reconhecendo. Alguma idéia de como fazer isso?

Ele tem que reconhecer somente quando sair da minha casa e não toda vez que estiver em alguma zona não marcada. Por exemplo, se ela estiver em algum lugar marcado e depois deixar este local, o localizador irá reconhecer como not_home e me dar um falso aviso que ela saiu de casa.

Abração,


(Jorge Assunção) #32

Tens de instalar um node chamado RBE que apenas deixa passar sinais se forem diferentes do anterior (no flow abaixo tem o nome State Changed?).

Quanto ao resto, depende de como está configurado. Deves antes de mais dividir o flow em duas partes: home e not_home. Depois constróis a partir disso.


(Guga Machado de Carvalho) #33

Fiz desta maneira. Está correto?

Abraço,


(Jorge Assunção) #34

Aparentemente está correcto. Deves copiar o Payload e colocar antes do Arrived Where?.


(Guga Machado de Carvalho) #35

Pronto já coloquei conforme você falou.

Agora vou testar e te falo se resolveu.

Abraço,


(Guga Machado de Carvalho) #36

@j_assuncao, conforme falei coloquei todas as configurações que você me idsse e está tudo funcionado perfeitamente!!!:smiley::smiley::smiley:

A única localização que não está funcionando corretamente, é quando minha esposa sai de casa, vai de home para not_home. Esta eu não estou recebendo nenhuma notificação.

Alguma idéia do que possa ser? As configurações do node são exatamente iguais as suas.

Abraço,


(Jorge Assunção) #37

E contigo está a funcionar?


(Guga Machado de Carvalho) #38

@j_assuncao desculpe pela demora em responder, mas este final de semana tivemos no domingo o dia dos pais aqui no Brasil, e eu fui visitar com o meu.
O meu localizador eu não tenho cadastrado no HA… :joy: :joy: :joy: Na realidade eu tenho só para efeito das automações. As Alexas e os Googles que informam na casa, só o do minha esposa!!! :sunglasses::sunglasses::sunglasses:


(Jorge Assunção) #39

Caso o teu também estivesse ligado ao HA poderia servir para despistar o problema mas assim vou assumir que o problema afecta “todos” os equipamentos.

Experimenta criar um node que detecte a passagem de home para not_home caso ainda não tenhas para ver se resolve.