Documentación de Actualización del Sistema MMR – Backend Flask + Tablet

1. Información General

Este documento describe la nueva arquitectura del servicio Flask utilizado en las tablets MMR para mostrar información del regador en tiempo real (nivel, volumen, velocidad, título dinámico y geofence).
Incluye:

Los cambios realizados en esta iteración incluyen:


2. Funcionamiento del Sistema

La tablet utiliza un backend en Flask que expone varias rutas API:

Ruta Descripción
/config Configuración de tablet desde Config_mmr.json
/nivel Nivel del estanque del regador actual
/volumen Volumen acumulado del regador actual
/data Data general del regador (ID, nombre, timestamp, etc.)
/reiniciar_contador Reinicia el contador de volumen (botón)
/ Página principal del visor HTML

2.1 Archivos involucrados

Todos se leen desde el directorio raìz:

{
    "name": '016', 
    "vehicle": 1091, 
    "lat": -27.503644, 
    "lon": -70.282146, 
    "timestamp": 1760922689
}
{
    "porcentaje": 49,
    "volumen_estanque": 35,
    "timestamp": 728738738273,
    "button": true
}
{
    "volumen": 9534,
    "timestamp": 728738738273
}
Ejemplo en la sección 4.1

2.2 Sistema de Recarga Dinámica (load_config_hot())

El backend cuenta con un método inteligente:

def load_config_hot():
    # Carga Config_mmr.json solo si el archivo cambió en disco

Beneficios:


3. Instalación del Nuevo Backend en la Tablet

3.1 Requisitos

Instalar las librerías necesarias:

pip install flask flask-cors

Para asegurar compatibilidad:

pip install --upgrade pip setuptools

3.2 Github

Hasta el desarrollo de este documento, el código actualizado se encuentra en el repo dataloger_mmr dentro de la rama feature/one_config_mmr_json

Actualizar el Proyecto

Dependiendo de la funcionalidad actualizada:

3.3 Verificar estructura de carpetas

Debe existir:

    static/
        css/
        img/
        js/
            cards.js
            map.js
            buttons.js
    templates/
        index.html
    main.py
    nivel.json
    data.json
    volumen_acumulado.json

Y a su vez, en la ruta /srv/datalogger_mmr/:

    geofence.json
    config_mmr.json

3.4 Ejecutar el servidor Flask manualmente para pruebas

python3 main.py

4. Cambios en el MMR (Backend /srv/datalogger_mmr/)

4.1 Script de configuración

El archivo:

/srv/datalogger_mmr/config.py

Genera y actualiza automáticamente:

La nueva clave dentro de config es "TABLET": Ejemplo (Deberá configurarse automáticamente por Faena)

"TABLET": {
                "MAX_CISTERN_LEVEL": 70,
                "MODEL_SENSOR_LEVEL": "",
                "SHOW_LEVEL": false,
                "SHOW_VOLUME": false,
                "X_COORD":-27.519101,
                "Y_COORD":-70.289366,
                "API_URL_REG": "https://candelaria.mapa.mine-360.com/api/vehicles/reg",
                "API_PM100_FILTRADO": "https://candelaria.mapa.mine-360.com/api/tablets/pm100_filtrado",
                "API_RIEGO": "https://candelaria.mapa.mine-360.com/api/riego",
                "GEOFENCE_PATH": "/srv/datalogger_mmr/geofence.json",
                "TITLE": "Candelaria"
                
        }

Resumen

El nuevo backend permite:

Este documento recoge tanto la descripción técnica como las instrucciones operativas para asegurar la correcta ejecución del sistema en todas las tablets.