Есть ли способ включения/выключения всех устройств в сети с проверкой статуса, что бы не осталось не выключенных/включенных. Не очень силен в ява скрипт, если есть возможность конкретным примером, заранее благодарен за ответ. |
Один из методов - это написать скрипт, который не только отправит команду, но и поставит таймер и будет проверять текущее значение, посылая повторно команду, если оно не равно желаемому. Что-то вроде: // садимся на "сцену" от отправителя zway.devices[SENDER].SceneActivation.data.currentScene.bind(function () { // запускаем открытие или закрытие switch (this.value) { case 11: ensureLevel([DEST1, DEST2, DEST3, ...], false, 0); // закрыть break; case 11: ensureLevel([DEST1, DEST2, DEST3, ...], true, 0); // открыть break; } }); // эта функция нужна для приведения 0/255 к false/true // т.к. в старых версиях Z-Way SwitchBinary возвращал 0/255, а в новых - falst/true // если у Вас новая, то можно удалить её и убрать из кода ниже function toBool(val) { return toBool > 0; } function ensureLevel(dstArray, level, run) { // переменная, которая подскажет нам, нужно ли повторно проверить состояние устройств var checkAgain = false; // пробег по устройствам из списка for (var index in dstArray) { // если первый запуск этой функции или состояние устройства не совпадает с желаемым if (run == 0 || toBool(zway.devices[dstArray[index]].SwitchBinary.data.level.value) != level) { // отправляем новое значение zway.devices[dstArray[index]].SwitchBinary.Set(level); // помечаем, что было несоответствие - нужно проверить опять чуть позже checkAgain = true; } } // если нужно, запускаем таймер на 30 секунд (подставьте нужное значение) // но не более 3х раз (нужное значение) - вдруг устройство просто умерло - зачем сеть долбить зря?) if (checkAgain && run < 3) setTimeout(function () { // опять та же ф-ция, но с большим номером повтора ensureLevel(dstArray, level, run + 1); }, 30*1000); // проверить ещё раз через 30 секунд }; Код выглядит страшным, но на деле он простой и понятный.
ссылка
Этот answer отмечен как вики
|
Второй вопрос ушёл в отдельный пост http://ask.z-wave.me/questions/55/4-fibaro-roller-fgr-221