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



  • Уважаемые коллеги.

    В системе intraHouse начиная с версии 4.4.5 обновлено API работы со сценариями.

    Для информации: Все сценарии со старым API продолжают работать как раньше.

    Тем не менее рекомендуем переходить на новый синтаксис команд. Он описан здесь https://ih-systems.com/ru/command_list/

    Подробная информация по сценариям здесь: https://ih-systems.com/ru/about-scenes/

    Небольшая статья по отличию версий здесь: https://ih-systems.com/ru/new-api-scenes/



  • Капец…столько сценариев переводить под новый API... когда версия ❤ перестанет работать? И можно пояснить в чем преимущества версии 4 перед новыми? Меня одно радует - теперь вы за плагин MegaD возьметесь 😉 , а то двумя версиями системы пользуюсь...

    Кстати, если редактировать один из мультисценариев, которые есть в "Рабочие сценарии", то он под номером ID мультисценария появляется в "Сценарии". При этом "корневой" мультисценарий (который с пользовательским названием) тоже оказывается отредактированным. Это баг или фича?



  • Сценарии по старому API будут работать всегда.
    @Alex_Jet:

    И можно пояснить в чем преимущества версии 4 перед новыми?

    1. Расширенная система команд. Синтаксис проще для понимания.

    2. Совместимость с графическим редактором сценариев.

    @Alex_Jet:

    Кстати, если редактировать один из мультисценариев, которые есть в "Рабочие сценарии", то он под номером ID мультисценария появляется в "Сценарии". При этом "корневой" мультисценарий (который с пользовательским названием) тоже оказывается отредактированным. Это баг или фича?

    Поправим. Закроем возможность редактирования в разделе "Рабочие сценарии".



  • Какой графический редактор планируете?



  • Человек-консерватор… почитал про новый API, мне как человеку умеющему немного кодить на C, PHP, JS старая концепция ближе. Однако - "блокли" из нее не сделаешь, а с новым API получится.

    Вот код:

    const motion1 = DeviceT("SMOTION1");
    const motion2 = DeviceT("SMOTION2");
    
    startOnChange([motion1,motion2]);
    
    

    startOnChange - как понял это check? Раз DeviceT остались (при срабатывании устройства-триггера стартует скрипт), то зачем проверять изменения их состояния на старте? Не пойму логику. Раньше либо DeviceT, либо check использовал. Какой смысл вышеприведённой комбинации? Ещё понимаю если в startOnChange сразу проверять условие типа motion.isOn&hum.value>60&vent.isOff



  • Нашел:

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

    Вместо этого нужно явно объявить, что сценарий запускается при изменении свойств устройства:

    startOnChange(motion);

    Зачем тогда в описании синтаксиса скриптов приводить примеры с DeviceT?

    Ммм…сюрприз! Как Вы щедры! Для нас уже большим сюрпризом является ваша бесподобная Cherry!☺️ И отличная поддержка пользователей с исполнением их желаний!



  • @Alex_Jet:

    Зачем тогда в описании синтаксиса скриптов приводить примеры с DeviceT?

    Подскажите в каком месте вы нашли примеры с DeviceT ?



  • @art:

    Какой графический редактор планируете?

    Немного терпения 😉 Через неделю опубликуем



  • @intrahouse:

    Подскажите в каком месте вы нашли примеры с DeviceT ?

    Ссылка https://ih-systems.com/ru/about-scenes/, примеры в разделе "1. Устройства-триггеры, запускающие сценарий".



  • Немного не понятно:

    this.assign(sensor, "dval",actor.value );

    Присвоить значение для "value" не срабатывает. Только для "dval"! В новой версии!



  • @Alex_Jet:

    примеры в разделе "1. Устройства-триггеры, запускающие сценарий".

    Спасибо. Поправили



  • @Villista:

    Присвоить значение для "value" не срабатывает. Только для "dval"! В новой версии!

    Вы правы, value должно работать. Исправим



  • Коллеги! Начиная с версии 4.4.6 работает графический редактор сценариев.

    Он покрывает все возможности механизма построения сценариев в Berry. Не только покрывает, но и значительно превосходит.

    Описание графического редактора опубликовано здесь https://ih-systems.com/ru/block-diagram/

    Ниже постараюсь показать несколько примеров.



  • Сценарий - Протечка воды

    1. Проверить блокировку датчика

    2. Взвести таймер на 5 сек. (случайно задели тряпкой датчик протечки)

    3. Если по истечении 5 сек. протечка продолжается, перекрыть клапан воды, записать в лог и послать сообщение.
    scen101.jpg



  • Сценарий - Управление вытяжной вентиляцией по датчику влажности

    От датчика влажности поступает значение и сравнивается с уставкой.

    Если больше уставки и вентилятор находится в режиме "Авто" то он включается.

    Если меньше уставки, вентилятор выключается
    scen202.jpg



  • Сценарий - Управление светильником при открытии 2 дверей

    При открытии любой из дверей включить свет.

    Если обе двери закрыты, свет выключить через 60 сек.
    scen301.jpg



  • Сценарий - включить свет при открытии двери с у четом датчика освещенности.

    Этот сценарий аналогичен предыдущему. Но еще проверяет аналоговый датчик освещенности (SENSORA1) с учетом уставки.
    scen303.jpg



  • Реализация понравилась - все современно и красочно. Для чайников, разбирающихся что такое NOT, AND и прочим - самое то. Опытные юзеру предпочтут скрипты, поскольку толковый мультисценарий, мне кажется, не сделать. Тот же пример с датчиком протечки - как сделать с помощью блокли чтобы пользователю отсылалось сообщение в Telegram с названием датчика протечки и названием клапана/насоса, которые отключены? В скрипте это сделать очень просто…

    Если обычный юзер "перерастет" себя, то отредактировать скрипт, который создался на основе блок-схемы ему не получится...вижу, что всплывает сообщение - "Редактируйте блок-схему". Но как вариант - можно создать свой с нуля.

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

    Что такое "Новый скрипт" и "Новый шаблонный скрипт" - обычный сценарий и мультисценарий? Теперь придется ломать парадигму прошлых представлений?

    За иконки сценариев и мультисценариев - спасибо! их не хватало.

    Еще предлагаю сделать иконки с версией скриптов.



  • @Alex_Jet:

    Опытные юзеру предпочтут скрипты, поскольку толковый мультисценарий, мне кажется, не сделать. Тот же пример с датчиком протечки - как сделать с помощью блокли чтобы пользователю отсылалось сообщение в Telegram с названием датчика протечки и названием клапана/насоса, которые отключены? В скрипте это сделать очень просто…

    Согласен. Каждому свое. Опытные будут писать скрипт. Для меня, как инженера-схемотехника, блок-схемы нагляднее. Я не программист 😞

    Чтобы отсылалось сообщение с названием устройства можно в сообщение подставлять: x.id, x.name, x.placeName, x.zoneName, x.fullName

    Формат такой: Внимание! Протечка воды. ${SLEAKAGE1.zoneName}
    scen121.jpg

    @Alex_Jet:

    Если обычный юзер "перерастет" себя, то отредактировать скрипт, который создался на основе блок-схемы ему не получится…вижу, что всплывает сообщение - "Редактируйте блок-схему". Но как вариант - можно создать свой с нуля.

    Можно способом copy/paste. Скопировать созданный в блок-схеме скрипт и сделать из него новый сценарий.

    Кроме этого чуть позже можно будет одной командой сделать из блок-схемы мультисценарий.
    @intrahouse:

    Что такое "Новый скрипт" и "Новый шаблонный скрипт" - обычный сценарий и мультисценарий? Теперь придется ломать парадигму прошлых представлений?

    Ломать не надо. Мы поправим названия. Должно быть Сценарий, Мультисценарий, Блок-схема



  • Добрый день,
    @Alex_Jet:

    В некоторых случая почему-то не удаляются линии. Выбираешь ее, а минус не активен - выбираешь какой-нибудь элемент, а потом снова линию и тогда минус активен.

    Линии удаляются только по клавише Backspace или с элементом вместе. (исправим в следующей версии)

    Элементы также можно удалить по клавише Backspace или кнопки минус.

    При удерживание клавиши Shift можно выделять несколько элементов или линий

    При удерживание клавиши Ctrl на линиях можно ставить точки.

    @Alex_Jet:

    Линию можно протянуть только от предыдущего элемента к следующему обратно не получается. Это с точки зрения юзабилити.

    Все верно, данное ограничение штатное, не является ошибкой.



  • Все вышеописанное Вами, надо в статью/вики добавить.

    PS: а я радиотехник… но языки программирования очень нравятся. Хотя никак с программированием не связан - все в русле хобби.


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