使用 MQTT 响应创建单个 Json 对象
Create a single Json object with MQTT response
我有一个 python 代码,它向同一个通道发送 2 个值。
"sensor/X" 和 "sensor/Y",我想将它们合并为一个 Json 对象
{X:sensor/X 的值,Y:sensor/Y 的值}。
我已经完成了这个节点:
[{"id":"6497f22a.847fd4","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"7843571.5b8c028","type":"debug","z":"6497f22a.847fd4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":650,"y":600,"wires":[]},{"id":"400510c2.75256","type":"json","z":"6497f22a.847fd4","name":"","property":"payload","action":"","pretty":false,"x":410,"y":600,"wires":[["7843571.5b8c028"]]},{"id":"3af33205.2fc486","type":"inject","z":"6497f22a.847fd4","name":"","topic":"","payload":"{\"topic\":\"tele/Mysonoff_TH10/SENSOR\",\"payload\":\"{\\"Time\\":\\"2018-12-21T16:51:09\\",\\"AM2301\\":{\\"Temperature\\":69.4,\\"Humidity\\":33.9},\\"TempUnit\\":\\"F\\"}\",\"qos\":0,\"retain\":false,\"_topic\":\"tele/Mysonoff_TH10/SENSOR\",\"_msgid\":\"dae7f7bc.36e5f8\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":880,"y":1360,"wires":[[]]},{"id":"fd6553d8.f5fda","type":"mqtt in","z":"6497f22a.847fd4","name":"","topic":"sensor/#","qos":"2","datatype":"auto","broker":"2ad9c0c8.618a48","x":230,"y":600,"wires":[["400510c2.75256"]]},{"id":"2ad9c0c8.618a48","type":"mqtt-broker","z":"","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
但它不起作用..我可能确定我必须在 javacript 中编写一个函数来指定如何编写 json 但我有点迷失在这个点..
谢谢
您可以在手动模式下使用加入节点来执行此操作。
如下设置加入节点:
加入节点将使用传入主题作为输出对象中的键
这将生成一条消息,其有效负载如下所示:
{
"sensor/X": 4,
"sensor/Y": 2
}
然后您可以根据需要使用更改节点重命名键。
我有一个 python 代码,它向同一个通道发送 2 个值。 "sensor/X" 和 "sensor/Y",我想将它们合并为一个 Json 对象 {X:sensor/X 的值,Y:sensor/Y 的值}。
我已经完成了这个节点:
[{"id":"6497f22a.847fd4","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"7843571.5b8c028","type":"debug","z":"6497f22a.847fd4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":650,"y":600,"wires":[]},{"id":"400510c2.75256","type":"json","z":"6497f22a.847fd4","name":"","property":"payload","action":"","pretty":false,"x":410,"y":600,"wires":[["7843571.5b8c028"]]},{"id":"3af33205.2fc486","type":"inject","z":"6497f22a.847fd4","name":"","topic":"","payload":"{\"topic\":\"tele/Mysonoff_TH10/SENSOR\",\"payload\":\"{\\"Time\\":\\"2018-12-21T16:51:09\\",\\"AM2301\\":{\\"Temperature\\":69.4,\\"Humidity\\":33.9},\\"TempUnit\\":\\"F\\"}\",\"qos\":0,\"retain\":false,\"_topic\":\"tele/Mysonoff_TH10/SENSOR\",\"_msgid\":\"dae7f7bc.36e5f8\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":880,"y":1360,"wires":[[]]},{"id":"fd6553d8.f5fda","type":"mqtt in","z":"6497f22a.847fd4","name":"","topic":"sensor/#","qos":"2","datatype":"auto","broker":"2ad9c0c8.618a48","x":230,"y":600,"wires":[["400510c2.75256"]]},{"id":"2ad9c0c8.618a48","type":"mqtt-broker","z":"","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
但它不起作用..我可能确定我必须在 javacript 中编写一个函数来指定如何编写 json 但我有点迷失在这个点..
谢谢
您可以在手动模式下使用加入节点来执行此操作。
如下设置加入节点:
加入节点将使用传入主题作为输出对象中的键
这将生成一条消息,其有效负载如下所示:
{
"sensor/X": 4,
"sensor/Y": 2
}
然后您可以根据需要使用更改节点重命名键。