$ show dsmrreader/dsmr-reader
DSMR-reader is a production-grade Django web application for reading, storing, and visualizing Dutch Smart Meter (DSMR) data from the P1 port. It parses electricity, gas, and water consumption telegrams via serial or network socket, computes hourly/daily statistics with cost calculations, and provides a comprehensive web dashboard with interactive ECharts graphs, a REST API (v1/v2), and integrations with MQTT, InfluxDB, Dropbox, PVOutput, MinderGas, and notification services (Pushover, Telegram, Prowl). The application is container-first (Docker/Podman) and requires PostgreSQL 14+. It exhibits a modular Django app architecture with a signal-driven service layer, singleton settings via django-solo, and extensive test coverage. The frontend is built with Bootstrap 3, jQuery, and Font Awesome 7.2.0 but carries significant technical debt (legacy libraries, unused CSS, jQuery UI), and the project maintains a detailed tech-debt document tracking planned upgrades.
The LLM identified 2 files worth highlighting for reuse:
Implements the Dropbox content hash algorithm (SHA-256 based) for verifying file upload integrity. The module is self-contained, has no Django dependencies, and can be extracted directly into any Python project that needs to compute Dropbox-compatible file hashes. Demonstrates careful implementation of a non-trivial streaming hash pattern with block-level processing.
Provides `InfiniteManagementCommandMixin`, a reusable Django management command mixin that turns any command into a long-running daemon with sleep intervals, graceful shutdown handling (SIGINT/SIGTERM), and restart detection. This pattern is valuable for any Django project requiring persistent background workers without Celery or other external task queues. The mixin is small, well-documented, and can be copied into other projects with minimal adaptation.