В связи с выходом крупного обновления 5.9.х, приглашаем вас принять участие в вебинаре 09.06.2022 в 15:00. Участвовать

Сценарии пользователей



  • Эта тема для публикации и обсуждения сценариев пользователей системы intraHouse

    Спасибо за идею sergeyygr!

    Все рабочие сценарии будут опубликованы на сайте в разделе "Сценарии пользователей"



  • Очень нужная тема! Просьба опубликовать примеры сценариев с обработкой событий по времени (проверка времени и включение/выключение устройств или изменение их состояний), заранее благодарен.



  • @gis:

    Очень нужная тема! Просьба опубликовать примеры сценариев с обработкой событий по времени (проверка времени и включение/выключение устройств или изменение их состояний), заранее благодарен.

    Желательно конкретизировать задачу. Например, "по датчику движения включить свет в гостиной при условии что сегодня 31 января а на улице температура 20 градусов". Хоть и бред, но задача обозначена и можно реализовать сценарий 😉



  • Предложенный вами сценарий очень хорошо подойдет в качестве примера. Можно и попроще сценарий: включить свет, если солонце село и выключить свет когда оно встало (можно в определенную дату или день недели).



  • @gis:

    Предложенный вами сценарий очень хорошо подойдет в качестве примера. Можно и попроще сценарий: включить свет, если солонце село и выключить свет когда оно встало (можно в определенную дату или день недели).

    Для этого сценарий не нужен.

    Делается в расписании. "На рассвете", "на закате"
    sch101.jpg



  • Спасибо за разъяснение, но так как часто бывают перебои с электричеством, и время заката/восхода может быть пропущено, поэтому приходится делать сценарий. Вообще хорошо бы доработать запуск по времени, таким образом, чтобы при загрузке системы проверять, какие задания должны выполнятся и запускать их. Можно добавить для этого переключатель "запускать задание, если он вовремя не запущено". Это значительно повысило бы надежность малыми средствами, так как организация бесперебойного питания дело довольно хлопотное и затратное. Из-за отсутствия такой возможности, например, я практически не использую Cron в MegaD.



  • Простой сценарий управления вытяжным вентилятором в санузле.

    Вентилятор (VENT1) работает по датчику влажности (SHUMIDITY1).
    scenvent101.jpg
    Уставку (SETPOINT) датчика влажности можно задавать в пользовательском интерфейсе.

    Долгим нажатием на датчике влажности открывается окно свойств датчика:
    scenvent701.jpg
    Сценарий, показанный выше, будет работать всегда. Желательно иметь возможность отключения автоматического режима работы вентилятора. Добавим проверку автоматического режима:
    scenvent301.jpg
    Теперь в пользовательском интерфейсе на вкладке "Параметры" можно отключить автоматический режим. На иконке вентилятора пропадет буква "А" и вентилятор не будет включаться/выключаться по датчику влажности:
    scenvent702.jpg



  • Все вроде хорошо. Но когда сидишь в ванной желательно чтобы вентилятор не включался. Продует :roll:

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

    То есть пусть помещение вентилируется когда нас нет 😉
    scenvent401.jpg
    Возникла еще проблема. Вентилятор шумит и мешает спать :evil:

    Добавим условие включения вентилятора. Пусть включается только днем с 7-00 до 23-00:
    scenvent501.jpg
    Вот теперь нормально 😄



  • @intrahouse:

    Вот теперь нормально 😄

    Зачётный блокли получился! Особенно A



  • А можно сделать так, чтобы в пользовательском интерфейсе на вкладке "Параметры" можно было задавать время когда вентилятор не работает?



  • @gis:

    А можно сделать так, чтобы в пользовательском интерфейсе на вкладке "Параметры" можно было задавать время когда вентилятор не работает?

    На данный момент такой возможности нет.



  • @gis:

    Спасибо за разъяснение, но так как часто бывают перебои с электричеством, и время заката/восхода может быть пропущено, поэтому приходится делать сценарий. Вообще хорошо бы доработать запуск по времени, таким образом, чтобы при загрузке системы проверять, какие задания должны выполнятся и запускать их. Можно добавить для этого переключатель "запускать задание, если он вовремя не запущено". Это значительно повысило бы надежность малыми средствами, так как организация бесперебойного питания дело довольно хлопотное и затратное. Из-за отсутствия такой возможности, например, я практически не использую Cron в MegaD.

    Это достаточно спорный вопрос. Если при запуске сервера запускать пропущенные сценарии, то можно получить другие проблемы. Если сценарий вовремя не отработал, не факт что его нужно запускать в другое время.



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



  • Не хватает возможности для скриптов "запускать каждые …" например, когда нужно запускать скрипт каждые 5 секунд



  • @homa:

    Не хватает возможности для скриптов "запускать каждые …" например, когда нужно запускать скрипт каждые 5 секунд

    Можно сделать так. Установить плагин Sensor Emulator https://ih-systems.com/ru/product/plugin-sensors-emulator/

    В нем запускать какой нибудь виртуальный дискретный датчик с периодом 5 сек.

    А в сценарии этот датчик поставить как триггер запуска сценария.



  • @gis:

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

    В принципе согласен. Этот функционал не лишний. Надо думать по реализации



  • Коллеги, у меня каждый день по расписанию утром (-3 час от рассвета) и вечером (-0 час от заката) запускается скрипт тупо переключающий режим отопления - если ночь, то день, если день, то ночь. Но с 16.01.19 по вечерам он стал запускаться по два раза… В чем может быть дело?

    /** 
    * @name Переключение режимов отопления  
    * @desc При запуске включается День, если была Ночь или Ночь, если был День 
    * @version 4  
    */
    
    const mode = Device("SWITCH_HEATING");
    
    script({
        start() {
          if(mode.value == 1) {
            mode.setValue(2);
          }
          else {
            if(mode.value == 2)
            mode.setValue(1);
          }
          this.log("Режим отопления - " +mode.stateName);
        } 
    });
    
    

    Расписание_вечером_срабатывает_два_раза.png



  • @Alex_Jet:

    Коллеги, у меня каждый день по расписанию утром (-3 час от рассвета) и вечером (-0 час от заката) запускается скрипт тупо переключающий режим отопления - если ночь, то день, если день, то ночь. Но с 16.01.19 по вечерам он стал запускаться по два раза… В чем может быть дело?

    > /** 
    > * @name Переключение режимов отопления  
    > * @desc При запуске включается День, если была Ночь или Ночь, если был День 
    > * @version 4  
    > */
    > 
    > const mode = Device("SWITCH_HEATING");
    > 
    > script({
    >     start() {
    >       if(mode.value == 1) {
    >         mode.setValue(2);
    >       }
    >       else {
    >         if(mode.value == 2)
    >         mode.setValue(1);
    >       }
    >       this.log("Режим отопления - " +mode.stateName);
    >     } 
    > });
    > 
    

    Расписание_вечером_срабатывает_два_раза.png

    Было такое, но в позапрошлой по-моему версии исправили. У Вас актуальная версия?



  • @homa:

    Было такое, но в позапрошлой по-моему версии исправили. У Вас актуальная версия?

    Да, конечно, версия самая последняя - 4.4.11. Может что-то ещё делали? Расписание заново сделать?



  • @Alex_Jet:

    @homa:

    Было такое, но в позапрошлой по-моему версии исправили. У Вас актуальная версия?

    Да, конечно, версия самая последняя - 4.4.11. Может что-то ещё делали? Расписание заново сделать?

    Тогда ждём что скажут разработчики. У меня после обновления все стало работать



  • @intrahouse:

    @homa:

    Не хватает возможности для скриптов "запускать каждые …" например, когда нужно запускать скрипт каждые 5 секунд

    Можно сделать так. Установить плагин Sensor Emulator https://ih-systems.com/ru/product/plugin-sensors-emulator/

    В нем запускать какой нибудь виртуальный дискретный датчик с периодом 5 сек.

    А в сценарии этот датчик поставить как триггер запуска сценария.

    А можно период виртуального датчика получить и задать из кода сценария? И можно ли сделать на мнемосхема устройство у которого период будет устанавливаться уставкой?


Log in to reply