Платформа 4.0
Методология разработки сценариев
Сценарий и версия, структура flow_data / flow_settings, поля Node-RED, сохранение и публикация.
На этой странице
Подготовьте окружение
До сборки графа должны существовать модель и её версия, необходимые справочники, ассет для теста и формализованное описание события.
Структура и версии
Разделяйте сущность сценария и его версии. Название описывает назначение, версия фиксирует конкретный граф и параметры. Черновик используется для разработки, опубликованная версия — для назначения на камеры.
Унификация
Общие операции выносите до ветвления и после объединения. Используйте шаблоны для повторяющихся цепочек. Параметры конкретной камеры передавайте через зоны, справочники и настройки, а не через копии графа.
Отладка и применение
Сначала устраните ошибки инициализации графа, затем проверьте детекции, треки, фильтры и события. После публикации отслеживайте качество и нагрузку; тонкую настройку на камере документируйте отдельно.
Сценарий и версия: поля
Сценарий хранит назначение и тип обработки; версия — конкретный граф. Системные идентификаторы создаются сервером. Признаки публикации, архивирования и удаления меняются отдельными операциями, а не произвольной правкой полей графа.
| Поле | Тип / значение | Смысл |
|---|---|---|
| name / version | string до 255 символов | Имя сценария / обозначение версии |
| scenario_type | frame_scenario / event_scenario | Кадровая или событийная обработка |
| execute_type | by_camera / by_object / all_cameras | Область состояния событийного сценария |
| scenario_id / version_id | Положительные integer | Идентификаторы сущности и версии |
| version_uuid | string | Идентификатор корневой вкладки графа |
| section_id | integer / пустое значение | Раздел каталога |
flow_data: структура графа Node-RED
flow_data содержит массив объектов графа. type=tab обозначает вкладку; типы исполняемых блоков определяются установленной палитрой. Дополнительные поля зависят от блока и сохраняются вместе с ним.
- Пример показывает формат вкладки и связей, а не готовый исполняемый детектор.
- Используйте редактор для изменения графа; не меняйте flows.json действующей сессии вручную.
- Проверяйте типы полей и вложенный JSON в настройках выбранного блока.
| Поле | Тип | Назначение |
|---|---|---|
| id | string | Уникальный ID объекта внутри графа |
| type | string | tab или машинный тип блока |
| label / name | string | Отображаемое имя |
| z | string | ID вкладки, которой принадлежит блок |
| wires | string[][] | По одному массиву ID получателей на выход |
| x / y | number | Положение в редакторе; не влияет на результат вычисления |
[
{
"id": "scenario-tab",
"type": "tab",
"label": "Проверка зоны"
}
]
// Для каждого выхода блока wires хранит ID получателей:
// выход 0 → node-a, node-b; выход 1 → node-c
// "wires": [["node-a", "node-b"], ["node-c"]]flow_settings: извлечённые параметры
При сохранении сервис обработки графов извлекает настраиваемые параметры. Результат используется для отображения и управления настройками блоков.
| Путь | Содержимое |
|---|---|
| blocks[] | id, name, type и parameters блока |
| parameters[].name | Машинное имя параметра |
| parameters[].type | Тип параметра |
| parameters[].value | Текущее значение или null |
| parameters[].editable | Можно ли редактировать |
| parameters[].default_value | Значение по умолчанию |
| parameters[].options | Допустимые варианты выбора |
| parameters[].translations | Локализованные названия |
Сохранение и публикация по компонентам
Редактор хранит flows.json внутри сессии. Backend получает граф, передаёт его на извлечение настроек и сохраняет в хранилище сценариев вместе со списком используемых моделей. Только после сохранения публикуется версия.
- 1Редактор Node-RED↓ Сохранить
Граф и параметры в flows.json сессии.
- 2Backend Sandbox → inf-flows-manager↓ flow_data + flow_settings
Извлечение настроек блоков и зависимостей моделей.
- 3Хранилище сценариев↓ Опубликовать
Сохранение версии и корневой вкладки графа.
- 4Kafka → потребители
Распространение опубликованных версий и актуальных настроек.
В документации разных поставок встречаются префиксы wf-/svr- и sbx-/nr-sbx-. При поиске логов используйте имена сервисов из вашего compose-файла.
