Moi je viens de regarder pour tester ton intégration, globalement sur le fonctionnement / ui pas de soucis. J’ai pas vraiment pu tester ton intégration car mon instance de prod n’a aucune donnée en BDD. En gros il existe uniquement les dernières données. J’ai rien touché de particulier à mon instance de prod …
Pour c’est un capteur xiaomi intégré via zigbee2mqtt
Je cherche pourquoi il stocke pas plus de données …
keep_history à un … J’ai l’impression qu’il y a un bug …
Plein de bon retours, autant des bugs que des améliorations pratiques pour que la fonctionnalité soit vraiment utile pour l’utilisateur final.
C’est d’ailleurs ce genre de retour qui m’intéresse plus, je veux que vous disiez si selon vous c’est une fonctionnalité utile et utilisable, ou si il manque des choses.
L’objectif c’est d’avoir un truc en même temps:
Très design
Configurable et flexible comme un Grafana
Mais très facile à utiliser, et avec des valeurs par défaut qui mâche le travail et qui donne un bon rendu sans trop de configuration.
Du coup je vais améliorer ma copie et essayer de proposer une deuxième itération corrigée
Petite preview de sur quoi je bosse depuis ce matin, un affichage clean des erreurs dans la vue “tâches en arrière-plan” !
J’ai toujours été contre l’affichage des logs pures dans l’UI (car on sait ce que ça donne, ensuite on est flemmard et on fait des intégrations où on demande aux gens d’aller chercher des IDs dans les logs ), en revanche je suis pour une vue de ce style, où:
Toutes les erreurs connues sont traduites, et la marche à suivre est clairement expliquée pour l’utilisateur. Exemple ici avec une erreur simple: Gladys a redémarré alors qu’une tâche tournait: c’est un comportement normal, et il faut le préciser.
Pour les erreurs inconnues, on l’affiche telle quelle pour que l’utilisateur puisse nous faire un retour, ensuite deux solutions:
C’est un bug, on corrige le bug
C’est une erreur qui peut arriver dans certains conditions (pas un bug): Exemple “OUT_OF_MEMORY”/“DISK FULL”, etc… Dans ce cas, on ajoute cette erreur à la liste d’erreur traduite, avec un message clair, et avec une marche à suivre pour résoudre l’erreur.
Dans le cas de l’agrégation des capteurs, comme Node.js est single thread, je voulais pas bloquer le thread Gladys principale, et donc l’agrégation est faite dans un worker séparé.
Le log qui est affichée là est le log d’erreur complète envoyée par le worker, donc il n’y a rien de plus à aller voir en SSH
Dans tous les cas, normalement il ne devrait pas y avoir d’erreur. J’ai ajouté ça justement pour qu’on soit prêt le jour où on pousse une bêtise, ou le jour où quelqu’un avec une énorme DB se prend une limitation technique de sa machine (comme ça on le voit), mais normalement ce cas ne devrait pas arriver très fréquemment.
à peu près 4 minutes pour faire les 3 agrégations (3 mois, une quinzaine de devices)
le widget sur le dashboard est très simple à comprendre et à utiliser , il est aussi très réactif, quelque soit l’intervalle choisi
même remarque de @VonOx sur le titre. Si c’est un champ avec une assistance de remplissage, il faudrait le mettre après la sélection du device. Sinon, c’est frustrant d’entrer quelque chose et qu’il soit remplacé automatiquement
quand il n’y a pas de valeurs, “interval” s’écrit “intervalle” en français
même remarque que @VonOx sur l’affichage de l’heure pour les “Dernière 24h” (il manque un S d’ailleurs)
Super boulot en tout cas, c’est une belle fonctionnalité
A mon avis c’est la partie disque SSD du Macbook Pro qui est rapide, car c’est quasiment que du disque au final (lecture/échantillonage mais c’est assez rapide/écriture). Donc si t’as un bon SSD sur ton Pi, ça devrait être bon niveau performance aussi à mon avis
J’ai la réponse à cette énigme, c’est tout simple: -1 est censé représenter la valeur « illimitée », c’est ce qui est défini dans le code du signup lorsque tu clique sur le radio button « illimitée ».
Le souci, c’est qu’il y avait un double bug dans le code et dans les tests qui font que cette valeur -1 n’a jamais fonctionnée…
Ce qu’il s’est passé:
« -1 » s’est comportée comme si tu voulais garder que les états plus vieux que « dans 1 jour dans le futur » (NOW - (-1) = DEMAIN) Il n’y avait pas de if(-1) pour bloquer la purge des états, je pense j’ai du oublier en le codant. Comme on utilisait pas encore les valeurs de capteurs passée, ça s’est pas vu. Ce qui m’étonne c’est qu’il me semble que @Terdious a bien un historique illimité sur son instance. Tu confirme @Terdious ? Je pense tu dois avoir supprimé cette variable volontairement en DB non ?
Dans les tests, erreur assez bête, j’ai utilisé fake.resolves() pour mocker l’appel à variable.getValue(), sauf que j’ai mal utilisé fake.resolves() et du coup quand j’ai du faire mes tests à l’époque, le -1 se comportait comme voulu, car en gros je me retrouvais avec une fonction retournée au lieu de -1, et donc ça empêchait la purge, bref un truc très bête (c’était au tout début de la v4 il y a facile 1 an et demi je pense :D)
J’ai corrigé le bug et j’ai rajouté des tests plus solides pour s’assurer que ça bouge pas.
Dans l’UI, il y a maintenant la possibilité de modifier la valeur dans les paramètres:
@cicoub13@VonOx pour résoudre le problème de l’affichage de la date sur la vue “dernière heure” ou “dernière 24h”, j’ai changé la vue par défaut, maintenant je format l’affichage du temps en relatif: