Commander un switch depuis un bouton

bonjour a tous

j’ai encore besoin de vos lumières

j’ai ajouté dans ma domotique, des bouton qui allument ou éteignent des lumières
grace a votre aide, cela fonctionne tres bien

j’ai un code qui ressemble a ça dans ma custom card :

  - type: custom:button-card
    name: Local Technique
    show_name: true
    show_entity_picture: true
    entity_picture: /local/images/lumiere/cabanon off.png
    tap_action:
      action: toggle
    entity: switch.lum_salon1

un appui, ça allume, un appui, ça eteit

pour une autre fonction, je voudrai aller plus loin :
2 boutons : 1 pour allumer, l’autre pour eteindre

j’ai donc essayer (en m’appuyant sur la doc) de faire ça :

  - type: custom:button-card
    name: Piscine
    show_name: true
    show_entity_picture: true
    entity_picture: /local/images/lumiere/piscine off.png
    tap_action:
      action: call-service
        service: light.turn_off
        entity: switch.lum_salon1

c’est ce qui parrait le plus logique, mais cela ne fonctionne pas

n’etant pas encore tres a l’aise avec la phylosophie de HA, je ne sais pas trop commen reflechir au probleme

on est d’accord que ce n’est pas une action « toggle » qu’il me faut
la plus logique semble le « call-service »

si je mets ce code là :

  - type: custom:button-card
    name: Piscine
    show_name: true
    show_entity_picture: true
    entity_picture: /local/images/lumiere/piscine off.png
    tap_action:
      action: more-info
      entity: switch.lum_salon1

cela m’affiche la popup du switch et me permet de le commander par la, mais pas automatiquement
et

  - type: custom:button-card
    name: null
    show_name: true
    show_entity_picture: true
    entity_picture: /local/images/lumiere/piscine on.png
    tap_action:
        action: call-service
        service: light.turn_on
        entity: switch.lum_salon1

me retourne Echec d’appel du service

mais sui je obligé de passer par une automatisation?
ou puis je faire ceci dans le code de mon bouton (je pense que oui)

avez vous des pistes pour m’orienter?

Le service doit être en face du domaine de l’entité… :innocent:

Donc mettre switch.turn_off

j’avais essayé, mais c’est pareil, ça ne fonctionne pas

lorsque je click, en bas, il y a un message : Echec d’appel su service switch/turn_off must contain at least one of entity_id, …

Oui car ce n’est pas comme ça que s’ecrit l’appel d’un service…

Passe par une carte bouton native en interface graphique pour récupérer le code… :innocent:

j’ai suivi tes conseils
j’ai donc un code qui resemble a ça pour un bouton standard :


  - type: button
    tap_action:
      action: call-service
      service: switch.turn_on
      service_data: {}
      target:
        entity_id: switch.lum_salon1
    entity: switch.lum_salon1
    show_icon: true

et si je remplace cette partie du code dans mon custom button :

  - type: custom:button-card
    name: null
    show_name: true
    show_entity_picture: true
    entity_picture: /local/images/lumiere/piscine on.png
    tap_action:
      action: call-service
      service: switch.turn_on
      service_data: {}
      target:
        entity_id: switch.lum_salon1
    entity: switch.lum_salon1

j’ai toujours le message d’erreur

La doc officielle (c’est toujours ma meilleure copine) indique:

      tap_action:
        action: call-service
        service: media_player.volume_down
        service_data:
          entity_id: media_player.living_room_speaker

Donc, dans ton cas:

      tap_action:
         action: call-service
         service: switch.turn_on
         service_data:
           entity_id: switch.lum_salon1

Ce qui n’est pas pareil que ce que tu indiques:

    tap_action:
      action: call-service
      service: switch.turn_on
      service_data: {}
      target:
        entity_id: switch.lum_salon1
1 « J'aime »

effectivement, c’est beaucoup mieux.

je m’etais basé sur la syntaxe du bouton standard

1000 merci

Bonjour
J’ai un problème similaire et je ne comprends pas pourquoi cela ne fonctionne pas au niveau de mon avec de service
msg d’erreur "échec d’appel du service "switch/turn_on*. must contain at least one of entity_id …

entity: binary_sensor.capteur_ouverture2_contact
type: custom:button-card
show_name: true
show_state: true
name: Garage
state:
  - icon: mdi:garage
    value: 'off'
  - icon: mdi:garage-open
    value: 'On'
tap_action:
  action: call-service
  service: switch.turn_on
  servive_data: {}
  target:
    entity_id: switch.contacteur_sec2_l3

merci de votre aide

Coquille : service_data

1 « J'aime »

Merci de la réponse rapide mais même en corrigeant, j’ai le même problème.

Profites en pour regarder la solution de @golfvert, c’est aussi ton cas

le bon code:

tap_action:
  action: call-service
  service: switch.turn_on
  service_data:
    entity_id: switch.contacteur_sec2_l3

Comme le dit @Pulpy-Luke , dans le post de @golfvert tu as la réponse :wink:

Exact merci à vous, j’avais essayé mais avec l’erreur sur service cela ne marchait pas.
Merci et désolé du dérangement.

1 « J'aime »