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.
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.
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)?
Es ist tatsächlich Gladys Core, der das Format der Features definiert.
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
Man sollte tatsächlich das Gleiche auf der Zigbee-Seite tun (es ist derselbe Knopf, oder?)
Ich denke, dass man im Fall eines Knopfes den Wert eher als Ereignis denn als Zustand betrachten sollte. Es ist ein Ereignis « Der Knopf wurde gedrückt ».
Ich sehe wenig Sinn darin, jedes Ereignis mit einem Ereignis zu verdoppeln, das den Zustand auf 0 zurücksetzt (« Der Knopf wurde nicht gedrückt » ) … 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.
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).
@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:
@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?
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 ) ?
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.
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, « Hyperverallgemeinerung » 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 « native/allgemeine » 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.