Sonoff SNZB-01 Taster

Für mich ist das codiert

Ich habe es nicht selbst getestet

Muss man keinen numerischen Wert angeben?
Es wäre gut, diese Information irgendwo anzugeben, wenn ein Gerät von Gladys verwaltet wird. Airtable oder direkt in Gladys.

Airtable ist bereits enthalten (auch wenn eine Funktion fehlt) :wink:
Du kannst es testen und Feedback geben :slightly_smiling_face:

Ich habe mich falsch ausgedrückt.
Ich wollte sagen, dass man irgendwo erwähnen sollte:
1 kurzer Druck = 1
2 kurze Drücke = 2
? langer Druck = ?

ich bestätige keinen langen Tastendruck auf Gladys, aber im Dashboard z2Mqtt OK

Hallo @VonOx
Für den Langdruck haben wir keine Umrechnung von „Langdruck“ in eine Zahl (z. B. 5, um mit Xiaomi übereinzustimmen)
wie @Tlse-vins schreibt
1 kurzer Druck = 1
2 kurze Drücke = 2
? langer Druck = ?

Das sind dieselben Konstanten, um die Seite von Gladys zu vereinheitlichen

const BUTTON_STATUS = {
  CLICK: 1,
  DOUBLE_CLICK: 2,
  LONG_CLICK_PRESS: 3,
  LONG_CLICK_RELEASE: 4,
  LONG_CLICK: 5,
};

Super
Aber beim Sonoff funktioniert der lange Klick nicht. Bei den Xiaomi-Knöpfen funktioniert es
:smiley:

Okay, der Sonoff sendet „long“, ich weiß nicht, wie ich das mit den Switch-Cases handhaben soll (cc @AlexTrovato @pierre-gilles)

Was ich immer gesagt habe, ist, dass diese Werte niemals dem Benutzer präsentiert werden sollten, das ist nicht die Philosophie dieser v4!

Statt manuell 1, 2, 3 oder 4 einzugeben, sollte der Benutzer einfach einen Selektor in den Szenen sehen, so etwas wie das:

(ist nicht codiert, nur ein Mockup)

So muss sich niemand an diese Konstanten erinnern, die nur interne „Kochkunst“ sind :slight_smile:

Ich wäre offen für einen PR zu diesem Thema :slight_smile:

Auf den ersten Blick denke ich, dass du den readValue ändern musst:

Ich überlasse es @AlexTrovato, das zu bestätigen.

Ich bin deiner Meinung, wenn alle Klicks codiert sind, muss man die Werte nicht kennen.

Alles klar, bei readValue gibt es kein Problem, also wird writeValue in diesem Fall bei den Schaltflächen nie verwendet?

Ich versuche zu verstehen :sweat_smile:.

Ich bin nicht der Autor des Codes, also kann ich es nicht genau sagen, aber ich denke tatsächlich, dass im Fall eines Sensors, der nie gesteuert wird, nur der readValue nützlich ist.

+1

Ich würde mich gerne mit dem Thema beschäftigen, was wäre die Logik dahinter? Einfach eine Anzeige auf der Frontend-Seite oder etwas Komplexeres auf der Backend-Seite?

Ich habe auch den Fall beim Lixee Tic, er gibt die aktuelle Tarifierung zurück (Werttext HP HC usw.), also interessante Dinge, die in den Szenen genutzt werden können.

Es lohnt sich, ein eigenes Thema dafür zu erstellen.

Es geht nur um die Anzeige, ja! Danach nichts Neues, wir machen das schon für viele Typen:

Binär:

Anwesenheitsgerät:

Sensor mit Einheit:

Die Idee ist, dass wir in der UI niemals Werte anzeigen, die unsere interne „Küche“ sind. Wir zeigen immer ein schönes, übersetztes und leicht verständliches Component.

Es fehlt nur noch ein Component für Druckknöpfe wie die von Xiaomi.

Danach muss sichergestellt werden, dass nur dieser Knopf als solcher klassifiziert wird. Man muss wissen, woran man in der UI die Unterscheidung vornehmen muss.

Zuerst ein Pull Request zur Verwaltung des Buttons

@VonOx der PR bricht die Abwärtskompatibilität für den LONG_CLICK, der von 5 auf 6 wechselt

Der alte Long wurde zu Hold, also nein (der Wert Hold z2m war auf Long gemappt, das ergab keinen Sinn) => Daher erschien es mir logisch

Soll ich trotzdem umkehren?

Kein Problem mit dem Variablennamen (das ist unser interner Code), aber der numerische Wert muss gleich bleiben (außer bei einer Migration).

Wenn jemand eine Szene kaputt gemacht hätte, indem er manuell 5 eingegeben hat, weil er gemerkt hat, dass 5 funktioniert, dann ist diese Szene mit diesem PR kaputt, und das müssen wir auf jeden Fall vermeiden!

Es muss nur sichergestellt werden, dass das Verhalten von 5 gleich bleibt.

Vor meinem PR

Z2m sendet « hold » => Gladys LONG_CLICK => 5

Mein PR:

Z2m sendet « hold » => Gladys HOLD_CLICK => 5
Z2m sendet « long » => Gladys LONG_CLICK => 6

Eigentlich sehe ich nicht, was das kaputt macht, da
Die Zuordnung hold = 5 bleibt dieselbe