Block a user
Report funktioniert nicht
Root Cause bestätigt
OSError: cannot load library 'libpangoft2-1.0-0': libpangoft2-1.0-0: cannot open shared object file
Das Dockerfile installiert libpango-1.0-0 in der Runtime-Sta…
Auto-Registrierung interner Boxen via MQTT statt REST-API
Analyse des bestehenden Codes
Aktueller Box-Simulator Flow
Der Simulator (simulator.py) nutzt ein flaches Topic-Format:
box/{box_id} → {"box_id": "...", "timestamp": ...,…
Sensor renaming funktioniert nicht
Analyse
Der komplette Update-Flow ist implementiert:
- Frontend:
DeviceCard.vue→saveSensorEdit()→updateSensor(boxId, sensorId, { name, unit }) - API: `PATCH /api/v1/devic…
Report funktioniert nicht
Analyse
Der Report-Endpunkt (GET /api/v1/reports/readings?format=pdf) existiert und der Frontend-Code ruft ihn korrekt auf. Der 500er kommt aus dem Backend.
Wahrscheinlichste Ursache:…
Auto-Registrierung interner Boxen via MQTT statt REST-API
Sensorbox Format
Implementiert
Backend-Änderungen
mqtt_data_handler.py – handle_internal() erweitert:
- Neues
batch-Array im Payload unterstützt (Deep-Sleep-Boxen) - Abwärtskompatibel:…
[Vorschlag] Benachrichtigungs-Historie und Audit-Log
[Vorschlag] Benachrichtigungs-Historie und Audit-Log
Implementiert in ee3376d
Backend
notification_logHypertable (TimescaleDB) mit Composite PK(time, id), FK zunotification_rules(SET NULL)- Alembic Migration 006 +…
Data aggregation
Implementierungsplan: Data Aggregation
Kernidee
TimescaleDB Continuous Aggregates nutzen – das ist genau dafür gebaut, skaliert hervorragend und braucht keine separate Tabelle.…