Le bug de l'an 2026 : lorsque Jeedom refuse de vivre dans le futur

l'odyssée de l'erreur DateTime

Mon aventure dans la domotique a commencé il y a plus de seize ans maintenant. Les débuts ont été chaotiques. On naviguait entre différents protocoles qui ne se parlaient pas vraiment, des solutions fermées qui nous enfermaient chez un fabricant, et des alternatives ouvertes qui promettaient plus de liberté. C'était le far west. Quand Jeedom a débarqué quelque part en 2014 (l'année exacte m'échappe), j'ai sauté sur l'occasion et basculé complètement vers cette solution. Aucun regret à ce jour puisque je continue à l'utiliser.

Ma box précédente venait de chez Fibaro. Si je devais trouver une comparaison, je dirais que Fibaro est un peu le Apple du monde de la domotique. La présentation était impeccable, tout était pensé dans les moindres détails, et au premier contact, l'interface vous séduisait. Mais cette ressemblance avec Apple allait au-delà de l'esthétique soignée. L'écosystème était tout aussi verrouillé, ce qui nous liait pieds et poings à la marque. Chaque évolution, chaque nouveau capteur, chaque scénario qui déviait un tant soit peu du standard imposé devenait un parcours du combattant. Vous vouliez rester dans les clous ? Parfait, ça fonctionnait nickel. Mais sortir des rails, explorer des possibilités plus avancées ? Là, c'était une autre paire de manches. Maintenant, je suis moins l'actualité du secteur, donc il est possible que Fibaro ait ouvert davantage son système depuis. Ou peut-être pas.

Je reconnais que cette introduction s'éloigne du sujet principal, à savoir le bug que je vais vous détailler. Mais je voulais d'abord planter le décor et expliquer ce qu'est Jeedom dans l'écosystème domotique. Un point mérite d'être souligné car il prendra tout son sens plus tard : Jeedom est une solution open source.

Chéri, tu as remarqué ? Les volets sont restés fermés.

Le 1er janvier au matin, réveil tardif après la soirée du 31. Ma femme remarque que les volets sont restés fermés. Je réponds un vague "oui" sans vraiment écouter, ce fameux mode automatique que ma chérie me reproche régulièrement. Finalement, vu la grasse matinée qu'on s'offrait, c'était peut-être aussi bien comme ça. Notre chienne n'aurait pas manqué de nous réveiller en réclamant sa promenade matinale si la lumière du jour avait envahi la chambre.

Le soir venu, rebelote. Les volets refusent de se fermer. Mais là encore, je ne creuse pas vraiment le problème, persuadé que tout rentrera dans l'ordre le lendemain. Optimisme béat.

Sauf qu'aujourd'hui, le 2 janvier, on se réveille dans la pénombre. Les volets sont toujours obstinément fermés. Je n'ai plus le choix, il va falloir mettre les mains dans le cambouis.

Je me connecte à l'interface de Jeedom et repère assez vite l'anomalie dans les logs. Un chiffre anormalement élevé attire mon attention, accompagné d'un message d'erreur sans équivoque : Erreur sur scenario::check() : Object of class DateTime could not be converted to string. Quelques recherches sur Internet me mènent vers un post du forum de la communauté. La solution semble simple, soit appliquer un patch manuel, soit passer à la toute dernière version qui corrige justement ce bug, la 4.5.2.

J'avoue que je n'étais pas vraiment à jour sur ma version de Jeedom. Je tournais encore sur la 4.4.19. Mais j'avais confiance et surtout, j'avais pris soin de faire des sauvegardes quotidiennes au cas où. Le pire qui puisse arriver restait gérable. J'en profite donc pour mettre à jour Debian en parallèle, je redémarre le système et lance la mise à jour de Jeedom vers cette fameuse version qui corrige le problème.

Tout se passe sans accroc. J'en profite pour mettre à jour les dépendances du plugin Zwave pendant que j'y suis, puis je redémarre Jeedom par précaution. Une fois le système relancé, plus aucun message d'erreur ne s'affiche. Le problème est bel et bien résolu et j'ai désormais une installation parfaitement à jour. Je dois dire que je suis bluffé par deux choses. D'abord la stabilité du processus de mise à jour, ensuite la rapidité avec laquelle un correctif a été développé et déployé. C'est précisément là que réside la force d'une solution open source.

L'équipe de Jeedom a réagi en un temps record, tout comme la communauté. Chapeau à eux !

Une transparence exemplaire de la core team sur le bug

L'équipe centrale de Jeedom a réagi en un temps record. Le 1er janvier, un article détaillé sur l'incident était déjà publié sur leur blog. On ne peut pas être plus rapide.

Ils encouragent évidemment les utilisateurs à passer sur la version 4.5.2 pour régler définitivement le problème. Cela dit, ils sont conscients que mettre à jour son système domotique le jour de l'an n'est pas forcément dans les priorités de chacun. Pour ceux qui préfèrent attendre, une solution de contournement existe : il suffit de désactiver temporairement la vérification de date dans les paramètres de Jeedom.

L'origine du bug est maintenant connue. Tout vient d'une vérification de date qui était mal configurée, limitant la plage valide entre 2020 et 2026. Dès que le système sortait de cette fenêtre temporelle, Jeedom bloquait purement et simplement certains mécanismes internes critiques pour son fonctionnement.

C'est ce contrôle défectueux qui a provoqué toute la pagaille. On se retrouve face à du code legacy typique, cette fameuse dette technique que tous les développeurs connaissent et appréhendent.

Que retenir ?

Au final, cette mésaventure aura duré moins de quarante-huit heures. Un bug qui aurait pu s'éterniser pendant des jours s'est résolu rapidement grâce à la réactivité de l'équipe et de la communauté. C'est précisément dans ce genre de situation qu'on mesure la valeur d'une solution open source. Le code est accessible, les développeurs peuvent identifier le problème sans attendre qu'une entreprise daigne publier un correctif cryptique, et la communauté peut contribuer activement à la résolution.

Cette histoire me conforte dans mon choix d'avoir quitté l'univers fermé de Fibaro il y a maintenant plus de dix ans. Avec Jeedom, je sais que je ne suis jamais seul face à un problème. Les forums fourmillent de gens compétents et l'équipe de développement reste à l'écoute. Certes, le bug n'aurait jamais dû se produire, ce code legacy avec sa limite temporelle en 2026 aurait mérité d'être identifié plus tôt. Mais dans l'absolu, aucun système n'est parfait.

Ce qui compte vraiment, c'est la manière dont on réagit quand ça coince. Et de ce côté-là, Jeedom a largement assuré. Mes volets fonctionnent à nouveau, mon installation est à jour, et j'ai même gagné quelques améliorations au passage en migrant vers la dernière version. Pas si mal pour un début d'année finalement.

Je me note au passage de faire un article sur Jeedom car j'ai pas mal de recul maintenant.

Et pour conclure : ce bug aura eu le mérite de nous offrir une grasse matinée involontaire. Merci le code legacy !

Plus d'informations