J’ai différentes prises connectées Zigbee et Zwave qui relèvent des consommations d’énergie pour toute une partie d’équipements. Avec l’intégration PowerCalc, j’ai créé des groupes afin de rassembler les informations de consommation par grande famille afin de les faire apparaitre dans le tableau de bord énergie (ex : chauffage, electroménager, multimédia, etc).
Malheureusement, certains groupes remontent des infos aberrantes que j’ai essayé de corriger en créant des sensors de type filter mais que je n’arrive pas à configurer correctement.
Voici un exemple de sensor filter tel que je l’ai configuré :
- platform: filter
name: "Chauffage ECS Energie"
entity_id: sensor.chauffage_ecs_energy
unique_id: filter.chauffage_ecs_energy
filters:
- filter: outlier
window_size: 5 # Moyenne calculée sur les 10 dernières valeurs
radius: 2.0 # Tolérance pour détecter les anomalies
Et voici un exemple d’aberration sur un sensor « groupe »
Vu qu’il s’agit de compteurs qui cumulent des valeurs (avec des valeurs incroyablement élevées à force des erreurs de relevés) mais que les consommations sont mesurées sur des intervalles de temps (5 minutes), je ne suis pas arrivé à trouver une réponse claire à ce type de situation.
Il me semble que les tests devraient se faire sur la variation entre 2 mesures mais je n’arrive pas à trouver la bonne formulation.
En vous remerciant pour votre aide,
Ma configuration
]## System Information
version
core-2025.2.1
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.13.1
os_name
Linux
os_version
6.6.73-haos
arch
x86_64
timezone
Europe/Paris
config_dir
/config
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
HACS Data
ok
GitHub API Calls Remaining
4993
Installed Version
2.0.5
Stage
running
Available Repositories
1522
Downloaded Repositories
36
Home Assistant Cloud
logged_in
true
subscription_expiration
October 5, 2025 at 2:00 AM
relayer_connected
true
relayer_region
eu-central-1
remote_enabled
true
remote_connected
true
alexa_enabled
true
google_enabled
true
cloud_ice_servers_enabled
true
remote_server
eu-central-1-9.ui.nabu.casa
certificate_status
ready
instance_id
87a99d5c304e40439ec4e209a6647f0b
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 14.2
update_channel
stable
supervisor_version
supervisor-2025.02.0
agent_version
1.6.0
docker_version
27.2.0
disk_total
30.8 GB
disk_used
15.6 GB
healthy
true
supported
true
host_connectivity
true
supervisor_connectivity
true
ntp_synchronized
true
virtualization
kvm
board
ova
supervisor_api
ok
version_api
ok
installed_addons
Samba share (12.4.0), Let’s Encrypt (5.2.12), motionEye (0.21.0), Studio Code Server (5.18.1), Glances (0.21.1), SQLite Web (4.3.0), Advanced SSH & Web Terminal (20.0.0), Portainer (2.26.1), Whatsapp (1.5.0), Linky (1.5.0), Log Viewer (0.17.1), Matter Server (7.0.0), ZeroTier One (0.19.0), File editor (5.8.0)
Je me permets de relancer car je suis intéressé également par la solution… j’ai des Qubino qui me permettent de suivre des consommations et il arrive qu’ils remontent des valeurs délirantes. Je leur pardonne, mais j’aimerais que cela ne fausse pas mes calculs/graphiques ensuite.
@armavi
Bonjour, désolé de répondre si tard, je n’avais pas eu ou reçu de notification de réponse.
Mon pb, c’est qu’il s’agit de valeurs de type compteurs energie en kwh. Je ne sais pas comment mettre un filtre qui éviterait des augementations incohérentes du compteur.
C’est un peu comme si un compteur kilométrique d’une voiture passait en 5 minutes de 12345 km à 98765 km. Comment filtrer, un compteur kilométrique peut très bien atteindre ces valeurs. Mon pb c’est la variation qui est incohérente et qu’il faudrait rectifier. Je le fais manuellement mais ce n’est pas très pratique, si on a n valeurs incohérentes à corriger, il faut faire la manip dans les statistiques autant de fois (n recherches dans les stats des valeurs aberrantes).
Hello,
Le filtre outliner est justement fait pour filtrer les valeurs aberrantes. Je l’utilise avec succès mais il faut que les valeurs aberrantes ne soient que ponctuelles.
Le filtre considère les n dernières valeurs, n étant fixé par le paramètre window_size (6 dans mon exemple).
Si l’écart entre la valeur mesurée et la moyenne des n dernières valeurs est supérieure à un seuil fixé par le paramètre radius, alors le filtre retourne la précédente valeur mesurée.
Autre solution que j’utilise avec succès dans certains cas ou outliner n’est pas suffisant : utiliser un template dédié avec ses propres règles :
Dans cet exemple, on prend la valeur mesurée si elle est inférieure à 1000, le précédente valeur autrement. Ainsi, toute valeur considérée comme aberrante car supérieure à 1000 serait filtrée. Mais le code peut introduire des règles plus complexes et impliquer par exemple d’autres entités pour des règles plus complexes…
@armavi.
Je viens de voir ta réponse, merci, je vais la lire en détail. je ne comprends pas pourquoi je n’ai pas reçu la notification alors que je surveille le sujet. Rien dans mes spams non plus.