Script pour utilisation d'un climatiseur

Bonjour,

Je teste une télécommande IR Zigbee qui est correctement appairée via z2m

J’essaie donc de reproduire le fonctionnement de la télécommande fournie avec le climatiseur et cela fonctionne avec le bouton marche/arrêt (le code IR est bien transmis par la télécommande IR Zigbee.

J’essaie maintenant de reproduire le fonctionnement de la touche « Fan » dont la description est ci-dessous :

J’ai donc créé une entrée numérique (input_number) allant de 0 à 6 avec un pas de 1 pour les différents réglages du débit d’air (de « auto » à « haut »)

J’ai ensuite créé un script que envoie le code IR au climatiseur (service mqtt.publier) et qui incrémente la valeur de l’entrée numérique.
J’arrive à déterminer par ce script que quand la valeur de l’entrée numérique est à 6, un nouvel appel (clic sur un bouton) la valeur de l’entrée numérique passe à 0. Mais dans ce cas, quand la valeur de l’entrée numérique est à 0, un nouveau clic n’incrémente plus l’entrée numérique…

Voici le yaml du script :

alias: Climatiseur séjour - Fan
sequence:
  - service: mqtt.publish
    data:
      qos: "0"
      retain: false
      payload: >-
        {"ir_code_to_send":
        "BaUBpQHFAeAHAwx5YqgNygalARYFxQGlYAFABwrFARYFpQGlAcUBpWABQAcBxQHAE0AHBRYFxQHFAYAHQAsBFgXgAQsApSABQAUGFgXFAcUBpSABQAVAA0ABQAdAA0ABQAdAAwGlAUArA6UBxQHABwLFAaUgAQTFARYFpWADAsUBpSABQAUAxSABAaUBQBdABwGlAUAFAMUgAQClIAFABQDFIAEApSAB4AUFQC8BFgVABwPFAaUBgANACwIWBaUgAwPFAXuLQQcBxQFACwKlAcUgAQClIAEKxQEWBaUBpQHFAaUgAcAFwBNABwQWBcUBpSABQAcBFgXAB4ALA6UBxQFAA0APAKUgAeABBQDFIAEApSABQAUAxSABAKUgAUAFAMUgAQWlARYFpQFABwGlAUAFQAMDpQEWBYAHBqUBxQEWBaUgA4AHA6UBxQFAA0APAKUgAUAHBxYFpQGlAcUBQAMKxQGlARYFxQHFAaUgAQfFARYFpQGlAeABB0ALA8UBpQFAFwMWBcUBgQeACwLFAaUgAUAFAcUBQBsApSAB4AEFAcUBgBOABwUWBaUBpQGAB0ALARYFwAsCxQGlYAEJxQEWBaUBpQHFAcADAsUBpSABQAUAxSABAKUgAUAFAMUgAQClIAFABQDFIAEApSABQAUAxSABAKUgAUAFBcUBFgXFAUAHA8UBpQFACwLFAaUgAQHFAUALQAcApSABgAUFpQEWBaUBQAsGFgXFAcUBpSAB4BMFAMUgAQClIAHgBQUCFgWlIANABwLFAaUgAeAZBQDFIAEApSABQAVAAwGlAeAHBUBLQAMCpQHFIAEApSAB4AcFAMUgAQClIAFABQHFAUArCBYFpQGlAcUBpSAB4AsFAcUB4AMXQA0BpQHgAwVAAQDFIAHgB0cAxSABAKUgAQIWBcUgAwSlAcUBpWABQAdAA8ATQAvgHwMBFgVAKQWlARYFpQFAAQsWBcUBpQGlAcUBpQE="}
      topic: zigbee2mqtt/Salle à manger - Télécommande climatiseur/set
  - if:
      - condition: numeric_state
        entity_id: input_number.salle_a_manger_debit_climatiseur
        attribute: initial
        below: 6
    then:
      - service: input_number.increment
        data: {}
        target:
          entity_id: input_number.salle_a_manger_debit_climatiseur
    else:
      - service: input_number.set_value
        data:
          value: 0
        target:
          entity_id: input_number.salle_a_manger_debit_climatiseur
mode: single
icon: mdi:air-conditioner

Je voudrais donc qu’un clic sur le bouton incrémente de 1 la valeur de l’entrée numérique quand sa valeur est supérieure ou égale à 0 et inférieure à 6 et que si sa valeur est de 6, celle-ci passe à 0.

J’ai beau essayer par l’interface graphique, je n’arrive pas à obtenir ce que je veux.

Est-ce que quelqu’un aurait la solution à mon problème ou pourrait me dire ce qui ne va pas dans ce que je fais ?

Hello,

As-tu essayé avec un compteur au lieu d’un input number ?
Ca te permet d’appeler le service counter_reset

Counter - Home Assistant (home-assistant.io)

Après le souci, c’est que tu peux avoir un décalage avec l’état réel de ta clim puisque pas de retour d’état

Bonjour Krull56,

Non, je n’ai pas essayé avec un compteur., Je pensais que ça serait simple avec un input_number. Je vais donc tester avec un compteur.

Oui, il y aura forcément un décalage avec la clim en cas d’utilisation de la télécommande d’origine mais le but est que si ça fonctionne correctement, je n’utilise plus la télécommande d’origine mais la télécommande « virtuelle » via les téléphones portable ou une tablette murale et que je fasse la même chose pour les 5 autres splits.

De toute façon, avec les télécommandes d’origine, la programmation et le réglage des climatiseurs est une vrai galère.

J’espère pouvoir faire quelque chose de correct via HA.

Ca marche nickel (sous réserve de ne pas mettre « above 0 » dans la condition comme je l’ai fait au début car sinon, le compteur reste bloqué sur 0 :crazy_face:) :

alias: Climatiseur séjour - Fan
sequence:
  - if:
      - condition: numeric_state
        entity_id: counter.salle_a_manger_debit_d_air_climatiseur
        below: 6
    then:
      - service: counter.increment
        data: {}
        target:
          entity_id: counter.salle_a_manger_debit_d_air_climatiseur
    else:
      - service: counter.reset
        data: {}
        target:
          entity_id: counter.salle_a_manger_debit_d_air_climatiseur
mode: single
icon: mdi:air-conditioner

Je n’ai plus qu’à remettre le mqq.publier

Merci @anon21985933