Bah aller, go pour expliquer tout ça
TLDR; (très) long post sur comment intégrer une sonde de cuisson dans HA, et développer une intégration home assistant en vibecoding afin de l'y intégrer proprement
https://github.com/machintrucbidule/assistant-cooker
Le point de départ c'est que j'avais cette sonde de cuisson :
Un truc basique : une sonde, un cable de 50cm, et un boitier avec un écran qui affiche la température de la sonde, température de consigne, et sonne lorsque cette dernière est atteinte.
Déjà le truc déconnait, mais en plus le cable en "acier" tressé est chiant à ranger, j'en ai déjà niqué plusieurs en les nettoyant (flotte qui passe autour du cable et rentre dans la sonde).
Et puis ç'est pas ultra pratique. Les températures qui sont données pour les aliments, sont celle que l'aliment doit atteindre, au delà c'est trop cuit.
Dans le cas d'une cuisson rapide (forte chaleur), la température interne va continuer à monter après sortie du four, et ça va donc surcuire, et il faut manuellement adapter le bon moment pour sortir le plat.
Et dans le cadre d'une cuisson longue (genre roti de bœuf en cuisson basse température c'est 2 à 3h), il faut régulièrement aller dans la cuisine pour checker la température, et tenter d'estimer l'heure de fin pour que les plats soient prêts en même temps, etc...
Et bon, c'est pas que je m'en serve tous les jours (ni même toutes les semaines), mais à chaque fois je me dis qu'il faudrait que j'en change.
Comme maintenant dès que j'achète un quelconque appareil j'essaie de privilégier des versions qui pourront s'intégrer à HA, je me suis renseigné sur le game des sondes de cuisson
Bon, ça a été assez rapide, y'a pas grand chose, et y'a que la marque Meater qui a retenu mon attention : sondes sans fil, 100% compatible HA via une intégration (mais qui utilise le cloud meater), et peut-être moyen de s'y connecter en local (à confirmer, mais au pire reste la solution cloud).
En soit l'appli officielle répondrait à mon besoin, sauf que moi je suis particulièrement con, et je veux que tout soit dans HA, et idéalement en local
Pour la compatibilité avec HA on a vu que c'était bon, au mieux en local au pire par le cloud constructeur, mais pour l'intégration HA qui permet de calculer le temps restant, notif de fin de cuisson, etc... ou la carte pour afficher les valeurs, j'ai rien trouvé qui fasse réellement l'affaire.
Mais vu que pour un autre projet, j'ai réussi à faire développer une intégration custom esphome en full vibe coding, par la version web de claude qui me générait des packages .zip, je me suis dit que j'allais faire pareil mais en découvrant avec cette fois l'ia directement intégrée dans l'éditeur de code (Claude code dans Visual studio code). Ca permet d'apprendre à la fois à utiliser ce genre d'IA, me développer un truc "utile", et (relativement) simplement découvrir comment une intégration HA est faite, et derrière être plus à l'aise si je veux faire un truc plus sérieux de la même façon.
Et c'est comme ça que je me suis lancé là-dessus y'a genre 2 semaines, en passant de vouloir changer ma sonde de cuisson à 15€, à finir par acheter la sonde Meater la "moins cher" (Meater SE, 85€) et apprivoiser une IA pour développer une intégration HA
Si jamais y'a d'autres cons, c'est ce modèle que j'ai acheté : https://www.amazon.fr/dp/B0D2LQGJ2V
Ca se présente donc comme une sonde sans fil, avec sa base (en plastique noir pour moi) qui contient une pile (les versions les plus chères ont une batterie à la place je crois).
Lorsque la sonde est dans sa base, elle se charge, lorsqu'elle est sortie elle se connecte en bluetooth à un téléphone ou tablette, qui via l'appli meater synchro les données sur le cloud meater (enfin, ça c'est la théorie). Une fois insérée dans le truc dont on veut monitorer la cuisson, y'a que 4/5cm de la sonde qui dépasse. Et la base elle-même est aimantée, et peut donc se foutre sur le frigo, ou n'importe quelle paroi métallique à proximité du four.
Ca c'est l'intégration HA qui permet de récupérer les données par le cloud meater, qui a le mérite d'exister. Mais c'était la solution de secours, parce que j'avais surtout vu qu'en bidouillant y'avait peut-être moyen de tout garder en local. Avec un esp32 qui se connecte à la sonde, et reporte les valeurs à esphome puis HA. Donc pas besoin du bordel par le cloud meater.
C'est du full bluetooth, donc rien besoin de plus qu'un esp32 (compatible bluetooth ble, et ça peut en être un à proximité et qui sert déjà pour autre chose), après c'est juste de la config yaml https://gist.github.com/MortenVindi [...] 2257b3cabc
J'ai donc tenté ça, j'ai eu la même erreur que celle mentionnée plus bas sur le lien github. Mais c'était juste une histoire de "service uuid" qui n'étaient pas les bons. J'avais laissé les explications en bas si l'un de vous veut tenter
Et faut aussi penser à bien mettre l'adresse mac de la sonde dans la config du yaml
(suffit de scanner les periph blutooth avec une appli comme "DSD TECH Bluetooth" sur android (ou acheter l'équivalent sur iphone
), sortir la sonde du boitier, dans l'appli identifier le périph "MEATER_SE" et y récupérer l'adresse mac associée)
J'ai rajouté cette config sur un esp32 qui était déjà dans la cuisine, et hop dès que la sonde est sortie de son boitier, elle se connecte à l'esp, et celui-ci reporte la température de la sonde (la pointe), celle ambiante (la queue de la sonde, donc température du four/barbecue/air fryer/whatever), batterie restante (bon j'ai jamais vu au-delà de 80%) et niveau de réception.
Et hop, sonde de cuisson intégrée dans HA en full local
J'ai même pas installé l'appli Meater sur mon téléphone, ni même créé de compte
Et vu que c'est en full local, au-delà de l'aspect fiabilité (pas besoin de connexion internet, ou que meater maintienne son cloud sans changer les api), les refresh de température sont aussi censés être plus rapides (pas forcément plus fréquents, mais plus rapides).
Maintenant reste le vrai gros morceau et l'intégration vibecodé, je vous présente donc mon intégration Assistant Cooker, sur laquelle je n'ai pas écrit la moindre ligne de code et traduite en 21 langues alors que j'en parle 1,5
https://github.com/machintrucbidule/assistant-cooker
L'intégration n'affiche pas encore d'icone parce qu'il faut la pousser sur un repository qu'il y a une validation, et ça prend plusieurs semaines. Mais bien entendu, l'icone a elle aussi été purement générée par une ia
Bref, je vous passe le compte rendu du dev, mais c'est à la fois ultra impressionnant et très frustrant. Même en essayant de passer du temps à spécifier/architecturer, en lui demandant de tracer ça dans des fichiers, etc..., ça fini toujours par oublier une partie du contexte, et générer des effets de bord.
Mais mine de rien je trouve ça fou, autant j'ai développé dans tout un tas de langage, autant ça fait quasi 10 ans que je dev plus, et j'ai jamais touché à du python. Et pourtant en 2 semaines j'ai une intégration HA fonctionnelle (à peu près, ça manque de tests
) !
A partir du moment où on comprend comment fonctionne le code, on peut parfois challenger l'ia, identifier certaines dérives, demander à améliorer l'architecture, etc... Et à force de prompts, et même si régulièrement ça créé d'autres problèmes autour, on arrive à faire des trucs assez impressionnant je trouve
En gros les grosse étapes par lesquelles je suis passé :
- j'ai expliqué comment je voulais que ça fonctionne, puis ça a écrit des specs, que j'ai revu, modifié, etc..
- puis ça a généré un plan, qui a été exécuté étape par étape : la structure pour l'intégration hacs, celle de l'intégration elle même, puis le frontend, etc...
- une fois les structures de fichiers créé, ça créé les premiers templates, les a remplis petit à petit
- régulièrement je testais, identifiais des bugs, que je faisais corriger, jusqu'à ce que la fonctionnalité soit ok (ainsi que les trucs que ça pète autour souvent
)
- etc...
A noter que ça a l'air de nécessiter énormément de ressources. Malgré un abonnement à 20€/mois ça marche par sessions de 5h. Et en genre 5 prompts bien costauds qui en tout s'exécutent en moins d'1h y'a moyen de bouffer la session entière. Et y'a aussi une limite hebdo en plus, qui elle peut facilement être atteinte en 2/3j)
Bref, j'ai foutu ça sur le github que je linkais plus haut, et c'est disponible via hacs (faut rajouter le repo).
Suffit de l'installer, créer un nouvel appareil Assistant Cooker qui prend en paramètre les sensors de la sonde (pas testé avec d'autres type de sonde, mais ça devrait marcher pareil, sachant que seule la température de la sonde est obligatoire. Mais la température ambiante (à l'intérieur du four) permet d'affiner le calcul de temps restant, si pas de batterie ou niveau de signal c'est pas affiché)
Et on peut choisir d'être notifié sur HA, son mobile ou assistant vocal (ça marche avec Alexa, pas essayé d'autres)
Et ensuite, il suffit de rajouter la carte Assistant Cooker sur le dashboard.
Lorsque la sonde est déconnectée ça affiche la carte telle qu'on la voit sur la config au-dessus (veuillez connecter la sonde).
Lorsqu'elle est connectée (sortie du boitier):
De là on peut choisir des aliments parmi toute une liste de viandes/morceaux/type de cuisson, ou définir une température manuelle.
Y'a pas mal de choix dans la liste d'aliments, ça doit couvrir la plupart des cas. Et au départ l'ia m'avait foutu des températures super élevées qui devaient probablement venir de sources usa, je lui ai demandé de revoir récemment pour récupérer des températures adaptées aux gouts des français
Y'a aussi une option pour activer/désactiver le calcul de compensation thermique:
Puis lorsqu'une cuisson démarre:
Au bout d'un moment le temps de cuisson est correctement estimé (ça affiche encore des valeurs trop élevées sur les 3/4 1ères minutes de cuisson, mais ça a l'air pas trop mal après) :
Au niveau du graph (qui déconne encore sur la gestion de l'échelle
)
En bleu la sonde, puis en pointillé projection de la courbe de température estimée
En rouge la température cible
Et en orange la température ambiante (on voit le four qui régule, mais c'est sur une autre échelle)
Et une fois arrivé à la fin (ou un peu avant si compensation thermique activée - par exemple dessous ça calcul 64,9° pour une cible à 69, y'avait un bug sur le champ avec la température cible, je viens de le corriger
), ça déclenche une notif.
Et après quelques minutes hors du four
(bon, c'est monté jusqu'à 72°, ça aussi faudrait revoir
)
L'intégration rajoute aussi tout un tas d'entités qui pourraient être utilisées dans d'autres cartes, ou pour des automatisations
Y'aurait encore plein de trucs à corriger ou améliorer (modifier la gestion des notif pour que ça puisse se gérer depuis la carte, pouvoir activer une notif pour penser à retourner à mi cuisson si nécessaire, etc…) mais là j'ai la flemme.
Bref, là ça marche assez bien pour moi comme ça, le temps passé là-dessus VS combien de fois par an j'utilise une sonde de cuisson est complètement ridicule, mais mener ce petit projet m'a bien fait kiffer, et j'ai appris plein de choses
Et si jamais ça peut aussi donner des idées, ou servir, à d'autres !
Ah, et ... non. Ce post lui n'a pas été généré par une ia, je me suis bien fait chier à tout le taper