Я новичок в JS и не могу решить эту проблему, поэтому надеюсь, что вы мне поможете.Я кратко объясню, какова ситуация, я установил приложение Homebridge от Github на свой Raspberry: https://github.com/nfarina/homebridge
Установка прошла успешно, так что пока все хорошо.Но затем я установил плагин eWeLink для приложения Homebridge: https://github.com/gbro115/homebridge-ewelink установка прошла также хорошо, но при запуске, похоже, проблема в index.js из плагина, я получаю следующий вывод:
[2018-5-31 23:10:37] [eWeLink] Всего [0] аксессуаров было загружено из локального кэша [2018-5-31 23:10:37] [eWeLink] Запрос списка устройств из API HTTPS eWeLink по адресу [https://eu -ota.coolkit.cc: 8080] [2018-5-31 23:10:37] Homebridge работает на порту 51826.[2018-5-31 23:10:37] [eWeLink] eWeLink HTTPS API сообщает, что в общей сложности зарегистрировано [108] устройств /usr/lib/node_modules/homebridge-ewelink/index.js:98 body.forEach ((устройство) => {^
TypeError: body.forEach не является функцией в /usr/lib/node_modules/homebridge-ewelink/index.js:98:22 в Object.parseBody (/ usr / lib/node_modules/homebridge-ewelink/node_modules/request-json/main.js:74:12) в Request._callback (/ usr / lib / node_modules / homebridge-ewelink / node_modules / request-json / main.js: 148: 26) в Request.self.callback (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:186:22) в emitTwo (events.js: 126): 13) на Request.emit (events.js: 214: 7) на запрос.(/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:1163:10) в emitOne (events.js: 116: 13) в Request.emit (events.js: 211: 7) в IncomingMessage,(/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:1085:12)
Таким образом, терминал сообщает мне об ошибке в строке 98 из index.jsэто будет следующая часть скрипта:
var devicesFromApi = new Map();
var newDevicesToAdd = new Map();
body.forEach((device) => {
platform.apiKey = device.apikey;
devicesFromApi.set(device.deviceid, device);
});
// Now we compare the cached devices against the web list
platform.log("Evaluating if devices need to be removed...");
function checkIfDeviceIsStillRegistered(value, deviceId, map) {
var accessory = platform.accessories.get(deviceId);
if (devicesFromApi.has(deviceId)) {
platform.log('Device [%s] is regeistered with API. Nothing to do.', accessory.displayName);
} else {
platform.log('Device [%s], ID : [%s] was not present in the response from the API. It will be removed.', accessory.displayName, accessory.UUID);
platform.removeAccessory(accessory);
}
}
Я обнаружил некоторые похожие проблемы с функцией fromEach, но я все еще не могу понять, что мне следует изменить в скрипте.
Надеюсь, вы можете помочь мне:)