Команды от сервиса/1с

Процесс обработки команд

Механизм получения команд и отчета о выполнении команд

Шедулер агента по cron расписанию из параметра CFG_AGENT_CHECK_CRON запускает задачу запроса к сервису/1c для получения новых задач и отчета о выполнении более старых задач.

Есть возможность запуска задачи запроса к сервису/1c вне расписания. Для этого нужно сделать POST запрос (далее запрос-триггер) к агенту по адресу AGENT_HOST:CFG_API_PORT/agent/commands_check

При получении запроса-триггера агент проверит дату последнего запроса к сервису. Если с момента прошлого запроса прошло более CFG_AGENT_CHECK_UNCHEDULED_DELAY секунд, то запрос к сервису выполнится сразу. Иначе запрос к сервису будет выполнен, когда после последнего запроса к сервису пройдет CFG_AGENT_CHECK_UNCHEDULED_DELAY секунд.

Запрос к сервису/1с

Агент получает команды от сервиса/1с и отчитывается о выполнении команд путем POST запроса по адресу CFG_COLLECTOR_SERVICE_BASE/agent/check (CFG_COLLECTOR_SERVICE_BASE берется из конфига агента)

В данных запроса в поле executed_commands передаются результаты выполнения команд агентом.

В ответе на запрос агент получает список актуальных команд, которые он должен выполнить и отчитаться.

Данные запроса

{
	"health": {
		"last_report_at": LAST_REPORT_AT,
		"status": "STATUS",
		"activity": "ACTIVITY",
		"up_time": UPTIME
	},
	"executed_commands": [
    	...,
      	{
      		"command_id": "COMMAND_ID",
      		"device_id": [..., "DEVICE_ID", ...],
  			"command": "COMMAND",
    		"result": RESULT
      	},
		...
    ]
}

Ожидаемый ответ

{
    "commands":[
      	...,
      	{
            "command_id": "COMMAND_ID",
            "device_id": [..., "DEVICE_ID", ...],
            "command": "COMMAND",
            "params": PARAMS
        },
		...
    ]
}

Механизм выполнения команды

После получения списка команд агент добавляет их в очередь команд и начинает их выполнение.

Команды выполняются асинхронно. Для каждого устройства внутри команды выполнение также асинхронно.

После завершения выполнения команды агент делает внеочередной запрос agent/check для отчета о выполнении команды.

 

Список команд

screenshot

получение скриншота с устройства.

params
{
    "host": "FTP_HOST",
    "user": "FTP_USERNAME",
    "password": "FTP_PASSWORD",
    "path": "FTP_PATH",
    "multisensor": "MULTISENSOR_FLAG"
}
success payload
{
	"screenshot_path": "REMOTE_PATH"
}

upload_data

выгрузка исторических данных с датчика

params
{
	"from": "FROM",
  	"to": "TO"
}
success payload
{}

reboot

перезагрузка устройства

params
{}
success payload
{}

get_config

Запрос конфига устройства

params
{}
success payload
DEVICE_CONFIG

set_config

Запрос конфига устройства

params
{
	"DEVICE_ID": DEVICE_CONFIG
}
success payload
DEVICE_CONFIG

reset_auth

установка логина и пароля для авторизации на устройстве

params
{
	"user": "USERNAME",
  	"pass": "PASSWORD"
}
success payload
{
	"new_user": "USERNAME",
  	"new_pass": "PASSWORD"
}

executor_flash

обновление прошивки на устройстве

params
{
	"file_name": FILENAME,
  	"image": IMAGE,
  	"timeout": TIMEOUT
}
success payload
{
	"firmware": "FIRMWARE"
}

video_record

установка расписания записи видео. работает 

params
{
	"from": "FROM",
  	"to": "TO",
  	"sd_card_format": "FORMAT_FLAG",
  	"quality": "QUALITY"
}
success payload
{}

Revision #9
Created 2 December 2022 09:26:22 by Роман Каржавин
Updated 7 February 2023 08:33:52 by Роман Каржавин