Skip to content

Operación de cfe-rates-microservice

Cuándo usar este documento

Para solicitar tarifas al bot, cargar un archivo de tarifas, o diagnosticar por qué faltan tarifas de un periodo.

Audiencia

Soporte y desarrollo.

Estado documental

  • Estado: Borrador
  • Última actualización: 2026-08-02
  • Owner: Pendiente
  • SME requerido: desarrollo / operación
  • Fuente resumida: comandos y configuración de colas del repositorio.

Tareas recurrentes

Este servicio no tiene scheduler: todo se ejecuta a mano. Su ritmo lo marca el cierre mensual de sy-energy.

Mensual — antes del día 1

Es el paso previo a la facturación de los contratos de costo fijo: sin la tarifa CFE calculada, el cliente no puede registrar su tarifa fija y ese contrato no se puede facturar.

OrdenTareaComando
1Registrar las tarifas publicadas por CFEphp artisan app:import-rates-from-csv --filename=cfe-rates-<AAAA>-<MM>.csv
2Calcular la tarifa del centro de cargaphp artisan app:calculate-rate-command --rmu=<RMU> --period=<AAAA>-<MM> --owner=<participante>

El cálculo requiere el consumo completo del mes

La tarifa se calcula sobre la demanda ("Consumo") del centro de carga. Si falta demanda, la tarifa sale mal, y con ella el contrato que el cliente registrará en sy-energy.

Verificar la completitud de la demanda antes de calcular. Corregirlo después implica rehacer el contrato.

Ver Ciclo mensual de facturación.

El registro de tarifas es manual

Las tarifas se cargan desde un archivo CSV que alguien tiene que obtener de CFE y depositar. No hay automatización ni alerta si el archivo del mes no se cargó: se descubre cuando falla el cálculo.

Bajo demanda — solicitud de tarifas al bot

TareaComando
Pedir tarifas al bot que consulta el portal de CFEphp artisan app:ask-bot-cfe-rates --region=all --year=<AAAA> --month=<MM> --rate=<tarifa>

Comandos

ComandoQué hace
app:import-rates-from-csv --filename=Carga las tarifas del mes desde un archivo CSV.
app:calculate-rate-command --rmu= --period= --owner=Calcula la tarifa CFE de un centro de carga para un periodo y participante.
app:ask-bot-cfe-rates --region= --year= --month= --rate= [--state= --municipality= --division=]Publica una solicitud por región en la cola del bot. --region=all cubre todas.
queue:work <conexión de almacenamiento>Consume los trabajos de guardado de tarifas.
queue:work <conexión de respuestas>Consume las respuestas del bot y guarda las tarifas devueltas.

Tarifas soportadas: gdmth, dist, dit, pdbt.

En producción los workers los gestiona Supervisor; no lanzarlos a mano salvo para diagnóstico.

Dos comandos no aparecen en el repositorio

app:import-rates-from-csv y app:calculate-rate-command se ejecutan en producción, pero no existen en la rama principal de este repositorio, que solo declara app:ask-bot-cfe-rates. El cálculo de tarifas sí existe ahí, pero como acción de API, no como comando de consola.

Puede ser trabajo sin integrar a la rama principal, o un despliegue que difiere del repositorio. Hasta aclararlo, ambos comandos quedan documentados según la operación, no verificados contra código.

Carga de un archivo de tarifas

Subir un CSV de tarifas desde la interfaz web dispara el cálculo de la tarifa compuesta por división y tipo, y publica un trabajo de almacenamiento por cada combinación.

Es una operación de volumen: verificar que el worker de almacenamiento esté arriba antes de cargar un archivo grande.

Verificaciones

QuéCómo
Los workers están arribaEl programa de este servicio aparece en RUNNING en Supervisor.
Las tarifas del periodo llegaronConsultar las tarifas por año, mes, división y tipo.
No hay trabajos fallidosphp artisan queue:failed

Si falla

SíntomaCausa probableAcción
El cálculo de tarifa da un resultado anómaloEl consumo del centro de carga estaba incompleto.Completar la demanda del mes y recalcular antes de que el cliente registre el contrato.
No hay tarifas del mes al calcularEl archivo CSV de CFE no se cargó.Ejecutar app:import-rates-from-csv con el archivo del mes.
Se solicitaron tarifas y nunca llegaronEl bot falló, o el worker de respuestas está caído.Verificar primero el worker; después revisar los logs de la Lambda.
Llegan algunas regiones y otras noEl bot falló en regiones específicas, típicamente por cambios en el portal.Revisar los logs del bot para esas regiones.
El archivo de tarifas se cargó y no se guardó nadaEl worker de almacenamiento está caído.Revisar Supervisor y queue:failed.
sy-energy no tiene tarifas de CFEVerificar primero que existen aquí.Si existen aquí, el problema está en la integración.

Distinguir bot de worker

Ambos síntomas se ven igual — "no llegaron las tarifas" — y la causa es distinta. Verificar siempre el worker de respuestas antes de culpar al bot: es más barato y más frecuente.

Riesgos y gaps

  • El registro de tarifas es manual. Depende de que alguien obtenga el archivo de CFE y lo cargue. No hay alerta si falta.
  • Dos comandos de producción no están en la rama principal del repositorio.
  • No hay verificación de que el consumo esté completo antes de calcular la tarifa, siendo esa la precondición del cálculo.
  • No hay alerta cuando una solicitud al bot no recibe respuesta.
  • No está documentado el tiempo esperado de respuesta del bot.
  • No está documentado qué ocurre si se solicita o se calcula dos veces el mismo periodo.

Próxima revisión

Al aclarar la discrepancia de comandos con desarrollo.