Demostand: различия между версиями
Vdromanov (обсуждение | вклад) |
Vdromanov (обсуждение | вклад) |
||
Строка 69: | Строка 69: | ||
==Правила== | ==Правила== | ||
====Датчик движения==== | |||
<div class="mw-collapsible mw-collapsed"> | |||
Показать код | |||
<div class="mw-collapsible-content"> | |||
<code> | |||
defineAlias("movement_lamp", "wb-gpio/EXT1_R3A2"); | |||
defineAlias("movement_virtual_switch", "movement_sensor_control/Иммитация движения"); | |||
defineAlias("movement_timeout_before", "movement_sensor_control/Задержка после начала движения"); | |||
defineAlias("movement_timeout_after", "movement_sensor_control/Задержка после прекращения движения"); | |||
var motion_timer_before = null; | |||
var motion_timer_after = null; | |||
defineVirtualDevice("movement_sensor_control", { | |||
title: "Датчик движения", | |||
cells: { | |||
"Иммитация движения": { | |||
type: "switch", | |||
value: false | |||
}, | |||
"Задержка после начала движения": { | |||
type: "range", | |||
value: 2, | |||
min: 1, | |||
max: 10 | |||
}, | |||
"Задержка после прекращения движения": { | |||
type: "range", | |||
value: 2, | |||
min: 1, | |||
max: 10 | |||
} | |||
} | |||
}); | |||
defineRule("physical_movement_to_virtual_switch", { | |||
whenChanged: "wb-gpio/EXT5_DR8", | |||
then: function(newValue, devName, cellName) { | |||
movement_virtual_switch = newValue; | |||
} | |||
}); | |||
defineRule("movement_handler", { | |||
whenChanged: "movement_sensor_control/Иммитация движения", | |||
then: function(newValue, devName, cellName) { | |||
if (newValue == true) { | |||
if (motion_timer_before) { | |||
clearTimeout(motion_timer_before); | |||
} | |||
motion_timer_before = setTimeout(function() { | |||
movement_lamp = 1; | |||
motion_timer_before = null; | |||
}, movement_timeout_before * 1000); | |||
} else { | |||
if (motion_timer_after) { | |||
clearTimeout(motion_timer_after); | |||
} | |||
motion_timer_after = setTimeout(function() { | |||
movement_lamp = 0; | |||
motion_timer_after = null; | |||
}, movement_timeout_after * 1000); | |||
} | |||
} | |||
}); | |||
</code> | |||
</div></div> | |||
====Управление освещением==== | ====Управление освещением==== | ||
<div class="mw-collapsible mw-collapsed"> | <div class="mw-collapsible mw-collapsed"> |
Версия 20:19, 9 ноября 2018
Страница находится в процессе наполнения
Общая информация
Фото
Подключённые устройства
Modbus устройства | Пристыковочные модули | ||
---|---|---|---|
Модель | Описание | Модель | Описание |
WB-MR6HV/I | Мощный 6-ти канальный релейный модуль. Входы 220В. Подробнее. Купить. | WBIO-R10A8 | Релейный модуль. До 7А/230В на канал. Идеален для
управления освещением/контакторами/моторами. Подробнее. Купить. |
WB-MR3LV/I | Мощный 3-х канальный релейный модуль. Входы вида "Сухой контакт" Подробнее. Купить. | WBIO-HS-8 | Модуль с 8 выходами вида "High Side Switch" |
WB-MDM2 | Диммер ламп (как накаливания, так и светодиодных).
Номинальная мощность до 400Вт. Подробнее. Купить. |
WBIO-R1G16 | Релейный модуль с 16-ю выходами и общим каналом. |
WB-MRGBW-D | Диммер RGB-лент. Допустимый ток 3А на канал.
Отдельный канал для управления белыми лентами. Подробнее. Купить. |
WBIO-DI-DR14 | Модуль содержит 8 входов вида "Сухой контакт" |
WB-MAP6S | 6-ти канальный счётчик электроэнергии. | WBE2-DI-DR-3 | Модуль расширения на 3 входа вида "Cухой кнтакт"
Вставляются внутрь корпуса Wiren Board Подробнее. Купить. |
WB-MRM2mini/no | |||
WB-MIR | |||
Датчики | |||
WB-MSW2 | |||
WB-MSW/THLS | |||
WB-MSGR | |||
WB-M1W2 |
Правила
Датчик движения
Показать код
defineAlias("movement_lamp", "wb-gpio/EXT1_R3A2");
defineAlias("movement_virtual_switch", "movement_sensor_control/Иммитация движения");
defineAlias("movement_timeout_before", "movement_sensor_control/Задержка после начала движения");
defineAlias("movement_timeout_after", "movement_sensor_control/Задержка после прекращения движения");
var motion_timer_before = null;
var motion_timer_after = null;
defineVirtualDevice("movement_sensor_control", {
title: "Датчик движения",
cells: {
"Иммитация движения": {
type: "switch",
value: false
},
"Задержка после начала движения": {
type: "range",
value: 2,
min: 1,
max: 10
},
"Задержка после прекращения движения": {
type: "range",
value: 2,
min: 1,
max: 10
}
}
});
defineRule("physical_movement_to_virtual_switch", {
whenChanged: "wb-gpio/EXT5_DR8",
then: function(newValue, devName, cellName) {
movement_virtual_switch = newValue;
}
});
defineRule("movement_handler", {
whenChanged: "movement_sensor_control/Иммитация движения",
then: function(newValue, devName, cellName) {
if (newValue == true) {
if (motion_timer_before) {
clearTimeout(motion_timer_before);
}
motion_timer_before = setTimeout(function() {
movement_lamp = 1;
motion_timer_before = null;
}, movement_timeout_before * 1000);
} else {
if (motion_timer_after) {
clearTimeout(motion_timer_after);
}
motion_timer_after = setTimeout(function() {
movement_lamp = 0;
motion_timer_after = null;
}, movement_timeout_after * 1000);
}
}
});
Управление освещением
Код правила
defineAlias("small_light_switcher", "wb-msgr_9/Relay");
defineAlias("lamp1_switcher", "wb-gpio/EXT2_K1");
var FORCE_ILLUMINANCE_FLAG = false;
var FORCE_LAMP_FLAG = false;
defineVirtualDevice("switch_small_light", {
title: "Управление освещением",
cells: {
"Принудительное освещение датчика": {
type: "switch",
value: false
},
"Включить освещение вручную": {
type: "switch",
value: false
},
"Уровень освещения днём": {
type: "range",
value: 500,
max: 1000
}
}
});
defineRule("small_light_control", {
whenChanged: "switch_small_light/Принудительное освещение датчика",
then: function(newValue, devName, cellName) {
if (newValue == true) {
small_light_switcher = 1;
FORCE_ILLUMINANCE_FLAG = true;
dev["switch_small_light/Включить освещение вручную"] = false
} else {
small_light_switcher = 0;
FORCE_ILLUMINANCE_FLAG = false;
}
}
});
defineRule("manual_light_control", {
whenChanged: "switch_small_light/Включить освещение вручную",
then: function(newValue, devName, cellName) {
if (MANUAL_SWITCHER_1_FLAG == false) {
if (newValue == true) {
lamp1_switcher = 1;
FORCE_LAMP_FLAG = true;
dev["switch_small_light/Принудительное освещение датчика"] = false
} else {
lamp1_switcher = 0;
FORCE_LAMP_FLAG = false;
}
}
}
});
defineRule("illuminance_ms_thls", {
whenChanged: "wb-ms-thls-v2_8/Illuminance",
then: function(newValue, devName, cellName) {
if (MANUAL_SWITCHER_1_FLAG == false) {
if (FORCE_ILLUMINANCE_FLAG == false && FORCE_LAMP_FLAG == false) {
if (newValue < dev["switch_small_light"]["Уровень освещения днём"]) {
lamp1_switcher = 1;
} else {
if (newValue > dev["switch_small_light"]["Уровень освещения днём"]) {
lamp1_switcher = 0;
}
}
}
}
}
});