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.
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:
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
donnez les infos de votre device: ip, device id, localkey (à chercher sur le Cloud tuya)
Puis entrez les infos suivantes:
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 !