Skip to content

Releases: bryamzxz/sensor_app

v2.2.0 – Migración de BD + robustez serial + contenedor seguro

31 Dec 16:54
0c6ab3a

Choose a tag to compare

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 lecturas ahora usa id INTEGER PRIMARY KEY (antes muchas instalaciones usaban Tiempo como PK).
  • Se crea índice idx_lecturas_tiempo para consultas por Tiempo.
  • 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_RETRIES y SERIAL_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.log y salida a consola.
  • Manejo de apagado limpio por señales (SIGINT/SIGTERM) + “final flush” del buffer.

🐳 Contenedor

  • Containerfile multi-stage (wheel + runtime mínimo).
  • Usuario no-root, directorios /app/data y /app/logs, permisos restrictivos.
  • HEALTHCHECK básico para validar carga de settings.

🧪 Cómo actualizar (recomendado)

  1. Backup del SQLite (datos.db) antes de desplegar.
  2. Actualiza el código/imagen a v2.2.0.
  3. Reinicia el servicio (quadlet/systemd) y verifica logs.
  4. 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_ID
  • ARDUINO_VID, ARDUINO_PID
  • DATA_RETENTION_DAYS
  • MIN_WRITE_INTERVAL, MAX_WRITE_INTERVAL
  • SENSOR_APP_DATA_DIR, SENSOR_APP_LOG_DIR
  • DRY_RUN_MODE

v2.0.0 – Refactor completo y tests

07 Jul 23:30
53e1e82

Choose a tag to compare

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.