# Ajuda envio mensagem

**URL:** <https://forum.cpha.pt/t/ajuda-envio-mensagem/6976>\
**Category:** Node-Red\
**Created:** [22 Fevereiro , 2021 21:49 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976 "2021-02-22T21:49:34Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![JPNR](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@JPNR](https://forum.cpha.pt/u/JPNR)\
**Post date:** [22 Fevereiro , 2021 21:49 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/1 "2021-02-22T21:49:34Z")

</div>

Boa noite

Podem dar uma ajuda a um iniciante no NR? 🙂

É possivel criar esta notificação no NR?

```auto
- alias: "BW-LT21"
  trigger:
    - platform: state
      entity_id: light.bw_lt21
      from: "unavailable"
  action:
    - service: notify.Telegram
      data:
         message: "BW-LT21 Available"

```

Pelo que consegui ver o switch tem três estados: on, off e unavailable.  
É possivel criar a notificação apenas quando sai do estado “unavailable” idependentemente se passa a on ou off?  
Apenas queria a messagem quando fica available novamente, caso contrario vai enviar a msg sempre que fica on ou off

Obrigado  
Cumprimentos

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [22 Fevereiro , 2021 21:56 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/2 "2021-02-22T21:56:58Z")

</div>

Sim, isso é possivél. O que já tentaste?

---

<div class="post-metadata">

**Author:** ![JPNR](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@JPNR](https://forum.cpha.pt/u/JPNR)\
**Post date:** [22 Fevereiro , 2021 22:26 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/3 "2021-02-22T22:26:27Z")

</div>

Consigo enviar mensagem quando o estado é unavailable, on ou off.  
O problema é criar a condição para quando sai do unavailable

 ![ss1](https://forum.cpha.pt/uploads/default/original/2X/7/71d06c2d0738c9ae1fe59abcbc37b9e634038598.png)

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [22 Fevereiro , 2021 22:30 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/4 "2021-02-22T22:30:22Z")

</div>

Para isso podes usar um function node.

 ![image](https://forum.cpha.pt/uploads/default/original/2X/7/7530b9962b5f530537aa0133e370a6ebfd37959d.png)

---

<div class="post-metadata">

**Author:** ![JPNR](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@JPNR](https://forum.cpha.pt/u/JPNR)\
**Post date:** [22 Fevereiro , 2021 22:33 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/5 "2021-02-22T22:33:09Z")

</div>

vou tentar, obrigado

---

<div class="post-metadata">

**Author:** ![Alberto\_Santos](https://forum.cpha.pt/user_avatar/forum.cpha.pt/alberto_santos/32/3963_2.png) [@Alberto\_Santos](https://forum.cpha.pt/u/Alberto_Santos)\
**Post date:** [22 Fevereiro , 2021 22:36 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/6 "2021-02-22T22:36:02Z")

</div>

Para saber que saiu de unavailable, tem de guardar o estado anterior. Tem de usar funções com instruções flowset e flowget, devidamente formatas. Só assim comparando com o estado actual consegue saber que saiu desse estado.  
Há automações que são mais faceis de implementar em Node Red e outras por HA. Acho que neste caso é mais fácil criar a automaçao no home assistant. Vai dar menos trabalho. Tem mesmo de a criar no node red?

---

<div class="post-metadata">

**Author:** ![JPNR](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@JPNR](https://forum.cpha.pt/u/JPNR)\
**Post date:** [22 Fevereiro , 2021 22:40 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/7 "2021-02-22T22:40:03Z")

</div>

Não tenho de criar no NR mas é uma maneira de aprender NR 😁

---

<div class="post-metadata">

**Author:** ![Alberto\_Santos](https://forum.cpha.pt/user_avatar/forum.cpha.pt/alberto_santos/32/3963_2.png) [@Alberto\_Santos](https://forum.cpha.pt/u/Alberto_Santos)\
**Post date:** [22 Fevereiro , 2021 22:46 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/8 "2021-02-22T22:46:30Z")

</div>

Paulo,

Desde que o motive, tudo bem! Mas porque não aprender Node red a fazer novas automações? Assim não está a duplicar coisas que já tem e aproveita o tempo, que dispende na aprendizagem! Importe o código abaixo para um novo flow no node red. Analise a função Anterior VS Actual. No meu caso eu tenho dois valores anteriores e dois novos, quando um valor “novo” é actualizado, a função vai carregar o valor anterior, compara com o novo, executa uma condição e no final guarda o novo valor.  
`[{"id":"d25ba615.19ed78","type":"function","z":"7c67bb31.ba4454","name":"Anterior VS Actual","func":"var values = flow.get([\"a_anterior\",\"b_anterior\"])||0;\n//var b_anterior = context.get('b_anterior')||0;\n//var2 - Sensor Porta\n//var1 - Sensor Fechadura\na_anterior = values[0];\nb_anterior = values[1];\nvar a;\nvar b;\n\nswitch(msg.topic){\n //Mudou Fechadura\n case \"var1\":\n a = msg.payload;\n b = b_anterior;\n //context.set('a_anterior',a);\n if (a===\"ON\"&&a_anterior===\"OFF\"){\n msg.payload = \"alarm_disarm\";}\n if (a===\"ON\"&&a_anterior===\"ON\"){\n msg.payload = \"alarm_disarm\";}\n if ((a===\"OFF\")&&(b===\"off\")){\n msg.payload = \"alarm_arm_home\";}\n if ((a===\"OFF\")&&(b===\"on\")){\n msg.payload = \"alarm_arm_away\";}\n flow.set([\"a_anterior\",\"b_anterior\"],[a,b]);\n return msg;\n case \"var2\":\n b = msg.payload;\n a = a_anterior;\n msg.payload = null;\n //context.set('b_anterior',b);\n //if ((a===\"ON\")&&(b===\"on\")){\n // msg.payload = \"Destrancada e aberta\";}\n //if ((a===\"ON\")&&(b===\"off\")){\n // msg.payload = \"Destrancada e fechada\";}\n flow.set([\"a_anterior\",\"b_anterior\"],[a,b]);\n break;\n default:\n msg = null;\n break;\n}\nreturn;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1450,"y":520,"wires":[["6b47c0d3.e624d"]]}]`

---

<div class="post-metadata">

**Author:** ![JPNR](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@JPNR](https://forum.cpha.pt/u/JPNR)\
**Post date:** [22 Fevereiro , 2021 22:52 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/9 "2021-02-22T22:52:43Z")

</div>

Pois… tenho de começar a aprender mas com “coisas” mais básicas.

obrigado

---

<div class="post-metadata">

**Author:** ![Alberto\_Santos](https://forum.cpha.pt/user_avatar/forum.cpha.pt/alberto_santos/32/3963_2.png) [@Alberto\_Santos](https://forum.cpha.pt/u/Alberto_Santos)\
**Post date:** [22 Fevereiro , 2021 22:58 UTC](https://forum.cpha.pt/t/ajuda-envio-mensagem/6976/10 "2021-02-22T22:58:41Z")

</div>

Nada disso. Comece com o que precisa. Umas buscas no google e encontra montes de código que depois é só adaptar. Juntamente com o forum vai conseguir!
