Releases: bryamzxz/sensor_app
Releases · bryamzxz/sensor_app
v2.2.0 – Migración de BD + robustez serial + contenedor seguro
sensor_app v2.2.0
✅ Highlights
- Migración automática de la base de datos para mejorar integridad y permitir lecturas con timestamps repetidos.
- Reconexión serial más robusta y detección automática del Arduino por VID/PID.
- Notificaciones Telegram con rate-limit + reintentos con backoff exponencial.
- Contenedor más seguro (multi-stage build, usuario no-root, volúmenes y HEALTHCHECK).
🗄️ Base de datos (cambio importante)
- La tabla
lecturasahora usaid INTEGER PRIMARY KEY(antes muchas instalaciones usabanTiempocomo PK). - Se crea índice
idx_lecturas_tiempopara consultas porTiempo. - La migración es automática al iniciar si detecta el esquema legacy.
Impacto: si tenías herramientas/consultas que asumían Tiempo como PRIMARY KEY o UNIQUE, ajústalas (ahora pueden existir timestamps duplicados).
🔌 Serial / Arduino
- Detección del dispositivo por
ARDUINO_VID/ARDUINO_PID. - Reconexión automática con
MAX_SERIAL_RETRIESySERIAL_RETRY_DELAY. - Lectura por bloques cuando aparece el marcador:
------ Lecturas ------.
📣 Telegram
- Rate limiting configurable (
TELEGRAM_MIN_INTERVAL). - Reintentos con backoff exponencial (
TELEGRAM_MAX_RETRIES,TELEGRAM_RETRY_BASE_DELAY). - Mensajes con timestamp formateado a la zona horaria configurada.
🧾 Logging / Operación
- Logs rotativos en
logs/eventos.logy salida a consola. - Manejo de apagado limpio por señales (SIGINT/SIGTERM) + “final flush” del buffer.
🐳 Contenedor
Containerfilemulti-stage (wheel + runtime mínimo).- Usuario no-root, directorios
/app/datay/app/logs, permisos restrictivos. - HEALTHCHECK básico para validar carga de settings.
🧪 Cómo actualizar (recomendado)
- Backup del SQLite (
datos.db) antes de desplegar. - Actualiza el código/imagen a
v2.2.0. - Reinicia el servicio (quadlet/systemd) y verifica logs.
- Confirma que la migración (si aplica) corrió y que el conteo de registros se mantiene.
📌 Config (.env)
Incluye/valida variables:
TELEGRAM_TOKEN,TELEGRAM_CHAT_IDARDUINO_VID,ARDUINO_PIDDATA_RETENTION_DAYSMIN_WRITE_INTERVAL,MAX_WRITE_INTERVALSENSOR_APP_DATA_DIR,SENSOR_APP_LOG_DIRDRY_RUN_MODE
v2.0.0 – Refactor completo y tests
v2.0.0 – Refactor completo y tests
- Refactor completo con funciones desacopladas y cierre seguro
- Lectura serial robusta con reconexión y retrasos de retry
- Flush de base de datos con checkpoint WAL separado
- Documentadas constantes configurables (paths, VID/PID)
- Nuevas pruebas unitarias e integración total
Para más información, consulta CHANGELOG.md.