Demostand: различия между версиями

Материал из Wiren Board
Строка 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;
               }
                       }
                   }
               }
           }
       });