# Mqtt Publish only on changed data

**URL:** <https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295>\
**Category:** General\
**Created:** [9 March 2024 12:05 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295 "2024-03-09T12:05:34Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![damica51](https://avatars.discourse-cdn.com/v4/letter/d/eb8c5e/32.png) [@damica51](https://discourse.nodered.org/u/damica51)\
**Post date:** [9 March 2024 12:05 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/1 "2024-03-09T12:05:35Z")

</div>

I've been using node red to read data using an Api request and then publish that data using Mqtt Sparkplug B to my Data Server (every 3 minutes). I use an "Inject" node just setup to cycle every 3 minutes.  
However, I have (1) tag data valve that I would like to setup to publish anytime the valve changes, can someone point me as to how I might get this done.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [9 March 2024 12:48 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/2 "2024-03-09T12:48:59Z")

</div>

Pass the value through an RBE (filter) node set to only pass on change before the MQTT node.

---

<div class="post-metadata">

**Author:** ![damica51](https://avatars.discourse-cdn.com/v4/letter/d/eb8c5e/32.png) [@damica51](https://discourse.nodered.org/u/damica51)\
**Post date:** [10 March 2024 02:42 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/3 "2024-03-10T02:42:30Z")

</div>

OK, I went to pallet Manager to install "Node red node rbe" but it gives me a "Conflict" error and won't let me install it. Is say the conflict is "Node Red"?

Do I have other problems?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [10 March 2024 02:46 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/4 "2024-03-10T02:46:39Z")

</div>

Rbe node is built in.  
But to be fair I'm probably confusing matters as it was renamed to filter node some time ago.

In short;  
There is nothing to install. Just do like I said, add a filter 😉

---

<div class="post-metadata">

**Author:** ![damica51](https://avatars.discourse-cdn.com/v4/letter/d/eb8c5e/32.png) [@damica51](https://discourse.nodered.org/u/damica51)\
**Post date:** [10 March 2024 03:01 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/5 "2024-03-10T03:01:58Z")

</div>

Thanks, I see now and will give it a try.  
I appreciate your help.

---

<div class="post-metadata">

**Author:** ![juntiedt](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/juntiedt/32/58357_2.png) [@juntiedt](https://discourse.nodered.org/u/juntiedt)\
**Post date:** [10 March 2024 12:56 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/6 "2024-03-10T12:56:29Z")

</div>

I think you could use the switch node with setting: != previous value as well.

---

<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:** [8 June 2024 12:57 UTC](https://discourse.nodered.org/t/mqtt-publish-only-on-changed-data/86295/7 "2024-06-08T12:57:14Z")

</div>

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