DVB Adapters API
В интерфейсе Astra вы можете управлять конфигурациями DVB-адаптеров и контролировать их статус с помощью HTTP API.
Конфигурация адаптера
Заголовок раздела «Конфигурация адаптера»{ "id": "...", "name": "...", "type": "...", "enable": true, "adapter": 0, "device": 0}name— имя адаптера;type— тип адаптера:S,S2,T,T2,ATSC,ISDB-T,C,C/A,C/B,C/C;enable—true, если адаптер включён;adapter— номер адаптера в системе:/dev/dvb/adapter0device— номер устройства в адаптере:/dev/dvb/adapter0/frontend0- другие параметры зависят от конфигурации адаптера
Получение конфигурации адаптера
Заголовок раздела «Получение конфигурации адаптера»Запрос: GET /api/adapter-info/{id}
id— уникальный идентификатор адаптера
В ответе будет JSON с конфигурацией адаптера
Изменение конфигурации адаптера
Заголовок раздела «Изменение конфигурации адаптера»Запрос: POST /control/
{ "cmd": "set-adapter", "id": "...", "adapter": {...}}id— уникальный идентификатор адаптераadapter— конфигурация адаптера
Перезапуск адаптера
Заголовок раздела «Перезапуск адаптера»Запрос: POST /control/
{ "cmd": "restart-adapter", "id": "..."}id— уникальный идентификатор адаптера
Удаление адаптера
Заголовок раздела «Удаление адаптера»Запрос: POST /control/
{ "cmd": "set-adapter", "id": "...", "adapter": { "remove": true }}id— уникальный идентификатор адаптера
Получение статуса адаптера
Заголовок раздела «Получение статуса адаптера»Статистика сигнала работающего адаптера из модуля мониторинга. Запрос: POST /control/ или GET /api/adapter-status/{id} с необязательным параметром ?t={time}. Оба варианта только для control. Наблюдатель получает 404.
{ "cmd": "adapter-status", "id": "a002", "t": 1}id— строка, обязательно. Идентификатор адаптера: полеidв теле или второй сегмент пути вGET /api/adapter-status/{id}. Адаптер должен быть запущен и иметь полеtypeилиvirtual.t— число, необязательно. Полеtв теле или параметр запроса вGET.1(по умолчанию) — статистика за последний завершённый интервал мониторинга,0— последняя секундная выборка. Любое другое число возвращает ошибкуnot implemented. Десятичная числовая строка читается как число, любое другое значение считается как1.
Оба варианта отвечают одинаковыми телами.
Интервал мониторинга задаётся настройкой tsdb_interval. Если она не задана, интервал равен 60 секундам.
Ответ:
{ "timestamp": 0, "instance": "...", "name": "...", "lock": true, "signal": 0, "signal_db": 0, "snr": 0, "snr_db": 0, "ber": 0, "unc": 0, "bitrate": 0}timestamp— время Unix. Дляt=1конец интервала отчёта,0пока первый интервал не завершён. Дляt=0время последней выборки,0до первой выборки;instance— имя экземпляра, если указано в Настройки → Общие → Имя экземпляра;name— имя потока;lock—true, если тюнер захватил сигнал и может принимать данные;signal— примерный уровень сигнала в процентах;signal_db— уровень сигнала в dBm, умноженный на 100;snr— примерное отношение сигнал/шум в процентах;snr_db— отношение сигнал/шум в dB, умноженное на 100;ber— счётчик битовых ошибок;unc— счётчик блочных ошибок;bitrate— общий битрейт в Кбит/с.
У адаптера SAT>IP или виртуального адаптера нет frontend: lock - состояние в эфире, bitrate - скорость его транспорта, поля сигнала равны 0.
Ответы с ошибкой, все со статусом 200:
{"adapter-status": "er", "error": "adapter id not defined"}— в теле нет строкиidили в пути нет идентификатора. Идентификатор, который не декодируется из URI, считается отсутствующим.{"adapter-status": "er", "id": "a002", "error": "adapter not found"}— нет работающего адаптера со слотом мониторинга с этим идентификатором: неизвестный или пустой идентификатор, выключенный адаптер, адаптер безtypeи безvirtualили адаптер сno_event.{"adapter-status": "er", "error": "not implemented"}—tотличается от0и1.