[Partage] Intégration d'un spa Intex PureSpa (modèle au sel) dans Home Assistant via Tuya Local

Salut à tous,

Petit retour d'expérience sur l'intégration de mon spa Intex PureSpa dans Home Assistant. J'ai pas mal galéré au début et je n'ai trouvé aucun tuto complet sur ce modèle, donc je me dis que ça peut servir à d'autres

Le matériel

C'est un Intex PureSpa carré, version au sel (électrolyseur intégré). Le boîtier de commande porte la référence SB-HSWF20-2. Comme beaucoup de produits Intex récents, il est en fait piloté par une puce Tuya, ce qui ouvre la porte à une intégration locale


La galère de départ

Premier réflexe, l'appli officielle Intex Link. Elle fonctionne, mais impossible de la relier proprement à Home Assistant. J'ai tenté la voie classique du portail développeur Tuya IoT (scan du QR code pour récupérer l'appareil), et là mur complet : QRCode expired, pas d'accès au device, peu importe le data center choisi

Au bout de plusieurs essais j'ai laissé tomber Intex Link. Ce qui a tout débloqué : ajouter le spa dans l'appli Smart Life à la place. À partir de là tout est devenu possible

L'intégration via Tuya Local

J'utilise Tuya Local (le HACS de make-all : GitHub - make-all/tuya-local: Local support for Tuya devices in Home Assistant · GitHub), qui pilote les appareils Tuya en local, sans dépendance au cloud une fois configuré. La mise en place se fait avec la connexion assistée par le cloud Smart Life : on se connecte avec le code utilisateur Smart Life et la clé locale est récupérée automatiquement

Le spa parle en protocole 3.4. Une fois la clé locale en main, tout passe en LAN, aucun appel cloud pour le piloter au quotidien

Le décodage des DP

Là où ça se corse : aucun profil n'existait pour ce modèle. Il a fallu décoder les data points (DP) à la main, en croisant les logs locaux avec ce que je voyais sur le panneau et dans Smart Life. Ce que j'ai fini par trouver :

  • 104 : alimentation
  • 106 : filtration
  • 107 : bulles
  • 103 : assainissement (électrolyse au sel)
  • 108 : chauffage (on/off)
  • 109 : consigne de température
  • 110 : température actuelle
  • 114 : minuteur

Piège à connaître : le spa rapporte les températures en Fahrenheit. Il faut donc déclarer l'unité en °F dans le profil, et Home Assistant fait la conversion en °C

Contribution au dépôt

Plutôt que de garder ça dans mon coin, j'ai proposé le profil de l'appareil directement au dépôt de Tuya Local (GitHub - make-all/tuya-local: Local support for Tuya devices in Home Assistant · GitHub). Après une revue du mainteneur (passage en water_heater vu que l'appareil ne fait que chauffer, et clés de traduction pour le minuteur et l'électrolyse), la PR a été mergée. Résultat, le spa est maintenant reconnu nativement : si vous avez ce modèle, vous l'aurez en quelques clics sans rien décoder

Côté Home Assistant on récupère :

  • une entité water_heater (consigne, température, mode de fonctionnement)
  • des switch pour l'alimentation, la filtration, les bulles et l'électrolyse
  • un capteur pour le minuteur

Les automatisations

C'est la partie que je trouve la plus intéressante. L'objectif : que le spa se gère seul et soit chaud quand j'en ai besoin, sans chauffer pour rien

  • Préchauffe adaptative : l'automatisation calcule le temps de chauffe nécessaire en fonction de la température de l'eau et de la météo extérieure (via l'intégration Météo-France) pour atteindre 35°C pile à l'heure voulue. Pas de chauffe à vide
  • Coupure le soir, avec un garde-fou un peu plus tard dans la nuit au cas où le chauffage aurait été relancé à la main
  • Préchauffe le matin le week-end, puis arrêt une fois la température atteinte (l'eau plane ensuite toute seule avec le soleil)
  • Maintien de la filtration : le spa a un minuteur interne de 2h qui coupe la pompe automatiquement, donc HA réenclenche la filtration régulièrement sur la plage voulue, avec une pause le matin
  • Sécurités : protection hors-gel l'hiver, alerte si le chauffage tourne longtemps sans atteindre la consigne, arrêt des bulles après 30 minutes
  • Suivi de l'entretien : comptage des heures de filtration pour le rappel de nettoyage de cartouche, plus des rappels brome/pH et vidange

Un truc appris à mes dépens : en été chez moi (sud de la France), le soleil sur la couverture suffit à tenir l'eau autour de 30/31°C, et certains jours elle monte au-dessus de la consigne toute seule. La préchauffe ne se déclenche donc que si l'eau est réellement sous la cible, sinon on chaufferait pour rien

Le dashboard

Rien d'extraordinaire mais pratique au quotidien : la tuile water_heater pour piloter, un graphe ApexCharts avec température actuelle et consigne, deux jauges pour les heures de filtration et de chauffe du jour, et un compteur d'heures de filtration depuis le dernier nettoyage de cartouche avec un bouton de remise à zéro

Quelques pièges

  • Tant que votre profil n'est pas mergé, le fichier custom dans le dossier devices de Tuya Local est écrasé à chaque mise à jour HACS. Pensez à le remettre, ou figez les mises à jour le temps que ça passe
  • Si vous partez d'une config perso et passez ensuite à la version officielle, les entités peuvent changer de nom et de domaine (chez moi le climate est devenu water_heater). Prévoyez d'adapter automatisations et dashboard
  • Le spa est thermostatique : couper le mode ne suffit pas toujours, il peut reprendre la main pour tenir la consigne. Le plus fiable pour vraiment stopper la chauffe, c'est de baisser la consigne en dessous de la température de l'eau

Voilà pour le partage. Si certains ont le même spa et veulent les YAML des automatisations ou du dashboard, je peux les poster :slight_smile:

Personnellement, j'ai réussi à intégrer mon SPA dans Smart life l'année dernière.
Je l'ai mis en hivernage et depuis j'ai changé de routeur.

En remettant en service, plus rien ne fonctionne dans smartlife.
J'ai donc tenté un ré appairage en vain.

Je ne sais plus où regarder.
J'ai tenté :

L'application détecte le SPA, je vois bien l'icone du wifi qui s'arrete de clingoter puis ensuite reste allumé, mais l'appairage ne vas pas jusqu'au bout et j'ai une erreur.

salut @olivier_verstraet,

je dirais que le spa rejoint le réseau mais n'arrive pas à finir l'enregistrement côté cloud Tuya.. après un changement de box, ca me fait penser a deux causes dans 90% des cas :

le WPA3. les puces Tuya ne supportent ni le WPA3 ni le mixte WPA2/WPA3. essaie de forcer ton 2,4 GHz en WPA2-PSK (AES) uniquement, beaucoup de box récentes activent le WPA3 par défaut c'est un problème sur pas mal d'iot
l'isolation des clients (option « isolation AP » ou réseau invité) à désactiver sur le routeur

vérifie aussi que ton téléphone est bien sur le 2,4 GHz pendant l'appairage, j'ai eu ce problème pour lier le mien (si même SSID pour les deux bandes, coupe le 5 GHz le temps de l'opération) et si ça coince toujours, tente le mode AP au lieu du mode EZ : dans Smart Life, « Autres modes » puis « Mode AP », tu connectes le tel au hotspot du spa, c'est plus fiable

une fois récupéré dans Smart Life, pense à rafraîchir la clé locale dans Tuya Local (elle a sûrement changé au ré appairage)

tiens-nous au courant !

Hello @EnObliO ,

Merci beaucoup pour ces conseils et pistes.

J'ai tout essayé en vain.

  • J'étais en WPA2

  • j'ai désactivé le 5Ghz, le smart connect.

  • Isolation AP désactivé

  • j'ai tenté le mode AP même problème

C'est toujours la même problématique, détection du spa et ensuite la connexion aux serveurs Tuya n'a pas l'air d'aller au bout.

Je ne vais pas cherche plus, pour une fois je me retrouve démuni face à ce problème, mais ce n'est pas bien grave.
J'aurai voulu juste pouvoir chauffer en fonction de la production solaire, et bien la je ferai manuellement :wink:

Merci pour ton aide en tout cas !

Il doit forcément exister une solution

Bonjour, merci pour la merge request et le fichier de config intégré au dépôt officiel ! Je sais qui est l’auteur maintenant :wink:.

J’ai exactement le même modèle de SPA, donc ton fichier fonctionne bien. Par contre, cette intégration Tuya Local me semble très instable : le spa se déconnecte très fréquemment (genre 1 fois par jour). Je n’ai pas eu ce problème les autres années avec une autre intégration (LocalTuya), mais je ne pouvais plus l’utiliser car j’ai refais mon Home Assistant et j’avais pas de sauvegarde (c’était un fichier de config à la main).

Est ce qu’il y a des fonctionnalités spécifiques à activer, comme :

  • mode poll_only ?
  • intégration périodique des changements ?

Merci d’avance pour ton retour.

Hello @jolebalafre merci pour ton retour ! :blush:

De mon côté, je n'ai aucune déconnexion avec le même spa, la même config, en 3.4 et sans poll_only. Donc ce n'est pas un réglage qui te manque je dirai que le souci vient plutôt de ton réseau

le module WiFi des PureSpa Intex est assez basique et n'accepte qu'une seule connexion à la fois. Une coupure 1× par jour, ça évoque soit un autre appareil qui parle au spa, l'appli Intex/Tuya restée ouverte sur ton téléphone ou le spa encore relié au cloud Tuya

peut-être aussi que l'ip du spa change (bail DHCP) essaie de lui mettre une ip fixe / réservation dhcp. je parie là-dessus :+1:
ou un signal WiFi faible, l'antenne de ces boîtiers est médiocre ...

vérifie aussi que tu es bien en 3.4 et pas en auto

Si ça persiste malgré tout, tu peux tenter poll_only : HA arrête alors la connexion permanente et interroge le spa périodiquement, ce qui est plus tolérant si le réseau est instable. À voir comme un contournement plutôt que comme la vraie solution

Teste la réservation DHCP et tiens-moi au courant ! :wink:

Mon réseau est un wifi 2,4 GHz, le spa est sur la terrasse à 2m de ma box littéralement. J’ai bien passé le SPA en IP fixe sur mon routeur pour éviter ce type de problème justement. Et je confirme aussi le mode 3.4 (pas auto).

Par contre, quand tu dis « le spa est toujours connecté sur le cloud Tuya », c’est pas obligatoire de le laisser connecter dessus ? J’ai l’app SmartLife sur mon téléphone et je m’en sers quand il est déconnecté de HA.

J’ai d’autres appareils Tuya comme un ventilateur de plafond et il fonctionne sans problème sur HA et pourtant il est toujours dans SmartLife.

Du coup je sèche un peu, parce que j'ai exactement le même spa, même config, en 3.4, et je n'ai aucune déconnexion. Comme t'as déjà fait le tour (IP fixe, signal, protocole), le plus utile serait de regarder ce qui se passe pile au moment où ça coupe

Tu peux activer les logs de debug pour l'intégration : dans configuration.yaml

logger:
  default: warning
  logs:
    custom_components.tuya_local: debug

Et quand la prochaine coupure arrive, tu regardes les logs juste avant/pendant : ça dira si c'est le spa qui ne répond plus, une erreur réseau, ou une autre connexion qui débarque

Merci pour le tuyau, je teste ça ! Je reviendrai poster les conclusions - je l’espère - d’ici peu !