NodeRed - Sensor de Porta e envio de notificação Telegram

Boa Noite pessoal,

Já me tinham dito por aqui para experimentar o NodeRed. E antes dei uma vista de olhos, e pareceu-me ser algo que eu fosse capaz de utilizar sem grandes problemas, pois codigo foge-me. :slight_smile:

Mas só hoje decidi adicioná-lo e fiquei um pouco desiludido comigo, pois fiquei cheio de duvidas e simplesmente não completo fase nenhuma.

Vou colocar aqui um exemplo, para ver se me ajudam a fazer o flow, a ver se eu começo a perceber a lógica.

  • Ao abrir a porta de entrada (sensor_entrada), enviar notificação (message:Porta de entrada aberta), para o meu utilizador (person.daniel cruz), caso não esteja em “home”, isto é “not.home”, pois tenho várias zonas.
  • Não sei se é necessário fazer algo ao telegram para o poder ter a funcionar no HA e no NR?
  • No HA em automações já tenho esta automação, mas no NR não estou msm a ver.

Obrigado.

Se procurares no fórum, há coisas parecidas com a que queres:

1º Podes fazer esse flow com um events: state para ler o sensor, um current state para verificar se estás em casa e finalmente um telegram sender para enviar a mensagem.

2º Se vais usar o NR para todas as automações, o Telegram não precisa de estar nos dois lados (vais ter erros no log mas funciona). No NR usa esta palette para o Telegram:

node-red-contrib-telegrambot-home

3º Se vais passar a automação para o NR vais ter de a apagar do HA

1 Like

Como sugestão cria um outro bot para o NodeRed. Eu tenho um no HA e outro no NR. Dessa forma não ficas com os erros. Depois no futuro se deixares de necessitar de um deles é só apagar.
Abraço.

Eu tive a vê-los quase todos, para não incomodar.

Mas não percebi onde o João Martins foi buscar aquele código todo. Mas vou experimentar novamente.

Só a aguardar que o HA faça o update e não dê bronca. :slight_smile:

Mal experimente eu dou algum feedback.


@lopitos Obrigado João. Primeiro vou experimentar ver se consigo criar o flow. Se sim, acho que vou fazer isso. Fica-se sempre com as duas opções.

Obrigado

A ideia de manter os dois bots é boa mas não vale a pena se for para mudar tudo para o NR.

O que ele está a fazer é ler o sensor do portão e se estiver a abrir manda uma mensagem e se estiver a fechar envia outra. Depois do portão estar aberto, a cada 10 minutos é enviada uma mensagem a avisar que o portão está aberto.

Eu tenho aquilo que queres implementar mas está feito de uma maneira muito complexa. Vai fazendo como te disse acima e vai dando feedback, eu vou ajudando sempre que precisares.

Eu exportei um flow que tenho que me informa quando um switch (está a controlar uma resistência) se liga ou desliga.
Segue abaixo o exemplo:

[{"id":"bb988781.781458","type":"tab","label":"Resistência","disabled":false,"info":""},{"id":"9237c8ff.4942e8","type":"telegram sender","z":"bb988781.781458","name":"Avisar Resistência (des)Ligou-se","bot":"adf54e69.980f3","x":800,"y":80,"wires":[[]]},{"id":"bb9f79f.8df9488","type":"trigger-state","z":"bb988781.781458","name":"Resistência Solar Ligou-se","server":"62b78aa2.823994","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"switch.resistencia","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"id":"0syzlbus2ri","targetType":"this_entity","targetValue":"","propertyType":"previous_state","propertyValue":"old_state.state","comparatorType":"is","comparatorValueDatatype":"str","comparatorValue":"off"},{"id":"bb5hc6xz6u8","targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is","comparatorValueDatatype":"str","comparatorValue":"on"}],"constraintsmustmatch":"all","outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","x":160,"y":60,"wires":[["c32cf0e3.4b50a"],[]]},{"id":"c5ea4065.d82ef","type":"template","z":"bb988781.781458","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{ \"chatId\": XXXXXXXXX, \"type\": \"message\" , \"content\": \"{{myyear}}-{{mymonthn}}-{{mydom}} {{mytimes}} \\nA Resistência Ligou-se\" }\n","output":"json","x":560,"y":60,"wires":[["9237c8ff.4942e8"]]},{"id":"c32cf0e3.4b50a","type":"simpletime","z":"bb988781.781458","name":"","x":370,"y":60,"wires":[["c5ea4065.d82ef"]]},{"id":"2c22405f.f921f","type":"trigger-state","z":"bb988781.781458","name":"Resistência Solar Desligou-se","server":"62b78aa2.823994","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"switch.resistencia","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"id":"zmyq5x9bqbe","targetType":"this_entity","targetValue":"","propertyType":"previous_state","propertyValue":"old_state.state","comparatorType":"is","comparatorValueDatatype":"str","comparatorValue":"on"},{"id":"xk4jkyei11","targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is","comparatorValueDatatype":"str","comparatorValue":"off"}],"constraintsmustmatch":"all","outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","x":170,"y":120,"wires":[["d4836b8f.caa158"],[]]},{"id":"d4836b8f.caa158","type":"simpletime","z":"bb988781.781458","name":"","x":390,"y":120,"wires":[["2ba35981.724c46"]]},{"id":"2ba35981.724c46","type":"template","z":"bb988781.781458","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{ \"chatId\": XXXXXXXXX, \"type\": \"message\" , \"content\": \"{{myyear}}-{{mymonthn}}-{{mydom}} {{mytimes}} \\nA resistência Desligou-se\" }\n","output":"json","x":560,"y":120,"wires":[["9237c8ff.4942e8"]]},{"id":"155da6cf.e422a9","type":"comment","z":"bb988781.781458","name":"Estes Nodes abaxo Servem para notificar sempre que a resitência se liga e desliga","info":"","x":450,"y":20,"wires":[]},{"id":"adf54e69.980f3","type":"telegram bot","z":"","botname":"NR Lopes","usernames":"","chatids":"1004696860","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"sslterminated":false,"verboselogging":false},{"id":"62b78aa2.823994","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Basta ires ao NodeRed e utilizar a opção import.
Este é só mais um exemplo. Ao desistas, que isto é fixe. Eu que nem sei programação já faço umas cenas engraçadas. Tipo controlar cenas apenas via telegram. Tenho um mini menu com opções.
Lopitos

1 Like

@j_assuncao @lopitos
Uma maneira mais complexa é simpatia. Só de olhar para o teu screenshot, não percebo metade do que está aí. :slight_smile:

Acabei na mesma por criar um outro bot. Até porque o primeiro foi de teste e o nome não me agradava e assim sempre fica disponível para fazer uns testes no HA com automações se for necessário.

E penso que consegui. Não consigo testar com o sensor da porta, pois não está ninguem em casa, mas testei com um ligar de switch e consegui receber as notificações.

Em baixo está o screenshot do flow. Acabei por colocar um 2º, pois tinha essas duas automações no HA.

Pela imagem acreditam que funcionará? :slight_smile:

NOTA - EXTRA TOPICO:
Só hoje consegui dar o feedback, porque ontem após a atualização do HA, o meu Hassio estava maluco e a demorar eternidades.
Como deu erro ao abrir o NodeRed, dizia que o tinha de iniciar, mas já estava iniciado.
Desinstalei e voltei a instalar. Ao instalar deu erro - objet - objet installation. Mas esperando reparo que a instalação foi feita.
Depois de iniciado, entrando no NR, dava-me tela branca com 502: bad gateway. Mas esperei e fui vendo os logs do add-on e reparo que não estava realmente iniciado. Demorou cerca de 10min a estar disponivel.

Resumindo, penso que o SD estará a dar as ultimas. Se for o caso, posso comprar um novo, instalar o Hassio novamente e depois colocar o meu ultimo snapshot em cima?

Aparenta estar correto o flow.

Para evitares problemas futuros, será preferível um ssd. O sd será sempre problemático por muito bom que seja … ou, mudares de pi para algo mais robusto se pretendes ter cada vez mais addons e melhores performances necessitas de melhor hardware. Caso o orçamento permita um mini pc com proxmox é o ideal.

@Luis_Andrade

Isso já me tinha passo pela ideia. Para já não queria substituir o Pi, porque comprei-o recentemente.
Mas eu tenho um SSD disponivel. Mas como faço para o processo de instalação do Hassio no SSD com o PI?
Funciona da mesma maneira do que com o SD?

Se o teu problema é contenção de custos (o que é perfeitamente lógico), a excelente opção é uma Box Android convertida para armbian… É barata (~25€ já com fonte), mais do que suficiente para HA e muitos addons, muito mais rápida do que rpi3 e não usa SD, usa memória emmc, sem os problemas habituais do sd… Procura aqui no fórum por armhassio

@Maddoctor

Quando penso que já tenho tudo a estabilizar, vocês dão-me uma volta de 180º. :slight_smile:

Com tudo o que foi dito, e sem investir mais €. Eu já tenho um SSD disponivel caso queira coloca-lo no PI. Também tenho uma Tanix TX9 Pro que usava para IPTV (está parada).

Por isso caso altere do PI c/ SD, qual é a melhor opção?

  • PI c/ SSD
  • TX9 PRO - armbian

Com a box android funciona tudo da mesma maneira, mesmo a pen de Zigbee2MQTT?

Essa box, em princípio é óptima para isto…
Se leres bem o tutorial, vais reparar que, devido a variações de hw dos chineses, nem sempre a instalação corre bem - podes ficar com um tijolo… Dito isto, na minha opinião vale o risco… Mas cada um sabe de si…
O z2m funciona normalmente

@Maddoctor
Onde posso encontrar o armbian correto para ela e fazer o download.

Estou a pensar em testar e deixar depois aqui o feedback.

Está tudo direitinho no tutorial… Apenas tens de 7sar uma dtb apropriada para o cpu da tua - s912

@Maddoctor
Sim, mas onde encontro essa dtb apropriada?

Porque nos links do tutorial, nenhuma é a mesma.

Eu encontro a informação dela, mas onde posso fazer o download da mesma. Não encontro.

imagem

@dcnilas11esse assunto não está relacionado com o deste tópico. Por favor, abre um novo tópico.

@j_assuncao
A partir de um certo ponto, lembrei-me disso.

E já escrevi no tópico:

Obrigado, @dcnilas11. :+1:

Além dos flows que já funcionaram, tentei criar um com o sun.sun, mas esse não resultou.

Funcionava nas automações, mas no node red não deu.

Vou colocar aqui as imagens a ver se conseguem perceber o porquê:




Não funciona porque o trigger só acorre quando há mudança… Ou seja, no caso que puseste o trigger acontece após fechares ou abrires o estore… O que tu queres é que o trigger seja o pôr e nascer do sol…