Condition sur un bouton

Bonjour à tous,

j’ai domotisé ma porte de garage avec ce module wifi

Ca fonctionne parfaitement avec la carte de base et les deux flèches pour ouvrir ou fermer. De plus avec la retour d’état c’est nickel.

Pour aller plus loin, je veoudrais recreer la carte en y ajoutant un bouton stop.
Je me suis aperçu que pour que le STOP fonctionne, il faut relancer l’ordre ouvrir si la porte est en train de s’ouvrir ou relancer l’ordre fermer si la porte est en train de se fermer.

Pour simplifie rma compréhension j’ai donc créer des script d’ouverture, de fermeture que je peux ensuite utiliser dans une carte personnalisable.
Dans Configuration.yaml, j’ai créer la porte du garage comme étant un cover

cover:
  - platform: group
    name: Piece de vie
    entities:
      - cover.cuisine
      - cover.salon
      - cover.salle_de_jeux
      - cover.bureau
  - platform: group
    name: chambres
    entities:
      - cover.chambre_parents
      - cover.chambre_kevin
      - cover.chambre_lea
  - platform: template
    covers:
      porte_garage:
        device_class: garage
        friendly_name: "Garage Door"
        value_template: ""
        open_cover:
          service: script.ouvre_garage
        close_cover:
          service: script.ferme_garage
        stop_cover_open:
          service: script.stop_garage_ouverture
        stop_cover_close:
          service: script.stop_garage_fermeture

Ensuite j’ai déclaré une carte de type entité

type: entities
entities:
  - entity: cover.porte_garage
    name: Garage
card_mod:
  style: |
    ha-card {
      background-color: RGBA( 135, 206, 250, 0.6 );
    }

Ma question est comment gérer un si/sinon pour appeler le bon script suivant que le porte est en train de s’ouvrir ou de se fermer pour le stop ?

Merci de votre aide

Ma configuration


[center]## System Information

version core-2023.12.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.58-haos-raspi
arch aarch64
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.33.0
Stage running
Available Repositories 1355
Downloaded Repositories 22
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 Home Assistant OS 11.2
update_channel stable
supervisor_version supervisor-2023.11.6
agent_version 1.6.0
docker_version 24.0.7
disk_total 56.6 GB
disk_used 9.5 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Duck DNS (1.15.0), File editor (5.7.0), Mosquitto broker (6.4.0), tydom2mqtt (3.4.2), Home Assistant Google Drive Backup (0.112.1), go2rtc (1.8.4), Frigate (0.12.1), Terminal & SSH (9.8.1), Samba share (12.2.0), ESPHome (2023.11.6)
Dashboards
dashboards 1
resources 20
views 4
mode storage
Recorder
oldest_recorder_run 9 décembre 2023 à 09:11
current_recorder_run 17 décembre 2023 à 23:42
estimated_db_size 59.80 MiB
database_engine sqlite
database_version 3.41.2
Sonoff
version 3.5.3 (a8c6d45)
cloud_online 1 / 1
local_online 0 / 0
[/center] ___

Salut

Tu peux te baser sur l’idée suivante :
Le script de montée et de descente mettent à jour une entité supplémentaire lors de leur lancement, et cette entité est prise en compte par le stop pour doubler l’action

Bonjour, je suis en train de tester mais j’avoue que j’ai un peu de mal.
L’entité supplémentaire que je dois mettre à jour avec un status open ou close, je dois la créer dans le script ou indépendement et ensuite l’appeler dans le script ?

Bonjour,

Tu la crées indépendament : Paramètres → Appareils et services → Entrées

Tu crées une nouvelle « entrée »

Entrée de type « Texte » (ou de type boolean : « on » sur ouverture et « off » sur fermeture) et tu la mets à jour dans tes scripts

1 « J'aime »

Tu te fais un input_text indépendamment (et par volet)