Reset d'un entrée (helpers) Interrupteur (input boolean)?

Hello, je suis débutant HA et je viens de Jeedom. J’essaie d’apprendre en consultant les forums et autres sites mais là je suis coincé, je n’arrive pas à trouver une solution à mon souci.

Je vais essayer d’expliquer simplement.

J’ai 3 switch (input_boolean.lum_sal_a + input_boolean.lum_sal_b + input_boolean.lum_sal_full) qui font trigger chacun pour activer une automation (scène + lumières et prises connectées).
Vu que certaines lumières sont communes, mais de couleurs différentes, seul un des 3 switch devrait être sur « on » à la fois.

Ce qui se passe:

Par exemple, quand je mets le switch 1 sur ON, il active bien son automation. Maintenant si je mets le switch 2 sur ON (alors que le switch 1 est toujours sur on) je me retrouve avec le switch 1 toujours su ON.

J’aimerais donc le reset, seulement contrairement à Jeedom ou on a cette possibilité de « reset » un virtuel, là je ne peux que changer l’état d’un switch et ça n’est pas sans conséquence. Si j’intègre dans mes automations la notion de « passer les 2 autre switch » à OFF alors celà va m’allumer les lumières et 2 sec après les éteindre :frowning:

En court, j’aimerais pouvoir changer l’état d’un switch sans que ça me déclenche une automation.

Par-dessus tout ça j’ai deux interrupteur à bascule aqara qui viennent s’intégrer dans le système.

J’imagine que mon explication n’est pas top alors je vous mets le code généré par l’interface UI (je ne maîtrise pas trop le YAML mais ça commence à entrer ;-))

Merci beaucoup pour votre aide parce que là ça fait 2 jours que je cherche et fait des tests sans succès.

AUTOMATION A

alias: Allume salon A
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.lum_sal_a
    to: null
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.wall_switch_left_sal
      click_type: single
condition: []
action:
  - if:
      - condition: device
        type: is_off
        device_id: f0319afd0a64ea9c71b2785cfdfccdf7
        entity_id: 781eee9747b7d9d34da2331019dfad6f
        domain: light
    then:
      - service: hue.activate_scene
        target:
          entity_id:
            - scene.bureau_bureau_b
            - scene.salon_salon_i
        data: {}
      - service: scene.turn_on
        data: {}
        target:
          entity_id:
            - scene.scene_ambiance_a_on_salon
      - service: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id:
            - input_boolean.lum_sal_a
    else:
      - service: scene.turn_on
        data: {}
        target:
          entity_id: scene.scene_ambiance_b_off_salon
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id:
            - input_boolean.lum_sal_a
mode: single

AUTOMATION B

alias: Allume salon B
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.lum_sal_b
    to: null
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.wall_switch_right_sal
      click_type: single
condition: []
action:
  - if:
      - condition: device
        type: is_off
        device_id: f0319afd0a64ea9c71b2785cfdfccdf7
        entity_id: 781eee9747b7d9d34da2331019dfad6f
        domain: light
    then:
      - service: hue.activate_scene
        target:
          entity_id:
            - scene.salon_salon_b
            - scene.bureau_bureau_b
        data: {}
      - service: scene.turn_on
        data: {}
        target:
          entity_id: scene.ambiance_b_on_salon
      - service: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.lum_sal_b
    else:
      - service: scene.turn_on
        data: {}
        target:
          entity_id: scene.scene_ambiance_b_off_salon
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id:
            - input_boolean.lum_sal_b
mode: single

AUTOMATION FULL

alias: Allume salon full
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.lum_sal_f
    to: null
  - platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.wall_switch_both_sal
      click_type: both
condition: []
action:
  - if:
      - condition: device
        type: is_off
        device_id: f0319afd0a64ea9c71b2785cfdfccdf7
        entity_id: 781eee9747b7d9d34da2331019dfad6f
        domain: light
    then:
      - service: hue.activate_scene
        target:
          entity_id:
            - scene.bureau_concentrate
            - scene.salon_concentrate
        data: {}
      - service: scene.turn_on
        data: {}
        target:
          entity_id:
            - scene.scene_ambiance_full_on_salon
      - service: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id:
            - input_boolean.lum_sal_f
    else:
      - service: scene.turn_on
        data: {}
        target:
          entity_id: scene.scene_ambiance_b_off_salon
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id:
            - input_boolean.lum_sal_f
mode: single

  • 3 input boolean

input_boolean.lum_sal_a + input_boolean.lum_sal_b + input_boolean.lum_sal_full

Salut…

Reproduire les mécanismes jeedom d’une façon générale c’est pas une bonne solution.
Dans ton cas, crée un input_select avec tes 3 modes… tu te sers de ça comme trigger…
Et tu te fais 3 boutons dans ton interface pour choisir le ‹ mode › qui va bien

1 « J'aime »

Hello, merci pour ta réponse. J’ai tout à fait la conscience que Jeedom et HA sont complètement différents mais c’est pas évident de migrer en faisant abstraction de toutes ces années d’habitudes sur une autre plateforme :slight_smile:

Alors je comprends ta solution, excellent ! seulement je n’ai pas parlé d’une chose, j’ai besoin des 3 switch pour pouvoir les intégrer dans Google Home, pour pouvoir les commander à la voix ou directement via un switch dans Google Home.

Les automations de ce que j’ai vu ne sont pas supportées par Google Home

Il y a peut-être une autre solution pour intégrer GH dans ces fonctions d’allumage ? toujours avec la même contrainte, qu’il faudrait qu’il n’y ait qu’un seul switch en ON à la fois

J’ai pas d’exemple mais tu peux faire essai :
Les input_select existe sous GH Cloud-to-cloud  |  Google Home Developers

Donc un truc du genre “ OK Google, mets <input select name> dans le mode <input option> ” ça doit marcher

Humm, ouais alors je cherche une solution simple comme celle des switch, Ok Google, allume « le salon full »

Les scripts sont importables fans Google home. Donc tu te fais un script pour chaque mode et tu l’appel a la voix.

2 « J'aime »

Bien vu ! j’avais testé les scripts qui sont effectivements dispo dans GH. Reste le switch physique dans Google Home . Ou on peut « afficher » un script en tant que switch dans GH ? et du coup, comment faire pour qu’un seul s’affiche ON à la fois ?

Il y a un truc que je ne comprend pas, j’ai du mal à comprendre la difficulté.

  • Tu as des switchs d’un coté
  • Tu as des lampes de l’autre coté (et éventuellement des scenes ou des scripts).

Pourquoi cherches tu à piloter tes switchs dans google home?

Tu devrais simplement piloter tes lampes, individuellement ou par groupes, et/ou appeler des scripts non? Pourquoi piloter un interrupteur???

Bref ce que je ferai:

  • créer des automatisation pour gérer le comportement des switch (interrupteurs physiques) en fonction de l’état des lampes (ou des groupes de lampes suivant ce qui est le plus pratique pour toi)
  • gérer mes lampes ou groupes de lampes dans GH, et éventuellement créer des scripts pour pouvoir interagir à la voix sur les lampes ou groupes de lampes de la façon qui te vas bien.

[edit] sur Alexa tu peux assigner des lampes à une piece, et si tu dis allume la piece, toutes les lampes s’allument (réciproquement si tu dis éteint la piece, tout s’éteint), j’imagine que tu peux faire pareil sur GH, indépendament des interupteurs…
Ensuite tu peux définir des lampes ou groupes de lampes pour dire allume le coin A, éteins le coin A, etc…
Et au pire tu appelles des scripts directement « ok google, mode cocooning » …

La raison est simple, j’aimerais avoir un interrupteur dans l’interface de GH qui me permette d’allumer une ambiance dans mon salon (j’en ai 3 d’ambiances). C’est pas seulement des lampes mais des scènes, des prises connectées et divers objets individuels que j’ « allume » à travers une automation (voir ci-dessus) pour chacune des 3 ambiances.

C’est juste impossible de gérer ça dans GH

Il me reste une seule chose ou je butte, c’est la mécanique à mettre en place pour que les 3 boolean switch qui seront visible dans GH, ne soient jamais ON en même temps.

Je ne connais pas assez encore HA, je ne suis sans doute pas sur la bonne route :frowning:

J’en reviens à Jeedom ou on avait la possibilité de reset un switch boolean (un virtuel) , du coup, les sripts ne tenaient pas compte de ce passage à un autre état, suffisait de reset et bim, le switch se mettait en OFF sans que ça ne déclenche une automation/script ou autre.

Ca c’est tout simplement un script dans HA que tu appelles via GH
un script c’est une suite d’action (comme une automatisation, mais sans la partie trigger et conditions)
un script n’est pas « on »… il s’execute et puis c’est tout

Tu peux donc avoir un script ambiance 1:

  • allumer les lampes à 10%
  • mettre de la musique douce
  • mettre le chauffage à 25°C

Un script ambiance 2

  • allumer la lumière en blanc froid à 100%
  • éteindre la musique
  • fermer les volets

Un script départ:

  • éteindre toutes les lumières
  • éteindre la musique
  • fermer les volets
  • mettre le chauffage en hors gel

lancer un script effectue les actions et c’est tout.

Tu passe d’une ambiance à l’autre en lançant un script. Ensuite tu peux modifier ce que tu veux via tes interrupteurs, ton GH, ton dashboard, etc… ça n’a aucun effet sur le script en lui même qui a fini ses actions…

Et tu peux aussi lancer un script via un bouton, un interrupteur, une automatisation, etc…

Et si tu veux savoir dans quelle ambiance tu te trouves (j’avoue que je ne voies pas trop pourquoi…) il suffit de créer des booléens pour chaque ambiance (et quand tu lance un script tu passes dans ce script tous les autres booléens d’ambiance à 0). Ou alors un input_text dans lequel tu viens écrire l’ambiance en cours…

Je comprends ce que tu veux dire mais je visualise toujours pas comment avoir mes 3 switch dans Google Home que je puisse allumer et éteindre mes 3 ambiances sans que jamais j’aie deux switch sur ON.

Reprenons :

Si je passe mon switch1 sur GH à ON, il me lance le script « ambiance 1 » disons pour faire simple toutes les lampes en vert et je fait tourner le ventilateur, jusque là c’est tout bon. Je peux si je veux, passer le switch1 à OFF qui lancerait le script qui éteint tout. Je le fait pas, je laisse le switch1 sur ON pour expliquer la suite.

Donc, je décide d’utiliser le switch2 sur GH et le mets sur ON. Il devrait lancer le script « ambiance 2 » mais pas possible de faire ça car 1) le switch1 est visuellement toujours sur ON 2)si je passe le switch1 à OFF dans mon script, celà va éteindre toute les lumières au lieu de les allumer il me semble :frowning:

L’indication est visuelle, si le le switch1 qui commande l’ambiance1 est sur ON dans l’interface de Google Home, c’est que c’est actif.

Donc là tu joue toute la séquence ON de switch2 mais tu veux éviter la séquence de OFF de switch1 …

Dans ce cas pourquoi mettre dans l’automatisation les input_boolean en tant que trigger à la fois quand ils sont OFF et ON, si c’est pour les désactiver/reset au besoin et éviter qu’ils jouent la séquence OFF ?

C’est une bonne question mais comment dans ce cas pouvoir désactiver l’ambiance avec un switch si le OFF n’est pas géré dans l’automatisation ou le script ? je n’arrive pas à trouver une solution pour qu’avec chaque switch je puisse activer ou désactiver une ambiance tout en évitant le cas problématique évoqué ci-dessus. Mon cerveau ne se débloque pas, je suis sur que la solution est hyper simple mais rien à faire là :wink:

PS: les switch dont je parle sont des Entrées → Interrupteurs

Si c’est juste ça il faut faire simple :

  • 3 x 1 automatisation par input_boolean uniquement quand il bascule sur ON qui ne fait que le ON de la scene correspondante et le OFF des 2 autres scénes + le OFF des 2 autres input
  • 1 automatisation qui prends les 3 input_boolean qui basculent sur OFF uniquement, une condition qui vérifie que les 3 booleans sont OFF (ET logique) et si c’est le cas, fait le OFF des 3 scenes

input/entrées/switch c’est le même algo

Je me concentre, mon cerveau fume là :wink:

3x1 ça c’est quasi ce que j’ai déjà mis comme code au début, sauf que je dois triger sur le ON et plus sur le changement d’état

pour la 2ème partie, je me concentre, je crois qu’il y a un truc là… après réflection, je crois que ça tiens la route effectivement. Je vais tester et je reviens au plus vite pour te remercier :slight_smile:

Alors encore une question, en parallèle avec ça j’ai pour chaque input, un interrupteur toggle mural qui vient se greffer dans cette mécanique. Du coup pas possible de gérer le ON ou OFF, tu vois une solution pour intégrer ça dans l’équation ?

Il faut évidemment que quand je toggle mon interrupteur mural, l’input correspondant passe à ON pour refleter l’état de l’ambiance et l’inverse quand je rappuie dessus pour le mettre en OFF. Du coup on retombe sur la problématique précédente il me semble ?

Comment la greffe ? Là c’est clair que pour toi je pense

Les problèmes à tiroir c’est pas simple à solutionner. Pas moyen de faire autre chose que l’existant si pas de vision d’ensemble (et donc de copier jeedom)

Oui c’est pas très différent, tu virera aussi la partie if ou else qui ne sert plus

1 « J'aime »

Là tu remet l’input_select dans la boucle :

  • les 3 automatisations choisissent le mode (1 mode par scene) en plus du reste
  • l’inter mural toggle la scene qui est contenue dans l’input_select

Désolé, me suis mal exprimé. Je peux activer les automations/script soit avec l’input switch que je retrouverais dans GH ou alors via l’interrupteur Aqara mural à 2 interrupteurs toogle.

Quand j’utilise l’Aquara et lance l’ambiance1, il faut que l’input switch change d’état et se mette sur ON

Je voulais partir sur ce que j’avais fait avec Jeedom mais sur HA le reset n’existe pas pour un input_boolean

1 « J'aime »