Inversion des commandes de volet

Mon problème

Bonjour tout le monde,

Après intégration de mes périphériques en enocean avec Enocean-mqtt (merci @mak-dev ), j’ai remarqué que les commandes de « Monter » et « descente » pouvaient être inversé selon le volet.

Pourtant quand je joue sur le positionnement du volet, cela fonctionne bien.

Je ne vois comment je peux inverser ces commandes.

Ici, la position est à 100%
La commande du bas est disponible pour le clic.
Mais il faut que je clic sur le bouton up (pour descendre) qui est grisé.
Cela n’est pas bloquant car je peux jouer sur la position.
Mais j’aimerais faire ça convenablement.

image

Même chose avec le widget suivant :
image

ou alors, il faut que j’inverse tous les cablages ? (ce qui sera très laborieux)

Ma configuration


Comment récupérer ma configuration :
`## System Information

version core-2023.3.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.10
os_name Linux
os_version 4.19.0-22-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.31.0
Stage running
Available Repositories 1257
Downloaded Repositories 17
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2023.03.1
agent_version 1.3.0
docker_version 20.10.21
disk_total 38.1 GB
disk_used 35.4 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons File editor (5.5.0), Mosquitto broker (6.1.3), Terminal & SSH (9.6.1), Home Assistant Google Drive Backup (0.110.1), Studio Code Server (5.5.3), Zigbee2MQTT (1.30.2-1)
Dashboards
dashboards 1
resources 13
views 8
mode storage
Recorder
oldest_recorder_run 8 mars 2023 à 10:17
current_recorder_run 16 mars 2023 à 21:25
estimated_db_size 15057.50 MiB
database_engine sqlite
database_version 3.38.5
`___

Hello

tu dois cree un bouton virtuel et tu inverses les commandes dans ce bouton.

Je te donne un de mes modeles pour que tu comprennes.

  - platform: template
    switches:
      rad_entree:
        friendly_name: Radiateur Entrée
        icon_template: mdi:radiator        
        value_template: "{{ is_state('switch.radiateur_entree', 'off') }}"
        turn_on:
          service: switch.turn_off
          entity_id: switch.radiateur_entree
        turn_off:
          service: switch.turn_on
          entity_id: switch.radiateur_entree
1 « J'aime »

ah oui, on utilise plus l’entité de base mais notre template.

je vais regarder les template pour les volets.
je te remercie pour ton exemple .

1 « J'aime »

cela te fera un truc du genre

cover:
  - platform: template
    covers:
      ton_volet_door:
        friendly_name: "Ton Volet"
        open_cover:
          service: switch.turn_on
          data:
            entity_id: switch.ton_volet_door_opener 
        close_cover:
          service: switch.turn_off
          data:
            entity_id: switch.ton_volet_door_opener 
        stop_cover:
          service: switch.turn_on
          data:
            entity_id: switch.ton_volet_door_opener 
        icon_template: >-
          {% if is_state('switch.ton_volet_door_opener ', 'on') %}
            mdi:ton_volet-open
          {% else %}
            mdi:ton_volet
          {% endif %} 

et une carte vite fait

entity: ton_volet_door
hold_action:
  action: more-info
show_icon: true
show_name: true
tap_action:
  action: toggle
type: entity-button
1 « J'aime »

J’ai avancé sur mon projet.

j’arrive bien à inverser la commande up/down , a recréer une commande stop.
Par contre, je séche pour la position du volet . Cela ne fonctionne pas du tout

cover:
  - platform: template
    covers:
      cuisine_shutter:
        device_class: shutter
        unique_id: 'volet_cuisineId'
        friendly_name: "Volet de la cuisine modifié"
        open_cover:
          service: cover.close_cover
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
        close_cover:
          service: cover.open_cover
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
        position_template: >
          "{{ state_attr('cover.e2m_shutter_cuisine_cover','current_position') | int > 0 }}"
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{ state_attr('cover.e2m_shutter_cuisine_cover','current_position')  }}"
          target:
            entity_id: cover.e2m_shutter_cuisine_cover

Peut-etre un problème de syntaxe .

Voila le code qui fonctionne, si ça peut servir à quelqu’un qui passe parl a :slight_smile:

cover:
  - platform: template
    covers:
      cuisine_shutter:
        device_class: shutter
        icon_template: "hass:window-shutter-{{ 'open' if state_attr('cover.e2m_shutter_cuisine_cover', 'current_position')|float > 0 else 'closed' }}"
        unique_id: 'volet_cuisineId'
        friendly_name: "Volet de la cuisine modifié"
        open_cover:
          service: cover.close_cover
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
        close_cover:
          service: cover.open_cover
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
        position_template: "{{ state_attr('cover.e2m_shutter_cuisine_cover', 'current_position') }}"
        set_cover_position:
          service: cover.set_cover_position 
          target:
            entity_id: cover.e2m_shutter_cuisine_cover
          data:
            position: "{{ position }}"
2 « J'aime »

Bonjour,¨
J’ai repris ton code (j’ai le même entity_ID, j’ai juste modifié le unique_ID) mais ça ne fonctionne pas. Je n’ai aucun message d’erreur dans les logs…J’y ai passé plusieurs heures et je comprends pas.
Où est-ce que j’ai pu faire faux ?

ola, ça remonte.

colle ton code, des fois que quelque-chose t’aurait échappé.

Finalement c’était bon, je viens de Jeedom, je débute donc dans HA et je pensais que le template se liait au device… Merci beaucoup pour ta réponse et pour le code qui je confirme est donc fonctionnel. :slight_smile:

1 « J'aime »

super :grinning:

oui, moi aussi , je viens de la bas.
c’est pas la même philosophie .