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:
load_config_hot() (recarga dinámica del JSON)Los cambios realizados en esta iteración incluyen:
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 |
Todos se leen desde el directorio raìz:
data.json → Información del regador actual{
"name": '016',
"vehicle": 1091,
"lat": -27.503644,
"lon": -70.282146,
"timestamp": 1760922689
}
nivel.json → Nivel del estanque{
"porcentaje": 49,
"volumen_estanque": 35,
"timestamp": 728738738273,
"button": true
}
volumen_acumulado.json → Volumen acumulado{
"volumen": 9534,
"timestamp": 728738738273
}
Config_mmr.json → Configuración actual del MMR generada por /srv/datalogger_mmr/config.pyEjemplo en la sección 4.1
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:
SHOW_LEVEL, SHOW_VOLUME, TITLE, APIs, etc. se toman en tiempo realmtime del archivoInstalar las librerías necesarias:
pip install flask flask-cors
Para asegurar compatibilidad:
pip install --upgrade pip setuptools
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
Dependiendo de la funcionalidad actualizada:
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
python3 main.py
El archivo:
/srv/datalogger_mmr/config.py
Genera y actualiza automáticamente:
Config_mmr.jsongeofence.jsonLa 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"
}
El nuevo backend permite:
Config_mmr.jsonEste documento recoge tanto la descripción técnica como las instrucciones operativas para asegurar la correcta ejecución del sistema en todas las tablets.