Ir al contenido

API de Adaptadores DVB

En la interfaz de Astra, puedes gestionar las configuraciones de los Adaptadores DVB y controlar su estado utilizando métodos HTTP API.

{
"id": "...",
"name": "...",
"type": "...",
"enable": true,
"adapter": 0,
"device": 0
}
  • name - nombre del adaptador;
  • type - tipo de adaptador: S, S2, T, T2, ATSC, ISDB-T, C, C/A, C/B, C/C;
  • enable - true si el adaptador está habilitado;
  • adapter - número del adaptador en el sistema: /dev/dvb/adapter0
  • device - número del dispositivo en el adaptador: /dev/dvb/adapter0/frontend0
  • otras opciones dependen de la configuración del adaptador

Solicitud: GET /api/adapter-info/{id}

  • id - identificador único del adaptador

La respuesta será un JSON con la configuración del adaptador

Solicitud: POST /control/

{
"cmd": "set-adapter",
"id": "...",
"adapter": {...}
}
  • id - identificador único del adaptador
  • adapter - configuración del adaptador

Solicitud: POST /control/

{
"cmd": "restart-adapter",
"id": "..."
}
  • id - identificador único del adaptador

Solicitud: POST /control/

{
"cmd": "set-adapter",
"id": "...",
"adapter": {
"remove": true
}
}
  • id - identificador único del adaptador

Estadísticas de señal de un adaptador en ejecución, del módulo de monitorización. Solicitud: POST /control/ o GET /api/adapter-status/{id} con el parámetro opcional ?t={time}. Ambos solo para control. Un observador recibe 404.

{
"cmd": "adapter-status",
"id": "a002",
"t": 1
}
  • id - cadena, obligatorio. Identificador del adaptador: el campo id del cuerpo o el segundo segmento de la ruta en GET /api/adapter-status/{id}. El adaptador debe estar en ejecución y tener un campo type o virtual.
  • t - número, opcional. El campo t del cuerpo o el parámetro de consulta en GET. 1 (predeterminado) devuelve las estadísticas del último intervalo de monitorización completado, 0 la muestra del último segundo. Cualquier otro número responde con el error not implemented. Una cadena numérica decimal se lee como su número; cualquier otro valor cuenta como 1.

Ambos puntos de entrada responden con los mismos cuerpos.

El intervalo de monitorización es el ajuste tsdb_interval, 60 segundos si no está definido.

Respuesta:

{
"timestamp": 0,
"instance": "...",
"name": "...",
"lock": true,
"signal": 0,
"signal_db": 0,
"snr": 0,
"snr_db": 0,
"ber": 0,
"unc": 0,
"bitrate": 0
}
  • timestamp - hora Unix. Para t=1, el final del intervalo del reporte, 0 hasta que se complete el primer intervalo. Para t=0, la hora de la última muestra, 0 antes de la primera muestra;
  • instance - nombre de la instancia si está definido en Configuración → General → Nombre de la instancia;
  • name - nombre del stream;
  • lock - true si el sintonizador tiene bloqueo y puede recibir datos;
  • signal - nivel aproximado de señal en porcentaje;
  • signal_db - nivel de señal en dBm multiplicado por 100;
  • snr - relación señal/ruido aproximada en porcentaje;
  • snr_db - relación señal/ruido en dB multiplicado por 100;
  • ber - contador de errores de bit;
  • unc - contador de errores de bloque;
  • bitrate - bitrate total en Kbit/s.

Un adaptador SAT>IP o virtual no tiene frontend: lock es su estado en el aire, bitrate la tasa de su transporte, y los campos de señal son 0.

Respuestas de error, todas con estado 200:

  • {"adapter-status": "er", "error": "adapter id not defined"} - no hay una cadena id en el cuerpo, o no hay identificador en la ruta. Un identificador que no se decodifica del URI cuenta como ausente.
  • {"adapter-status": "er", "id": "a002", "error": "adapter not found"} - no hay un adaptador en ejecución con ranura de monitorización para este identificador: identificador desconocido o vacío, adaptador desactivado, adaptador sin type ni virtual, o adaptador con no_event.
  • {"adapter-status": "er", "error": "not implemented"} - t es un número distinto de 0 y 1.