Tuya : Intégration chauffage et climatiseur

Description

Je voudrai pouvoir avoir le contrôle sur ces appareils contrôlant le chauffage par le biais du wifi et du contrôleur Tuya. Ces appareils fonctionne sur home assistant mais ne sont pas encore pris en charge sur Gladys.

Les climatiseurs ont été installés par un professionnel. Ils sont de la marque Thermor. L’appli Thermor n’est pas compatible avec Home-Assistant. Mais le pont Tuya détecte les splits en tant que marque d’origine Haier.

Le eCosy contrôle le seul radiateur qui est mis en fonction chez moi. Je l’ai acheté avant de connaître Home-assistant et zigbee.

Merci pour votre aide.

Salut @Papashultz,

J’ai justement besoin également de Tuya. Je viens d’installer 2 climatiseur Airton + 1 Thermostat fil pilote qui passe par Tuya. J’ai en effet pu installer assez facilement cela dans HA, et ce en local (enfin annoncé comme tel, mais il faut tout de même se connecter via le cloud).

Je pense regarder cela prochainement pour modifier l’intégration actuelle et réussir à me connecter.

1 « J'aime »

Bon j’arrive maintenant à me connecter :

Les erreurs connues remontent :


Les appareils sont bien directement remontés avec la local_key et l’id :

Et pour ceux implémentés, s’ajoutent bien :

J’essaierais dans la prochaine PR d’ajouter les climatisations et fils pilote

1 « J'aime »

Bonjour,

J’ai un premier jet pour l’intégration TUYA pour la mise à jour de la configuration du compte Tuya. J’y ai notamment modifier le nom des champs avec les noms correspondant au site web. J’ai caché le « Client Secret » comme pour les mots de passe. Et j’ai ajouté des informations pour le renouvellement des périodes de test (qui est renouvelable au max pour 3 mois mais totalement gratuit et généralement pris en compte quelques minutes après la demande).
Cette mise à jour intègre également la base pour la communication locale (plus de cloud). La gestion des switch est fonctionnelle en local.
La PR :

Dans une future PR j’y ajouterais les appareils comme vu précédemment.

PS :
@pierre-gilles, j’ai toutefois une galère pour la version de protocole 3.5 de Tuya. Je ne trouve pas de projet Node JS pour ce protocole. Il n’y a visiblement que TinyTuya qui le fait, et c’est en Python. Je ne trouve pas de projet maintenu en ce sens (le protocole 3.5 n’est pas tout jeune, + de 3 ans).

ChatGPT me donne 2 possibilités :

  • Redévelopper nous même une gestion du protocole comme le fait « TinyTuya » en node JS, mais il faudra le maintenir par la suite
  • Intégrer à côté de Gladys la gestion de Python pour installer TinyTuya… Je ne pense pas que ce soit ton souhait …

Aurais-tu une solution pour cela ?

Si des possesseurs d’appareils Tuya passent par là je serais interessé d’avoir des retours sur une image test. Pour cette connexion cloud / local, ainsi que pour les futures ajouts.
Une image est en cours de build : docker pull terdious/gladys:tuya-test :

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-tuya-test \
-e NODE_ENV=production \
-e SERVER_PORT=81 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-tuya-test.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
terdious/gladys:tuya-test

Bonjour,

Je veux bien tester, mais je le mets en place par l’intermédiaire de Portainer. Si vous me confirmez que ma stack est bonne, je le teste dès que j’ai le retour de votre message.

services:
  tuya-test:
    image: terdious/gladys:tuya-test
    container_name: tuya-test
    restart: always
    privileged: true
    network_mode: host
    environment:
      NODE_ENV: production
      SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-tuya-test.db
      SERVER_PORT: 81 #le port de gladys est 83 chez moi,faut-il que je change ?
      TZ: Europe/Paris
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/gladysassistant:/var/lib/gladysassistant
      - /dev:/dev
1 « J'aime »

Bonjour @Papashultz ,

Ta stack semble bonne et correspond à ma commande.

Non, au contraire, le but ici est de tester sur une session à côté de ta prod. Pas besoin de couper ta prod. Vérifie juste que le port 81 n’est pas used, sinon mets en 1 libre et accessible ^^
Le principal étant ceci : SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-tuya-test.db

Partez du principe que je suis un utilisateur “de base”, pas un développeur. En tant que tel, voici ce qui me vient à l’esprit en tant que testeur:

  • J’ai un peu de mal avec les aides de la configurations tuya qui sont juste au dessus des cases à remplir, y compris avec la version actuellement en production. Il m’a fallu un réel effort pour trouver la solution en me disant “ha oui, il y a une documentation, c’est où déjà ?” : Est-il possible d’ajouter un lien vers la documentation Tuya qui s’ouvre dans une nouvelle fenêtre ?

Ici entre :

Vous pouvez connecter Gladys […]

et

Vous avez besoin […]

pourriez-vous ajouter une ligne du type :

Pour plus de facilité, vous pouvez afficher une nouvelle fenêtre vers notre tutoriel en cliquant ici [lien vers : Tuya | Gladys Assistant ].

ou alors mettre un lien direct qui s’ouvrirai vers : Tuya Smart Developer Center

dans la phrase :”Vous devez ensuite créer un « Cloud Project » dans votre compte Tuya.” au niveau de « Cloud Project » ?

  • Je suis actuellement bloqué ici

Je ne sais pas quoi mettre dans la case App Username. Est-ce que c’est Le Project Code que je trouve sur Tuya Smart Developer Center ou bien est-ce que c’est un nom que je trouve sur mon application smartphone ?

  • Les objets IP sont, pour l’instant, sur le même réseau que Gladys. Je compte donc que la découverte se fasse toute seule.

Autre suggestion non en lien avec l’exercice actuel : sur Home-assistant l’integration Tuya se fait directement par le biais d’une liaison directe avec l’application sur le Smartphone par le biais d’un lien via le code utilisateur de l’application et ensuite par un retour de QR code. N’est-il pas plus simple de procéder ainsi ? Surtout que cela implique d’avoir une appli Tuya sur le smartphone aussi bien pour la solution Gladys que pour la solution Home-Assistant.

1 « J'aime »

Au pif :

J’ai mis le “Project code” dans la dernière case, et lancé le bazar. Ça fonctionne !

Si c’est pas la bonne réponse : me le dire et me dire où je dois aller.

Si c’est la bonne réponse, modifier le nom de la case “App Username” en “Project code” pour que ce soit plus clair.

L’adresse IP affichée est celle de l’ip de ma box, mais pas celle de mon réseau local (192.168.1.0/24)

Que ce soit avec Gladys production ou Gladys-test, il n’est pas possible d’ouvrir la porte de garage avec le commutateur.

L’application ne fonctionne pas non plus sur Home assistant.

Ce matin, il n’y a que l’application Tuya de mon smartphone qui fasse fonctionner les appareils Tuya. :face_with_steam_from_nose:

@Papashultz,

Désolé, je vais prendre le temps de répondre pleinement à tes messages, je poursuis déjà les modifications avec tes retours.

Je réponds rapidement à ta dernière interrogations :

Oui c’est normal car pour le moment il n’a récupérer tes équipements que via le cloud.
Peux-tu le supprimer de Gladys, puis remplacer l’adresse IP de ta box par celle de l’appareil sur ton réseau local. Puis cliquer sur « Poll local des DP »
image
Si il se rempli automatiquement, alors tu peux ensuite faire « Sauvegarder » et réessayer ta commande.

Dans le cas contraire, j’ajouterais ce qu’il faut pour avoir les infos nécessaires.

Je regarde sur ma box depuis tout à l’heure pour retrouver les adresses IP des objets connectés pour les mettre en ip fixe.

Y a t’il une astuce pour les retrouver ?

Une idée sur comment je pourrait m’y prendre pour les retrouver parmi les adresses inconnues ?

Le mieux et le plus rapide pour cet essai, depuis n’importe quelle machine sur le meme réseau :

  • Installation de python :

Sous windows :

winget install Python.Python.3.12
python --version
pip --version

sous Linux :

sudo apt update
sudo apt install python3 python3-pip
python3 --version
pip3 --version

sous MacOS :

brew install python
python3 --version
pip3 --version
  • Installation de TinyTuya (utilisé par localTuya sur HA) :

Windows (PowerShell)
python -m tinytuya scan

Linux / macOS
python3 -m tinytuya scan

Et tu retrouvera les adresse IP de tes appareils en local normalement comme cela :

L’installation de python3 c’est bien déroulée.

Pas celle de tinytuya. Je suis en ssh directement sous Debian.

GlaDOS n’est jamais bien coopérative. :joy:

Bon appetit.

1 « J'aime »

Tu peux faire ça normalement:

python3 -m pip install --user tinytuya
python3 -m tinytuya scan

Bon appétit à toi !!

Définitivement GlaDOS :

Désolé, on va peut-etre mieux faire encore dans Gladys ^^
Tu me laisses 5/10 minutes pour une mise à jour de l’image !!

J’y crois !! ^^
Et j’ai déjà pris en compte la plupart de tes remarques précédentes ^^

Ok, donc j’ai mis à jour l’image. Ca devrait être pas mal ^^

Alors côté Portainer je ne sais pas pour la MAJ de l’image, de mon côté, je fais :

docker pull terdious/gladys:tuya-test

docker stop gladys-tuya-test

docker rm gladys-tuya-test

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-tuya-test \
-e NODE_ENV=production \
-e SERVER_PORT=81 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-tuya-test.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
terdious/gladys:tuya-test

Donc @Papashultz tu as maintenant tous les liens demandé (je crois) :

Le lien par QR-Code n’est pour le moment pas possible sur Gladys, ou tout du moins je n’ai pas trouvé de solution réalisable « facilement » pour le moment.

Dorénavant sur la page découverte, si tu clique sur le bouton Scan Local :

Tu devais retrouver tes appareils avec leur adresse Ip^et protocole :

Attention, pas de gestion du protocole 3.5 pour le moment …

Windows n’est pas plus coopératif que GlaDOS.

PS C:\WINDOWS\system32> python --version
Python 3.12.10
PS C:\WINDOWS\system32> pip --version
pip 25.0.1 from C:\Users\alain\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip (python 3.12)
PS C:\WINDOWS\system32> python -m tinytuya scan
C:\Users\alain\AppData\Local\Programs\Python\Python312\python.exe: No module named tinytuya
PS C:\WINDOWS\system32> python3 -m pip install --user tinytuya
Python est introuvable ; exÚcutez sans arguments Ó installer Ó partir du Microsoft Store ou dÚsactivez ce raccourci dans ParamÞtres > Applications > paramÞtres d
PS C:\WINDOWS\system32>

Coté Portainer :

On s’assure que tout est bon, on peut ajouter le numéro de la version, à la ligne image.

Il ne reste plus qu’à activer Re-pull image and redeploy et cliquer sur Update

1 « J'aime »