问题描述
我刚开始在Sonarr Zigbee Bridge上使用Tasmota,并试图解释它吐出的数据。这是一个示例:
{
"ZbReceived": {
"0x11FE": {
"Device": "0x11FE","Name": "DoorContact","Power": 1,"Endpoint": 1,"LinkQuality": 147
}
}
}
如何在不知道/使用设备编号(“ 0x11Fe”)的情况下在此处寻址信息-例如,我想获取设备名称,电源设置等。
我希望我可以做类似ZbReceived [1] .Name的操作,但这不起作用。
建议?
解决方法
您正在寻找的是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开始索引。