# Want to query modbus sensor via mqtt

**URL:** <https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085>\
**Category:** General\
**Created:** [5 March 2021 12:08 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085 "2021-03-05T12:08:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [5 March 2021 12:08 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/1 "2021-03-05T12:08:38Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/1/9104866f2ea48f8f38034ddf7bb82458ae034e02.jpeg)

I am using a vibration sensor which is connected through modbus rtu to lorawan end node and end node is in turn connected with the lorawan gateway.so can i send modbus commands from node red platform to query the sensor values.?

This image shows data received from sensor when giving modbus command on gateways network server page.  
modbus\_cmd:01030001000D.

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

---

<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:** [5 March 2021 12:25 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/2 "2021-03-05T12:25:21Z")

</div>

Node-red supports MQTT

Node-red can communicate to modbus devices by contrib node.

Some modbus contrib nodes allow you to dynamically request read address.

Putting that together, the answer is yes, you can query modbus via MQTT.

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [5 March 2021 12:34 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/3 "2021-03-05T12:34:32Z")

</div>

Hello Steve its really nice to meet u after long time,  
sensor is sending in 8 bytes  
01-dev id  
03-function code(holding registers)  
1a  
00006cea-operational status  
42bfd4de-total acceleration  
3eac8b33-x axis velocity  
3ea752963-y axis velocity  
3ea9eda2-z axis velocity  
41d9febd-temperature  
428c0159-noise,  
Steve which are those nodes which dynamically read modbus registers?

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/b/3b6434c3caaa0397bd4a8a3bdfae1d2d4d07be87.png)  
operational status-95.915  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/d/3dd8a1fc03853093453b022fa7703df175b4ad37.jpeg)

---

<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:** [5 March 2021 12:44 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/4 "2021-03-05T12:44:33Z")

</div>

> [@bachloo.rahul](#):
>
> Steve which are those nodes which dynamically read modbus registers

modbus-getter and/or modbus-flex-getter nodes in the [node-red-contrib-modbus](https://flows.nodered.org/node/node-red-contrib-modbus) package

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [5 March 2021 12:48 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/5 "2021-03-05T12:48:16Z")

</div>

Steve but how would the flow be wired with mqtt node so that it sends commands to gateway which in turn sends the commands to sensor.can u create some dummy flow which explains my case.?

---

<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:** [5 March 2021 12:54 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/6 "2021-03-05T12:54:31Z")

</div>

> [@bachloo.rahul](#):
>
> Steve but how would the flow be wired with mqtt node so that it sends commands to gateway

(1) `MQTT in` --\> (2) [something that converts the MQTT payload to a flex getter request object] --\> (3)  
`modbus getter` --\> (4) [something that converts result into sensible values suitable for MQTT] --\> (5) `MQTT out`

TBH, you clearly havent tried so I am not going to "create some dummy flow" for you when you havent tried.

- figure out how you expect the MQTT in payload to look
- figure out how to convert your MQTT in payload into a getter request
  - (TIP use a function node, debug nodes, read the extensive help and examples the modbus nodes provide)

- figure out how to read modbus addresses using the getter nodes
- figure out how you expect the MQTT out result payload to look

When you get stuck, I will certainly help.

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [6 March 2021 06:30 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/7 "2021-03-06T06:30:53Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/6/763db2da605695219f7d232e892512715f750af3.png) -This is how we send downlink command to query modbus sensor.  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/8/a81698442536e3a83803e3cd3f98a5721f62b90e.png)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/6/c67c8ca0a6bd8fad5df992935e7ad4fe85bc40c6.png)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/f/af8164cdaf9600170d941d17fcc5d74d8095a2e1.png)

```auto
[{"id":"d7118925.a9f4d8","type":"function","z":"9e668262.26725","name":"","func":"msg.payload =\n{\n 'fc':3,\n 'unitid':1,\n 'address':40001,\n 'quantity':20\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":240,"y":320,"wires":[["f7cf2fb2.5f03"]]}]

```

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/4/74cd0728a33f63c95dbab7c105ed2ba0a77b5f04.png)

```auto
[{"id":"d7118925.a9f4d8","type":"function","z":"9e668262.26725","name":"","func":"msg.payload =\n{\n 'fc':3,\n 'unitid':1,\n 'address':40001,\n 'quantity':20\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":240,"y":320,"wires":[["f7cf2fb2.5f03"]]}]

```

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 15:29 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/9 "2021-03-09T15:29:31Z")

</div>

Steve how would the message structure be like?as we have to include device\_eui, type(hex), Payload(modbus cmd), port for sending a downlink command.And I am not sure why we are using mqtt input node as we can directly do it by an inject node with mqtt out node by making data-type as JSON.Am i missing something?.

---

<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 2021 15:34 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/10 "2021-03-09T15:34:29Z")

</div>

If you can do this by inject node, then send the EXACT same payload via MQTT

Alternatively, if you only send part of the value via MQTT, send that to a function or template node or change node and build the correct object so that it 100% matches the object you have working in the inject.

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 15:38 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/11 "2021-03-09T15:38:26Z")

</div>

Steve according to you But what is the definition of correct object in this case.what all parameters should be taken into consideration while sending the payload to lorawan gateway?

---

<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 2021 15:45 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/12 "2021-03-09T15:45:19Z")

</div>

> [@bachloo.rahul](#):
>
> But what is the definition of correct object in this case

I have no idea. I dont know what you are trying to achieve.

your question was...  
"Want to query modbus via MQTT"

So i said...

> [@Steve-Mcl](#):
>
> Node-red supports MQTT
> 
> Node-red can communicate to modbus devices by contrib node.
> 
> Some modbus contrib nodes allow you to dynamically request read address.
> 
> Putting that together, the answer is yes, you can query modbus via MQTT.

that still remains true.

  
  

Maybe if you start again. Provide clear information of what you need.

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 15:52 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/13 "2021-03-09T15:52:29Z")

</div>

Steve i think you already know what i am asking , basically earlier we used to send modbus commands form gateways web interface to query the sensor values. Now we want to send downlink commands(scheduler in hmi terms) to query the senosr values every 3 seconds from node red platform.for which u said to use the mqtt input node and flex getter request object.but how to use these nodes in a way that u were describing.Steve you said something about converting mqtt payload to flex getter request object which i don't know so i ask your support.

---

<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 2021 15:58 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/14 "2021-03-09T15:58:30Z")

</div>

> [@bachloo.rahul](#):
>
> Steve i think you already know what i am asking

No, not really. Plus I dont know where you are up to in this journey.

Lets take this one step at a time.

- Can you perform the modbus read using flex getter?

- What value do you have in MQTT and what is that value to be used for?

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 17:15 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/15 "2021-03-09T17:15:58Z")

</div>

steve i am receving this when i send this command in gateways interface page

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/0/a06ac8013b63f7dfa36f374aed8776eb21fac35b.png) so now we have to add mqtt input node.  
(upload://ievo0GNpSfoy4pFOHuKiK1PVFGL.jpeg)

---

<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 2021 17:38 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/16 "2021-03-09T17:38:22Z")

</div>

You don't answer questions.

I can't help.

I don't have enough information or the equivalent equipment to help.

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 17:41 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/17 "2021-03-09T17:41:07Z")

</div>

Modbus Configuration  
slaveid-1,baudrate-9600,parity-none stopbit-1 of sensor. type i selected as tcp. what should i set the ip(ip of gateway)?should i place function node in between mqtt in and flex getter node?  
Steve please reply fast need your support and i am answering all your questions.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/e/befbe5720d8b98b656cb0808e952a0327d0e17de.png)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/9/69f81dfc6f823bb3815e08094708a442cc441a8c.png)

```auto
[{"id":"caee3e0c.98f17","type":"modbus-flex-getter","z":"97c98aeb.127198","name":"","showStatusActivities":false,"showErrors":false,"logIOActivities":false,"server":"4412ae43.cdf648","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"keepMsgProperties":false,"x":390,"y":140,"wires":[[],[]]},{"id":"4412ae43.cdf648","type":"modbus-client","name":"modbusclient","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.1.9","tcpPort":"502","tcpType":"DEFAULT","serialPort":"COM3","serialType":"RTU-BUFFERD","serialBaudrate":"19200","serialDatabits":"8","serialStopbits":"1","serialParity":"even","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":false,"reconnectTimeout":"2000","parallelUnitIdsAllowed":false}]

```

---

<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 2021 18:12 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/18 "2021-03-09T18:12:09Z")

</div>

> [@bachloo.rahul](#):
>
> should i place function node in between mqtt in and flex getter node

If you read the built in help it shows you what you need to send to the flex getter...

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/1/017f7b3702ed887e6e8c481d47d999f11d6626d0.png)

Questions...

- What Address and how many elements do you want to read from the modbus device?

- What comes out of the MQTT node (show me)

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 18:19 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/19 "2021-03-09T18:19:10Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/b/cb90e31f952cc96862b9271b8475dc316e962675.png)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/9/59b4b72e101db50c26cbe7c15fb3ca37bc3606c9.png)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/d/bda0a0e3f8d53cacd3e6599ef753b894164cc152.png)  
steve thats what i am saying nothing is coming out of mqtt input node.I am sending commands to read 13 registers from gateways embedded network server,not node red.

---

<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 2021 18:24 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/20 "2021-03-09T18:24:36Z")

</div>

> [@bachloo.rahul](#):
>
> nothing is coming out of mqtt input node

You hadn't made that clear.

Why is nothing coming out of MQTT? What sends to that topic?

> [@bachloo.rahul](#):
>
> I am sending commands to read 13 registers from gateways embedded network server,not node red

Now i am totally lost.

Where are you "sending commands" to?  
using what method of communication?

---

<div class="post-metadata">

**Author:** ![bachloo.rahul](https://avatars.discourse-cdn.com/v4/letter/b/779978/32.png) [@bachloo.rahul](https://discourse.nodered.org/u/bachloo.rahul)\
**Post date:** [9 March 2021 18:27 UTC](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085/21 "2021-03-09T18:27:42Z")

</div>

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

[Next page](https://discourse.nodered.org/t/want-to-query-modbus-sensor-via-mqtt/42085.md?page=2)
