Température moyenne de la pièce: éliminer dans les calculs les valeurs en dehors des plages "normales"

Hello,
dans une pièce, j’ai 2 températures qui remontent : l’une d’un capteur classique, l’autre du module de fil pilote de radiateur qui reste tout le temps à -999°C car non utilisée.
Et je me retrouve avec une température moyenne délirante de temps en temps :

Est-ce qu’on pourrait éliminer dans les calculs les valeurs en-dessous du zéro absolu (-273,15 °C) ou une autre valeur très basse ?

Merci d’avance :grin:

Salut @mutmut,

C’est des capteurs de quelle intégration ?

1 zigbee et 1 zwavejs.

Ok, effectivement on peut éliminer les valeurs délirantes !

1 « J'aime »

Hello,
je reviens avec un check de plus à faire.
Dans ma température de Salon, j’ai une sonde zigbee, ma netatmo et mon dyson (via matterbridge).
Pour l’instant mon Dyson n’a pas de valeur (car j’ai désactivé le plugin idoïne de matterbridge) et j’obtiens ceci, avec une temp moyenne erronnée forcément :


Il y aurait moyen d’ajouter un check sur le device pour savoir si il est OK ou KO et exclure sa valuer si KO ?

Je précise que les 2 autres capteurs me renvoient 24,7°C et 25,5°C.

C’est déjà le cas, le widget « Température de la pièce » affiche une moyenne des températures reçues dans la pièce durant la dernière heure (source : Gladys/server/lib/device/temperature-sensor/temperature-sensor.getTemperatureInRoom.js at master · GladysAssistant/Gladys · GitHub).

Ton appareil KO n’enverra plus de valeur et sera exclu du calcul au bout d’une heure.

ça marche, merci pour l’info, je vais surveiller alors :slight_smile:

1 « J'aime »

J’ai travaillé sur une PR avec Claude Haiku et voici le résultat :

Par contre je n’arrive pas à lancer les tests via VSCode, j’ai des messages d’erreur de ce type et je n’y comprends absolument rien (n’étant pas dev, là j’ai vraiment du mal) :

DualStef:server stef$ pwd
/Users/stef/CloudStation/github/Gladys/server
DualStef:server stef$ npm test

> test
> cross-env NODE_ENV=test ./node_modules/mocha/bin/mocha --recursive ./test/bootstrap.test.js "./test/**/*.test.js" --exit

node:events:497
      throw er; // Unhandled 'error' event
      ^

Error: spawn ./node_modules/mocha/bin/mocha ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:285:19)
    at onErrorNT (node:internal/child_process:483:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
Emitted 'error' event on ChildProcess instance at:
    at ChildProcess._handle.onexit (node:internal/child_process:291:12)
    at onErrorNT (node:internal/child_process:483:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn ./node_modules/mocha/bin/mocha',
  path: './node_modules/mocha/bin/mocha',
  spawnargs: [
    '--recursive',
    './test/bootstrap.test.js',
    './test/**/*.test.js',
    '--exit'
  ]
}

Node.js v22.21.1
DualStef:server stef$ pwd
/Users/stef/CloudStation/github/Gladys/server
DualStef:server stef$ npm run eslint

> eslint
> eslint .

(node:82347) ESLintIgnoreWarning: The ".eslintignore" file is no longer supported. Switch to using the "ignores" property in "eslint.config.js": https://eslint.org/docs/latest/use/configure/migration-guide#ignore-files
(Use `node --trace-warnings ...` to show where the warning was created)

Oops! Something went wrong! :(

ESLint: 10.0.0

ESLint couldn't find an eslint.config.(js|mjs|cjs) file.

From ESLint v9.0.0, the default configuration file is now eslint.config.js.
If you are using a .eslintrc.* file, please follow the migration guide
to update your configuration file to the new format:

https://eslint.org/docs/latest/use/configure/migration-guide

If you still have problems after following the migration guide, please stop by
https://eslint.org/chat/help to chat with the team.

@pierre-gilles si jamais tu peux m’aider, je ne dis pas non.

EDIT :
avec l’aide de copilot, j’i pu avancer un peu :

npx prettier --write lib/device/temperature-sensor/temperature-sensor.getTemperatureInRoom.js

Il manquait une virgule d’après ce que j’ai vu … mais ça ne change rien :

Merci d’avoir testé d’aider avec l’IA !

Attention avec Claude Haïku, c’est un vieux modèle qui est peu performant et pas très intelligent :sweat_smile:

Comparaison avec Claude Opus 4.6 :

Pour faire tourner prettier, il faut lancer « npm run prettier » dans le dossier server :wink:

Haïku 4.5, c’est github et vscode qui propose en free alors je prends, je n’ai pas de compte payant.
Et il faut l’aider un peu mais le résultat était pas mal je trouve.

Je l’avais fait déjà aussi et ça n’avait pas fonctionné … et maintenant ça marche mais ça a modifié 81 fichiers, c’est normal ? :roll_eyes:
Je dois faire quoi ? valider et commit ?

EDIT : bon j’avance doucement, j’ai discard tout et modifié mon fichier seulement. Maintenant c’est eslint que je dois retravailler.

EDIT2 : j’arrive à la fin de ma débrouillardise :grimacing:
Tout passe maintenant (prettier, eslint) sauf codecov/patch
D’après ce que j’ai demandé à Perplexity, il faudrait que j’ajoute des tests spécifiques dans le fichier server/test/lib/device/temperature-sensor/temperature-sensor.test.js.
J’ai regardé et je ne sais absolument pas ce que je dois y mettre comme code pour tester mes ajouts malgré le fait que je vois bien qu’il y a des tests déjà en place mais qui ne correspondent pas à ce que j’ai ajouté dans l’autre fichier.
Bref je veux bien un coup de main sur cette partie, merci d’avance.