dommarion a écrit:Oui en effet, ce script était déstiné à un émulateur de PHP, j'ai remplacé la fonction print_r() par var_dump() pour la box eedomus.
C'est le défaut des simulateurs, généralement je teste certaines fonctions en local, puis je passe sur la box dès que les interactions sont importantes.
dommarion a écrit:J'ai ajusté en effet dans le code les fréquences d'echantillonage (6000Hz) et la fréquence de coupure (2000Hz).
J'utilise la fonction getValue() d'eedomus pour éviter de récupérer l'historique, mais tu as tout à fait raison, lorsque la valeur est inchangée, alors la fonction getValue de la box eedomus ne renvoie pas de données. Par contre si l'on questionne l'API de la box eedomus avec la fonction httpQuery() en GET et utilisant l'url:
https://api.eedomus.com/get?action=peri ... show_all=1";
Alors on récupère tout l'historique entre 2 dates et on peut conserver les dernières valeurs correspondantes à l'échantillonnage paramétré.
je ne récupère pas plus de données en interrogeant directement l'historique depuis mon navigateur
https://api.eedomus.com/get?....
Toutefois, si on ne reçoit pas de données, c'est généralement que la dernière donnée n'a pas changé (sauf problème de communication) et l'on peut donc entrer directement la dernière valeur dans le filtre : dans ton exemple, pour une donnée lue toutes les minutes et un FIR à 5 coefficients, la sortie deviendrait égale à l'entrée au bout de 5 minutes sans réception de nouvelle valeur.
Je rencontre de temps en temps un autre problème qui ressemble aux "clics" des repiquage sur disque vinyle (poussières, rayures), mes capteurs 433 MHz ne sont pas assez fiables et on récupère une donnée avec un digit erroné ou 0, et un envoi correct la minute suivante : par exemple 19.5;1.5;19.5 (avec une durée de l'état 1.5 d'environ 60 secondes). Pour éviter les perturbations, il ne faut pas entrer cette valeur dans le filtre et mettre la dernière valeur valide.
Dans le cas d'un capteur lent (variation de température max de mes thermomètres d'environ 0.05° par minute) on peut repérer cette valeur aberrante, mais avec certitude seulement après l'arrivée de la valeur suivant la valeur fausse (donc avec une minute de décalage). On pourrait tester l'écart de valeur et de temps entre les mesures 1 et 2, mais la mesure 1 peut être inchangée depuis 30 minutes ou plus en cas de problème de communication, ce qui autoriserait une variation de 1.5°(19.5;18;19.5); ça permettrait toutefois de détecter les plus grosses erreurs.
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)