Création d'un switch pour front montant

Bonjour, j’ai besoin de créer un switch pour front montant. Je m’explique, sur ma pompe de piscine j’ai un module fibaro fgbs001 qui lorsqu’il me donne une impulsion, la pope se met en marche. Une autre impulsion, celle-ci s’arrête.

Sauf que j’ai besoin de faire un switch qui à ON me donne un front, et lorsque je le bascule à OFF me donne un autre front…

J’ai donc écrit ça :

switch:
  - platform: template
    switches:
      pool_pump_switch:
        friendly_name: "Pool Pump Switch"
        value_template: "{{ is_state_attr('switch.smart_implant_5', 'sensor_state', 'on') }}"
        turn_on:
          service: switch.turn_on
          target:
            entity_id: switch.smart_implant_5
        turn_off:
          service: switch.turn_off
          target:
            entity_id: switch.smart_implant_5

Problème, mon switch Pool Pump switch rebascule à 0…

Qui pourrait m’aider ?

Merci

Peut être ça :

https://forum.hacf.fr/t/bouton-poussoir/929/8

@Clemalex , Alors, c’est un peu l’inverse si j’ai bien compris :grinning:.

Mon module envoie déjà une impulsion temporisé à 2s. La 1er fois donc il mets en on, la 2eme, forcément il met en off.

Ce que je veux faire c’est un switch qui a 1 m’envoie donc l’info et à 0 me renvoie la même info. Je pensais qu’il fallait mettre turn-n ou turn off, mais le problème c’est qu’il essaye de mttre mon module fibaro sur off alors qu’il l’est déjà vu que c’est une impulsion…Mon module fibaro se gère tout seul. Je veux faire le switch associé.

Tiens voilà un chronogramme :

C’est peut être mieux qu’un long discours…

Bon j’avais tenté avec 2 actions on mais ça marche pas…

Et une automatisation de ce style ?

alias: Test Auto
description: ''
trigger:
  - platform: state
    entity_id: input_boolean.test
    from: 'off'
    to: 'on'
  - platform: state
    entity_id: input_boolean.test
    from: 'on'
    to: 'off'
condition: []
action:
  - service: input_boolean.turn_on
    target:
      entity_id: input_boolean.test_2
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: input_boolean.turn_off
    target:
      entity_id: input_boolean.test_2
mode: single

Tu créé une entité switch qui va lorsqu’elle passe de off à on ou on à off déclenche une automatisation qui passe la deuxième entité à on, attend 2s et passe à off.

Je partiras donc plus sur un service script.turn_on pour l’activation et la désactivation et dans le script tu mets la commande du module.

Désolé, j’ai pas tout compris…il est tard :grinning:

Faire un script au lieu du switch ?

Appeler un script dans ton switch… :innocent: :wink:

switch:
  - platform: template
    switches:
      pool_pump_switch:
        friendly_name: "Pool Pump Switch"
        value_template: "{{ is_state_attr('switch.smart_implant_5', 'sensor_state', 'on') }}"
        turn_on:
          service: script.turn_on
          target:
            entity_id: script.pompe
        turn_off:
          service: script.turn_on
          target:
            entity_id: script.pompe

Et dans le script la commande que tu veux…

ok, je viens de faire ça :

switch:
- platform: template
  switches:
    pool_pump_switch:
      friendly_name: "Filtration ON/OFF"
      turn_on:
        service: script.turn_on
        target:
          entity_id: filtration_on_off 
      turn_off:
        service: script.turn_on
        target:
          entity_id: filtration_on_off 

Et ça en script :

filtration_on_off:
  alias: Filtration ON OFF
  sequence:
  - type: turn_on
    device_id: 2c075eebd3fb391d619c87df6656657e
    entity_id: switch.smart_implant_5
    domain: switch
  mode: single

le script, ras il se lance. Sauf que j’ai une erreur dans le switch:

Invalid config for [switch.template]: not a valid value for dictionary value @ data[‹ switches ›][‹ pool_pump_switch ›][‹ turn_off ›][0][‹ target ›][‹ entity_id ›]. Got None
not a valid value for dictionary value @ data[‹ switches ›][‹ pool_pump_switch ›][‹ turn_on ›][0][‹ target ›][‹ entity_id ›]. Got None. (See ?, line ?).

entity_id: script.filtration_on_off 

il manquait le domaine de l’entité

1 « J'aime »

Effectivement ça marche mieux. L’enclenchement c’est bien passé. J’attends le déclenchement.

Merci m’sieur, ça a fonctionné !!

1 « J'aime »

Maintenant il ne reste plus qu’à déplacer l’action unique du script dans la définition du switch et supprimer le script.

Garder le script alors qu’il a une seule action n’est pour moi pas nécessaire :wink:

equivaut à :

switch:
- platform: template
  switches:
    pool_pump_switch:
      friendly_name: "Filtration ON/OFF"
      turn_on:
        service: switch.turn_on
        target:
          entity_id: switch.smart_implant_5
      turn_off:
        service: switch.turn_on
        target:
          entity_id: switch.smart_implant_5

Et je mets ça où ??
Je rajoute ça dans le switch ?
J’ai pas compris là :thinking:

J’avoue la phrase est mal tournée :wink:

Le dernier bloque de code que je t’ai indiqué devrait être la déclaration de ton switch en lieu et place de celui actuellement qui appel un script.

Ok, comme ça donc :

switch:
- platform: template
  switches:
    pool_pump_switch:
      friendly_name: "Filtration ON/OFF"
  - type: turn_on
    device_id: 2c075eebd3fb391d619c87df6656657e
    entity_id: switch.smart_implant_5
    domain: switch

Et après je supprime le script ? C’est ça ?

Pas du tout, du tout…

je t’ai déjà fournis le code, tu n’as rien à inventer :wink:

:man_facepalming:t2: ok j’avais pas compris