Supponiamo di voler partire con un progetto di monitoraggio IOT, e che nel 2024 qualcuno abbia già messo la propria esperienza a disposizione della collettività.
Devo scrivere da zero il database delle misure?
Devo gestire tutta la parte anagrafica?
Devo inventarmi tutta la parte di web-app, magari anche reattiva, in modo che posso vedere i grafici sia dal PC che dallo smartphone?
Requisiti di massima
- Orientato al monitoraggio 'lento' (frequenza oraria o minore) di oggetti statici
- Open Source
- Interrogazioni SQL con finalità di reportistica quasi metrica/contabile (es. smart meter)
- Longevità del progetto: >=10 anni
- semplicità di configurazione misure derivate/calcolate, (es bar in pascal, o °C a °F, da corrente e tensione ricavare la potenza)
- possibilità di esportazione dati via API
- gerarchia/albero delle risorse monitorate (es. città/quartiere/isolato/palazzo/casa/sensore)
Nice to Have
- storicizzazione con compressione, tipo RRD Tool
- gestione utenti/accessi personalizzata (es. admin legge e scrive tutto, tecnico o utente finale legge solo il suo)
Vediamo cosa mi propone
GitHub se cerco IOT e Database...
IOTDB
https://github.com/apache/iotdb?tab=readme-ov-file#main-features
IoTDB supports high-frequency data writing with millions of measurement points and millisecond-level query response speed. The efficient data processing capability allows users to obtain the required data quickly and accurately.
GRIDDB
https://griddb.net/en/
https://github.com/griddb/docs-en/blob/master/manuals/GridDB_FeaturesReference.md
in-memory data
architecture — along with superb
parallel processing and minimal
overhead — grants benchmark-
shattering performance
OPENREMOTE
https://github.com/openremote/openremote
https://github.com/openremote/openremote/wiki/User-Guide%3A-Assets%2C-Agents-and-Attributes
TDENGINE
https://docs.tdengine.com/concept/
https://tdengine.com/high-performance/
The TDengine industrial data platform includes a high performance, cloud native time series database that enables efficient ingestion, processing, and monitoring of petabytes of data per day, generated by billions of sensors and data collectors. Thanks to its data model that takes full advantage of the characteristics of time-series data, TDengine delivers more than ten times the performance of general-purpose platforms while requiring only one-fifth the storage space.
THINGSBOARD
https://github.com/thingsboard/thingsboard
https://thingsboard.io/docs/user-guide/entities-and-relations/
molto promettente per Asset Monitoring, consente la scrittura di regole per organizzare gli oggetti monitorati rispetto ai dispositivi di misura e altre entità come gli utenti.
ThingsBoard back-end is written in Java, but we also have some micro-services based on Node.js. ThingsBoard front-end is a SPA based on Angular 9 framework.