Возможности
Порядок выполнения
Синтаксис
Переменные Пульт.Онлайн
Подстановка параметров узла
Ручной ввод параметров для произвольных скриптов
Общие функции
Служебные функции
Расширенные функции времени
Функции для работы с файлами
Асинхронные функции
Функции для создания PDF-документов
Примеры
Сервер и Шлюз Пульт.Онлайн предоставляют возможность выполнения JS-скриптов. С помощью скриптов можно изменять значения переменных по определенным условиям и/или вызывать внешние функции, например, для отправки сообщений. Скрипты могут быть созданы для узлов и для произвольного выполнения:
Скрипты для узлов
Произвольные скрипты
Скрипты в Пульт.Онлайн запускаются периодически, по триггеру или вручную (произвольные скрипты). Контекст скрипта (значения локальных переменных) не сохраняется между запусками. Полный цикл выглядит так:
Инициатором запуска могут выступать следующие события:
Файлы/<Скрипт>, кнопка Выполнить)При запуске скрипта, ему передаются текущие значения используемых в нем переменных Пульт.Онлайн (актуальные значения переменных сервис "script" получает от ядра по подписке). Скрипт создает локальные копии данных переменных и манипулирует данными копиями в процессе выполнения.
В процессе выполнения сценария результаты вычислений применяются только к локальным копиям переменных. Никакие изменения не применяются к переменным Пульт.Онлайн до завершения сценария.
Сценарий не должен содержать бесконечных циклов. Использование таких циклов приведет к аварийной остановке скрипта по таймауту.
После завершения сценария значения всех измененных переменных отправляются в ядро системы, которое, в свою очередь, рассылает изменения соответствующим драйверам.
Обратите внимание: отправка значения ядру не гарантирует его применения драйвером (значение может не примениться из-за плохой связи с узлом или выходить за допустимые пределы). Таким образом, при следующей итерации скрипта значение соответствующей переменной останется прежним, каким оно было до первого выполнения. Такая же ситуация может возникнуть, если интервал между запусками скрипта выбран слишком коротким и ядро не успевает уведомить сервис о примененном изменении. Другими словами, период запуска скрипта должен быть заведомо выше таймаутов драйвера соответствующей переменной. Минимальный рекомендуемый период - 1000 мс.
После отправки изменений ядру системы, контекст скрипта освобождается, значения всех локальных переменных, объявленных операторами let, var и const, удаляются. Для сохранения значений промежуточных вычислений между запусками используйте виртуальные переменные Пульт.Онлайн.
Скриптовый движок основан на библиотеке QuickJS и поддерживает большинство возможностей Javascript стандарта ECMAScript 2020 (ES11), включая:
Ограничения:
windowdocument,fs, process, и т.д.)Дополнения:
load, save, load_json, save_json)navigate)server_api, fetch, setTimeout, clearTimeout)Основная задача скриптов - манипуляция переменными Пульт.Онлайн, т.е. переменными SCADA-системы.
Имена переменных должны предваряться символом $ и не требуют объявления с помощью оператора let.
Допустимо использование как локальных (в контексте узла) переменных, так и глобальных. Для доступа к переменным того же узла (локальные переменные) указывайте имя переменной, как оно указано в прототипе, например, $var1. Для доступа к переменным других узлов, указывайте имя с префиксом узла, например, $N25_var1. Для доступа к переменным других проектов указывайте имя с префиксом проекта и узла, например, $P3_N25_var1. Префикс можно узнать, кликнув на имени переменной в интерфейсе или в редакторе, в списке переменных узла.
Если статус одной из переменных содержит ошибку, обработка скрипта прекращается с записью об ошибке в логе сервиса "script".
Для переменных доступны суффиксы (через два подчеркивания):
__error - код ошибки переменной
__time - Timestamp (в миллисекундах) последнего изменения статуса переменной
__value - значение (позволяет всегда получать последнее достоверное значение переменной и игнорировать ошибку).
Например:
if($ping__error){
$offline=1;
}else{
$offline=0;
}
В скрипт можно передать параметры узла, например:
telegram("+71234567890","Node param1 is %param1%");
В данном скрипте в процессе сборки будет выполнена подстановка значения парамера param1.
Так же доступна подстановка префикса узла в виде %name%:
telegram("+71234567890","Node prefix is %name%");
Обратите внимание: подстановка выполняется только в процессе сборки и не работает при выполнении скрипта в отладчике, т.к. отладка выполняется в прототипе, где значения параметров еще не определены.
В произвольный скрипт можно передать заранее определенный набор параметров, значения которых пользователь может ввести перед выполнением скрипта.
Набор параметров задается на вкладке Параметры в окне редактирования скрипта.
Данный набор будет отображаться в интерфейсе оператора для ввода актуальных значений, а в коде скрипта доступ к значениям параметров выполняется через глобальный объект params.
В скриптах доступны все стандартные функции, используемые в выражениях и на мнемосхемах.
exec(command,timeout) - выполняет команду командной строки command с таймаутом выполнения timeoutnavigate(url) - открывает указанный url в новой вкладке, работает только при ручном выполнении произвольного скрипта (через кнопку Выполнить)print(A,B,C,...) - вывод значений аргументов в консоль отладки скрипта (аналог console.log)reboot() - перезагружает устройствоsms(number,msg) - выполняет отправку SMS-сообщения msg на номер numberstr(X) - возвращает строковое представление числа Xtelegram(number,msg) - выполняет отправку Telegram-сообщения msg на номер numberdate(T) - строковое представление даты от таймштампа T (опциональный) в формате DD.MM.YYYYdatetime(T) - строковое представление даты-времени от таймштампа T (опциональный) в формате DD.MM.YYYY hh.mm.sstime(T) - строковое представление времени от таймштампа T (опциональный) в формате hh.mm.sstimerange(interval) - возвращает массив [time1,time2] с начальным и конечным таймштампом для заданного интервала. Параметр interval может принимать следующие значения:today - от 00:00 текущего дня до 00:00 следующегоyesterday - от 00:00 вчерашнего дня до 00:00 текущегоlast60 - последние 60 минут от текущего моментаlast7 - последние 7 суток от текущего моментаlast30 - последние 30 дней от текущего моментаlast90 - последние 90 дней от текущего моментаlast365 - последние 365 дней от текущего моментаthisweek - от начала текущей недели до начала следующей неделиlastweek - от начала предыдущей недели до начала текущей неделиthismonth - от начала текущего месяца до начала следующего месяцаlastmonth - от начала предыдущего месяца до начала следующего месяца<timestamp1>-<timestamp2> - в time1 и time2 будут возвращены непосредственно timestamp1 и timestamp2Для всех функций в данном разделе директория по умолчанию - папка установки (обычно /pult_server или /pult_gateway).
load(path) - читает файл по указанному пути path и возвращает его строковое представлениеsave(path,str) - сохраняет строку str в файл, расположенный по указанному пути path (путь будет создан, если не существует)load_json(path) - читает JSON-файл по указанному пути path и возвращает JSON-объектsave_json(path,obj) - сохраняет объект как JSON-файл по указанному пути path (путь будет создан, если не существует)fetch (url, options)
server_api (request, callback)
save_to_server(project, subpath, data, callback)
setTimeout (func, interval)
clearTimeout (timerId)
Асинхронные функции реализованы через неблокирующую модель выполнения. Вызов таких функций немедленно возвращает управление. Обработка завершённых асинхронных операций выполняется через очередь задач (job queue). Множество асинхронных функций могут выполняться параллельно.
- Если асинхронная операция не успевает выполнится до истечения общего таймаута скрипта - выполнение скрипта будет прервано с ошибкой
InternalError: interrupted.- Скрипт считается незавершенным, пока не завершились все его асинхронные функции.
fetch(url,options) - выполняет HTTP-запрос по указанному url и возвращает Promise с результатом. Работает аналогично стандартному fetch в браузерах или NodeJS. Параметры:url - адрес запросаoptions (опционально) параметры запроса:method - HTTP-метод (по умолчанию GET)headers - объект с HTTP-заголовками вида {key:value}body - тело запроса (строка или объект)timeout - таймаут в миллисекундах (по умолчанию 10000)insecure - отключение проверки SSL-сертификата (true — не проверять)server_api(request,callback) - выполняет API-запросы к серверу Пульт.Онлайн в формате JSONRPC2.0 с параметрами, указанными в request и вызывает callback по завершении всех запросов. Параметры:request - объект или массив объектов с параметрами:
method - имя API-функцииparams - параметры API-функции в виде объекта, массива или примитивного значенияcallback - (опционально) функция обратного вызова, в первом аргументе которой содержится ответ или массив ответов на соответствующие запросы (в том же порядке). Ответ представляет собой объект в формате JSONRPC2.0-ответа с одним из следующих полей:
result - результат успешного выполнения API-функции (объект, массив или примитивное значение)error - объект с кодом и описанием ошибки, содержащий следующие поля:code - числовой код ошибкиmessage - текстовое сообщение об ошибкеdata - (опционально) дополнительные сведения об ошибке в произвольном форматеsave_to_server(project, subpath, data, callback) — сохраняет данные в текстовом виде на сервер в раздел Файлы.
Параметры:
project — имя проекта, куда будет сохранён PDF
subpath — путь и имя файла в разделе Файлы, например: readme.md или some/path/to/readme.md. Если путь не существует - он будет создан автоматически.
data — сохраняемые данные
callback — (опционально) функция обратного вызова, которая будет вызвана после завершения операции сохранения с объектом response в качестве единственного аргумента, в котором:
result - результат успешного выполненияtrue - создан новый документfalse - документ сохранен в ранее созданный файлerror - объект с кодом ошибки, если операция не выполненаsetTimeout(func,interval) - выполняет функцию func один раз через заданный интервал времени interval (в миллисекундах)clearTimeout(timerId) - отменяет выполнение функции, ранее запланированной с помощью setTimeoutpdf_create (size, direction, font)
pdf_padding (size, direction, font)
pdf_font (pdf, font, size)
pdf_font_size (pdf, size)
pdf_text (pdf, text, x, y)
pdf_mtext (pdf, text, x, y, w, ls, alg)
pdf_line (pdf, x1, y1, x2, y2)
pdf_rect (pdf, x, y, w, h)
pdf_ellipse (pdf, x, y, w, h)
pdf_image (pdf, file, x, y, w, h)
pdf_table (pdf, table, cells)
pdf_bg_color (pdf, color)
pdf_text_color (pdf, color)
pdf_fill_color (pdf, color)
pdf_stroke_color (pdf, color)
pdf_stroke_width (pdf, sw)
pdf_get_affected(pdf)
pdf_reset_affected(pdf)
pdf_get_metrics(pdf)
pdf_add_page(pdf)
pdf_goto_page(pdf, number)
pdf_get_page_count(pdf)
pdf_paginate(pdf, options)
pdf_show(pdf)
pdf_save_to_server(pdf)
pdf_save_to_file(pdf)
- Все функции, кроме
pdf_create(), требуют в качестве первого аргумента контекст, созданный функциейpdf_create().- В качестве единиц измерения используются пункты (points, pt): 1 pt = 1/72 дюйма ≈ 0.3528 мм.
- Для всех файлов и папок каталог по умолчанию - папки установки, обычно
/pult_server.
pdf_create(size, direction, font) - создает PDF-документ и возвращает контекст, необходимый другим PDF-функциям для работы с созданным документом.
Параметры:
size - (опционально) размер страниц, строка: LETTER
LEGAL | A3 | A4 | A5 | B4 | B5 | EXECUTIVE | US4x6 | US4x8 | US5x7 | COMM10. По умолчанию - A4.direction - (опционально) ориентация страниц, строка: portrait | landscape. По умолчанию - portrait.font - (опционально) шрифт документа (см pdf_font()).Возвращаемое значение:
pdf_padding(pdf, left, right, top, bottom) — устанавливает внутренние отступы страницы PDF-документа. Отступы определяют рабочую область страницы, в пределах которой размещаются все элементы (текст, таблицы, изображения и т.д.).
Параметры:
pdf — контекст, созданный функцией pdf_create()left — (опционально) левый внутренний отступ страницы, ptright — (опционально) правый внутренний отступ страницы, pttop — (опционально) верхний внутренний отступ страницы, ptbottom — (опционально) нижний внутренний отступ страницы, ptПоведение:
inner_width, inner_height)Примечания:
pdf_font(pdf,font,size) - включает указанный шрифт для всех последующих вызовов функций вывода текста.
Параметры:
pdf - контекст, созданный функцией pdf_create()
font - имя предустановленного шрифта или путь к файлу шрифта (.ttf).
Имена предустановленных шрифтов:
sans - обычное начертаниеsans_bold - жирныйsans_italic - курсивsans_bold_italic - жирный курсивserif - обычное начертаниеserif_bold - жирныйserif_italic - курсивserif_bold_italic - жирный курсивmono - обычное начертаниеmono_bold - жирныйmono_italic - курсивmono_bold_italic - жирный курсивУказанные шрифты размещены в папке services/script/pdf_fonts. Вы можете добавить в эту папку требуемый вам ttf-шрифт и в параметре font просто указывать его имя (без пути и расширения).
size - (опционально) размер шрифта, pt
pdf_font_size(pdf,size) - включает указанный размер шрифта для всех последующих вызовов функций вывода текста.
Параметры:
pdf - контекст, созданный функцией pdf_create()size - размер шрифта, ptpdf_text(pdf,text,x,y) - выводит однострочный текст по указанным координатам.
Параметры:
pdf - контекст, созданный функцией pdf_create()text - выводимый текстx - (опционально) отступ от левого поля страницы, pt.y - (опционально) отступ от верхнего поля страницы, pt.pdf_mtext(pdf,text,x,y,w,ls,alg) - выводит многострочный текст по указанным координатам.
Параметры:
pdf - контекст, созданный функцией pdf_create()text - выводимый текстx - (опционально) отступ от левого поля страницы, pt.y - (опционально) отступ от верхнего поля страницы, pt.w - (опционально) максимальная ширина текстового блока, pt.ls - (опционально) высота строки, pt.alg - (опционально) выравнивание, строка: left | center | right.pdf_line(pdf,x1,y1,x2,y2) - выводит отрезок по указанным координатам.
Параметры:
pdf - контекст, созданный функцией pdf_create()x1 - (опционально) отступ точки начала отрезка от левого поля страницы, pt.y1 - (опционально) отступ точки начала отрезка от верхнего поля страницы, pt.x2 - (опционально) отступ точки конца отрезка от левого поля страницы, pt.y2 - (опционально) отступ точки конца отрезка от верхнего поля страницы, pt.pdf_rect(pdf,x,y,w,h) - выводит прямоугольник по указанным координатам. Цвет заливки устанавливается функцией pdf_fill_color(), цвет границы - pdf_stroke_color().
Параметры:
pdf - контекст, созданный функцией pdf_create()x - (опционально) отступ от левого поля страницы, pt.y - (опционально) отступ от верхнего поля страницы, pt.w - (опционально) ширина прямоугольника, pt.h - (опционально) высота прямоугольника, pt.sw - (опционально) толщина границы, pt.pdf_ellipse(pdf,x,y,w,h) - выводит овал или круг (при w==h) по указанным координатам для габаритного прямоугольника. Цвет заливки устанавливается функцией pdf_fill_color(), цвет границы - pdf_stroke_color().
Параметры:
pdf - контекст, созданный функцией pdf_create()x - (опционально) отступ от левого поля страницы, pt.y - (опционально) отступ от верхнего поля страницы, pt.w - (опционально) ширина прямоугольника, pt.h - (опционально) высота прямоугольника, pt.sw - (опционально) толщина границы, pt.pdf_image(pdf,file,x,y,w,h) - выводит прямоугольник по указанным координатам.
Параметры:
pdf - контекст, созданный функцией pdf_create()file - путь к файлу с изображением. Для доступа к файлам, загруженным в раздел Файлы проекта, используйте следующий путь: data/projects/<имя проекта>.project/files/<имя файла>x - (опционально) отступ от левого поля страницы, pt.y - (опционально) отступ от верхнего поля страницы, pt.w - (опционально) ширина изображения, pt.h - (опционально) высота изображения, pt.pdf_table(pdf, table, cells) — выводит таблицу на страницу PDF. Позволяет гибко настраивать структуру, размеры, отступы, границы и стили как всей таблицы, так и отдельных ячеек.
Параметры:
pdf — контекст, созданный функцией pdf_create()
table — объект с параметрами таблицы:
x — позиция по горизонтали (отступ от левого края), pt
y — позиция по вертикали (отступ от верхнего края), pt
width — (опционально) ширина таблицы, pt (по умолчанию — ширина страницы)
cols — (опционально) количество колонок
rows — (опционально) количество строк
Если cols и rows не заданы — таблица будет состоять из одной строки
Если задан только один параметр — второй вычисляется автоматически
padding — (опционально) внутренние отступы ячеек, pt (по умолчанию 5)
padding_top, padding_bottom, padding_left, padding_right — (опционально) отступы по сторонам
border — (опционально) толщина границ таблицы (по умолчанию 0.5)
outer_border, outer_border_top, outer_border_bottom, outer_border_left, outer_border_right — (опционально) толщина внешних границ таблицы, pt
cell_border, cell_border_top, cell_border_bottom, cell_border_left, cell_border_right — (опционально) толщина границ ячеек, pt
header_border — (опционально) толщина границ заголовка (первая строка)
header_cell_border_top, header_cell_border_bottom, header_cell_border_left, header_cell_border_right — (опционально) толщина границ ячеек заголовка
header_outer_border_top, header_outer_border_bottom, header_outer_border_left, header_outer_border_right — (опционально) толщина внешних границ заголовка
font_size — (опционально) размер шрифта таблицы
header_font_size — (опционально) размер шрифта заголовка
bg_color, text_color, border_color — (опционально) цвета таблицы
outer_border_color, cell_border_color — (опционально) цвета границ
header_* — (опционально) отдельные стили для заголовка:
header_bg_colorheader_text_colorheader_border_colorheader_outer_border_colorheader_cell_border_colorfont — (опционально) шрифт таблицы
header_font — (опционально) шрифт заголовка
cells — массив ячеек таблицы. Каждый элемент может быть:
строкой (текст ячейки)
или объектом с параметрами:
text — текст ячейкиwidth, height — (опционально) размеры ячейкиpadding* — (опционально) внутренние отступыborder* — (опционально) границыfont_size — (опционально) размер шрифтаline_spacing — (опционально) межстрочный интервалmultiline — (опционально) многострочный режимhalign — (опционально) горизонтальное выравнивание: left | center | rightvalign — (опционально) вертикальное выравнивание: top | center | bottombg_color, text_color, border_color — (опционально) цветаfont — (опционально) шрифтПримечания:
\n, автоматически включается многострочный режимheader_*pdf_bg_color(pdf,color) - устанавливает цвет фона для текущей страницы.
Параметры:
pdf - контекст, созданный функцией pdf_create()color - цвет фона, в форматах: именованные CSS-цвета, hex-цвета, rgb-функция, hsl-функция (см. pdf_text_color())pdf_text_color(pdf,color) - устанавливает цвет текста для всех последующих вызовов функций вывода текста.
Параметры:
pdf - контекст, созданный функцией pdf_create()color - цвет текста, в форматах:black,white,red,green,blue,...)#000000,#FFF,#FF0000,#00FF00,#0000FF,...)rgb(0,0,0),rgb(255,255,255),rgb(255,0,0),rgb(0,255,0),rgb(0,0,255),...)hsl(0,0,0),hsl(0,0,100),hsl(0,100,50),hsl(120,100,50),hsl(240,100,50),...)pdf_fill_color(pdf,color) - устанавливает цвет заливки для всех последующих вызовов функций, использующих заливку (например, pdf_rect()).
Параметры:
pdf - контекст, созданный функцией pdf_create()color - цвет текста, в форматах: именованные CSS-цвета, hex-цвета, rgb-функция, hsl-функция (см. pdf_text_color())pdf_stroke_color(pdf,color) - устанавливает цвет линии для всех последующих вызовов функций отрисовки линий.
Параметры:
pdf - контекст, созданный функцией pdf_create()color - цвет текста, в форматах: именованные CSS-цвета, hex-цвета, rgb-функция, hsl-функция (см. pdf_text_color())pdf_stroke_width(pdf,sw) - устанавливает толщину линий для всех последующих вызовов функций отрисовки линий.
Параметры:
pdf - контекст, созданный функцией pdf_create()sw - толщина линии, pt.pdf_get_affected(pdf) — возвращает область страницы, затронутую предыдущими операциями вывода (например, текстом, таблицами, фигурами). Может использоваться для позиционирования следующих элементов относительно уже выведенного содержимого.
Параметры:
pdf — контекст, созданный функцией pdf_create()Возвращаемое значение:
объект с координатами затронутой области:
left — левая граница области, ptright — правая граница области, pttop — верхняя граница области, ptbottom — нижняя граница области, ptПримечания:
pdf_reset_affected(pdf) — сбрасывает область страницы, затронутую предыдущими операциями вывода. После вызова функции значения границ возвращаются к нулю.
Параметры:
pdf — контекст, созданный функцией pdf_create()Примечания:
pdf_get_affected()pdf_get_metrics(pdf) — возвращает текущие метрики страницы PDF-документа, включая размеры, отступы, параметры текста и область, затронутую выводом.
Параметры:
pdf — контекст, созданный функцией pdf_create()Возвращаемое значение:
объект со следующими параметрами:
outer_width — полная ширина страницы, ptouter_height — полная высота страницы, ptinner_width — рабочая ширина страницы (с учётом внутренних отступов), ptinner_height — рабочая высота страницы (с учётом внутренних отступов), ptpadding_top — верхний внутренний отступ страницы, ptpadding_bottom — нижний внутренний отступ страницы, ptpadding_left — левый внутренний отступ страницы, ptpadding_right — правый внутренний отступ страницы, ptline_height — текущая высота строки, ptfont_height — текущая высота шрифта, ptaffected_top — верхняя граница затронутой области, ptaffected_bottom — нижняя граница затронутой области, ptaffected_left — левая граница затронутой области, ptaffected_right — правая граница затронутой области, ptПримечания:
inner_* учитывают отступы страницы (padding_*)affected_* соответствуют данным, возвращаемым функцией pdf_get_affected()pdf_add_page(pdf) — добавляет новую страницу в PDF-документ и делает её текущей для последующих операций вывода.
Параметры:
pdf — контекст, созданный функцией pdf_create()Примечания:
pdf_goto_page(pdf, number) — делает текущей указанную страницу. Функция может использоваться для прохода в цикле по созданным страницам, например, для печати колонтитулов.
Параметры:
pdf — контекст, созданный функцией pdf_create()number — номер страницы (1 - ...)Примечания:
pdf_get_page_count()pdf_get_page_count(pdf) — возвращает общее количество страниц, созданных на момент вызова функции.
Параметры:
pdf — контекст, созданный функцией pdf_create()pdf_paginate(pdf, options) — выполняет печать номеров страниц на всех* страницах, созданных на момент вызова функции.
Параметры:
pdf — контекст, созданный функцией pdf_create()options — (опционально) объект с параметрами печатиformat — (опционально) форматирование вывода. Допускается использование однострочного и многострочного текста с возможностью подстановки следующих макросов:{PAGE} - номер страницы, например: Стр. {PAGE}{PAGES} - общее количество страниц, например: Стр. {PAGE} из {PAGES}
По умолчанию - {PAGE} (печатается только номер страницы)halign — (опционально) позиционирование по горизонтали: left | center | right, по умолчанию выполняется печать номера по центру страницыvalign — (опционально) позиционирование по вертикали: top | bottom, по умолчанию выполняется печать номера внизу страницыskip_first — (опционально) количество пропускаемых страниц (на указанном количестве первых страниц печать номеров не будет выполняться). По умолчанию - 0.start_number — (опционально) число, с которого будет начинаться нумерация страниц. По умолчанию - 1.margin_x — (опционально) отступ по горизонтали от края страницы. По умолчанию - ширина соответствующего поля (левого или правого).margin_y — (опционально) отступ по вертикали от края страницы. По умолчанию - расчетное значение, обеспечивающее печать номера по вертикальному центру соответствующего поля (верхнего или нижнего).line_spacing — (опционально) высота строки для многострочного текста. По умолчанию - 1.pdf_show(pdf) — открывает созданный документ в браузере пользователя (работает только при вызове произвольного скрипта вручную - нажатием кнопки Выполнить).
Параметры:
pdf — контекст, созданный функцией pdf_create()Примечания:
Скачать, Сохранить как)pdf_save_to_server(pdf, project, subpath, callback) — сохраняет PDF-документ на сервер в раздел Файлы.
Параметры:
pdf — контекст, созданный функцией pdf_create()
project — имя проекта, куда будет сохранён PDF
subpath — путь и имя файла в разделе Файлы, например: report.pdf или some/path/to/report.pdf. Если путь не существует - он будет создан автоматически.
callback — (опционально) функция обратного вызова, которая будет вызвана после завершения операции сохранения с объектом response в качестве единственного аргумента, в котором:
result - результат успешного выполненияtrue - создан новый документfalse - документ сохранен в ранее созданный файлerror - объект с кодом ошибки, если операция не выполненаpdf_save_to_file(pdf, path) — сохраняет PDF-документ в произвольный файл.
Параметры:
pdf — контекст, созданный функцией pdf_create()path — путь к файлу, в который будет сохранен документ.Отправка сообщения в Telegram по флагу:
if($flag_alarm===1){
$flag_alarm=0;
let message="Outdoor temperature is "+str($temperature)+" ℃";
telegram("+71234567890",message);
}
Отправка SMS по флагу:
if($flag_alarm===1){
$flag_alarm=0;
let message="Outdoor temperature is "+str($temperature)+" ℃";
sms("+71234567890",message);
}
Выполнение команды командной строки (запись значения var1 в пин 4 GPIO):
let command="gpio -g write 4 "+str($var1);
exec(command,100);
Перезагрузка устройства при отсутствии связи с узлом:
if($ping__error){
reboot();
}
Листинг доступных параметров в произвольном скрипте:
print(params);