Traduit de English par IA ·
J’ai fait cela pour les machines à laver de deux de nos bâtiments (comptages de pièces), donc voici ce qui a fonctionné pour moi, même si je ne suis pas programmeur.Envoyez un total cumulé par colonne, toutes les quelques minutes, sous forme de nombres simples :
{"vend.col1": 1834, "vend.col2": 977, "vend.col3": 2210, ...}
Ensuite, sur la carte du graphique, choisissez l’agrégat « increase ». Il est conçu pour les compteurs : chaque intervalle indique de combien le compteur a augmenté, et si la valeur baisse parce que la carte a redémarré, il recommence à compter depuis zéro au lieu d’afficher une énorme valeur négative. Un redémarrage ne vous coûte donc rien, tant que vous ne redémarrez pas deux fois dans le même intervalle et ne dépassez pas l’ancienne valeur.Envoyer {« col3 »: 1} à chaque distribution fonctionne aussi avec « sum », mais si un message est perdu, le comptage est définitivement perdu. Avec des totaux, le message suivant rattrape le retard.Un point m’a piégé : les intervalles journaliers sont des jours UTC. Nous sommes à l’heure de l’Est, donc mes barres « par jour » étaient coupées à 19 h ou 20 h. Pour des jours locaux, utilisez des intervalles horaires et additionnez les heures, ou acceptez-le simplement.Pour « probablement vide » : enregistrez le total au moment du réapprovisionnement (j’écris un attribut serveur par colonne le lundi depuis la page de l’appareil) et déclenchez une alerte lorsque le total moins cette valeur dépasse 38 environ. Je fais cette partie dans un flux, car une condition d’alarme ne peut pas effectuer de calcul entre deux valeurs.La page est Aggregates and rollups.
I did this for the laundry machines in two of our buildings (coin counts), so here’s what worked for me even though I’m no programmer.
Send a running total per column, every few minutes, as plain numbers:
{"vend.col1": 1834, "vend.col2": 977, "vend.col3": 2210, ...}
Then on the chart card pick the aggregate « increase ». It’s made for counters: each bucket shows how much the counter went up, and if the value goes down because the board rebooted, it counts from zero instead of showing a huge negative. So a reboot costs you nothing as long as you don’t reboot twice inside one bucket and land above the old value.
Sending {« col3 »: 1} per vend also works with « sum », but if a message is lost the count is gone for good. With totals the next message catches up.
One thing that tripped me: day buckets are UTC days. We’re on Eastern time, so my « per day » bars were split at 7 or 8 pm. For local days use hourly buckets and add up the hours, or just live with it.
For « probably empty »: store the total at refill time (I write a server attribute per column on Monday from the device page) and alert when total minus that passes 38 or so. I do that part in a flow because an alarm condition can’t do arithmetic between two values.
Page is Aggregates and rollups.

