Integration clim airton

Hello,

Pour ma part j’ai essayé de faire machine arrière sur la version du core sans succès…

Je passe donc à la restauration.

Hello,

J’ai un gros doute du coup. Moi j’utilise Tuya Local et non pas LoclTuya.
Chez moi en HA 2026.1.2 et la dernière de Tuya Local ca marche normalement.

J’ai LocalTuya (tout attaché) integration version 5.2.3 et ça fonctionne aussi très bien chez moi.
C’est quand même le bord.l toutes ces intégrations qui portent presque le même nom

Hello,

Autant pour moi, c’est bien la même intégration que toi, celle-ci. J’ai confondu car le dossier dans custom_components se nome tuya_local….

J’ai refait des tests hier soir et c’est bien la version 2026.1.1 qui pose problème.

En version 2025.12.3 aucun soucis, quelque soit la version du core H.A.

Bonsoir à vous,

Pour info, toujours le même problème avec la version 2026.1.2

Je reste donc sur l’ancienne…

Boujour à tous,

même problème que vous, la MàJ 2026.1.2 me pose problème. Dans l’obligation de restaurer et d’utiliser la version 2025.12.3

:thinking:

Pas de soucis de mon cote. Qu’est ce qui ne va pas ?

J’ai tenté la nouvelle MàJ mais toujours le même problème.

Erreur de migration ??!!

Hello,

J’ai eu le même soucis.

J’ai donc supprimé les anciennes configurations et refais de nouvelles et ça marche.

Edit:Par contre je n’ai pas accès aux réglages de l’orientation de la ventilation dans la carte Vtherm, il faut passer par le menu en haut à droite.

Il doit y avoir quelque-chose à corriger mais je n’ai pas pris le temps de chercher.

Salut SebMad,

Merci pour ton retour. Tu peux être plus précis stp. Ancienne config, ça veut dire que tu n’utilises plus Tuya Local ?

Je teste LocalTuya intégration mais je galère dans les réglages. J’ai suivi les étapes de Jean-Marc postée en 2023 mais l’intégration plante dès que j’ajoute HVAC_MODE_COOL.

Pour le moment, je bidouille avec les réglages proposés et j’ai obtenu ce résultat sans swing.

Hello !

Est-ce que quelqu’un d’autre rencontre des soucis depuis la dernière MàJ de TuyaLocal 2026.5.3 ?

En effet depuis cette dernière mise à jour, je ne peux régulièrement plus piloter les PaC Airton / Fujicool / Yuzu …

Pas de message d’erreur, mais pas de changement d’état sur la PaC.

Un reboot d’HA ou un rechargement de l’intégration peut suffire à récupérer les commandes pour 1 ou 2 commandes …

EDIT : je suis revenu à la 2026.5.1 et c’est fonctionnel à nouveau.

Bonjour,
Tu as essayé la 2026.5.4 ?

Bonjour, pour ma part, depuis les dernières mises à jour, ça ne fonctionne plus..

Cette erreur provient d'une intégration personnalisée
Enregistreur: custom_components.tuya_local
Source: config_entries.py:796
intégration: Tuya Local (documentation, problèmes)
S'est produit pour la première fois: 13:49:39 (1 occurrence)
Dernier enregistrement: 13:49:39
Error setting up entry Climatisation RDC for tuya_local
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 796, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/tuya_local/__init__.py", line 994, in async_setup_entry
    for e in device_conf.all_entities():
             ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/config/custom_components/tuya_local/helpers/device_config.py", line 135, in all_entities
    for e in entities:
             ^^^^^^^^
TypeError: 'NoneType' object is not iterable

Donc je reviens sur la précédente version fonctionnelle...je suis vraiment le seul à avoir ce souci?

Hello, pas de soucis chez moi, mais j’ai des copies en local des fichiers de devices (que je recopie à chaque maj)

Alors je fais la même chose, enfin je pense, je fais la mise a jour, ensuite , je remet le fichier airton**.yaml , mais ça plante. Il ya a d'autres fichiers a remettre après la mise a jour?
Au fait , pas de réponse du développeur de tuya-local pour intégrer les clima airton?

Je ne fais rien d’autre de mon côté. Et non pas de news du dev

Re, désole, j'essaie de comprendre..
Tu es sur quelle version du core? tu n'as rien modifié dans la structure de l'intégration, climate.py ou autre ? Tu ne remet que le fichier airton_climatisation.yaml ?

Edit : J'ai modifié le fichier de configuration airton_climatisation.yaml qui ne respectait pas les nouvelles normes de nommage dans mon cas...si ça peut aider certains...

name: Airton Climatisation Custom
products:
  - id: f3goccgfj6qino4c
    name: Airon climate
entities: # <-- Remplace "primary_entity:" pour le nouveau parseur
  - entity: climate
    translation_key: aircon_extra
    dps:
      - id: 1
        type: boolean
        name: hvac_mode
        mapping:
          - dps_val: false
            value: "off"
          - dps_val: true
            constraint: mode
            conditions:
              - dps_val: auto
                value: heat_cool
              - dps_val: cold
                value: cool
              - dps_val: wet
                value: dry
              - dps_val: heat
                value: heat
              - dps_val: fan
                value: fan_only # <-- Conservé selon ton choix initial
      - id: 2
        type: integer
        name: temperature
        range:
          min: 160
          max: 320
        mapping:
          - scale: 10
            step: 10
            constraint: temperature_unit
            conditions:
              - dps_val: f
                range:
                  min: 600
                  max: 900
      - id: 3
        type: integer
        name: current_temperature
        mapping:
          - scale: 10
            constraint: temperature_unit
            conditions:
              - dps_val: f
      - id: 4
        type: string
        name: mode
        hidden: true
        optional: true
      - id: 5
        type: string
        name: fan_mode
        mapping:
          - dps_val: auto
            value: auto
          - dps_val: mute
            value: quiet
          - dps_val: low
            value: low
          - dps_val: low_mid
            value: medlow
          - dps_val: mid
            value: medium
          - dps_val: mid_high
            value: medhigh
          - dps_val: high
            value: high
          - dps_val: turbo
            value: turbo # <-- Conservé "turbo" au lieu de "strong"
      - id: 8
        type: boolean
        optional: true
        name: preset_mode
        mapping:
          - dps_val: true
            value: eco
          - dps_val: false
            value: comfort
      - id: 15
        name: swing_mode
        type: string
        mapping:
          - dps_val: un_down
            value: vertical
          - dps_val: left_right
            value: horizontal
          - dps_val: all
            value: both
          - dps_val: "off"
            value: "off"
      - id: 105
        name: temperature_unit
        type: string
        optional: true
        mapping:
          - dps_val: c
            value: C
          - dps_val: f
            value: F
      - id: 112
        name: model
        type: string
      - id: 114
        name: current_mode
        type: string
        optional: true

# À partir d'ici, on liste tes entités secondaires directement à la suite
  - entity: switch
    name: Wet
    icon: "mdi:hvac"
    dps:
      - id: 9
        name: switch
        type: boolean
  - entity: light
    translation_key: backlight
    category: config
    dps:
      - id: 13
        name: switch
        type: boolean
  - entity: select
    category: config
    translation_key: timer
    dps:
      - id: 21
        type: string
        optional: true
        name: option
        mapping:
          - dps_val: "0"
            value: "Off"
          - dps_val: "1"
            value: "1 hour"
          - dps_val: "2"
            value: "2 hours"
          - dps_val: "3"
            value: "3 hours"
          - dps_val: "4"
            value: "4 hours"
          - dps_val: "5"
            value: "5 hours"
          - dps_val: "6"
            value: "6 hours"
          - dps_val: "7"
            value: "7 hours"
          - dps_val: "8"
            value: "8 hours"
          - dps_val: "9"
            value: "9 hours"
          - dps_val: "10"
            value: "10 hours"
          - dps_val: "11"
            value: "11 hours"
          - dps_val: "12"
            value: "12 hours"
          - dps_val: "13"
            value: "13 hours"
          - dps_val: "14"
            value: "14 hours"
          - dps_val: "15"
            value: "15 hours"
          - dps_val: "16"
            value: "16 hours"
          - dps_val: "17"
            value: "17 hours"
          - dps_val: "18"
            value: "18 hours"
          - dps_val: "19"
            value: "19 hours"
          - dps_val: "20"
            value: "20 hours"
          - dps_val: "21"
            value: "21 hours"
          - dps_val: "22"
            value: "22 hours"
          - dps_val: "23"
            value: "23 hours"
          - dps_val: "24"
            value: "24 hours"
  - entity: sensor
    class: duration
    translation_key: time_remaining
    category: diagnostic
    dps:
      - id: 22
        name: sensor
        type: integer
        unit: min
  - entity: sensor
    name: Usage counter
    category: diagnostic
    icon: "mdi:counter"
    dps:
      - id: 101
        name: sensor
        type: integer
  - entity: sensor
    class: duration
    name: Total time
    category: diagnostic
    icon: "mdi:timer"
    dps:
      - id: 102
        name: sensor
        type: integer
        unit: h
  - entity: select
    translation_key: temperature_unit
    category: config
    dps:
      - id: 105
        type: string
        name: option
        mapping:
          - dps_val: c
            value: celsius
          - dps_val: f
            value: fahrenheit
  - entity: select
    name: Fan speed
    icon: "mdi:fan"
    category: config
    dps:
      - id: 5
        type: string
        name: option
        mapping:
          - dps_val: auto
            value: auto
          - dps_val: mute
            value: mute
          - dps_val: low
            value: low
          - dps_val: low_mid
            value: medlow
          - dps_val: mid
            value: medium
          - dps_val: mid_high
            value: medhigh
          - dps_val: high
            value: high
          - dps_val: turbo
            value: turbo # <-- Menu select personnalisé conservé
  - entity: select
    name: Horizontal
    icon: "mdi:arrow-left-right"
    category: config
    dps:
      - id: 106
        type: string
        name: option
        mapping:
          - dps_val: "off"
            value: "Off"
          - dps_val: same
            value: Focus
          - dps_val: opposite
            value: Diffuse
  - entity: select
    name: Vertical
    category: config
    icon: "mdi:arrow-up-down"
    dps:
      - id: 107
        type: string
        name: option
        mapping:
          - dps_val: "off"
            value: "Off"
          - dps_val: "15"
            value: "Swing"
          - dps_val: "1"
            value: "1"
          - dps_val: "2"
            value: "2"
          - dps_val: "3"
            value: "3"
          - dps_val: "4"
            value: "4"
          - dps_val: "5"
            value: "5"
  - entity: switch
    name: Swing 3d
    icon: "mdi:arrow-all"
    category: config
    dps:
      - id: 108
        type: boolean
        name: switch
  - entity: switch
    name: Sleep
    category: config
    icon: "mdi:power-sleep"
    dps:
      - id: 109
        name: switch
        type: boolean
  - entity: switch
    translation_key: uv_sterilization
    dps:
      - id: 110
        name: switch
        type: boolean
  - entity: binary_sensor
    class: problem
    category: diagnostic
    icon: "mdi:check-circle-outline"
    dps:
      - id: 20
        type: bitfield
        name: sensor
        mapping:
          - dps_val: 0
            value: true
            constraint: fault_code2
            conditions:
              - dps_val: 0
                value: false
          - value: true
      - id: 20
        type: bitfield
        name: fault_code
      - id: 113
        type: bitfield
        name: fault_code2

Hello,

Je suis sur la version

Mon fichier de conf, inchangé depuis plusieurs années, est le suivant:

name: Air conditioner
products:
  - id: f3goccgfj6qino4c
    name: Airon climate
entities:
  - entity: climate
    translation_key: aircon_extra
    dps:
      - id: 1
        type: boolean
        name: hvac_mode
        mapping:
          - dps_val: false
            value: "off"
          - dps_val: true
            constraint: mode
            conditions:
              - dps_val: auto
                value: heat_cool
              - dps_val: cold
                value: cool
              - dps_val: wet
                value: dry
              - dps_val: heat
                value: heat
              - dps_val: fan
                value: fan_only
              - dps_val: null
                value: "off"
                hidden: true
      - id: 2
        type: integer
        name: temperature
        range:
          min: 160
          max: 320
        mapping:
          - scale: 10
            step: 10
            constraint: temperature_unit
            conditions:
              - dps_val: f
                range:
                  min: 600
                  max: 900
      - id: 3
        type: integer
        name: current_temperature
        mapping:
          - scale: 10
            constraint: temperature_unit
            conditions:
              - dps_val: f
      - id: 4
        type: string
        name: mode
        hidden: true
        optional: true
      - id: 5
        type: string
        name: fan_mode
        mapping:
          - dps_val: auto
            value: auto
          - dps_val: mute
            value: quiet
          - dps_val: low
            value: low
          - dps_val: low_mid
            value: medlow
          - dps_val: mid
            value: medium
          - dps_val: mid_high
            value: medhigh
          - dps_val: high
            value: high
          - dps_val: turbo
            value: turbo
      - id: 8
        type: boolean
        optional: true
        name: preset_mode
        mapping:
          - dps_val: true
            value: eco
          - dps_val: false
            value: comfort
      - id: 15
        name: swing_mode
        type: string
        mapping:
          - dps_val: un_down
            value: vertical
          - dps_val: left_right
            value: horizontal
          - dps_val: all
            value: both
          - dps_val: "off"
            value: "off"
      - id: 105
        name: temperature_unit
        type: string
        optional: true
        mapping:
          - dps_val: c
            value: C
          - dps_val: f
            value: F
      - id: 112
        name: model
        type: string
      - id: 114
        name: current_mode
        type: string
        optional: true
  - entity: switch
    name: Wet
    icon: "mdi:hvac"
    dps:
      - id: 9
        name: switch
        type: boolean
  - entity: switch
    name: Emergency heat
    icon: "mdi:fire"
    dps:
      - id: 12
        name: switch
        type: boolean
  - entity: light
    translation_key: backlight
    category: config
    dps:
      - id: 13
        name: switch
        type: boolean
  - entity: select
    category: config
    translation_key: timer
    dps:
      - id: 21
        type: string
        optional: true
        name: option
        mapping:
          - dps_val: "0"
            value: "Off"
          - dps_val: "1"
            value: "1 hour"
          - dps_val: "2"
            value: "2 hours"
          - dps_val: "3"
            value: "3 hours"
          - dps_val: "4"
            value: "4 hours"
          - dps_val: "5"
            value: "5 hours"
          - dps_val: "6"
            value: "6 hours"
          - dps_val: "7"
            value: "7 hours"
          - dps_val: "8"
            value: "8 hours"
          - dps_val: "9"
            value: "9 hours"
          - dps_val: "10"
            value: "10 hours"
          - dps_val: "11"
            value: "11 hours"
          - dps_val: "12"
            value: "12 hours"
          - dps_val: "13"
            value: "13 hours"
          - dps_val: "14"
            value: "14 hours"
          - dps_val: "15"
            value: "15 hours"
          - dps_val: "16"
            value: "16 hours"
          - dps_val: "17"
            value: "17 hours"
          - dps_val: "18"
            value: "18 hours"
          - dps_val: "19"
            value: "19 hours"
          - dps_val: "20"
            value: "20 hours"
          - dps_val: "21"
            value: "21 hours"
          - dps_val: "22"
            value: "22 hours"
          - dps_val: "23"
            value: "23 hours"
          - dps_val: "24"
            value: "24 hours"
  - entity: sensor
    class: duration
    translation_key: time_remaining
    category: diagnostic
    dps:
      - id: 22
        name: sensor
        type: integer
        unit: min
  - entity: sensor
    name: Usage counter
    category: diagnostic
    icon: "mdi:counter"
    dps:
      - id: 101
        name: sensor
        type: integer
  - entity: sensor
    class: duration
    name: Total time
    category: diagnostic
    icon: "mdi:timer"
    dps:
      - id: 102
        name: sensor
        type: integer
        unit: h
  - entity: sensor
    name: Electricity
    category: diagnostic
    icon: "mdi:check-circle"
    dps:
      - id: 103
        name: sensor
        type: integer
        unit: kWh
        mapping:
          - scale: 10
      - id: 104
        type: integer
        name: report_number
        optional: true
  - entity: select
    translation_key: temperature_unit
    category: config
    dps:
      - id: 105
        type: string
        name: option
        mapping:
          - dps_val: c
            value: celsius
          - dps_val: f
            value: fahrenheit

  - entity: select
    name: Fan speed
    icon: "mdi:fan"
    category: config
    dps:
      - id: 5
        type: string
        name: option
        mapping:
          - dps_val: auto
            value: auto
          - dps_val: mute
            value: mute
          - dps_val: low
            value: low
          - dps_val: low_mid
            value: medlow
          - dps_val: mid
            value: medium
          - dps_val: mid_high
            value: medhigh
          - dps_val: high
            value: high
          - dps_val: turbo
            value: turbo
  - entity: select
    name: Horizontal
    icon: "mdi:arrow-left-right"
    category: config
    dps:
      - id: 106
        type: string
        name: option
        mapping:
          - dps_val: "off"
            value: "Off"
          - dps_val: same
            value: Focus
          - dps_val: opposite
            value: Diffuse
  - entity: select
    name: Vertical
    category: config
    icon: "mdi:arrow-up-down"
    dps:
      - id: 107
        type: string
        name: option
        mapping:
          - dps_val: "off"
            value: "Off"
          - dps_val: "15"
            value: "Swing"
          - dps_val: "1"
            value: "1"
          - dps_val: "2"
            value: "2"
          - dps_val: "3"
            value: "3"
          - dps_val: "4"
            value: "4"
          - dps_val: "5"
            value: "5"
  - entity: switch
    name: Swing 3d
    icon: "mdi:arrow-all"
    category: config
    dps:
      - id: 108
        type: boolean
        name: switch
  - entity: switch
    name: Sleep
    category: config
    icon: "mdi:power-sleep"
    dps:
      - id: 109
        name: switch
        type: boolean
  - entity: switch
    translation_key: uv_sterilization
    dps:
      - id: 110
        name: switch
        type: boolean
  - entity: switch
    translation_key: ionizer
    dps:
      - id: 111
        name: switch
        type: boolean
  - entity: binary_sensor
    class: problem
    category: diagnostic
    icon: "mdi:check-circle-outline"
    dps:
      - id: 20
        type: bitfield
        name: sensor
        mapping:
          - dps_val: 0
            value: true
            constraint: fault_code2
            conditions:
              - dps_val: 0
                value: false
          - value: true
      - id: 20
        type: bitfield
        name: fault_code
      - id: 113
        type: bitfield
        name: fault_code2
  - entity: switch
    translation_key: anti_frost
    dps:
      - id: 115
        name: switch
        type: boolean

Bon moi ça refonctionne avec le fichier modifié comme je l'ai mis dans mon précédent message..Certainement une version différente d'un élément..Le principal est que cela fonctionne pour tout le monde.. :wink:

Salut, pour ceux qui ont râtés mes posts.... j'ai atteint de contrôler mes airton via IR avec une simple esp8285, voir ici deux (!) posts

Module WIFI climatisation AIRTON - Do It Yourself / Vos questions - Home Assistant Communauté Francophone

Certe, c'est pas vraiment une intégration car pas de retour de la part des splits, mais les frais sont super-bas.

Résultat net: le esp8285 fonctionne comme transmitteur IR et dans HA c'est visible comme entité 'climate' donc facile a contrôler (merci à @procsiab)