【问题标题】:Getting Zigbee device info from node-red-contrib-tasmota JSON从 node-red-contrib-tasmota JSON 获取 Zigbee 设备信息
【发布时间】:2020-09-23 10:49:01
【问题描述】:

我刚刚开始在 Sonarr Zigbee 桥上使用 Tasmota,并试图解释它吐出的数据。这是一个例子:

{
  "ZbReceived": {
    "0x11FE": {
      "Device": "0x11FE",
      "Name": "DoorContact",
      "Power": 1,
      "Endpoint": 1,
      "LinkQuality": 147
    }
  }
}

如何在不知道/使用设备号(“0x11Fe”)的情况下解决此处的信息 - 例如,我想获取设备名称、电源设置等。

我希望我可以做类似 ZbReceived[1].Name 之类的事情,但这不起作用。

建议?

【问题讨论】:

    标签: json node-red tasmota


    【解决方案1】:

    您正在寻找的是Object.keys() 函数 (docs)

    var devices = Object.keys(msg.payload);
    var name = msg.payload[devices[0]].Name;
    var power = msg.payload[devices[0]].Power;
    

    Object.keys(obj) 将所有键的数组返回到 JSON 对象(一层深),因此由于我们知道 msg.payload 中只有一个键,我们可以在插槽 0 中访问它(数组始终从0).

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多