Retour d'état portail Somfy

Bingo j’ai enfin réussi un grand merci à toi je pose mon code au cas ou cela peut servir a quelqu’un.

Merci à toi pour ton temps et toutes ces informations qui m’ont appris pas mal de choses

Prochaine étape rajouter des capteurs d’ouvertures étanches pour verifier l’état réel au cas ou j’utilise une télécomande fourni avec le portail somfy ? Est-ce possible ? PS pas pour tout de suite lol

cover:
  - platform: template
    covers:
      garage_door:
        device_class: garage
        friendly_name: "Garage Door"
        value_template: "{{ states('input_text.etat_garage') == 'open' }}"
        open_cover:
          service: script.garage_up
        close_cover:
          service: script.garage_down


script:
  garage_down:
    sequence:
      - service: cover.close_cover
        target:
          entity_id: cover.slidymoove
      - service: input_text.set_value
        target:
          entity_id: input_text.etat_garage
        data:
          value: close
  garage_up:
    sequence:
      - service: cover.open_cover
        target:
          entity_id: cover.slidymoove
      - service: input_text.set_value
        target:
          entity_id: input_text.etat_garage
        data:
          value: open

De rien, avec mon code exemple un peu moins bancal, ça aurait été plus rapide, mais au moins tu as eu l’occasion de jouer une peu

1 « J'aime »

Exactement et le fait d’avoir galerer ma permis d’être encore plus satisfait aujourd’hui

Prochaine étape rajouter des capteurs d’ouvertures étanches pour verifier l’état réel au cas ou j’utilise une télécomande fourni avec le portail somfy ? Est-ce possible ? PS pas pour tout de suite lol

Encore merci pour ton temps

Sur le principe oui:

  • tu vires les parties qui concernent l’input_text des sequences.
  • tu remplaces le test de la position du cover par la valeur du capteur

Et fini. Suppression de l’entité intput_text qui ne sert plus nul part, pour faire propre

Ok je vais m’acheter les capteurs et dans le principe cela donne quoi d’un exemple pour un capteur avec la valeur open ou close ?

Ton capteur va probablement te donner une valeur ON/OFF

Binjour, je me permet de reparler du sujet car j’ai enfin acheter mes capteurs.

J’ai essayer avec ce code mais cela reste toujours ouvert. je n’ai pas modifier dans mes script le input text je voulais simplement voir l’état sur ce portail test

  - platform: template
    covers:
      garage_door2:
        device_class: garage
        friendly_name: "Portail test"
        value_template: "{{ states('binary_sensor.open_close_xs_sensor_window_door_is_open') }}"
        open_cover:
          service: script.garage_up_2
        close_cover:
          service: script.garage_down_2

Mon capteur donne une valeur on off
Ou ai-je fais l’erreur ? Merci poar avance

Salut

C’est tout marqué dans la doc… ON/OFF ça fait partie du lot

J’ai bien essayer de lire la doc mais vraiment pas facile.

Le probleme c’est que sur le template il reste toujours ouvert alors que mon capteur lui change bien d’état

Salut.

Le problème c’est que tu n’as pas bien construit le template.
Tu utilises la valeur de ton binary_sensor.open_close_xs_sensor_window_door_is_open qui ne ‹ donne › que 2 états : on ou off.

Dans la doc (traduisible si besoin) il est clairement indiqué que tu as la droit d’y mettre open, opening, closing, closed. Accessoirement le template converti une valeur true en open et false en closed si c’est ce qu’il reçoit.

Donc avec tes valeurs on/off, il n’y pas d’équivalent à l’attendu. Il te faut transformer par une nouvelle écriture de la ligne de code ton on en open et ton off en closed explicitement

Je te remercie pour l’info.

Pour les transformer tu as une piste a me donner afin que j’oriente mes recherches ?

Un peu dans ce style ?

template:
  - sensor:
      - name: "statut garage"
        state: >
          {% if is_state('binary_sensor.open_close_xs_sensor_window_door_is_open', 'off') %}
            closed
          {% elif is_state('binary_sensor.open_close_xs_sensor_window_door_is_open', 'on') %}
            open
          {% else %}
            failed
          {% endif %}

Le forum et la recherche avec 2 ou 3 mots clés par exemple : template cover on off closed ?
Par exemple, il y a plein d’infos ici

Merci j’ai essayer avec ca mais toujours pas.

Est il necessaire que je crée un sensor virtuel ou alors juste transformer l’information dans value template cela fonctionne ?

  - platform: template
    covers:
      garage_door2:
        device_class: garage
        friendly_name: "Portail test"
        value_template: >-
          {% if is_state('binary_sensor.open_close_xs_sensor_window_door_is_open','off') %}
            Open        
          {% else %}
            Close
          {% endif %}
        open_cover:
          service: script.garage_up3
        close_cover:
          service: script.garage_down3

Merci de ton aide

Ton premier exemple (suite à l’édition) est mieux à mon avis, par contre failed n’existe pas, donc attention à ce que donnerai l’interprétation de cover…
Dans ton deuxième exemple, aucun des mots n’est bon à cause des majuscules/conjugaison
Faire un template directement dans le cover ou faire un sensor que tu mets dans le cover, c’est pareil du point de vue logique HA, ça créer juste une entité de plus. C’est une question de préférences plus qu’autre chose

J’ai avancé grace à toi, voici mon code.
Cependant sur Homekit le portail reste toujours en mode ouverture ou fermeture mais jamais en mode fermé ou ouvert. Pourtant sur HA je vois bien fermé ou ouvert

J’ai remarqué que quand je j’ouvre le capteur le retour d’état est bien bon mais lorsque j’utilise l’action de HA cela reste en ouverture ou fermeture

  - platform: template
    covers:
      garage_door2:
        device_class: garage
        friendly_name: "Portail test"
        value_template: "{{ states('sensor.statutgarage') == 'open' }}"
        open_cover:
          service: script.garage_up3
        close_cover:
          service: script.garage_down3
          
template:
  - sensor:
      - name: "statutgarage"
        state: >
          {% if is_state('binary_sensor.open_close_xs_sensor_window_door_is_open', 'off') %}
            closed
          {% elif is_state('binary_sensor.open_close_xs_sensor_window_door_is_open', 'on') %}
            open
          {% else %}
            failed
          {% endif %}

Tu te trompe sur un partie de la logique.

 "{{ states('sensor.statutgarage') == 'open' }}"

ça retourne une valeur true/false… ça marche mais c’est dommage puisque tu as déjà open/closed dans ton sensor.

Et ton sensor contient encore 3 états dont 1 qui n’est pas valable.

Tu as plus simple à faire :

- platform: template
    covers:
      garage_door2:
        device_class: garage
        friendly_name: "Portail test"
        value_template: "{{ states('sensor.statutgarage') }}"
        open_cover:
          service: script.garage_up3
        close_cover:
          service: script.garage_down3
          
template:
  - sensor:
      - name: "statutgarage"
        state: >
          {% if is_state('binary_sensor.open_close_xs_sensor_window_door_is_open', 'off') %}
            closed
          {% else %}
            open
          {% endif %}

Pour homekit, je ne sais pas, je suis pas fan de l’empilement des applis