Druckknopfverwendung: Hilfe!

Hallo zusammen,

ich teste gerade die Funktion Taster der MQTT-Integration.



Laut dem, was ich sehe und was ich von @pierre-gilles gelesen habe, wird beim Klicken darauf eine 1 an MQTT gesendet, was ich auch habe:

Ich habe eine Zigbee-Steckdose, die ich täglich um 22 Uhr einschalte und um 6 Uhr über eine Szene ausschalte.

Mein erstes Problem ist, den Zustand dieses Tasters (1 oder 0) zu kennen, und ich weiß nicht, welche MQTT-Funktion ich nehmen soll oder welchen Topic ich abhören soll.
Ich habe es mit einem Steckdosenschalter getestet, aber das macht überhaupt nicht das, was ich möchte.
Im Großen und Ganzen hier ein Beispiel für das Ergebnis, das ich gerne hätte (aktiv/inaktiv):

Mein zweites Problem ist die Verwendung in einer Szene.
Wenn ich auf den Taster klicke, um seinen Zustand zu ändern, möchte ich, dass eine Szene gestartet wird, um meine Zustandsfunktion zu aktualisieren (vorheriger Punkt), aber der Auslöser funktioniert überhaupt nicht:


Laut meiner Untersuchung „holt“ die Zustandsänderung meines Tasters die Werte des Tasterklicks. Aber es sollte 1 oder 0 (oder etwas anderes, denn ich habe An und Aus getestet, aber die Werte sind 7 und 8, also völlig anders).

Wenn mir jemand helfen könnte, wäre ich sehr dankbar :hugs:
Vielen Dank im Voraus!

Zunächst einmal ist der Druckknopf vielleicht nicht die richtige Wahl, wenn du wirklich einen Rücksetz auf 0 möchtest :smiley:

Der Sinn des Druckknopfes ist es, nur „1“ zu haben, niemals 0.

Ansonsten möchtest du ein binäres „Ein/Aus“-Gerät, das wie eine Steckdose mit zwei Zuständen „Ein“ und „Aus“ funktioniert.

Ich habe es gerade getestet, und es funktioniert bei mir :slight_smile:

Ich weiß nicht, ob du Nachrichten in Szenen verwendest, um ein Verhalten zu testen, das ist praktisch!

Ich empfehle dir, den Block „MQTT-Nachricht senden“ zu verwenden, mit dem du einen neuen Sensorwert über den MQTT-Topic eines Gladys-Geräts speichern kannst.

Beispiel, ich habe ein Gerät „Türöffnung“, ich kopiere seinen MQTT-Topic zum Veröffentlichen:

Und dann kann ich auf diesen Topic beliebige Werte, „1“ oder „0“, veröffentlichen:

Ich will keinen Schalter, nur einen Druckknopf zum „Senden eines Impulses“.

Ich bin mit der 1 einverstanden, aber ich setze sie selbst auf 0 in meiner Szene.

Tatsächlich sendet ein Druckknopf (für mich) eine 1, wenn man ihn drückt, und sollte dann auf 0 zurückkehren (automatisch mit einem Timeout oder manuell, wie ich es machen möchte), er wirkt wie ein Impuls.
Wenn dein Druckknopf immer den Zustand 1 hat, wie weißt du dann, dass du ihn betätigt hast?

Okay, ich habe gerade mit einem ersten Zustand von 0 getestet und die Szene funktioniert, und dann mit einem Zustand, der bereits auf 1 steht, und es funktioniert auch… dann verstehe ich den Trick mit der Zustandsänderung von 1 zu 1 nicht :confused:, wenn du mich aufklären könntest @pierre-gilles, denn ich komme nicht weiter.

Ich erhalte den Wert des Druckknopfs. Es funktioniert für die MQTT-Nachricht und mit Telegram:




Es liegt an meinem Dashboard, das nicht das tun will, was es sollte: Ich sollte Aktiv oder Inaktiv haben, wie bei meinen Waschmaschinen-Statusanzeigen (gleiche Funktionalität: Schalter), aber ich habe Kein Wert empfangen in Rot (wenn es 0 ist) und in Grün (wenn es 1 ist).



Und ich mache die Sache ein bisschen komplizierter:

  • nach einigen Sekunden (nicht feste Zeit) wird Rot zu Grün, ohne auf den Druckknopf zu klicken
  • ich wechsle das Dashboard, kehre zu diesem zurück und sehe Aktiv in Grün für einige Sekunden, dann Kein Wert empfangen in Grün immer noch :frowning:

Wenn du mehr Elemente hast, um meine Lampe zu erhellen, nehme ich sie.
Auf jeden Fall danke für deine ersten Rückmeldungen, das beruhigt mich schon in dem, was ich eingerichtet hatte und wo ich mich nicht geirrt hatte.

Kleines Video, um die seltsamen Dinge zu veranschaulichen:

Hallo @mutmut :slight_smile:

Es ist schwer, dir ohne den vollständigen Ablauf zu helfen, aber meiner Meinung nach machst du irgendwo einen Fehler, sei es in einer Szene, in Node-RED oder anderswo.

Ich habe gerade einen lokalen Test durchgeführt, ein „Sensor-Schalter“ verhält sich wie erwartet „Aktiv/Inaktiv“:

Mein Rat: Gehe deine Szenen noch einmal in Ruhe durch und füge Telegram-Protokolle an jeder Stelle hinzu, an der du den Zustand deines Sensors „Born VE Aktiv/Inaktiv“ änderst. Das wird dir helfen, besser zu verstehen, was passiert.

Falls du trotzdem nicht weiterkommst, stehe ich dir gerne für einen Anruf zur Verfügung, um das schnell zu klären :slight_smile:

Hallo @pierre-gilles
bezüglich meiner Szene und ja, es ist genau das, was ich weiter oben habe, das heißt ein erster Block, um den Zustand des Druckknopfes abzurufen, und dann ein zweiter Block, um eine MQTT- und Telegram-Nachricht zu senden. Und ich habe nichts anderes (kein Node-Red oder andere Szenen) :confused:

Und zum Testen und Zurücksetzen auf Inaktiv mache ich genau das, was du in deinem Video über MQTT Explorer (äquivalent zu MQTTX) machst.

Ich habe ein Diagramm hinzugefügt, um zu sehen, was passiert:


Man sieht also, dass ich auf On bin (rot ist Off), aber auf der MQTT-Seite bin ich seit gestern auf 0:

et ich habe gestern nicht auf den Druckknopf geklickt:

Also ich gebe zu, ich verstehe nichts.

Zurück mit neuen Tests auf einer neuen Gladys- und MQTT-Instanz: Alles funktioniert so, wie du es in deinen Videos zeigst @pierre-gilles

Also habe ich eine zweite Funktionalität „Schalter“ mit einem anderen Namen erstellt und den anderen Schalter gelöscht, meine Szene aktualisiert und… es funktioniert richtig :thinking:

Also das Einzige, was ich gemacht habe, war, eine Funktionalität zu erstellen, die den Namen einer bestehenden Funktionalität übernimmt und die alte beim Speichern überschreibt (was ich recht oft mache).
Dieses Mal hat es den Bock geschossen und ich denke, das Problem kam daher, aber ich könnte nicht mehr sagen, welche die erste erstellte Funktionalität war.

Nochmals vielen Dank für deine Hilfe, ich „lösung“ dieses Thema!

Super, toll, wenn es funktioniert! :slight_smile:

Und ja, Achtung, es ist besser, externe ID-Namen nicht wiederzuverwenden, das kann Probleme verursachen.