# Szene mit einem Button (Doppel- oder Einzelklick)

**URL:** <https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167>\
**Category:** Développement\
**Created:** [10. März 2021 um 16:05 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167 "2021-03-10T16:05:02Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [10. März 2021 um 16:05 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/1 "2021-03-10T16:05:02Z")

</div>

Hallo zusammen,

Weiß jemand, wie man eine Szene basierend auf der Rückmeldung eines Tastendrucks erstellt?

Die Schnittstelle zeigt mir die richtigen Werte an, aber in den Szenen weiß ich nicht, wie ich es machen soll.

## Dashboard

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/223233ea32ee84733fb51b85abee83c466ed391e.png)

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/1/17fa4e0629d5f5102f1779b64f3bd2fe758d2aab.png)

## Szene

Ich habe versucht:

- gleich 1
- gleich 2
- größer als 1

Nichts funktioniert! In den Gladys-Logs steht `conditionVerified = false`. Das ist eindeutig!

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/1/14aef18e104e9db039e93d58bfd539bbda0239a7.png)

---

<div class="post-metadata">

**Author:** ![Exilon62](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/exilon62/32/6003_2.png) [@Exilon62](https://community.gladysassistant.com/u/Exilon62)\
**Post date:** [10. März 2021 um 16:25 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/2 "2021-03-10T16:25:32Z")

</div>

Diese Szene funktioniert bei mir mit einem Xiaomi-Knopf:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/201e31073b8f86adfe9448fa306c8fcb780da245.png)

Auf dem Dashboard habe ich jedoch nicht wie du den Wert meines Knopfes als Ganzzahl:  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/598aaf7348078049f699f7e0aeff4bd9a99d7561.png)

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [10. März 2021 um 16:35 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/3 "2021-03-10T16:35:11Z")

</div>

Welches Modell hat deine Taste?  
Kann sie lange, einfache oder doppelte Drücke ausführen?

Meine ist eine WXKG06LM.

---

<div class="post-metadata">

**Author:** ![Exilon62](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/exilon62/32/6003_2.png) [@Exilon62](https://community.gladysassistant.com/u/Exilon62)\
**Post date:** [10. März 2021 um 21:58 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/4 "2021-03-10T21:58:27Z")

</div>

> [@lmilcent](#):
>
> Kann er lange, einfache oder doppelte Tastenanschläge ausführen?

Ja, ich kann das!

Es ist der Xiaomi Aquara-Schalter.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [11. März 2021 um 01:34 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/5 "2021-03-11T01:34:11Z")

</div>

@lmilcent ist das ein Button für welche Integration?

Wenn es sich um die Zigbee2mqtt-Integration handelt, hängt alles davon ab, was in diesem PR geändert wurde…

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [11. März 2021 um 06:10 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/6 "2021-03-11T06:10:23Z")

</div>

Es handelt sich tatsächlich um Zigbee mit einem Feature `button`.

Eigentlich müsste beschrieben werden, wie Gladys auf die verschiedenen `Features` reagiert, um nicht jedes Mal die Frage stellen zu müssen (vielleicht ist das schon gemacht?).

Zum Beispiel, wenn es vom Typ `switch` ist, wird ein Ein-/Ausschalter angeboten und erkannt als Steckdose.  
In meinem Fall ist es vom Typ `button` und die zurückgegebenen Werte sind konsistent. Aber in einer Szene sehe ich nicht, wie ich es verwenden kann.

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [11. März 2021 um 08:00 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/7 "2021-03-11T08:00:42Z")

</div>

Im Xiaomi-Service werden die Literalwerte der Tasten in numerische Werte übersetzt.

```auto
const SWITCH_STATUS = {
  NO_CLICK: 0,
  CLICK: 1,
  DOUBLE_CLICK: 2,
  LONG_CLICK_PRESS: 3,
  LONG_CLICK_RELEASE: 4,
};

```

Vielleicht sollte ich das Gleiche im Zigbee-Service machen 🤔 Allerdings gibt es viele Arten von Tasten…

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [11. März 2021 um 08:13 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/8 "2021-03-11T08:13:45Z")

</div>

Mist, ich dachte, das wäre Gladys Core, das sich darum kümmert, basierend auf den `features`.  
Ist das nicht logischer?

Vor allem denke ich, dass es verhindert, dass ein Dienst eine Schaltfläche anders interpretiert als ein anderer, um eine Kohärenz und damit eine gewisse Einfachheit unabhängig vom Protokoll zu wahren.

> [@cicoub13](#):
>
> Vielleicht sollte ich das Gleiche im Zigbee-Dienst tun :denk: Allerdings gibt es viele Arten von Schaltflächen…

In meinem Fall gibt es:

- Kein Klick
- Einfacher Klick
- Doppeltklick
- Langes Klicken

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [11. März 2021 um 08:54 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/9 "2021-03-11T08:54:34Z")

</div>

Was ich nicht verstehe, ist, dass diese Geräte Ereignisse und keine Werte ausgeben.  
Für ein Thermometer wird der Wert jedes Mal aktualisiert, wenn er sich ändert.

Für einen Knopf, wenn du darauf drückst (z. B. durch einen einfachen Klick), könnte man den Wert auf 1 setzen, aber direkt danach sollte er wieder auf 0 zurückkehren (um den Zustand des Knopfes widerzuspiegeln)?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [11. März 2021 um 12:45 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/10 "2021-03-11T12:45:24Z")

</div>

> [@lmilcent](#):
>
> Mist, ich dachte, das wäre Gladys Core, der sich darum kümmert, basierend auf den `features`.  
> Ist das nicht logischer?

Es ist tatsächlich Gladys Core, der das Format der Features definiert.

> [@lmilcent](#):
>
> Vor allem denke ich, dass es verhindert, dass ein Dienst einen Knopf anders interpretiert als ein anderer, um eine Kohärenz und damit eine gewisse Einfachheit zu gewährleisten, unabhängig vom Protokoll.

Das ist das Ziel in der Theorie 🙂 Wir versuchen, so weit wie möglich gemeinsame Feature-Formate zwischen den Diensten zu haben (Ein/Aus, Farbe, Helligkeit, Temperatur usw…)

Allerdings ist es in der Praxis leider manchmal schwierig, Verallgemeinerungen von Geräten mit sehr exotischen Spezifikationen zu treffen. Im zitierten Beispiel (Xiaomi) war es bisher das einzige Tastengerät mit mehreren Drucktypen (kurz, lang, doppelt usw.), und daher hat es tatsächlich als einziges diese Art von Funktionsweise implementiert.

Jetzt, wo wir den Fall in 2 Diensten haben, können wir darüber nachdenken, was sich überschneidet und was nicht 🙂

> [@cicoub13](#):
>
> Vielleicht sollte ich das Gleiche im Zigbee-Dienst tun 🤔

Man sollte tatsächlich das Gleiche auf der Zigbee-Seite tun (es ist derselbe Knopf, oder?)

> [@cicoub13](#):
>
> Was ich nicht verstehe, ist, dass diese Geräte Ereignisse und keine Werte senden.  
> Bei einem Thermometer wird der Wert jedes Mal aktualisiert, wenn er sich ändert.
> 
> Bei einem Knopf, wenn du darauf drückst (z. B. mit einem einfachen Klick), könnte man den Wert auf 1 aktualisieren, aber direkt danach sollte er wieder auf 0 zurückkehren (um den Zustand des Knopfes widerzuspiegeln)?

Ich denke, dass man im Fall eines Knopfes den Wert eher als Ereignis denn als Zustand betrachten sollte. Es ist ein Ereignis «&nbsp;Der Knopf wurde gedrückt&nbsp;».

Ich sehe wenig Sinn darin, jedes Ereignis mit einem Ereignis zu verdoppeln, das den Zustand auf 0 zurücksetzt («&nbsp;Der Knopf wurde nicht gedrückt&nbsp;» ) … Siehst du einen?

Edit: Übrigens, das ` NO_CLICK: 0,` wurde am Anfang hinzugefügt, aber nicht verwendet, ich sehe keinen Sinn darin. Es hätte beim PR entfernt werden müssen.

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [11. März 2021 um 16:03 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/11 "2021-03-11T16:03:08Z")

</div>

> [@pierre-gilles](#):
>
> Ich sehe wenig Interesse daran, jedes Ereignis mit einem Ereignis zu verdoppeln, das den Zustand auf 0 zurücksetzt („Der Knopf wurde nicht gedrückt“) … Siehst du einen Grund dafür?

Ich weiß nicht, ob das aktuell der Fall ist, aber auf dem Dashboard wird mein Knopf zunächst als „single“ angezeigt und dann nach einigen Sekunden „kein Ereignis“ (wenn ich die Seite neu lade).

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [11. März 2021 um 19:12 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/12 "2021-03-11T19:12:04Z")

</div>

Das wird kompliziert sein, alle Fälle zu verwalten.

Für Geräte wie dieses [Aqara WS-USC02 control via MQTT | Zigbee2MQTT](https://www.zigbee2mqtt.io/devices/WS-USC02.html) oder dieses [Aqara WXKG02LM\_rev2 control via MQTT | Zigbee2MQTT](https://www.zigbee2mqtt.io/devices/WXKG02LM_rev2.html) haben wir:

- linke/rechte Tasten
- obere/untere Tasten
- einfache/doppelte/lanke Klicks

@lmilcent Hast du mit dem Wert «&nbsp;single&nbsp;» in den Szenen versucht?

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [11. März 2021 um 20:23 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/13 "2021-03-11T20:23:21Z")

</div>

> [@cicoub13](#):
>
> @lmilcent Hast du es mit dem Wert « single » in den Szenen versucht?

Ja, ich habe es mit «&nbsp;1&nbsp;» und einem einzelnen kurzen Druck auf meinen Knopf versucht.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [12. März 2021 um 08:19 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/14 "2021-03-12T08:19:54Z")

</div>

@cicoub13 Ich denke, man sollte das nochmal überarbeiten. Solche Buttons sollten nativ unterstützt werden und out of the box in den Szenen funktionieren 🙂

Genau wie wir die UI anpassen, wenn es sich um einen binären Button handelt, zum Beispiel:

 ![Screenshot 2021-03-12 at 16.18.56](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/8/85762b01d6ccead1708dc045dc44174c1267a8e9.png)

Das sollte auch für diese Buttons gelten.

Ich würde mir ein Dropdown mit den verschiedenen Werten wünschen:

- Kurzdruck
- Longpress
- Doppelklick

Der Benutzer sollte nicht raten müssen, wie das funktioniert, das ist sonst die Hölle ^^

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [12. März 2021 um 09:41 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/15 "2021-03-12T09:41:36Z")

</div>

Gilt das auch für Präsenz-/Kontaktsensoren?  
Sollte man nicht eher „geschlossen/offen“ und „Bewegung/keine Bewegung“ anzeigen?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [12. März 2021 um 09:43 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/16 "2021-03-12T09:43:32Z")

</div>

Genau dasselbe! Außer bei numerischen Vergleichswerten (Temperatur \> XX) sollte der Nutzer nichts eingeben müssen, das ergibt keinen Sinn.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [15. März 2021 um 02:08 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/17 "2021-03-15T02:08:53Z")

</div>

@cicoub13 ich habe gesehen, dass du den PR zigbee2mqtt vorgeschlagen hast. Wie funktioniert das mit Geräten wie Tastern mit mehreren Druckarten? Was wird vom Dienst gesendet? Ist das das gleiche Format wie beim Xiaomi-Dienst?

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [15. März 2021 um 12:32 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/18 "2021-03-15T12:32:13Z")

</div>

Bisher habe ich noch nichts gemacht.  
Ich kann die gleichen Werte wie der Xiaomi-Dienst integrieren. Aber es wäre gut, das für alle Dienste zu vereinheitlichen (in den Konstanten) und einen Button (wie Ein/Aus) in einem anderen PR zu erstellen.

Und wie ich schon sagte, gibt es Geräte, die viel mehr Fälle haben: linke/mittlere/rechte Tasten, die alle kurze/doppelte/lange Drücke haben können. Sollte man das als verschiedene Features behandeln (das wird hart für Zigbee 😅 ) ?

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [15. März 2021 um 12:39 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/19 "2021-03-15T12:39:28Z")

</div>

> [@cicoub13](#):
>
> linke/mittlere/rechte Taste

Ich würde mir vorstellen:

- Gladys verwaltet die Tastendrücke vom Typ `kurz`, `doppelt`, `lang`
- Die Mehrfach-Tasten werden als 3-in-1 (oder 2-in-1, egal) erkannt

So ist es einfacher 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [15. März 2021 um 12:40 UTC](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167/20 "2021-03-15T12:40:24Z")

</div>

> [@cicoub13](#):
>
> Ich habe bisher noch nichts gemacht.  
> Ich kann die gleichen Werte wie der Xiaomi-Service integrieren. Aber es wäre gut, das für alle Dienste zu vereinheitlichen (in den Konstanten).

Ich bin einverstanden, es muss vereinheitlicht werden. Die gleichen Konstanten wie der Xiaomi-Service erscheinen mir gut! Das können wir tatsächlich in die Konstanten des Projekts setzen.

> [@cicoub13](#):
>
> Und wie ich schon sagte, gibt es Geräte, die viel mehr Fälle haben: linke/mittlere/rechte Tasten, die alle kurze/doppelte/lange Drücke haben können. Sollte man das als unterschiedliche Features behandeln (das wird für Zigbee schwierig 😅)?

Ich denke, man sollte bei exotischen Geräten Fall für Fall vorgehen, nicht alles ist faktorisierbar und meiner Meinung nach ist es nicht wünschenswert, «&nbsp;Hyperverallgemeinerung&nbsp;» zu betreiben 🙂

Also ja, es stört mich nicht, wenn bestimmte exotische Geräte als separates Feature definiert werden, solange es im Allgemeinen mit Gladys übereinstimmt. Man muss die Nutzung im Blick behalten. Zum Beispiel, wenn es darum geht, ein Licht zu steuern, ist das Ein-/Ausschalten, die Helligkeit und die Farbe lebenswichtig, dass es «&nbsp;native/allgemeine&nbsp;» Features von Gladys sind, damit Gladys diese Geräte im Chat, in Szenen und anderem steuern kann.

Wenn es sich um sehr exotische Tasten handelt, die nur für eine einzige Integration spezifisch sind und nie anderswo verwendet werden, muss man von Anfang bis Ende darüber nachdenken, wie das in Gladys nützlich sein wird, und das Beste daraus machen, ohne notwendigerweise zu versuchen, es in ein Schema zu pressen und es unbrauchbar zu machen.

[Nächste Seite](https://community.gladysassistant.com/t/scene-avec-un-bouton-double-ou-simple-clic/6167.md?page=2)
