Здравствуйте. Выставил часовой пояс на контроллере. date теперь показывает Tue Nov 21 12:36:07 MSK 2017 - правильное время. Но правило, определенное для крон с указанием времени работает только для времени UTC.
Это правило сработает в 12:10 по Московскому времени. Так и должно быть?
И замечание. У вас в документации написано “Вместо @hourly здесь можно задать любое выражение, допустимое в стандартном crontab, например, 0 20 * * * (выполнять правило каждый день в 20:00).”
Но это не так, первый символ это секунды, а не минуты. И об этом написано по ссылке, которая у вас в тексте.
Люди добрый помогите пожалуйста непрограммисту составить шаблоны правил для следующих задач, которые будут востребованы в 100% случаях при использовании WB в домашней автоматизации:
Управление несколькими реле по изменению счетчика dev["device/Input "x" counter с предварительной проверкой состояния реле (если хотя бы одно реле On, то выкл все. если все off то вкл все.
Аналогичное, но с добавлением в правило каналов диммера.
Обработка двойного нажатия для определенного ```dev["device/Input “x” counter``. Т.е. запуск таймера после n+1, далее ожидание n+2, далее сброс таймера, анализ n и выполнение разных функций для n+1 и для n+2.
Правило для постановки на сигнализацию определенных dev["device/Input "x" при отработке определенной функции, а также оповещение при сработке входа.
Различные правила для ```dev["device/Input “x” counter` в зависимости от времени суток.
Создание многонаборных сценариев, для виртуальных устройств: напр. включение димера на 20%+включение реле1+ реле5+ температура пола 26.
Настройка алиасов для входных каналов : например вместо ```dev["device/Input “x”] применять одну глобальную переменную “button1”.
То же самое для каналов реле - тут сложности: как система поймет что алиас “rele1” в одном случае это dev[device/K1], а в другом dev[device][K1]
Как правильно структурировать правила - вкладывать все обработки в одну функцию (проверка времени суток, проверка состояния, проверка количества нажатий" или лучше разносить обработки в разных функциях, тогда какие должны выполняться раньше?
будут дополняться
p.s. простое изложение данных шаблонов увеличит количество желающих приобрести Ваше оборудование. Возможно стоит выделить отдельную тему и назвать ее типа “Умный дом на WB для чайников”)))))
Добрый вечер. Подскажите, как использовать переменные с восходом и закатом. Как сделать так, чтобы при наступлении восхода или заката сработало реле, которое выключает/включает уличное освещение. У меня, на данный момент, скрипт срабатывает только при обновлении или сохранении файла правила
нужно как-то специально указывать что функция расположена в другом файле?
И еще вопрос: при вызове функции, например, с параметром longPress, как передать несколько устройств (нужно по долгому нажатию выключать несколько реле)? и как задать какое значение должно принять реле (true/false)?
Здравствуйте! Помогите пожалуйста написать правильно скрипт. Вообщем ситуация такая,есть кнопка для управления вентилятором (вентилятор с регулировкой оборотов-работает через аналоговый выход 0-10v) она его включает при первом нажатии на 100% при втором на 50% и при третьем выключает это реализовать удалось. Также вентилятор должен работать от датчика влажности при превышении порога включается на 50% и по истечении какого то времени включается на 100% .Выключается при снижении порога и сбрасывает таймер .Если произошло включение по кнопке сценарий с датчиком работать не должен.Сейчас работает по другому(от датчика влажности вкл на 50% потом по времени на 100% сбрасывает сброс таймера и все по новой) помогите подкорректировать.
(function() {
var button_counter = 0;
defineRule( "on_fan_button", {
whenChanged: "wb-gpio/A1_IN",
then: function (newValue, devName, cellName) {
// если поймали нажатие, увеличиваем счётчик
if (newValue) {
button_counter += 1;
}
// счётчик равен одному, значит было одинарное нажатие
if (button_counter == 1) {
log("fan 100%");dev["wb-dac/EXT2_O1"] = 10000;
}
// счётчик равен двум, значит было двойное нажатие
if (button_counter == 2) {
log("fan 50%");dev["wb-dac/EXT2_O1"] = 5000;
}
if (button_counter == 3) {
log("fan off");dev["wb-dac/EXT2_O1"] = 0;
}
// сброс счетчика
if (button_counter == 3) {
log("clear counter!",button_counter);button_counter = 0;
}
}
});
})();
var Hum = 10;
var motion_timer_1_timeout_ms = 10 * 1000;
var motion_timer_1_id = null;
defineRule("Hum_fan_on", {
whenChanged: "T2 Bathroom/Humidity",
then: function (newValue, devName, cellName) {
if ( newValue > Hum) {
dev["wb-dac/EXT2_O1"] = 5000;
if (motion_timer_1_id) {
clearTimeout(motion_timer_1_id);
}
motion_timer_1_id = setTimeout(function () {
dev["wb-dac"]["EXT2_O1"] = 10000;
motion_timer_1_id = null;
}, motion_timer_1_timeout_ms);
}
}
});
Судя по ошибке объект ActionButtons не существует на момент запуска скрипта light_switches. В качестве эксперимента: попробуйте переименовать onButtonPress.js в _onButtonPress.js или что-то подобное, чтобы по порядку он был выше light_switches.
Всем здравствуйте!! Помогите пожалуйста написать правильно скрипт. Логика такая есть теплый пол он включается ы выключается по датчику температуры регулируется через виртуальный ползунок. Так же есть виртуальная кнопка когда на ней единица, все должно работать от датчика температуры, когда ноль все должно быть выключено и на датчик температуры реакции не должно быть. Вообщем кнопка должна разрешать работать ТП от датчика температуры или нет.