diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index 754d12c5..7245b2f8 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -293,6 +293,13 @@ class CallExprAST : public ExprAST { return &ret; } + // вызываем системную функцию периодического выполнения вне таймера + if (Cmd == F("doByInterval")) { + Item->doByInterval(); + ret = Item->value; + return &ret; + } + // если все же все ок, то готовим параметры для передачи в модуль std::vector ArgsAsIoTValue; for (unsigned int i = 0; i < Args.size(); i++) { diff --git a/src/modules/sceninfo.json b/src/modules/sceninfo.json index 53265548..b7d0be54 100644 --- a/src/modules/sceninfo.json +++ b/src/modules/sceninfo.json @@ -14,6 +14,12 @@ "descr": "Получаем количество секунд доверия к значениям элемента. При -2 доверие полное, при -1 время доверия истекло. При >0 время обратного отсчета. Используется только совместно с ИД элемента: ID.getIntFromNet()", "params": [] }, + { + "name": "doByInterval", + "descr": "Выполняем интервальное действие модуля вне плана. Используется только совместно с ИД элемента: ID.doByInterval()", + "params": [], + "return": "значение элемента после выполнения doByInterval" + }, { "name": "exit", "descr": "Прерываем работу сценария и выводим в консоль причину. Причина не обязательна.",