Javascript, выключить несколько устройств

Я переписал свой код, так что теперь у меня есть три лампочки, которые я выключаю один за другим. Есть ли способ поместить все три из них в переменную, чтобы просто запустить команду выключения один раз?

// Turn off a bunch of lights

// Specify ID for a specific lamp
let KitchentableRight = await Homey.devices.getDevice({id: 'ef6bae9c-ec57-46ff-9011-905f90d16589'});
let KitchentableMiddle = await Homey.devices.getDevice({id: 'e29ab963-5139-4fdb-b4ec-ec25c103a62a'});
let KitchentableLeft = await Homey.devices.getDevice({id: '8b102bc6-00dd-4305-b111-f67a53ffd9d9'});

// Turn off tha lights based on their ID:s
KitchentableRight.setCapabilityValue('onoff', false);
KitchentableMiddle.setCapabilityValue('onoff', false);
KitchentableLeft.setCapabilityValue('onoff', false);

return true

Я понятия не имею о Homey, но return false внутри вашего forEach не делает того, чего вы ожидаете.

rlemon 16.10.2018 17:50

Я пытаюсь написать это с помощью библиотеки javascript. apps.athom.com/app/com.athom.homeyscript

Makke_ 16.10.2018 17:53

Я не думаю, что вы хорошо используете forEach. devices будет каждой записью вашего массива a, а device будет индексом. Проверить developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

ElJackiste 16.10.2018 17:59

Я пытался использовать ту страницу, которую вы связали со мной, пытаясь создать мой сценарий, но, видимо, я все сделал неправильно.

Makke_ 16.10.2018 19:59

Обновил мой скрипт выше. Он включает свет, но не только его в списке. Вышеупомянутый скрипт переключается, но я хотел бы проверить, горит ли свет и действительно ли он выключен. Какие-либо предложения?

Makke_ 19.10.2018 17:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
273
1

Ответы 1

чтобы цикл запускался для каждого устройства, он должен быть:

 devices.forEach(device => {
       if (device.name) return false;
        console.info(device.name);
        device.setCapabilityValue('onoff', !device.state.onoff);
    })

если это массив имени устройства, вы можете проверить, есть ли устройство в: a.indexOf(device.name) != -1

Я создал, чтобы установить различные переменные (лампы), которые я хотел выключить. Не уверен, как заставить ваш код пройти через массив, чтобы выключить все лампы. Код дает ошибку «Ошибка: devices.foreach не является функцией»

Makke_ 16.10.2018 19:54

Другие вопросы по теме