node-red
,将其连接到我的MQTT代理。输入(侦听主题)工作正常。有效负载会触发一些触发器。在下面的示例中,这将是对Web服务的查询:设置它吗?
文档在输入部分中提到:缓冲区也可以
发布。
及更高版本
payload
用作已发布消息的有效负载。如果它包含对象,则会在发送
之前将其转换为JSON字符串。如果它包含二进制缓冲区,则消息将按原样发布。
我试图在节点设置->输入中添加
msg.payload
或{msg: {payload: 'on'}}
,但未携带有效负载到MQTT,如何处理传入的{payload: 'on'}
#1 楼
有效负载来自传入的消息。在MQTT-out
节点中定义静态有效载荷是没有意义的。 如果您发布了一个屏幕快照,它将获取来自
node-settings
节点的msg.payload
输出,这将是更容易识别哪个输出是哪个输出。 HTTP POST的正文。如果要添加要发布的静态有效负载,那么最简单的方法是在http-in
和change
节点之间添加一个http-in
节点。 例如将有效负载设置为“ foo”
您可以通过从
mqtt-out
字段左端的下拉列表中选择类型来设置JSON对象。 />
评论
抱歉,我不太了解。我的示例是有一个触发器(一个http调用,但可能是任何东西),它将触发一条消息发送到MQTT(通过MQTT输出节点(连接到MQTT代理并发布消息))。我需要将静态有效负载发送到MQTT,这不是通过MQTT输出节点完成的吗?
– WoJ
18-3-16在20:33
好的,我知道了(以某种方式)-我需要添加一个更改节点以告知mqtt-out有关其有效负载的信息吗? (如果这样,很奇怪,有效负载未直接在mqtt-out节点上定义)
– WoJ
18 Mar 16 '18在20:35
不,该节点希望传递给负载以进行发布,而不仅仅是一次又一次地发布相同的消息。大多数(所有)Node-RED输出节点都以这种方式工作
– hardillb
18 Mar 16 '18在20:35
谢谢-我了解。静态有效负载对交换机有意义,我认为每个交换机将有一个MQTT输出。如果我理解正确,我将为所有交换机安装一个,并在上游定义一个有效负载(=取决于导致消息的路径)
– WoJ
18-3-16在20:37
您还可以在mqtt-out节点中将主题留空,并通过传入的msg传递主题
– hardillb
18年3月16日在20:38