Мультисценарий



  • Мультисценарий - один сценарий для нескольких групп устройств

    Рассмотрим ситуацию, когда у вас в доме около десятка датчиков задымления.

    При сработке датчика необходимо отключить розетки, включить вытяжной вентилятор и послать сообщение.
    Можно для каждого датчика сделать отдельный сценарий. К примеру, такой:
    multi_scen1010.jpg

    Код этого сценария показан ниже:
    multi_scen1020.jpg

    Таким образом мы сделали сценарий для группы конкретных устройств: SFIRE_1_1, SOCKET1 и VENT1

    Что делать, когда таких групп много? Можно сделать отдельный сценарии для каждой группы. Будем иметь кучу однотипных сценариев. В случае необходимости внести изменения в код, придется это сделать во всех сценариях.

    Лучше сделать один сценарий и применить его для разных комбинаций устройств.

    Немного изменим код сценария:

    /** 
    * @name Smoke  
    * @desc Send message when smoke  
    * @version 4 
    */
    
    const d_smoke = Device("SensorD","Smoke Detector");
    const a_socket = Device("ActorD","Socket");
    const a_vent = Device("ActorD","Fan");
    
    startOnChange([d_smoke]);
    
    script({
      start() { 
        if (d_smoke.isOn()) {
          a_socket.off();
          a_vent.on();
          this.info("email","OWNER",`Attention! Smoke! \n ${d_smoke.placeName}/${d_smoke.zoneName}`);
        }
      }
    })
    

    В чем отличие?
    Мы заменили конкретные устройства переменными и классами устройств.
    Вместо SFIRE_1_1 поставили переменную **d_smoke.**Вместо Device(«SFIRE_1_1«) написали Device(«SensorD«,»Датчик дыма»).Аналогично и для других устройств (SOCKET1, VENT1)

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

    this.info(«email»,»OWNER»,`Attention! Smoke! \n ${d_smoke.placeName} / ${d_smoke.zoneName}`);
    

    Мультисценарий подготовили. Теперь его можно привязать к группам устройств:
    multi_scen2010.jpg

    Выбираем пункт «Запустить для устройств». Кнопкой «+» добавляем группу устройств для нашего сценария и заполняем поля, которые были определены в коде сценария: Smoke Detector, Socket и Fan.
    Аналогично добавляем другие группы устройств.

    Таким образом мы сделали один мультисценарий и используем его для неограниченного количества групп устройств.

    Примечание:
    Любые изменения в коде мультисценария приведут к изменению поведения устройств во всех группах.