# Another way to arrange this flow?

**URL:** <https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673>\
**Category:** General\
**Created:** [28 November 2020 16:47 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673 "2020-11-28T16:47:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![877](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/877/32/8207_2.png) [@877](https://discourse.nodered.org/u/877)\
**Post date:** [28 November 2020 16:47 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/1 "2020-11-28T16:47:32Z")

</div>

Hi all,

This flow is working, but it feels like there's a simpler way of doing it with nodes (i.e. not a function).

I've singled out the payload as the rbe node does not work otherwise, as the payload is constantly changing due to other values such as link value, battery. etc.

Any suggestions?

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

```auto
[{"id":"d91206ee.43a908","type":"comment","z":"bd52b987.d668e8","name":"true = leak, false = ok","info":"","x":790,"y":4140,"wires":[]},{"id":"93e5dfee.18da9","type":"switch","z":"bd52b987.d668e8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":770,"y":4190,"wires":[["d4262d3d.cf7c9"],["88e53516.9ca5d8"]]},{"id":"d4262d3d.cf7c9","type":"moment","z":"bd52b987.d668e8","name":"Timestamp & true","topic":"","input":"payload.fake","inputType":"msg","inTz":"Europe/London","adjAmount":0,"adjType":"days","adjDir":"add","format":"dddd DD/MM/YY HH:mm - [Water leak detected in garage]","locale":"en_GB","output":"","outputType":"msg","outTz":"Europe/London","x":1010,"y":4180,"wires":[["1f585a9a.c7d095"]]},{"id":"27a264c1.9bc91c","type":"comment","z":"bd52b987.d668e8","name":"rate limiter","info":"","x":620,"y":4140,"wires":[]},{"id":"245595b0.7ef59a","type":"rbe","z":"bd52b987.d668e8","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":620,"y":4190,"wires":[["93e5dfee.18da9"]]},{"id":"88e53516.9ca5d8","type":"moment","z":"bd52b987.d668e8","name":"Timestamp & false","topic":"","input":"payload.fake","inputType":"msg","inTz":"Europe/London","adjAmount":0,"adjType":"days","adjDir":"add","format":"dddd DD/MM/YY HH:mm - [Garage is dry - no water detected]","locale":"en_GB","output":"","outputType":"msg","outTz":"Europe/London","x":1010,"y":4220,"wires":[["1f585a9a.c7d095"]]},{"id":"ede08082.b30c","type":"comment","z":"bd52b987.d668e8","name":"Add timestamp and message","info":"","x":1020,"y":4140,"wires":[]},{"id":"b90cafb8.59447","type":"change","z":"bd52b987.d668e8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.water_leak","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":4190,"wires":[["245595b0.7ef59a"]]},{"id":"79fff1d5.d4027","type":"inject","z":"bd52b987.d668e8","name":"Test water sensor - FALSE","topic":"zigbee2mqtt/test","payload":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":false}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":190,"y":4170,"wires":[["b90cafb8.59447"]]},{"id":"1f585a9a.c7d095","type":"debug","z":"bd52b987.d668e8","name":"Debug - notification","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":1250,"y":4190,"wires":[]},{"id":"166f441f.6ac55c","type":"inject","z":"bd52b987.d668e8","name":"Test water sensor - TRUE","topic":"zigbee2mqtt/test","payload":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":true}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":190,"y":4210,"wires":[["b90cafb8.59447"]]},{"id":"76d4dde5.0e69c4","type":"comment","z":"bd52b987.d668e8","name":"Single out payload","info":"","x":440,"y":4140,"wires":[]},{"id":"b83ea8b4.c7ea58","type":"comment","z":"bd52b987.d668e8","name":"Xiaomi water leak sensor","info":"","x":180,"y":4130,"wires":[]}]

```

---

<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:** [28 November 2020 17:28 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/2 "2020-11-28T17:28:44Z")

</div>

Something like this.

```auto
[{"id":"c249e4e7.510f8","type":"inject","z":"8d22ae29.7df6d","name":"Test water sensor - FALSE","props":[{"p":"payload","v":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":false}","vt":"json"},{"p":"topic","v":"zigbee2mqtt/test","vt":"string"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"zigbee2mqtt/test","payload":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":false}","payloadType":"json","x":230,"y":2680,"wires":[["e4392b1.a536158"]]},{"id":"e4392b1.a536158","type":"rbe","z":"8d22ae29.7df6d","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":350,"y":2760,"wires":[["67933290.40744c"]]},{"id":"d1a9ee04.6fd39","type":"inject","z":"8d22ae29.7df6d","name":"Test water sensor - TRUE","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"zigbee2mqtt/test","payload":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":true}","payloadType":"json","x":210,"y":2800,"wires":[["e4392b1.a536158"]]},{"id":"67933290.40744c","type":"change","z":"8d22ae29.7df6d","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.water_leak = true ? (\t $moment().tz(\"London/Euroupe\").format(\"dddd DD/MM/YY HH:mm\") & \" Water leak detected garage\"\t) : (\t $moment().tz(\"London/Euroupe\").format(\"dddd DD/MM/YY HH:mm\") & \" Garage is dry - no water detected\"\t) ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":2760,"wires":[["f77fee11.5d549"]]},{"id":"f77fee11.5d549","type":"debug","z":"8d22ae29.7df6d","name":"Debug - notification","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":810,"y":2760,"wires":[]},{"id":"fe74c0b7.3a41a8","type":"comment","z":"8d22ae29.7df6d","name":"Xiaomi water leak sensor","info":"","x":120,"y":2710,"wires":[]},{"id":"8a0228b8.4ae95","type":"comment","z":"8d22ae29.7df6d","name":"rate limiter","info":"","x":330,"y":2720,"wires":[]},{"id":"d254f344.52bd58","type":"comment","z":"8d22ae29.7df6d","name":"Single out payload","info":"","x":560,"y":2720,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![877](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/877/32/8207_2.png) [@877](https://discourse.nodered.org/u/877)\
**Post date:** [28 November 2020 19:10 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/3 "2020-11-28T19:10:02Z")

</div>

Thank you, I’ll try when I get home again 👍

---

<div class="post-metadata">

**Author:** ![877](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/877/32/8207_2.png) [@877](https://discourse.nodered.org/u/877)\
**Post date:** [29 November 2020 09:28 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/4 "2020-11-29T09:28:02Z")

</div>

Hmm that does not work for me, I get an error:  
`Invalid JSONata expression: Attempted to invoke a non-function`

Plus as the real incoming sensor payload is constantly changing (due to other values such as link value, battery. etc.), the rbe node would not work there.

But I like the look of the J expression, I suppose if going down that route I may as well use a function node. I'm just trying to keep it as simple as possible for 'future me'.

---

<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:** [29 November 2020 09:39 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/5 "2020-11-29T09:39:16Z")

</div>

What is your node-red version? you would need version 1.1 or higher  
Or  
here is same thing without using $moment()

```auto
[{"id":"c249e4e7.510f8","type":"inject","z":"8d22ae29.7df6d","name":"Test water sensor - FALSE","props":[{"p":"payload","v":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":false}","vt":"json"},{"p":"topic","v":"zigbee2mqtt/test","vt":"string"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"zigbee2mqtt/test","payload":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":false}","payloadType":"json","x":230,"y":2680,"wires":[["e4392b1.a536158"]]},{"id":"e4392b1.a536158","type":"rbe","z":"8d22ae29.7df6d","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload.water_leak","x":350,"y":2760,"wires":[["67933290.40744c"]]},{"id":"d1a9ee04.6fd39","type":"inject","z":"8d22ae29.7df6d","name":"Test water sensor - TRUE","props":[{"p":"payload","v":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":true}","vt":"json"},{"p":"topic","v":"zigbee2mqtt/test","vt":"string"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"zigbee2mqtt/test","payload":"{\"battery\":100,\"battery_low\":false,\"linkquality\":94,\"tamper\":false,\"voltage\":3025,\"water_leak\":true}","payloadType":"json","x":210,"y":2800,"wires":[["e4392b1.a536158"]]},{"id":"67933290.40744c","type":"change","z":"8d22ae29.7df6d","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.water_leak = true ? (\t $fromMillis($millis(),\"[F] [M01]/[D01]/[Y0001] [H01]:[m01]\") & \" Water leak detected garage\"\t) : (\t $fromMillis($millis(),\"[F] [M01]/[D01]/[Y0001] [H01]:[m01]\") & \" Garage is dry - no water detected\"\t) ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":2760,"wires":[["f77fee11.5d549"]]},{"id":"f77fee11.5d549","type":"debug","z":"8d22ae29.7df6d","name":"Debug - notification","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":810,"y":2760,"wires":[]}]

```

p.s. Added msg.payload.water\_leak in rbe so only monitoring water\_leak for change.

---

<div class="post-metadata">

**Author:** ![877](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/877/32/8207_2.png) [@877](https://discourse.nodered.org/u/877)\
**Post date:** [29 November 2020 10:17 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/6 "2020-11-29T10:17:14Z")

</div>

Ah yes I'm still on 1.03, I need to update at some point..

That works great now, thank you 🙂

---

<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:** [13 December 2020 10:17 UTC](https://discourse.nodered.org/t/another-way-to-arrange-this-flow/36673/7 "2020-12-13T10:17:20Z")

</div>

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