Skip to content

Bots y automatizaciones ​

Objetivo ​

Documentar los bots que sy-energy dispara para operar el portal SIM de CENACE: qué hace cada uno, cómo se lanza y qué devuelve.

Audiencia ​

Soporte operativo y desarrollo interno.

Alcance ​

Bots del SIM disparados desde sy-energy. El código de los bots vive en el repositorio memsim-cenace-scrapers, no aquí.

Estado documental ​

  • Estado: Borrador
  • Última actualización: 2026-08-02
  • Owner: Pendiente
  • SME requerido: soporte operativo / integraciones
  • Fuente resumida: comando de despacho de bots, adaptadores de respuesta y configuración de colas.

Cómo funciona el mecanismo ​

sy-energy no controla el navegador: publica un mensaje en una cola SQS y una Lambda hace el trabajo.

text
sy-energy ──► bot:queue --slug=<bot> ──► SQS ──► Lambda (Selenium + Chrome)
                                                      │
                                                      ▼
                                                portal SIM de CENACE
                                                      │
sy-energy ◄─────── respuesta (SQS / API) ◄────────────┘

Cada bot tiene su propia cola, resuelta por el slug. El mensaje incluye siempre el participante propietario; en el caso de los documentos de CENACE lleva además la fecha a consultar.

Consecuencia operativa: bot:queue termina exitosamente en cuanto el mensaje se publica. Que el comando reporte éxito no significa que el bot hizo su trabajo, solo que la petición se encoló.

Bots disponibles ​

SlugQué haceCuándo se dispara
cenace-notificationsRetira la notificación inicial del SIM que bloquea la navegación de los demás bots.Bajo demanda, antes de los otros bots.
reaDescarga la REA para desplegarla en sy-energy.Diario, 08:30.
cenace-documentsDescarga las facturas emitidas por CENACE para generar los complementos de pago. Requiere --date.Bajo demanda.
bank-oneEntra a la sección de Pagos del SIM y extrae los FUF y totales, para validar que no falten documentos antes de crear el FOP.Semanal, lunes 07:00.
bank-twoCrea el FOP en el SIM.Bajo demanda, después de bank-one.
bank-threeEnvía la información del FOP de vuelta a sy-energy.Bajo demanda, después de bank-two.

Además, la cadena diaria usa dos automatizaciones que no se lanzan con bot:queue sino con sus propios comandos:

AutomatizaciónComandoQué hace
Carga de facturas al SIMecd:upload_invoicesEncola los documentos que el bot debe recoger de S3 y subir al portal.
Estatus de facturasecd:invoices_statusPide al bot que verifique en el SIM el resultado de lo cargado.

Uso ​

bash
# Bot sin fecha
php artisan bot:queue --slug=rea

# Bot que requiere fecha
php artisan bot:queue --slug=cenace-documents --date=2026-08-01

Slugs válidos: rea · bank-one · bank-two · bank-three · cenace-notifications · cenace-documents.

Un slug inválido se rechaza antes de publicar nada en la cola.

Orden que importa ​

Dos secuencias no son opcionales:

1. Notificaciones primero. Si el SIM tiene una notificación pendiente, el portal la muestra antes que cualquier otra pantalla y el resto de los bots no logra navegar. Ante fallas simultáneas de varios bots, la primera hipótesis es esta:

bash
php artisan bot:queue --slug=cenace-notifications

2. Las tres etapas bancarias, en orden.

text
bank-one    valida FUF y totales
    ↓
bank-two    crea el FOP
    ↓
bank-three  devuelve el FOP a sy-energy

Ejecutar bank-two sin que bank-one haya validado significa crear el FOP sin saber si faltan documentos.

Credenciales ​

Los bots entran al SIM con las credenciales del participante: certificado (.cer), llave (.key), usuario y contraseña. Se administran en la infraestructura de AWS, no en el código ni en esta documentación.

Un error de autenticación en varios bots a la vez suele significar credenciales vencidas o rotadas, no una falla del bot.

Diagnóstico ​

SíntomaPrimera hipótesis
bot:queue responde "AWS Error"Problema de credenciales de AWS o cola mal configurada. El mensaje nunca se publicó.
bot:queue responde éxito pero no pasa nadaEl mensaje se encoló pero la Lambda falló o no se disparó. Revisar en AWS.
Varios bots fallan al mismo tiempoNotificación pendiente en el SIM, o credenciales del participante vencidas.
El bot responde pero sy-energy no refleja el resultadoFalla en la cola o el worker de respuesta. Revisar Supervisor y queue:failed.

Ver también Diagnóstico de batch, scheduler y bot.

Riesgos y gaps ​

  • No está documentado el tiempo esperado de respuesta de cada bot, así que no hay criterio para decidir cuándo un bot "se tardó demasiado".
  • No hay alerta cuando un bot se encola y nunca responde.
  • bank-two y bank-three no están programados: se ejecutan a mano y no está documentado quién lo hace ni con qué criterio.
  • Falta documentar el manejo de reintentos cuando un bot falla a mitad del proceso en el portal.

Próxima revisión ​

Al documentar memsim-cenace-scrapers.