Integration clim airton

Ce que j’ai fait c’est que j’ai trouvé la liste des DP de mes PAC Fujitsu / Yuzu grâce à ce sujet : HOWTO get a DPs dump · rospogrigio/localtuya Wiki · GitHub

Ensuite, je me suis amusé à modifier chacun des paramètres de mes PAC grâce à l’appli Tuya, et vérifier ensuite le changement dans les DP grâce à tuyadebug. J’ai obtenu quelque chose comme cela :

## Position volets :

- up-down flow
113 : 1
126 : 0

- upflow 
113 : 2
126 : 0

- down flow
113 : 3
126 : 0

- top fix
113 : 0
126 : 1

- upper fix
113 : 0
126 : 2

- middle fix
113 : 0
126 : 3

- above Down fix
113 : 0
126 : 4

- bottom fix
113 : 0
126 : 5

Ou bien pour l’écran et le bip sonore :

BIP ON et ECRAN eteint : DPS [123] VALUE [0010]
BIP ON et ECRAN ON : DPS [123] VALUE [0018]
BIP OFF et ECRAN off :     DPS [123] VALUE [0000]
BIP OFF et ECRAN ON : DPS [123] VALUE [0008]

Et je me suis fait des scripts / automatisations pour modifier les paramètres en faisant appel au service localtuya.set_dp :

  • PAC bureau, vitesse ventilateur:
service: localtuya.set_dp
data:
  device_id: "id_de_ma_pac"
  dp: 5
  value: "mute"
  • PAC bureau, silence (bip éteint), LCD allumé :
service: localtuya.set_dp
data:
  device_id: "id_de_ma_pac"
  dp: 123
  value: "0008"

Hello, j’ai réussi à faire une intégration avec LocalTuya. Je vous donne le résultat de la config résultante si ça peut vous aider. C’est pas parfait mais ça fait le job.

core.config_entries:

      {
        "entry_id": "xxxxx",
        "version": 2,
        "domain": "localtuya",
        "title": "localtuya",
        "data": {
          "region": "eu",
          "client_id": "",
          "client_secret": "",
          "user_id": "",
          "username": "localtuya",
          "no_cloud": true,
          "devices": {
...
            "xxxxxxx": {
              "friendly_name": "Clim chambre",
              "local_key": "xxxxx",
              "host": "192.168.1.xx",
              "device_id": "xxxxxx",
              "protocol_version": "3.3",
              "dps_strings": [
                "1 (value: True)",
                "2 (value: 210)",
                "3 (value: 195)",
                "4 (value: fan)",
                "5 (value: auto)",
                "8 (value: False)",
                "9 (value: False)",
                "12 (value: False)",
                "13 (value: False)",
                "15 (value: un_down)",
                "20 (value: 0)",
                "22 (value: 0)",
                "101 (value: 0)",
                "102 (value: 501)",
                "105 (value: c)",
                "106 (value: off)",
                "107 (value: 15)",
                "108 (value: False)",
                "109 (value: False)",
                "110 (value: True)",
                "111 (value: False)",
                "112 (value: cold)",
                "113 (value: 0)",
                "114 (value: fan)"
              ],
              "entities": [
                {
                  "id": 1,
                  "friendly_name": "switch",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "switch"
                },
                {
                  "id": 2,
                  "friendly_name": "temp_set",
                  "min_value": 0.0,
                  "max_value": 300.0,
                  "step_size": 5,
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "number"
                },
                {
                  "id": 3,
                  "friendly_name": "temp_current",
                  "unit_of_measurement": "°C",
                  "device_class": "temperature",
                  "scaling": 0.1,
                  "platform": "sensor"
                },
                {
                  "id": 4,
                  "friendly_name": "mode",
                  "select_options": "auto;cold;wet;heat;fan",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "select_options_friendly": "Auto;Froid;Dehumidification;Chaud;Ventilation",
                  "platform": "select"
                },
                {
                  "id": 5,
                  "friendly_name": "fan speed",
                  "select_options": "auto;low;low_mid;mid;mid_high;high;mute;turbo",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "select_options_friendly": "Auto;Bas;Moyen Bas;Moyen;Moyen haut;Haut;Silence;Turbo",
                  "platform": "select"
                },
                {
                  "id": 8,
                  "friendly_name": "Eco",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "switch"
                },
                {
                  "id": 9,
                  "friendly_name": "Deshumidificateur",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "switch"
                },
                {
                  "id": 12,
                  "friendly_name": "Chauffage",
                  "state_on": "True",
                  "state_off": "False",
                  "platform": "binary_sensor"
                },
                {
                  "id": 13,
                  "friendly_name": "Light",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "switch"
                },
                {
                  "id": 15,
                  "friendly_name": "Swing",
                  "select_options": "off;un_down",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "select_options_friendly": "Désactivé;Haut/bas",
                  "platform": "select"
                },
                {
                  "id": 109,
                  "friendly_name": "Sleep",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "switch"
                },
                {
                  "id": 110,
                  "friendly_name": "Health",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "platform": "switch"
                }
              ],
              "product_key": "xxxxxxxxx"
            },

A noter 1 bug pénible qui est référencé ici :

avec une solution ici (toujours en Pull request depuis fevrier) mais du coup ça peut vous intéresser aussi:

Le fix + la conf au-dessus et j’arrive à intégrer la clim Airton mais quelle galère, on est d’accord.

Je cherche un remplaçant en Zigbee au module Wifi donné par Airton à prix d’or:
Capture d’écran 2023-06-25 à 18.22.09

Personne n’aurait trouvé une solution des fois ?

Super intégration pour le localtuya,
j’ai vu qu’il te manquais quelques ID :

  • 102 sur le temps d’utilisation cela peut être utile.
  • 105 pour switch les unités de °C en °F

Hello,

Je n’ai pas tous ces DPS , en particulier le 123 qui m’intéresse pour virer les BIPs, une idée ?

**** deviceInfo returned OK ****

TuyaDebug (Tuya DPs dump) [1.0.0]

Device xxx at 192.168.1.xxx key xxx protocol 3.3 dev_type type_0a:
DPS [1] VALUE [False]
DPS [2] VALUE [230]
DPS [3] VALUE [260]
DPS [4] VALUE [cold]
DPS [8] VALUE [False]
DPS [9] VALUE [False]
DPS [12] VALUE [False]
DPS [13] VALUE [True]
DPS [15] VALUE [off]
DPS [20] VALUE [0]
DPS [22] VALUE [0]
DPS [101] VALUE [0]
DPS [102] VALUE [8]
DPS [105] VALUE [c]
DPS [106] VALUE [off]
DPS [107] VALUE [off]
DPS [108] VALUE [False]
DPS [109] VALUE [False]
DPS [110] VALUE [True]
DPS [111] VALUE [False]
DPS [112] VALUE [cold]
DPS [113] VALUE [0]
DPS [114] VALUE [cold]
DPS [115] VALUE [False]

merci d’avance

Bonjour,

Je complète ce post car j’ai une solution full local qui fonctionne bien. C’est assez bidouille mais ca le fait bien chez moi.
Ca fait plus d’un an que je l’ai et elle n’a jamais été totalement et proprement intégrée à Home Assistant. Le climate TuYa ne fonctionne pas, le LocalTuya n’a pas le mode « Clim » (Tuya Thermostat for Airton HVAC doesn't switch to "heat" mode · Issue #78815 · home-assistant/core · GitHub), la pull request que j’ai fait sur le composant Tuya n’a jamais été prise en compte (Add climate Tuya Power command instead of switch - Airton climate by jmcollin78 · Pull Request #87856 · home-assistant/core · GitHub).

Bref, voici enfin une solution qui intègre totalement la clim Airton à Home Assistant. :partying_face:

Principe

Le principe:

  • j’intègre la clim Airton avec LocalTuya (on sera donc full local et indépendant du cloud Tuya - le pire de ce que j’ai vu),
  • ca créé un equipement dans lequel :
    • je créé une entité climate avec les infos de bases (start/stop/hvac mode, temp_set, temp_current),
    • l’entité climate de LocalTuya est très basique (y a des PR en cours mais elles mettent du temps à arriver) donc pour avoir le mode Clim, on ajoute qqes lignes au code,
  • on ajoute les entités qui manquent dans notre equipement.

Au final ca donne ça :

Vous avez toutes les commandes de la clim dans un seul équipement ce qui est appréciable dont une entité climate qui fonctionne.

Ensuite, je mets un Versatile Thermostat en mode « over climate » sur le climate LocalTuya et j’ai un thermostat totalement utilisable avec gestion des ouvertures, de la puissance, des absences, …

(Versatile Thermostat est décrit ici : Nouveau thermostat type proportionnel avec gestion des presets / portes et fenêtres / détection de mouvement / gestion de présence et surconsommation)


Etapes:

Etape 1. patch du code de LocalTuya :

Editer le fichier config/custom_component/localtuya/climate.py et ajoutez y les lignes suivantes à la ligne 61 :

    "heat/cool": {
        HVAC_MODE_HEAT: "heat",
        HVAC_MODE_COOL: "cold",
    },

Vous devez avoir ça autour de la ligne 60:
Capture d’écran 2023-09-10 à 09.48.03

Ajoutez aussi en entête de même fichier la constante HVAC_MODE_COOL. La ligne doit ressembler à ça e ligne 13:

from homeassistant.components.climate.const import (
    CURRENT_HVAC_HEAT,
    CURRENT_HVAC_IDLE,
    HVAC_MODE_AUTO,
    HVAC_MODE_HEAT,
    HVAC_MODE_COOL,
    HVAC_MODE_OFF,
    ....

Notes:

  • une PR est en préparation dans le repo LocalTuya. Ca viendra remplacer cette modif.
  • vous devriez pouvoir ajouter d’autes modes ici au besoin (pas testé). Ces autres modes ne fonctionneront pas avec le Versatile Thermostat par contre, mais ca peut être intéressant.

Redémarrez pour que cela soit pris en compte.

Etape 2. création du device et de l’entité climate dans LocalTuya

Capture d’écran 2023-09-10 à 09.42.37

donnez les infos de votre device: ip, device id, localkey (à chercher sur le Cloud tuya)

Puis entrez les infos suivantes:



Capture d’écran 2023-09-10 à 09.45.53

Vous remarquerez que dans « HVAC Mode Set », j’ai choisi « heat/cool » qui correspond au bout de code qu’on a ajouté en étape 1.

Validez cet écran et décochez « Add more entities in ‹ edit device › mode » pour sortir de la configuration. Le reste on va le faire directement dans la configuration.

Etape 3. check et création du Versatile Thermostat

A ce stade vous devez avoir une entité climate parfaitement fonctionnelle qui permet le mode chauffage/refroidissement/stop.

Vous pouvez créer ou modifier un Versatile Thermostat sur le climate créé juste au dessus et tout devrait fonctionner normalement.

Etape 4. Ajoutez les entités manquantes

Cela se fait en modifiant directement le fichier config/.storage/core.config_entries
Chercher votre clim (par son device id par exemple).

Vous devez adapter ce que vous trouvez pour avoir quelque-chose qui ressemble à ça:


         "bf641cf5942058d6c4fhdi": {
              "friendly_name": "Clim chambre",
              "host": "192.168.xx.xx",
              "local_key": "xxxxxxxx",
              "protocol_version": "3.3",
              "enable_debug": false,
              "entities": [
                {
                  "friendly_name": "Clim chambre localtuya",
                  "target_temperature_dp": 2,
                  "current_temperature_dp": 3,
                  "temperature_step": 0.1,
                  "precision": 0.1,
                  "hvac_mode_dp": 4,
                  "hvac_mode_set": "heat/cool",
                  "temperature_unit": "celsius",
                  "target_precision": 0.1,
                  "id": 1,
                  "platform": "climate"
                },
                {
                  "friendly_name": "fan speed",
                  "select_options": "auto;low;low_mid;mid;mid_high;high;mute;turbo",
                  "select_options_friendly": "Auto;Bas;Moyen Bas;Moyen;Moyen haut;Haut;Silence;Turbo",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 5,
                  "platform": "select"
                },
                {
                  "friendly_name": "Eco",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 8,
                  "platform": "switch"
                },
                {
                  "friendly_name": "Deshumidificateur",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 9,
                  "platform": "switch"
                },
                {
                  "friendly_name": "Chauffage",
                  "state_on": "True",
                  "state_off": "False",
                  "id": 12,
                  "platform": "binary_sensor"
                },
                {
                  "friendly_name": "Light",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 13,
                  "platform": "switch"
                },
                {
                  "friendly_name": "Swing",
                  "select_options": "off;un_down",
                  "select_options_friendly": "Désactivé;Haut/bas",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 15,
                  "platform": "select"
                },
                {
                  "friendly_name": "Sleep",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 109,
                  "platform": "switch"
                },
                {
                  "friendly_name": "Health",
                  "restore_on_reconnect": false,
                  "is_passive_entity": false,
                  "id": 110,
                  "platform": "switch"
                }
              ],
              "add_entities": false,
              "device_id": "xxxxxxxxx",
              "dps_strings": [
                "1 (value: True)",
                "2 (value: 210)",
                "3 (value: 195)",
                "4 (value: fan)",
                "5 (value: auto)",
                "8 (value: False)",
                "9 (value: False)",
                "12 (value: False)",
                "13 (value: False)",
                "15 (value: un_down)",
                "20 (value: 0)",
                "22 (value: 0)",
                "101 (value: 0)",
                "102 (value: 501)",
                "105 (value: c)",
                "106 (value: off)",
                "107 (value: 15)",
                "108 (value: False)",
                "109 (value: False)",
                "110 (value: True)",
                "111 (value: False)",
                "112 (value: cold)",
                "113 (value: 0)",
                "114 (value: fan)"
              ],
              "product_key": "xxxxxxxxx"
            },

Vous devez ajouter les entities manquantes et les dps_strings si il vous en manque.

Recharger la conf LocalTuya (Outils de developpement / Yaml / LOCALTUYA INTEGRATION)

Vous devriez avoir le device de votre clima avec toutes les entités comme présenté au début de ce post.
Et mettez des icones à vos entités !

1 « J'aime »

Bonjour Jean-Marc,

Merci pour ce tuto. Je viens de me lancer dans le monde de HomeAssistant et ce tuto m’a permis d’intégrer mes clims Airton.

Quelques détails que j’ai relevé :

Dans le fichier config/custom_component/localtuya/climate.py il faut ajouter la constante HVAC_MODE_COOL dans la partie homeassistant.components.climate. Sinon l’intégration localtuya ne démarre plus.

L’entité Swing ne fonctionne pas chez moi. Elle me fait planter l’intégration.

Enfin j’aurais une question :

Je me suis lancé dans l’intégration de mes clims dans HA avec comme objectif de virer ce fichu bip qui réveillerait un mort.

J’ai lu dans ce topic une histoire avec le DPS 123. Par contre je ne sais pas comment le tester.

Auriez vous quelques conseils à ce sujet?

Merci d’avance,

Sébastien

Le mieux c’est certainement de le configurer (cf. etape 4 en ajoutant un bloc pour le DP 123) et vérifier si ça fait quelque-chose. Si des fois ça marchait, partage le ici et je mettrais à jour mon post avec.

Autre possibilité, aller dans le web du Cloud TuYa / API et tester en appelant l’API mais là faut chercher, je maitrise mal (et c’est pas simple).

Dans le fichier config/custom_component/localtuya/climate.py il faut ajouter la constante HVAC_MODE_COOL dans la partie homeassistant.components.climate

Oui tu as raison, j’ai fixé le post

Ok je vais me pencher sur le sujet. Ca fait beaucoup de nouvelles choses à appréhender quand on débute.

Au fait j’ai trouvé mes modules Wifi pour 20 € pièce :slight_smile:

1 « J'aime »

Pour la clim ? Ca ça m’interesse

Oui pour les splits Airton.

Contactes moi par message si c’est possible depuis ce forum.

Salut,

Bon j’ai tenté sans succès de virer ces fichus bip en utilisant le DP 123…

C’est quand même incroyable que l’on arrive pas à les virer.
Ca va finir par un démontage des splits et colle sur les buzzers mais bon ça m’embête de déjà les demonter…

Si jamais quelqu’un a une solution…

Faudrait peut être appeler le support Airton. Ils sont nuls (*) mais ils répondent. On doit pas être les premiers à raler à cause de ça. Leur mail: sav@full-moon.fr

(*) 2 mois pour leur faire comprendre que le module Wifi à 99€ était en panne et obtenir un nouveau sous -garantie. Mais ils ont finis par le faire.

Bonjour Sébastien,
Je suis également intéressé par le module Wifi à 20€ compatible airton, mais impossible de vous envoyer un message privé…

Merci d’avance.

Guillaume

Bonjour Sebastien, ca m’intéresse aussi d’avoir la référence des modules pour les clim airton mais impossible de vous envoyer un message privé. Pourriez vous nous donner la ref svp ?

Bonjour, moi aussi je dois commander 5 clim Airton et j’avoue qu’a 100€ le module je suis rétissant. Si quelqu’un à trouvé un module compatible Airton (Sébastien il me semble) je suis preneur. J’attend avec impatience un retour de ref. MERCI

Bonjour,
J’ai un problème avec LocalTuya. A la fin de la saisie du premier split AIRTON, Localtuya boucle sur un écran de saisie d’un 2ème device sans me laisser le choix de stopper mes entrées, même en décochant la case… Je viens de tester en téléchargeant une ancienne version 4.1.1, mais, même punition. Je teste pourtant sur une nouvelle instance HA de test qui n’a jamais eu de Tuya installé.
Dans mon instance HA principale, Tuya me remonte bien tous mes clim et le volet de ma baie, que je ne vois pas dans la liste proposée par LocalTuya. La baie est bien dans la liste de mes devices sur tuya IoT Platform.
Help, je découvre HA, et c’est pas gagné :thinking:

Bonjour,
je bloque depuis la 1er ligne à modifier.
J’ai testé avec file editor de modifier les lignes de climate.py mais à chaque fois au redémarrage j’ai une erreur de configuration : "Setup failed for custom integration 'localtuya': Unable to import component: Exception importing custom_components.localtuya"

j’ai remis le fichier comme avant et c’est pareil , obligé de restaurer une sauvegarde.
Je suis bien paumé dans cette affaire

Sinon tu as juste a réinstaller l’intégration LocalTuya depuis HACS

j’ai laissé tombé tout ce qui passe par tuya, c’est une galere pas possible je trouve.
j’ai pris un sensibo, ça s’integre tres bien dans ha et ça fonctionne tres bien.