Поле будет в новой версии веб-интерфейса. Срок его выхода точно не скажу, но не ранее, чем через пару месяцев
К сожалению, те-же слова звучали ещё год назад…
Поле будет в новой версии веб-интерфейса. Срок его выхода точно не скажу, но не ранее, чем через пару месяцев
К сожалению, те-же слова звучали ещё год назад…
Теперешние пару месяцев будут гораздо короче, чем прошлогодние.
Здравствуйте. Выставил часовой пояс на контроллере. date теперь показывает Tue Nov 21 12:36:07 MSK 2017 - правильное время. Но правило, определенное для крон с указанием времени работает только для времени UTC.
defineRule("cron_0911", {
when: cron("0 10 9 * * *"),
then: function () {
log("cron");
if (dev["drb88_9"]["Relay 1"]) {
dev["drb88_9"]["Relay 1"] = 0;
} else {
dev["drb88_9"]["Relay 1"] = 1;
}
}
});
Это правило сработает в 12:10 по Московскому времени. Так и должно быть?
И замечание. У вас в документации написано “Вместо @hourly здесь можно задать любое выражение, допустимое в стандартном crontab, например, 0 20 * * * (выполнять правило каждый день в 20:00).”
Но это не так, первый символ это секунды, а не минуты. И об этом написано по ссылке, которая у вас в тексте.
Как правильно создать defineVirtualDevice с типом integer или float?
Чтоб, например, передавать значения типа колограмм…
Люди добрый помогите пожалуйста непрограммисту составить шаблоны правил для следующих задач, которые будут востребованы в 100% случаях при использовании WB в домашней автоматизации:
dev["device/Input "x" counter
с предварительной проверкой состояния реле (если хотя бы одно реле On, то выкл все. если все off то вкл все.dev["device/Input "x"
при отработке определенной функции, а также оповещение при сработке входа.dev[device/K1]
, а в другом dev[device][K1]
p.s. простое изложение данных шаблонов увеличит количество желающих приобрести Ваше оборудование. Возможно стоит выделить отдельную тему и назвать ее типа “Умный дом на WB для чайников”)))))
Может кто возьмется за плату составить шаблоны на выше указанные задачи?
Добрый вечер. Подскажите, как использовать переменные с восходом и закатом. Как сделать так, чтобы при наступлении восхода или заката сработало реле, которое выключает/включает уличное освещение. У меня, на данный момент, скрипт срабатывает только при обновлении или сохранении файла правила
Добрый день!
пытаюсь расположить функцию в отдельном js-файле, а ее вызов в другом и получаю ошибку:
Script error: ReferenceError: identifier ‘onButtonPress’ undefined
duk_js_var.c:1232
anon /etc/wb-rules/light_switches.js:42 preventsyield
нужно как-то специально указывать что функция расположена в другом файле?
И еще вопрос: при вызове функции, например, с параметром longPress, как передать несколько устройств (нужно по долгому нажатию выключать несколько реле)? и как задать какое значение должно принять реле (true/false)?
Спасибо!
Рекомендую сразу перейти на Новая версия движка правил и прочитать
Движок правил wb-rules — Wiren Board
как понять какая версия движка установлена?
и может быть я не корректно читал, но я не нашел как функцию описать в одном файле, а вызывать из другого…
@almo
и все-таки, как корректно указать что нужно выключить несколько устройств при долгом нажатии?
выполнить в консоли
dpkg -s wb-rules
Спасибо большое, разобрался!
Но возникает одна странная ошибкаЖ
Цитата
Script error: ReferenceError: identifier ‘ActionButtons’ undefined
duk_js_var.c:1232
anon /etc/wb-rules/light_switches.js:30 preventsyield
если перезагрузить WB или сервис движка правил.
Соответственно и правила не работают, пока не зайдешь в правило и не пересохранишь его.
С чем такое может быть связано и как это исправить?
Не хочется делать костылей по автоматическому пересохранению правила после перезагрузки…
А что у вас оказалось на 30-й строчке файла light_switches.js, и около него?
Можете просто весь итоговый файл выложить.
light_switches.js.txt (4.4 КБ)
Вот весь файл, там много всего лишнего…
ругается на строку:
Цитата
ActionButtons.onButtonPress(
при этом если пересохранить, то перестает ругаться
А ещё файл с описанием объекта ActionButtons сбросьте, пожалуйста
Здравствуйте! Помогите пожалуйста написать правильно скрипт. Вообщем ситуация такая,есть кнопка для управления вентилятором (вентилятор с регулировкой оборотов-работает через аналоговый выход 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.
Спасибо!
Это помогло!