# Alerts/Notification

**URL:** <https://discourse.nodered.org/t/alerts-notification/63525>\
**Category:** General\
**Created:** [6 June 2022 18:07 UTC](https://discourse.nodered.org/t/alerts-notification/63525 "2022-06-06T18:07:17Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![anairamy](https://avatars.discourse-cdn.com/v4/letter/a/90ced4/32.png) [@anairamy](https://discourse.nodered.org/u/anairamy)\
**Post date:** [6 June 2022 18:07 UTC](https://discourse.nodered.org/t/alerts-notification/63525/1 "2022-06-06T18:07:17Z")

</div>

Hi everyone! I've some difficult to use "notification" on node-red.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/3/13574cf96220fc8114cf734491de162606114dba.png)  
When i use this method, i get nonstop notifications and as I use two mqtt's, the notifications end up on top of each other.  
In this function (next photo), presents what the notification should warn:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/6/a6a3c406ecb86f0b767855fa71abe1bfbf4cecbb.png)  
p.s.: hum = humidity  
Does anyone know how to fix this error?

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 June 2022 18:20 UTC](https://discourse.nodered.org/t/alerts-notification/63525/2 "2022-06-06T18:20:16Z")

</div>

Try using the filter/rbe node. It can filter out messages that have not changed.

---

<div class="post-metadata">

**Author:** ![anairamy](https://avatars.discourse-cdn.com/v4/letter/a/90ced4/32.png) [@anairamy](https://discourse.nodered.org/u/anairamy)\
**Post date:** [6 June 2022 18:26 UTC](https://discourse.nodered.org/t/alerts-notification/63525/3 "2022-06-06T18:26:06Z")

</div>

Can u give me an example?

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 June 2022 18:27 UTC](https://discourse.nodered.org/t/alerts-notification/63525/4 "2022-06-06T18:27:04Z")

</div>

should be no need place filter/rbe node after function and before notification node.

I would of give an example but you did not supply a flow json of your flow, so i could attach one and show you, unless you want me to waste time constructing a flow that you should of supplied if you wanted an example in return.

---

<div class="post-metadata">

**Author:** ![anairamy](https://avatars.discourse-cdn.com/v4/letter/a/90ced4/32.png) [@anairamy](https://discourse.nodered.org/u/anairamy)\
**Post date:** [6 June 2022 18:31 UTC](https://discourse.nodered.org/t/alerts-notification/63525/5 "2022-06-06T18:31:17Z")

</div>

I tried this method before asking for example and got no notification... ☹

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/b/3b45faf72a02e3e4286e7944a457b080eb8f2119.png)

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 June 2022 18:35 UTC](https://discourse.nodered.org/t/alerts-notification/63525/6 "2022-06-06T18:35:00Z")

</div>

Again you supply no info just an image which i can do nothing with.

how is filter node set? what is the output of the two function nodes? you will probably require one filter per function node, depending on their output.

---

<div class="post-metadata">

**Author:** ![anairamy](https://avatars.discourse-cdn.com/v4/letter/a/90ced4/32.png) [@anairamy](https://discourse.nodered.org/u/anairamy)\
**Post date:** [6 June 2022 18:43 UTC](https://discourse.nodered.org/t/alerts-notification/63525/7 "2022-06-06T18:43:54Z")

</div>

Sorry... I explain!  
In mqtt "temperatura" and "humidade", i use a broker where i receive values about the temperature and the humidity, basically i create a code on arduino that catch that values.  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/3/634ed3e052f437533943409ba04bba09dd23034c.png)  
Result:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/f/9f26575df16c5b6232b3efa339485ac0ae9cb6c4.png)  
In "Grafico" and "Medidor" node, only graphically displays the values ​​it receives from mqtt, for example:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/f/3f041ceb06040358c5c357db258bf201e7229409.png)  
And in function, I did in this way:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/1/e1e92a9a5ac30e07267f35d0daf143329b564860.png)  
And the final product, It's this one:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/3/c35e529de1b375d70fc7ea33a387817a564cef51.png)  
I hope you understand, thank you very much 🙂

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 June 2022 18:48 UTC](https://discourse.nodered.org/t/alerts-notification/63525/8 "2022-06-06T18:48:53Z")

</div>

payload from mqtt is a string needs to be a number, as you are using \< and \>. So i fail to see you get the output you want from the function node.

Please export your flow, highlight the nodes to export, press control e, press copy and paste here using \</\> button in post editor.

---

<div class="post-metadata">

**Author:** ![anairamy](https://avatars.discourse-cdn.com/v4/letter/a/90ced4/32.png) [@anairamy](https://discourse.nodered.org/u/anairamy)\
**Post date:** [6 June 2022 18:52 UTC](https://discourse.nodered.org/t/alerts-notification/63525/9 "2022-06-06T18:52:04Z")

</div>

I will try change payload from mqtt into a number!

```auto
[{"id":"586b0b1cae11d462","type":"tab","label":"Flow 10","disabled":false,"info":"","env":[]},{"id":"067ae491e9e74a98","type":"mqtt in","z":"586b0b1cae11d462","name":"Temperatura","topic":"IPB/IoT/Farm/AirQuality/Temperatura","qos":"2","datatype":"auto","broker":"0cf85d5ab020f8be","nl":false,"rap":true,"rh":0,"inputs":0,"x":410,"y":220,"wires":[["e47c57ab488506a2","dd58c64aa7242471","0457cb2fabce1801","6a978807825d513c"]]},{"id":"dd58c64aa7242471","type":"ui_gauge","z":"586b0b1cae11d462","name":"Medidor","group":"aedd66b9cb7dc5a6","order":1,"width":0,"height":0,"gtype":"gage","title":"Temperatura","label":"ºC","format":"{{value}}","min":"-10","max":"50","colors":["#00b500","#e6e600","#ca3838"],"seg1":"13","seg2":"20","className":"","x":720,"y":280,"wires":[]},{"id":"e47c57ab488506a2","type":"debug","z":"586b0b1cae11d462","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":730,"y":160,"wires":[]},{"id":"0457cb2fabce1801","type":"ui_chart","z":"586b0b1cae11d462","name":"Grafico","group":"408f2e307a2c3dfb","order":1,"width":0,"height":0,"label":"Temperatura","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":720,"y":240,"wires":[[]]},{"id":"6a978807825d513c","type":"function","z":"586b0b1cae11d462","name":"","func":"let temp = msg.payload\n\nif (temp>=10 && temp<=26) {\n msg.payload = \"O alimento pode ser transportado\"\n} else {\n msg.payload = \"O alimento não pode ser transportado\"\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":200,"wires":[["7e6f1685b5aadcb5"]]},{"id":"77d730aa29c52479","type":"mqtt in","z":"586b0b1cae11d462","name":"Humidade","topic":"IPB/IoT/Farm/AirQuality/Humidade","qos":"2","datatype":"auto","broker":"0cf85d5ab020f8be","nl":false,"rap":true,"rh":0,"inputs":0,"x":400,"y":420,"wires":[["e82a0c767befca6b","ce8bc268a9b7dd2a","dd8f0cdbc52558e6","041b74cd768aaca6"]]},{"id":"e82a0c767befca6b","type":"ui_gauge","z":"586b0b1cae11d462","name":"Medidor","group":"aedd66b9cb7dc5a6","order":2,"width":0,"height":0,"gtype":"wave","title":"Humidade","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#e543b2","#ffffff","#ffffff"],"seg1":"","seg2":"","className":"","x":720,"y":480,"wires":[]},{"id":"ce8bc268a9b7dd2a","type":"ui_chart","z":"586b0b1cae11d462","name":"Gráfico","group":"408f2e307a2c3dfb","order":2,"width":0,"height":0,"label":"Humidade","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":720,"y":440,"wires":[[]]},{"id":"dd8f0cdbc52558e6","type":"debug","z":"586b0b1cae11d462","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":730,"y":360,"wires":[]},{"id":"041b74cd768aaca6","type":"function","z":"586b0b1cae11d462","name":"","func":"let hum = msg.payload\n\nif (hum>=40 && hum<=45) {\n msg.payload = \"Food can be transported\"\n} else {\n msg.payload = \"Food can't be transported\"\n}\n\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":400,"wires":[["7e6f1685b5aadcb5"]]},{"id":"7e6f1685b5aadcb5","type":"ui_toast","z":"586b0b1cae11d462","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"className":"","topic":"","name":"","x":1220,"y":320,"wires":[]},{"id":"0cf85d5ab020f8be","type":"mqtt-broker","name":"","broker":"broker.mqtt-dashboard.com","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"aedd66b9cb7dc5a6","type":"ui_group","name":"Medidor","tab":"3ca0c34b.d48204","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"408f2e307a2c3dfb","type":"ui_group","name":"Gráfico","tab":"3ca0c34b.d48204","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"3ca0c34b.d48204","type":"ui_tab","name":"Produção Primária","icon":"dashboard","disabled":false,"hidden":false}]

```

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 June 2022 19:09 UTC](https://discourse.nodered.org/t/alerts-notification/63525/10 "2022-06-06T19:09:34Z")

</div>

This works for me, i added a function to convert string to number. You can remove function if you can make the sensor send a number to mqtt. The notification only sends if the payload from the second function changes.

```auto
[{"id":"8c395d95.96a018","type":"inject","z":"586b0b1cae11d462","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"IPB/IoT/Farm/AirQuality/Temperatura","payload":"23%","payloadType":"str","x":280,"y":120,"wires":[["9c58799c.035f1"]]},{"id":"9c58799c.035f1","type":"function","z":"586b0b1cae11d462","name":"","func":"msg.payload=parseFloat(msg.payload)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":220,"wires":[["6a978807825d513c","0457cb2fabce1801","dd58c64aa7242471"]]},{"id":"067ae491e9e74a98","type":"mqtt in","z":"586b0b1cae11d462","name":"Temperatura","topic":"IPB/IoT/Farm/AirQuality/Temperatura","qos":"2","datatype":"auto","broker":"0cf85d5ab020f8be","nl":false,"rap":true,"rh":0,"x":280,"y":240,"wires":[["9c58799c.035f1","e47c57ab488506a2"]]},{"id":"cee724b.4e33b58","type":"inject","z":"586b0b1cae11d462","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"IPB/IoT/Farm/AirQuality/Temperatura","payload":"27%","payloadType":"str","x":270,"y":160,"wires":[["9c58799c.035f1"]]},{"id":"6a978807825d513c","type":"function","z":"586b0b1cae11d462","name":"","func":"let temp = msg.payload\n\nif (temp>=10 && temp<=26) {\n msg.payload = \"O alimento pode ser transportado\"\n} else {\n msg.payload = \"O alimento não pode ser transportado\"\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":720,"y":200,"wires":[["1f8d9f58.8fbae1"]]},{"id":"0457cb2fabce1801","type":"ui_chart","z":"586b0b1cae11d462","name":"Grafico","group":"408f2e307a2c3dfb","order":1,"width":0,"height":0,"label":"Temperatura","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":720,"y":240,"wires":[[]]},{"id":"dd58c64aa7242471","type":"ui_gauge","z":"586b0b1cae11d462","name":"Medidor","group":"aedd66b9cb7dc5a6","order":1,"width":0,"height":0,"gtype":"gage","title":"Temperatura","label":"ºC","format":"{{value}}","min":"-10","max":"50","colors":["#00b500","#e6e600","#ca3838"],"seg1":"13","seg2":"20","className":"","x":720,"y":280,"wires":[]},{"id":"e47c57ab488506a2","type":"debug","z":"586b0b1cae11d462","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":970,"y":120,"wires":[]},{"id":"1f8d9f58.8fbae1","type":"rbe","z":"586b0b1cae11d462","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","x":860,"y":220,"wires":[["7e6f1685b5aadcb5","e47c57ab488506a2"]]},{"id":"7e6f1685b5aadcb5","type":"ui_toast","z":"586b0b1cae11d462","position":"top right","displayTime":"3","highlight":"","sendall":true,"outputs":0,"ok":"OK","cancel":"","raw":false,"className":"","topic":"","name":"","x":1040,"y":220,"wires":[]},{"id":"0cf85d5ab020f8be","type":"mqtt-broker","name":"","broker":"broker.mqtt-dashboard.com","port":"1883","clientid":"","usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"408f2e307a2c3dfb","type":"ui_group","name":"Gráfico","tab":"3ca0c34b.d48204","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"aedd66b9cb7dc5a6","type":"ui_group","name":"Medidor","tab":"3ca0c34b.d48204","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"3ca0c34b.d48204","type":"ui_tab","name":"Produção Primária","icon":"dashboard","disabled":false,"hidden":false}]

```

i only did temp, but you can do similar with hum.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [5 August 2022 19:09 UTC](https://discourse.nodered.org/t/alerts-notification/63525/11 "2022-08-05T19:09:43Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
