Tendance 5 mesures
- Tendance
- Pente
- Fiabilité
- Prévision
- Seuil atteint dans
Application pour Homey Pro
Transformez n'importe quel capteur en tendance : monte, descend ou stable, avec le rythme.
En développement v1.1.1
N'importe quel capteur numérique devient une tendance : à la hausse, à la baisse ou stable, avec le rythme par heure et une fiabilité qui dit de combien la pente dépasse le bruit du capteur. S'y ajoutent une prévision à échéance choisie et le temps restant avant d'atteindre un seuil. Une température qui monte de deux dixièmes par heure n'appelle pas la même réaction qu'une température qui monte de deux degrés.
Une tendance est facile à annoncer et difficile à tenir : deux mesures suffisent à tracer une droite, et un capteur bruyant en trace une nouvelle à chaque relevé. Voici ce que l'app fait pour ne dire « ça monte » que lorsque ça monte vraiment.
01
couverture < 60 % de la fenêtre ou n < 10 → compléter par Insights
Après une installation, une mise à jour ou un redémarrage, l'app ne dispose que des mesures qu'elle avait enregistrées, parfois d'aucune. Si elles couvrent moins de 60 % de la fenêtre observée ou comptent moins de dix points, elle lit l'historique Insights du capteur, à la résolution la plus fine qui couvre la fenêtre, et ne s'en sert que pour combler les trous : les mesures réelles priment. Aucun calcul ni aucune carte ne part avant la fin de cette lecture, bornée à vingt secondes.
02
ṽᵢ = médiane{ vⱼ : |tⱼ − tᵢ| ≤ L ⁄ 2 }, L = 3, 5 ou 10 min
Un débit réseau ou une puissance instantanée arrivent en rafales. Theil-Sen résiste à un pic isolé, pas à une série de rafales, et la courbe en tirerait des dents de scie. Sur demande, chaque mesure est donc remplacée par la médiane des mesures prises dans une fenêtre de trois, cinq ou dix minutes centrée sur elle : la médiane écarte une rafale plus courte que la moitié de la fenêtre au lieu de l'étaler sur ses voisines, et la médiane d'une droite reste la droite, sans retard. En bout de série, la fenêtre est tronquée plutôt que de décaler toute la courbe. Le réglage est désactivé par défaut.
03
pente = médiane des (vⱼ − vᵢ) ⁄ (tⱼ − tᵢ), pour toutes les paires i < j
La pente n'est pas ajustée par moindres carrés mais prise comme la médiane des pentes de toutes les paires de points. Une valeur aberrante n'entre que dans les paires qui la contiennent, donc une minorité, et la médiane l'écarte. Les moindres carrés, eux, minimisent des carrés d'écarts : un seul point fou y pèse plus que tous les autres réunis. Sur trois cents points, cela fait 44 850 paires, quelques millisecondes.
04
σ = 1,4826 × médiane( |rᵢ − médiane(r)| ), avec rᵢ = vᵢ − (a + b·tᵢ)
Le bruit est mesuré sur les écarts à la droite, pas sur les valeurs brutes : une montée franche n'est pas du bruit. On emploie l'écart absolu médian, que le facteur 1,4826 ramène à un écart-type. Un plancher le protège d'un piège : sur un capteur quantifié, un anémomètre en kilomètres-heure entiers par exemple, plus de la moitié des écarts peuvent être identiques et l'estimation tomber à zéro. Le bruit ne peut donc pas être annoncé plus fin que la moitié du pas du capteur.
05
σ_pente = σ ⁄ ( √n × σ_t ) × 3600
Le bruit d'une mesure n'est pas le bruit de la pente. Plus les points sont nombreux, plus la pente est sûre, d'où la racine de n ; et plus ils sont étalés dans le temps, plus elle l'est aussi, d'où l'écart-type des horodatages au dénominateur. Dix mesures prises en une minute disent beaucoup moins d'une tendance que les mêmes dix étalées sur une heure.
06
zone morte = k × σ_pente, avec k = 3 par défaut
En deçà de trois fois son incertitude, une pente ne se distingue pas du bruit : l'app annonce « stable » plutôt que d'inventer un mouvement. Le facteur se règle, et il peut être remplacé par un seuil fixe en unités par heure quand on sait ce qu'on cherche.
07
fiabilité = min( 100 ; 50 × |pente| ⁄ (k × σ_pente) )
Elle dit de combien la pente dépasse son propre bruit, et rien d'autre. Cinquante signifie que la pente vaut exactement la zone morte, cent qu'elle en vaut le double. Une pente franche sur un capteur bruyant peut donc être très fiable, et une pente minuscule sur un capteur précis ne pas l'être.
08
v̂ = a + b·t_dernier · prévision = v̂ + b × horizon · échéance = (seuil − v̂) ⁄ b
Les deux partent de la valeur du modèle au dernier instant, jamais de la dernière mesure brute : extrapoler depuis un point bruité propagerait ce bruit. L'échéance vers un seuil rend une valeur vide dans les trois cas où un chiffre mentirait, à savoir une pente dans la zone morte, un seuil déjà franchi ou situé du mauvais côté, et une échéance au-delà de vingt-quatre heures, distance à laquelle la pente aura changé plusieurs fois.
09
changement retenu si confirmé 2 fois de suite ET direction précédente tenue ≥ 300 s
C'est la seule chose qui empêche un volet de battre autour de son seuil. Un changement de direction n'est retenu qu'après deux confirmations consécutives, et seulement si la direction précédente a tenu au moins cinq minutes. Les deux conditions sont exigées ensemble.
10
fenêtre coupée en deux, chaque moitié ajustée ; signes opposés et hors zone morte → pic ou creux
Une droite unique ne voit pas un sommet : elle le moyenne. La fenêtre est donc coupée en deux moitiés, chacune ajustée séparément, chacune devant compter au moins quatre points. Si les deux pentes sortent de la zone morte et sont de signes opposés, l'app annonce un pic quand la première montait, un creux quand elle descendait.
Homey écrit une automatisation en trois temps : quand quelque chose arrive, et si telle condition est vraie, alors fais ceci. Ce qui apparaît sur fond clair, comme rayon, est un paramètre que vous réglez dans le Flow. Chaque condition existe aussi à la forme négative, Homey la retourne d'un clic.
Quand 5
Et 4
Tendances des capteurs 1.1.0 ajoute un widget Historique et rend la tuile Tendance plus calme.
Modifiez un Dashboard, ajoutez un widget et choisissez Tendances des capteurs, puis Tendance ou Historique. Choisissez l'appareil de tendance dans la liste (vide, le premier s'affiche), la période et le style pour Historique, puis un fond : bleu profond, ardoise, prune, forêt ou sable.
L'app est disponible en anglais, néerlandais, allemand, français, italien, espagnol, danois, norvégien et suédois.