Remy Porter de The Daily WTF a examiné un projet open source de domotique qui connecte les pompes à chaleur mini-split, généralement pilotées uniquement par télécommande IR, aux installations domestiques. Dans le code, il a trouvé une fonction de conversion de température implémentée comme une table std::map plutôt que comme une formule.
Utiliser un float comme clé de map invite déjà les erreurs d'arrondi, mais la table elle-même est fausse. Elle associe 18,0C à 65F, alors que 18C vaut en réalité 64,4F. La table progresse de 0,5C par degré Fahrenheit, ce qui ne correspond pas au facteur de conversion, et elle saute 19,5C, apparemment pour corriger la dérive. La conversion inverse, Fahrenheit vers Celsius, peut dévier d'un degré Celsius entier, une différence perceptible.
Porter a d'abord cru à une optimisation malavisée. Puis il a lu le commentaire : les correspondances viennent directement de la télécommande. Quand l'écran affiche 72F, la télécommande envoie en fait 22,5C à l'appareil.
Sa théorie : le microcontrôleur de la télécommande gère mal les nombres flottants, donc le fabricant a codé en dur une table d'approximations jugées suffisantes. Comme peu de marchés utilisent le Fahrenheit, à peu près juste a été considéré acceptable. Son verdict : le WTF n'est ni le projet amateur ni la télécommande, mais les régions attachées à leurs unités exotiques.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.