Xiaomi problème commande ON/OFF sur bouton

Bonjour,
voilà, j’ai un petit problème. J’ai bien intégrer ma passerelle xiaomi avec les token et mot de passe. Tout remonte. Sauf que lorsque je clic sur un BP, par exemple binary_sensor.switch_158d00015aa84a, il me renvoit une erreur « Échec d’appel du service « binary_sensor/turn_on ». Service not found. »

Le message est clair… :innocent:

Il n’existe pas de service turn_on/off pour le domaine binary_sensor

C’est quoi ce bouton poussoir ? Il vient d’où ? Qu’essaie tu de faire ?

un bouton en anglais c’est switch pour interrupteur et il existe turn_on/off pour ce domaine

@Clemalex : Ça oui c’est clair :grin:
Mais je comprends pas ce que je dois faire. Il s’est intégré comme ça en binary …

C’est le bouton rond Xiaomi aquara, celui là :

Bouton Xiaomi

Bin je veux faire un coup on l’autre coup off… à minima…et appuies long, court…

Le bouton est physique donc dans HA tu as simplement à récupérer les évènements du bouton :

- alias: automatisation_clic_simple
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_158d
      click_type: single # `double` pour le double click
  condition:
  action:
  - data:
      entity_id: light.cuisine
    service: light.turn_on

Tu pars dans le mauvais sens :wink:

Ton bouton va envoyer un évènement qui sera récupéré par HA et qui fera ce que tu en feras (ici, une automatisation).

Tu n’as pas de commande à passer, juste à scruter s’il y en a.

Pour les boutons, l’état n’est pas exploitable, seul l’évènement :+1:

Ok, je vois. Merci @Clemalex !
Je pensais que c’était directement le bouton.
Pourquoi tu dis que c’est une automation ?
Ah oui parceque tu dis que si t’as un clic sur le bouton, tu allumes la lumière, c’est bien ça ?

Parce que c’est le seul moyen de récupérer les événements de passer par une automatisation. Et de déclarer l’événement au niveau des triggers comme déclencheur

Ok, je vais essayer de comprendre comment ça marche…

Salut @Clemalex , je reviens sur le sujet. En gros, j’ai déclaré dans configuration.yaml des commandes rest HTTP pour envoyer à mon ancienne zibase une commande ON et une commande OFF (car j’ai des « vieux » modules delta dare…).

Dans automation yaml, dans entity_id je mets quoi ? Comment puis je faire sans ce cas pour que le bp xiaomi m’envoie en toggle une info ON et après une OFF ?? De plus je comprends q’il faudrait que je teste un flag qui passerait à 1, puis à 0 pour faire le switch, mais là je suis un peu dépassé…

Comprends pas… :sweat_smile:

Tu peux expliquer plus en détails l’architecture et ce que tu souhaites faire ?

De ce que je comprends :

  1. Quand tu appuis sur le bouton poussoir (évite le langage SMS :+1: ) → Envoie de la commande REST vers la zibase

Est-ce cela ?

:grinning:
Donc ce que j’aimerai faire c’est lorsque j’appuie sur le bouton poussoir Xiaomi, la première fois j’envoie une commande REST à la zibase avec la commande ON éclairage. Une fois allumée, je rappuis sur le bouton poussoir Xiaomi et là j’envoie la commande REST OFF éclairage.
Dans configuration.yaml j’ai configuré mes 2 commandes rest :

spot_entree_on:
       url :xxxxxxON
sport_entree_off:
       url:xxxxxxOFF

Ca, ça fonctionne…Maintenant je cherche le reste

Concernant l’état tu le stocke quelque part ? Ou tu peux l’extraire de la zibase ?

Merde j’avais oublié ce point. Y’a moyen de stocker l’état dans home assistant ?

Oui d’où le sens de ma question :

  1. Tu veux récupérer l’état depuis la zibase (si tu peux) et le stocker dans Home Assistant ?

ou

  1. Tu veux déterminer l’état depuis Home Assistant (avec la dernier action envoyée) et le stocker l’état dans Home Assistant ?

Ok. Alors non sur ce module je ne peux pas récupérer l’état de la zibase.

Donc la 2, déterminer depuis Home Assistant et le stocker dans Home Assistant serait parfait

@Clemalex hello,
bon j’ai déjà essayer de faire juste allumer ma lampe extérieur. Dans automations.yaml, j’ai écrit ça :

- alias: automatisation_clic_simple
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_158d00015aa9fd
      click_type: single # `double` pour le double click
  condition:
  action:
  - data:
      entity_id: switch.spot_terrasse
    service: rest_command.spot_terrasse_on

Pas de résultat :unamused:

Tu as besoin de l’entity_id ?

Tu l’as renseigné dans le payload ? (plusieurs posts plus haut ce n’est pas le cas)

Que dit le log ?

As-tu essayer juste avec le service ? Il fonctionne ? As-tu essayé avec une carte bouton ?

As tu une notification avec cette automatisation :

- alias: automatisation_clic_simple
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_158d00015aa9fd
      click_type: single # `double` pour le double click
  condition:
  action:
    - service: persistent_notification.create
      data:
        message: "Un clic"
        title: "Bouton"
        notification_id: "{{ (range(1, 9999)|random) }}"

Salut,
alors j’ai juste mis les infos pour le simple click. Ca marche. Je vais essayer de rajouter le double clic en dessous…

Salut @Clemalex ,

J’ai tapé ça :

- alias: automatisation_clic_simple
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_158d00015aa9fd
      click_type: single # `double` pour le double click
  action:
     service: switch.toggle
     target: 
  entity_id: switch.spot_terrasse

Ça en clic simple ça fonctionne. Je me suis dit facile, t’as qu’à copier coller tout ça une 2eme fois et remplacer simple par double pour gérer le double clic sur une autre action…

- alias: automatisation_clic_simple
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_158d00015aa9fd
      click_type: single # `double` pour le double click
  action:
     service: switch.toggle
     target: 
  entity_id: switch.spot_terrasse
- alias: automatisation_clic_simple
  trigger:
    platform: event
    event_type: xiaomi_aqara.click
    event_data:
      entity_id: binary_sensor.switch_158d00015aa9fd
      click_type: double 
  action:
     service: switch.toggle
     target: 
  entity_id: switch.spot_terrasse

Bin ça marche pas

:thinking: :pensive:

:sweat_smile:

De mémoire, mes boutons quand ils étaient sous la passerelle envoyaient comme évènement :

simple
double
long_click_press

Le plus simple est de voir ce que tu reçois (j’en ai associé un pour l’exemple concret, c’est mieux :wink: ):

avec une automatisation :

alias: Notification de mise au point
description: >
  Permet d'afficher une notification pour la mise au point lors de
  l'utilisation du déclencheur(trigger)
trigger:
- platform: event
  event_type: xiaomi_aqara.click
  event_data: {}
condition: []
action:
  # Affiche une notification persistente
  - service: persistent_notification.create
    data:
      message: |
        {% for list in trigger %}
          {{list}} : {{trigger[list]}}
        {% endfor %}
      title: |
        Le Déclencheur de l'automatisation
      notification_id: '{{ (range(1, 9999)|random) }}'
mode: single
1 « J'aime »

Merci m’sieur, j’ai enfin réussi en suivant tes conseils !!

1 « J'aime »