{
    "about": {
        "authorName": "Ilya Belyakov",
        "authorContact": "https://t.me/Biveraxe",
        "authorGit": "https://github.com/biveraxe",
        "specialThanks": "",
        "moduleName": "Scenario",
        "moduleVersion": "1.0",
        "title": "Сценарии",
        "moduleDesc": "Сценарии позволяют реализовать индивидуальный алгоритм работы контроллера с учетом происходящих событий. Они представляют из себя описательный язык того, что нужно сделать при наступлении того или иного события, учитывая конкретные условия. \nВ базе языка - выражение вида: “Если условие истина, то выполнить одно действие, а если нет, то иное”. При этом проверка такого выражения будет осуществляться только при наступлении события связанного с элементом конфигурации, который упоминается в этом выражении. \nУсловием или действием может быть любое разрешенное выражение. Они все при выполнении возвращают значение. Выражение может состоять из: идентификаторов элементов конфигурации, чисел (целые, дробные и отрицательные), строк в кавычках, операций сравнения < > <= >= == !=, операций присваивания значений =, математических операций +-*/, логических операций &|, комментариев после символа #, функций (в параметрах которых так же могут быть любые разрешенные выражения), конструкции ветвления IfThenElse, группирующие блоки выражений {}",
        "funcInfo": [
            {
                "name": "exit",
                "descr": "Прерываем работу сценария и выводим в консоль причину. Причина не обязательна.",
                "params": ["Причина"]
            },
            {
                "name": "reboot",
                "descr": "Перезагружаем ESP",
                "params": []
            },
            {
                "name": "digitalRead",
                "descr": "Читаем состояние пина, результат возвращается",
                "params": ["НомерПина"]
            },
            {
                "name": "analogRead",
                "descr": "Читаем состояние аналогового пина, результат возвращается",
                "params": ["НомерПина"]
            },
            {
                "name": "digitalWrite",
                "descr": "Устанавливаем статус пина",
                "params": ["НомерПина", "Значение"]
            },
            {
                "name": "digitalInvert",
                "descr": "Инвертируем значение пина",
                "params": ["НомерПина"]
            },
            {
                "name": "deepSleep",
                "descr": "Погрузить ESP в глубокий сон. Вывод из сна с перезагрузкой. Для ESP8266 необходимо соединить gpio 16 и RST",
                "params": ["ЧислоСекунд"]
            },
            {
                "name": "getIP",
                "descr": "Получить строку IP ESP",
                "params": []
            },
            {
                "name": "getUptime",
                "descr": "Получить строку со временем работы устройства hh:mm:ss",
                "params": []
            },
            {
                "name": "mqttPub",
                "descr": "Отправить значение в топик MQTT",
                "params": ["Топик", "Значение"]
            },
            {
                "name": "getHours",
                "descr": "Получить текущее число часов. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "getMinutes",
                "descr": "Получить текущее число минут. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "getSeconds",
                "descr": "Получить текущее число секунд. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "getMonth",
                "descr": "Получить номер текущего месяца. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "getDay",
                "descr": "Получить номер текущего дня месяца. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "gethhmm",
                "descr": "Получить строку вида hh:mm. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "gethhmmss",
                "descr": "Получить строку вида hh:mm:ss. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            },
            {
                "name": "getTime",
                "descr": "Получить строку вида dd.mm.yy hh:mm:ss. Если время не получено из сети Интернет или внешнего RTC, то условие пропускается",
                "params": []
            }
        ]        
    }
}