Сценарии - новая версия API



  • @amgstone Кнопка должна находится именно в боковом меню устройства, которое открывается после долгого нажатия на устройство. Чтобы было понятнее кратко опишу идею: устройство с прошивкой для ws2812 WLED имеет очень широкий функционал но реализовать его (кроме вкл/выкл и изменения цветов) в IH нет возможности и смысла. Поэтому хочу сделать дополнительную кнопку в боковом меню выключателя, по нажатию на которую будет переход в браузер на адрес ip устройства, где уже будут все настройки устройства 9c917862-0565-4ad6-8050-e445ee4bf940-image.png

    Проблема в написании сценария, я не знаком с языками программирования.



  • подскажите как в этом сценарии передавать на виртуальное устройство температуру каждых 5 минут а не при каджом изменении температуры?

    /** 
    * @name Середня температура будинку 
    * @desc  
    * @version 4 
    */
    const temp_bedroom = Device("STEMP1");
    const temp_korudor = Device("STEMP11"); 
    const temp_vana = Device("STEMP12");
    const temp_hall = Device("STEMP5"); 
    const temp_danulo = Device("STEMP6"); 
    const temp_sofija = Device("STEMP7"); 
    const temp_kamina = Device("STEMP8"); 
    const temp_kitchen = Device("STEMP9"); 
    const temp_house = Device("Stemp_house");
    
    startOnChange([temp_bedroom,temp_korudor,temp_vana,temp_hall,temp_danulo,temp_sofija,temp_kamina,temp_kitchen]); 
    
    script({
        start() {
         let temp_house_t= (temp_bedroom.value+temp_korudor.value+temp_vana.value+temp_hall.value+temp_danulo.value+temp_sofija.value+temp_kamina.value+temp_kitchen.value)/7;
         this.assign(temp_house, "value", temp_house_t.toFixed(2));
        } 
    });
    
    


  • @amgstone при первом изменении температуры вы можете запустить таймер и записать среднюю температуру через 5 минут, и снова вызвать таймер и так бесконечно. Или вызывать сценарий периодически в расписании, только удалите функцию StartOnChange.



  • Добрый вечер! Подскажите где найти сценарий Управление поливом, смотрел видео с версией Berry и там использовался такой сценарий, планирую использовать в версии Cherry на MegaD.



  • Такой сценарий создать просто. Вам нужно создать два сценария, которые включают и выключают полив и настроить вызов этих сценариев через расписание. Это если по простому, но у вас может свой алгоритм работы.



  • @goodspeed1986 спасибо, но чтобы его создать нужно оттолкнуться хотьб от маломальского похожего сценария, в котором я бы смог что-то менять и экспериментировать, так как мне это ещё сложно.



  • Имеется:

    1. 3 зоны полива по разным сторонам света
    2. Отдельно в зонах:
      • В 1-й зоне 5 направлений
      • В 2-й зоне 3 направления
      • В 3-й зоне 4 направления
    3. В 3-х зонах по одному датчику влажности
      Хочется такое:
    4. Включение и отключение авто полива.
    5. Выставлять значение влажности в каждой зоне отдельно при котором значении включается полив
    6. В каждой зоне может включиться только одно направление полива и переключатся по очерёдно по расписанию, как пример ( 1-е направление – 15 минут, потом 2-е направление – 10 минут, потом 3-е направление - 7 минут и т.д.)

    Может кто писал какой-то похожий сценарий, от которого оттолкнуться.



  • Это достаточно сложный сценарий. Сразу у вас такой сделать не получится. Начните с включения/выключения полива по влажности, потом переключайтесь на зоны. Включение по влажности очень похоже на отопление. Если все таки сами не сможете, может кто-то согласиться вам помочь за вознаграждение.



  • Друзья, изучайте JS - он не так сложен, особенно если вы не знаете ни одного языка программирования). Только со знанием JS получится создать сценарий, который будет удовлетворять всем вашим критериям. Нативные блок-схемы - все это балоство.. .лучше начните баловаться с простыми выражениями типа...простых не нашел...все мои сценарии уже очень сложны, поскольку учитывают множество факторов. Все же умный дом):

        //Проверка основных условий (авто-режим клапана и дом снят с охраны)
        if(valve.auto && guard.isOff()) {
          //Если давление воды на вводе в норме
          if(pressure.value > pressure.setpoint) {
            //И если емкость не заполнена (показания датчика меньше 900)
            if(level.value < 900) {
              //Включаем клапан подачи воды в емкость
              if(valve.isOff()) valve.turnOnSaveAuto();
              this.message += valve.name+ " включен";
              
              //Взвод таймеров для установки "слушателя" и защитного отключения клапана
              this.startTimer("Timer_AddListener", 3, "AddListener");
              this.startTimer("Timer_OffValve", valve.getParam("timeOff")*60, "OffValve");
            }
            else {
              this.message += "Емкость заполнена";
            }
          }
          else {
            this.message += pressure.name+ " низкое!";
          }
        }
        else {
          this.message +
    


  • Коллеги, в мультисценарий потребовалось добавить переключатель режимов ПВУ (вдруг если где-то задымление, то отключаем систему вентиляции). Как это сделать?



  • @Alex_Jet, добрый день. Не совсем понятна проблема. Нужно добавить переключатель как устройство сценария, а потом в каждый экземпляр его добавить. Другой вариант - сделать виртуальное устройство как индикатор задымления, включить в мультисценарий его. По этому индикатору выключать вытяжку - мульти здесь уже не нужен.



  • @intrapro, первый вариант предпочтительней, поскольку в сценарии работы системы вентиляции уже наворочено сверх возможного. Однако как добавить переключатель как устройство сценария? Если как ActorD, то не могу выбрать переключатель в экземпляре мультисценария.



  • Добрый день!
    Подскажите, пожалуйста, где и как можно узнать свойства устройств и что они значат?



  • Пользователь @laronov написал в Сценарии - новая версия API:

    Добрый день!
    Подскажите, пожалуйста, где и как можно узнать свойства устройств и что они значат?

    В 4 версии все свойства устройства были определены в системе жестко. State - бинарные значения, Value - аналоговые, Blk.
    В 5 версии все свойства устройства можно настраивать. К примеру, есть датчик температуры и влажности. Сейчас нет необходимости делать два устройства. Можно одно устройство со свойствами temperature (температура) и humidity (влажность). Если понадобится еще давление, то просто добавить еще свойство pressure (давление). Благодаря такому механизму вы можете создать свои устройства.
    В комплекте с системой уже есть некоторые типовые устройства в папке "Типы устройств". Можно посмотреть как они сделаны.
    Подробнее можно почитать в документации



  • Пользователь @IntraVM написал в Сценарии - новая версия API:

    Blk
    что значит данное свойство?



  • Пользователь @laronov написал в Сценарии - новая версия API:

    Пользователь @IntraVM написал в Сценарии - новая версия API:

    Blk
    что значит данное свойство?

    Блокировка устройства.



  • Пользователь @intrapro написал в Сценарии - новая версия API:

    @Alex_Jet Да, это блокировка (свойство blk, операция setBlk) и setpoint - его наверно уже используете

    Добрый день!
    Есть сенсор, который получает значение с канала плагина mqtt.
    Значение отображается в индикаторе 1.
    Как можно в индикаторе 2 отобразить значение с другого канала mqtt?
    Видимо, это нужно/можно в скрипте как-то описать?


Авторизуйтесь, чтобы ответить