Automatisations VR avec un RFLink

Bonjour à tous,

je débute avec Home Assistant et je suis confronté à deux problèmes.

1/ J’ai installé un RFLink et je retrouve mes 9 volets roulants dans les entités et non dans les appareils (pas un problème me direz vous) mais pour réaliser des automatisations j’ai été obligé de créer deux scènes par VR, une pour la montée et une pour la descente …
Avez-vous une solution pour que ce soit plus simple ?

2/Je souhaite également pouvoir tout fermer ou tout ouvrir à partir d’un bouton (j’ai créé un input_boolean) mais impossible de le faire fonctionner.

Merci d’avance pour votre aide.

Salut,

Pour le 1/ je dirais que c’est normal, pourquoi veux-tu créer une scène qui actionne à la fois la montée ET la descente? Une scène déclenche une série d’action, tu ne peux pas dire à ton volet de monter et descendre en même temps.
Après, tu peux via nodered, probablement créer une automatisation + subtile qui conditionne l’action (montée ou descente) selon un ou plusieurs critères. C’est faisable aussi via HA directement mais je n’aime pas l’interface « condition », c’est pas clair.

Pour ma part j’ai pour l’instant 2 automatisations, une qui ouvre tous les volets le matin et une autre qui ferme soir:
image

Pour le 2/ choisi Etat dans le déclencheur et met ON ou OFF selon ce que tu veux faire dans le champ « A »:
image
En action tu actives la ou les scènes que tu veux.

Des scènes ?! C’est pas plutôt des scripts ?

Peux tu fournir ton code ?

Peux tu fournir un aperçu des entités dans l’onglet ETATS des Outils de développement ?

Si tu veux poser une question, peux être pourrais-je t’enlever des zones d’ombres…

Merci, mais je vais passer par NR maintenant. Je parlais juste de l’ergonomie de l’UI, qui rend les choses assez opaques pour moi. J’aurrais pu passer par le YAML tu me diras, mais je préfère le principe de NR, ya des images :slight_smile:

Bref, on polue le topic du Monsieur, désolé @Nico76 ! Comme disait @Clemalex , balance ton code.

1 « J'aime »

Merci pour vos premières réponses.

Voici la config de mon fichier configuration.yaml

image

J’ai bien créé 2 scènes par V/R, 1 pour la montée et une pour la descente … mais effectivement les scripts seraient plus adaptés.

Voici un aperçu d’un état d’un VR dans l’outil de développement (je ne sais pas si vous avez besoin d’autres infos):

image

A terme j’aimerais avoir une carte qui me permettre de sélectionner rapidement les jours d’activation/désactivation de l’automatisation de ce type:

image

@Clematex, je pense que tu vas pouvoir m’aider :wink:

1 « J'aime »

Les scènes s’il te plaît :innocent:

Je vois bien les deux points mais je les comprends pas. :innocent:

Tu peux expliquer plus précisément ce que tu veux et je t’expliquerai sans soucis (en automatisations yaml) :+1:

Voici la capture d’une scène:


Pour cette scène j’ai cliqué sur « SomfyBaie2 » et fermé mon VR.

Ce que j’aimerai c’est pouvoir réaliser des automatisations plus facilement, lorsque ce sont des appareils j’ai pas de problème mais lorsque ce sont des entités ça se complique pour moi…

Une fois que j’aurai compris les automatisations j’aimerai pouvoir:

  • activer/désactiver l’automatisation via un bouton
  • forcer la montée ou la descente d’un groupe de VR
  • réaliser un planning à l’aide de cette carte:
    image

Je pense avoir compris du coup voici ma réponse :upside_down_face: :

Point 1 : Explication

Pour la petite explication, tous les appareils contiennent des entités et c’est HA qui gère lui-même le service appelé en fonction de l’action que tu choisis.

Pourquoi cette explication, pour expliquer que comme tu n’as pas d’appareil, il te faut passer par les services.

Tu cherches à piloter des volets, donc il faut aller faire un tour du propriétaire des services du domaine concerné : cover dans la documentation.

Au vue de ta demande, je pense que les services cover.open_cover , cover.close_cover sont ceux que tu cherches car ils correspondent aux actions d’ouverture et de fermeture (complète pour toutes les deux) du ou des volets concernés.

Du coup, pour commencer simplement, tu peux utiliser directement ces actions dans 2 automatisations :

  1. Quand le soleil se lève, on ouvre les volets
alias: Volets - Ouverture au lever du soleil
description: Ouverture des volets au lever du soleil
trigger:
  - platform: sun
    event: sunrise
condition: []
action:
  - service: cover.open_cover  # Action d'ouverture
    target:
      entity_id:
        - cover.hall_window
        - cover.kitchen_window
        - cover.living_room_window
        - cover.pergola_roof
mode: single
  1. Quand le soleil se couche, on ferme les volets
alias: Volets - Fermeture au coucher du soleil
description: Fermeture des volets au coucher du soleil
trigger:
  - platform: sun
    event: sunrise
condition: []
action:
  - service: cover.close_cover  # Action de fermeture
    target:
      entity_id:
        - cover.hall_window
        - cover.kitchen_window
        - cover.living_room_window
        - cover.pergola_roof
mode: single

Point 2 : Activer/désactiver les automatisations

2.a Conditionner l’automatisation

La méthode qui revient le plus souvent pour activer/désactiver l’automatisation est de passer par une entité booléenne (input_boolean) qui conditionne l’automatisation.

Pour la création de l’entité de gestion de l’automatisation d’ouverture au lever de soleil, direction Configuration → Entrées → bouton AJOUTER UNE ENTRÉE → Interrupteur :

Nom: Volets - Lever de soleil
Icône: mdi:weather-sunset-up

et une deuxième pour l’automatisation du coucher de soleil :

Nom: Volets - Coucher de soleil
Icône: mdi:weather-sunset-down

animate

Une fois ces deux entités créées, on peut les utiliser comme condition pour le déclenchement des actions de l’automatisation.

On reprend les deux même automatisations et on ajoute une condition d’état sur les entités booléennes (input_boolean) :

  1. Quand le soleil se lève, on ouvre les volets
alias: Volets - Ouverture au lever du soleil
description: Ouverture des volets au lever du soleil
trigger:
  - platform: sun
    event: sunrise
condition:
  - condition: state
    entity_id: input_boolean.volets_lever_de_soleil  # Conditionne l'exécution des actions
    state: 'on'
action:
  - service: cover.open_cover
    target:
      entity_id:
        - cover.hall_window
        - cover.kitchen_window
        - cover.living_room_window
        - cover.pergola_roof
mode: single
  1. Quand le soleil se couche, on ferme les volets
alias: Volets - Fermeture au coucher du soleil
description: Fermeture des volets au coucher du soleil
trigger:
  - platform: sun
    event: sunrise
condition:
  - condition: state
    entity_id: input_boolean.volets_coucher_de_soleil # Conditionne l'exécution des actions
    state: 'on'
action:
  - service: cover.close_cover 
    target:
      entity_id:
        - cover.hall_window
        - cover.kitchen_window
        - cover.living_room_window
        - cover.pergola_roof
mode: single

Maintenant, les actions d’ouverture et de fermeture s’exécuteront seulement si les entités booléennes correspondantes sont à Vrai.

2.b Automatiser l’activation/désactivation

Un peu plus haut, j’ai mis en gras ceci :

Une fois ces deux entités créées, on peut les utiliser comme condition pour le déclenchement des actions de l’automatisation.

Je souhaite simplement expliquer ici que l’automatisation reste active avec cette méthode et c’est seulement les actions qui sont conditionnées. Si l’entité input_boolean.volets_lever_de_soleil est à faux, les volets ne s’ouvriront pas le matin au lever du soleil mais l’automatisation se sera tout de même déclenchée.

Il est important de comprendre que mettre des conditions ne désactive pas l’automatisation mais ses actions, ce qui induit donc des déclenchements d’automatisation non désirés.

Il est nettement plus facile de fonctionner avec des booléens (et c’est pourquoi j’explique la méthode) mais il est plus fonctionnel de travailler directement sur l’automatisation elle-même afin de soulager le serveur de la surveillance de déclencheur non désiré…(je me relirais car je ne sais pas si la phrase est clair :sweat_smile:).

Toujours avec des booléens

Si on veut garder le principe d’une entité qui active/désactive l’automatisation, il faut passer par une automatisation tierce qui active/désactive l’automatisation cible.

Dans notre cas des 2 automatisations de lever et coucher de soleil cela donnera (j’ai regroupé le deux automatisations pour montrer qu’il est possible d’avoir une seul automatisation qui permette de gérer toute les autres) :

alias: Automatisations - Activation/Désactivation
description: Gère l'activation et la désactivation de toutes les automatisations concernées
trigger:
  - platform: state
    entity_id: input_boolean.volets_lever_de_soleil
  - platform: state
    entity_id: input_boolean.volets_coucher_de_soleil
condition: []
action:
  - choose:
      - conditions:
      ## Sur changement d'état de input_boolean.volets_lever_de_soleil
          - condition: template
            value_template: '{{trigger.entity_id.split(''.'')[1] == ''volets_lever_de_soleil'' }}'
        sequence:
          - choose:
              - conditions:
              ### Activation de l'automatisation
                  - condition: template
                    value_template: '{{trigger.to_state.state == ''on'' }}'
                sequence:
                  - service: automation.turn_on
                    target:
                      entity_id: automation.volets_ouverture_au_lever_du_soleil
              - conditions:
              ### Désactivation de l'automatisation
                  - condition: template
                    value_template: '{{trigger.to_state.state == ''off'' }}'
                sequence:
                  - service: automation.turn_off
                    target:
                      entity_id: automation.volets_ouverture_au_lever_du_soleil
            default: []
      - conditions:
      ## Sur changement d'état de input_boolean.volets_coucher_de_soleil
          - condition: template
            value_template: '{{trigger.entity_id.split(''.'')[1] == ''volets_coucher_de_soleil'' }}'
        sequence:
          - choose:
              - conditions:
              ### Activation de l'automatisation
                  - condition: template
                    value_template: '{{trigger.to_state.state == ''on'' }}'
                sequence:
                  - service: automation.turn_on
                    target:
                      entity_id: automation.volets_fermeture_au_coucher_du_soleil
              - conditions:
              ### Désactivation de l'automatisation
                  - condition: template
                    value_template: '{{trigger.to_state.state == ''off'' }}'
                sequence:
                  - service: automation.turn_off
                    target:
                      entity_id: automation.volets_fermeture_au_coucher_du_soleil
            default: []
#      - conditions:
#      ## Sur changement d'état de input_boolean.XXXXXXXXXXX
#          - condition: template
#            value_template: '{{trigger.entity_id.split(''.'')[1] == ''XXXXXXXXXXX'' }}'
#        sequence:
#          - choose:
#              - conditions:
#              ### Activation de l'automatisation
#                  - condition: template
#                    value_template: '{{trigger.to_state.state == ''on'' }}'
#                sequence:
#                  - service: automation.turn_on
#                    target:
#                      entity_id: automation.YYYYYYYYYYYYYYYYYY
#              - conditions:
#              ### Désactivation de l'automatisation
#                  - condition: template
#                    value_template: '{{trigger.to_state.state == ''off'' }}'
#                sequence:
#                  - service: automation.turn_off
#                    target:
#                      entity_id: automation.YYYYYYYYYYYYYYYYYY
#            default: []
    default: []
mode: single

L’automatisation, elle-même

Il ne faut pas oublier que l’automatisation est elle-même une entité.

Je préfère, dès que cela est possible utiliser directement les services automation.turn_[on,off] comme action dans les boutons Lovelace sans passer par un booléen et une autre automatisation.
Ou simplement afficher l’entité automation.nom_de_l_automatisation dans une carte entités par exemple afin d’avoir un bouton d’activation/désactivation

Au final, chacun fait comme il le sent, je m’efforce juste a essayer d’être le plus explicatif possible :wink:

Point 3

Tout est là : [CARTE] Réveil (ou activation d'automatisation) - #14 par Clemalex :innocent: (je n’ai pas mis le code de gestion qui est derrière cette carte sur le forum anglais :yum:)



S’il y a un point que tu souhaites approfondir, ou si je m’égards et réponds à côté, n’hésite pas :+1:

Qui a dit que la domotique était compliqué? :crazy_face: Si avec ça @Nico76 tu n’y arrives pas, @Clemalex mangera son chapeau!

il y a un point a éclaircir ? :upside_down_face:

Sans titre

faut que je pense à m’acheter un chapeau maintenant… :wink: :smiling_face_with_three_hearts:

1 « J'aime »

Merci beaucoup pour le temps que tu as consacré à me donner toutes ces infos !

Je teste ça ce soir, j’ai réussi hier soir à faire des groupes de volets, simple pour la majorité d’entre vous mais une petite victoire pour moi qui débute :blush:

1 « J'aime »

Je viens de tester c’est beaucoup plus clair pour moi maintenant !
Un grand merdi @Clemalex

C’est bon ? Pas besoin de m’acheter un chapeau du coup ? :zipper_mouth_face:

1 « J'aime »

pas si simple que cela je te rassure, j’ai mis un moment à trouver également pour les groupes de volets, et grâce à l’aide de @Clemalex et @Dapolux je m’en suis sorti :pray:

Oups désolé tu révais peut-être d’un chapeau :face_with_hand_over_mouth:

@Clemalex bonjour,
l’automatisation fonctionne correctement avec l’input_boolean, j’ai rajouté dans le code l’envoi d’un message via telegram.
Le problème est que le message n’arrive pas alors que dans mes autres automatisations ça fonctionne.
Voici le code de l’automatisation est-ce que tu vois une erreur ?

Peut être le M majuscule de Message:innocent:

Mets l’option en minuscule…

1 « J'aime »