NodeRed 切换到设备

NodeRed switch to Devices

函数

function subscribeParser(statesArr){

  let deviceDict = {}

  for (var i in statesArr){
    deviceDict[statesArr[i].address] = statesArr[i].value
  }
    
  msg.payload = deviceDict
  return msg
}

return subscribeParser(msg.payload)

func 之后的对象

我需要能够切换到此对象(键)上的设备。

如果我明白你在这里问的是什么,最简单的选择就是完全废弃该功能。

假设输入 msg.payload 是以下形式的对象数组:

{address: "ZWayVDev_zway_16-0-38", value: 0}

然后用分裂节点替换功能节点,然后让切换节点在 msg.payload.address 到 select 上工作你想要的输出。

示例:

[{"id":"aeab1550.629388","type":"inject","z":"da4bbfa6.799c2","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"address\":\"ZWayVDev_zway_15-0-38\",\"value\":1},{\"address\":\"ZWayVDev_zway_14-0-37\",\"value\":0}]","payloadType":"json","x":180,"y":180,"wires":[["76785d86.657d54"]]},{"id":"76785d86.657d54","type":"split","z":"da4bbfa6.799c2","name":"","splt":"\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":380,"y":200,"wires":[["f33fded1.6d67e"]]},{"id":"f33fded1.6d67e","type":"switch","z":"da4bbfa6.799c2","name":"","property":"payload.address","propertyType":"msg","rules":[{"t":"eq","v":"ZWayVDev_zway_15-0-38","vt":"str"},{"t":"eq","v":"ZWayVDev_zway_14-0-37","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":600,"y":220,"wires":[["9a1e8f0d.714f4"],["866fe81d.c2ed48"]]},{"id":"9a1e8f0d.714f4","type":"debug","z":"da4bbfa6.799c2","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":780,"y":180,"wires":[]},{"id":"866fe81d.c2ed48","type":"debug","z":"da4bbfa6.799c2","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":800,"y":260,"wires":[]}]