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

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



  • @intrahouse в есть наработки по МЭК-61850?



  • @intrapro а подскажите, как из свойства time получить значения минут и секунд? Устанавливаю на 00:00:00, в логе вижу значение:
    03.03 16:49:47.867 log: 4492800
    как преобразовать?



  • @homa, если Вы имеете в виду параметр сценария type:"time", там банальные секунды 🙂
    Вот например сценарий определяет параметры auto_afterOn, auto_afterOff

    const kev_speed_status = Device("SensorD","Состояние скоростей", [
      {"name":"auto_afterOn", "note":"После ручного включения", "type":"time", "val":0},
      {"name":"auto_afterOff", "note":"После ручного выключения", "type":"time", "val":0}
      ]);
    
    script({
        start() {
         .....
          this.log("auto_afterOn="+kev.getParam('auto_afterOn'))
         ......
        } 
    });
    

    Задаем 1 час
    timeParam.png

    Результат:
    03.03 17:55:42.230 log: auto_afterOn=3600

    Если поставить 00:00:00
    03.03 17:55:04.036 log: auto_afterOn=0

    Или что-то другое имелось в виду?



  • @intrapro я и ожидал секунды... но почему-то значение в 52 дня лежит, хотя выставлено 0



  • @homa да странно 😞 А если изменить?



  • @intrapro значение всегда секунды с уставки + ровно 52 дня)



  • @homa для любого параметра типа time??



  • @intrapro в рамках одного сценария для обоих параметров такая ситуация



  • @homa а меняете вы значения параметров интерактивно? Или из сценария?



  • @intrapro нашел проблему. изначально я в сценарии задал значение 4573457, потом крутил бегунки, потом поставил 0. На других устройствах все работает штатно, а вот те, на которых изначально было не то значение, не получается вернуть в строй.



  • @homa придется из сценария разово записать 0 или другое кол-во секунд в пределах суток.



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



  • Пользователь @homa написал в Сценарии пользователей:

    И сразу другой вопрос: нельзя запускать мультисценарий из расписания? там можно выбрать только экземпляр с конкретным устройством...

    Запустить можно конкретный сценарий. Мультисценарий - это как бы шаблон. Имеется в виду запустить все экземпляры мультисценария сразу? Нет, пока только по одному 😞



  • @intrapro

    Можно. Опять таки через доп актуатор.
    В мультисценарий внести еще один элемент - актуатор.
    И сделать его триггером. Чтобы сценарий запускался, когда этот актуатор, например, включается.

    Во все наборы устройств мультисценария этот актуатор сделать одним и тем же.
    А его можно включать/выключать другим скриптом. Который запускать по расписанию.



  • @Erik Да, верно. Нормальный вариант



  • @Erik я добавил бинарный датчик и через плагин сенсорэмулятор задал период изменения. Суть таже - триггер) неудобно одинаковое устройство писать всем экземплярам мультисценария. Нужно групповое добавление устройств в мультисценарий)



  • Пользователь @homa написал в Сценарии пользователей:

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

    Почему?

    У системы есть состояния.
    Это режим охраны, режим работы отопления, присутствие, и все что угодно еще.
    И если в разных состояниях должны быть разные сценарии, нужно создавать устройства - признаки этих состояний, и проверять их значения в скриптах.
    Или запускать скрипты при изменении их состояний.
    И это как раз удобно. Можно не только состояниями оперировать, но и сочетаниями состояний. Например "экономичный режим отопления в отсутствии хозяев при включенной охране".
    Полностью развязывает руки. И вы можете менять состояния вручную, скриптом, по расписанию, по событию, и менять поведение системы.
    А добавить эти устройства в мультисценарии нужно 1 (один) раз. Зачем вам другой механизм?



  • @Erik Вы меня не поняли) чтобы выполнять мультисценарий циклически делаем виртуальное устройство, которое меняет состояние каждые 50сек:
    efdb998f-42e4-4dff-a706-2c5ce928f982-image.png
    Запускаем мультисценарий по изменению этого датчика:
    e0f5a39e-76dd-4635-9cef-e0ce1ce3f0c1-image.png
    чтобы все экземпляры сценария срабатывали каждые 50сек нужно добавить этот бинарный датчик ко всем экземплярам:
    62a6317a-01a2-4258-9359-4a3443640228-image.png
    И вот это неудобно каждый раз добавлять одинаковое устройство в "Запускать для устройств". Было бы удобно прописать в коде устройство напрямую, но это не поддерживается в мультисценариях



  • Пользователь @homa написал в Сценарии пользователей:

    И вот это неудобно каждый раз добавлять одинаковое устройство в "Запускать для устройств". Было бы удобно прописать в коде устройство напрямую, но это не поддерживается в мультисценариях

    Зачем добавлять "каждый раз"? Один раз за всю историю вашего УД добавьте, и пусть домашние всю жизнь потом пользуются.

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



  • проблемка, в сценарии отключается свет даже если есть движение, что делаю не так? alt text


Log in to reply