如何将有效负载添加到已发布的 MQTT 主题?

物联网 MQTT 节点红色
2021-06-11 03:51:08

我正在试验node-red,将它连接到我的 MQTT 代理。

输入(听一个主题)工作正常。

我还想向某个主题发送一些有效载荷 ipon 一些触发器。在下面的示例中,这将是对 Web 服务的查询:

在此处输入图片说明

我没有地方可以将有效负载添加到已发布的消息中,我可以在哪里设置?

文档在输入部分提到

payload

大多数用户更喜欢简单的文本有效负载,但也可以发布二进制缓冲区。

然后

msg.payload用作已发布消息的有效负载。如果它包含一个对象,它将在发送之前转换为 JSON 字符串。如果它包含二进制缓冲区,则消息将按原样发布。

我尝试节点设置中添加{msg: {payload: 'on'}}添加-> 输入但有效负载未携带到 MQTT,这是传入的{payload: 'on'}cmnd/home/room1/switch1/power {}

在此处输入图片说明

1个回答

有效载荷来自传入的消息。MQTT-out节点中定义静态负载没有意义

中的条目node-settings只是输入的鼠标悬停标签,因为节点只能有 1 个输入,所以它不是那么有用,更多的是当节点有多个输出时,可以更容易地识别哪个输出是哪个。

如果您发布了它的屏幕截图,它将msg.payloadhttp-in节点获取输出,这将是 HTTP POST 的正文。

如果要添加要发布的静态有效负载,那么最简单的方法是changehttp-inmqtt-out节点之间添加一个节点。

例如将有效负载设置为“foo”

在此处输入图片说明

您可以通过从to字段左端的下拉列表中选择类型来设置 JSON 对象