MQTT-Gerät von Gladys aus steuern

Wenn ich ein MQTT-Gerät mit dem von Gladys bereitgestellten Topic für die Datenübertragung einrichte, funktioniert alles perfekt: Die Sensordaten werden korrekt in der Anwendung empfangen.

Wenn ich jedoch die Option „Ist dies ein Sensor?“ deaktiviere, um dasselbe Gerät von Gladys aus zu steuern, kann ich die von der Anwendung gesendete MQTT-Nachricht nicht abrufen (ich höre auf dem neuen bereitgestellten Topic zu).

Habe ich einen Schritt übersehen?

Funktioniert wie am Schnürchen, ich hatte das MQTT-Topic-Abonnement falsch konfiguriert.

Allerdings finde ich es verwirrend, dass das MQTT-Publikationsthema des Geräts nicht mehr sichtbar ist (zum Vorteil des Gladys-Befehls-Abonnement-Themas), wenn die Option „Ist es ein Sensor?“ deaktiviert ist.

Um es richtig zu verstehen, muss man in die Anleitung unter „API“ und „MQTT API“ gehen und nicht unter „Integrationen“ „MQTT“.

Kann ich eine Funktionsanfrage stellen, die darin besteht, eine zweite Zeile „MQTT-Abonnement-Topic“ auf der MQTT-Gerätekonfigurationsseite hinzuzufügen, wenn die Option „Ist es ein Sensor?“ deaktiviert ist?

Hallo @Fabic! Danke für dein Feedback, vielleicht ist ein einfaches GitHub-Issue besser für ein so einfaches UX-Feedback, es ist ja keine echte Funktionsanfrage :slight_smile:

Du kannst ein Issue (am besten auf Englisch) auf dem Gladys-Repo erstellen:

Hallo Pierre-Gilles,

Frohes neues Jahr an alle und an das Projekt Gladys.

Ich habe gerade ein Issue auf Github erstellt.

Ich nutze deine Antwort für eine neue Frage: Welchen Befehl muss ich in den Gladys-Chat senden, um den Zustand des Geräts von 0 auf 1 und umgekehrt zu ändern?
Ich habe die Antwort in der Dokumentation nicht gefunden.

Wenn es ein Licht ist, kannst du zum Beispiel sagen « Schalte das Wohnzimmerlicht ein/aus » :slight_smile:

Ich habe ein bisschen Probleme mit den Sprachbefehlen.

Ich habe einen Sonoff mit Tasmota konfiguriert:

Wenn ich im Sprachbefehl „Schalte die Lampe ein“ sage, passiert nichts:

Wenn ich „Schalte das Wohnzimmer ein“ sage, wird der Wohnzimmer-Schalter blau, aber die Lampe nicht:

Wenn ich das Wohnzimmer per Klick schalte, schaltet sich die Lampe aber wie erwartet mit.

Liegt es an der Syntax?

Hast du deine Verbindung richtig hergestellt?

ja, da bin ich mir sicher, wenn ich den Schalter manuell im Dashboard anklicke, höre ich das Relais des Sonoff klicken:

Hallo @Fabic! :slight_smile:

Bisher gibt es nur eine Möglichkeit, die Lampen im Chat einzuschalten, und zwar funktioniert das pro Raum und nicht pro Gerät. Man muss also sagen: „Schalte das Licht im Wohnzimmer ein“, „Schalte das Licht im Garten aus“ usw.

Die Fragen-Datei des Modells sieht so aus:

Wenn du dann sagst: „Schalte das Licht im Wohnzimmer ein“, sucht Gladys alle Geräte im genannten Raum, die der Kategorie „Licht“ zugeordnet sind und die Funktionalität „Binär Ein/Aus“ haben.

Man müsste sicherstellen, dass dein Gerät in diesem Fall auch als Licht konfiguriert ist?

Diese Funktion in der Tasmota-Sonoff-Integration (eine Steckdose als Licht deklarieren) ist ganz neu, also ist es nicht unmöglich, dass es noch ein paar Macken gibt. Wir werden das schon finden :slight_smile:

Hallo @pierre-gilles,

Vielen Dank für die detaillierten Informationen, vielleicht kannst du sie in die Dokumentation integrieren (ich nutze die Gelegenheit bezüglich der Tasmota-Dokumentation, ich hatte zunächst das Thema mit „test/topic“ angegeben. Gladys erkennt jedoch nur die Themen „tele/+/+“, also ist es verboten, das / zu verwenden, um das Thema nicht zu überladen. Ich denke, ein kleiner Hinweis wie „Achtung, Thema nicht überladen“ in der Dokumentation würde verhindern, dass Leute wie ich, die nicht so schlau sind, nicht daneben greifen).

Ich habe den Sonoff als „Licht“ konfiguriert, übrigens funktioniert das Verhalten gut, wenn ich den Raumschalter manuell per Klick schalte.

Ich habe ein MQTT-Gerät als „Beleuchtung EIN/AUS“ (Glühbirne) simuliert und alles funktioniert gut mit der Diskussion, aber nichts zu machen mit dem Tasmota-Gerät!

Daher kommt mir eine Frage, kann man in den Szenen einen Auslöser für einen Begriff einer Diskussion programmieren? (z. B. „öffne Rollo“ löst die Aktion „Gerät Rollo geht auf EIN“ aus)

Kannst du uns einen Pull Request machen? :slight_smile: Die Dokumentation ist Open Source und du kannst es besser erklären als ich: GitHub - GladysAssistant/v4-website: Gladys Assistant website · GitHub

Seltsam, das ist eindeutig ein Bug.

Kannst du ein paar Dinge überprüfen:

  • Die Logs von Gladys, wenn du den Button in der UI drückst ( docker logs gladys auf dem Pi)
  • Eventuell die Kategorie deines Geräts überprüfen, um zu verstehen, ob es vom Dienst korrekt als „Licht“ konfiguriert ist.

Dafür öffnest du in deinem Browser auf dem Dashboard „Rechtsklick → Element untersuchen“

Und du öffnest die GET-Anfrage /api/v1/room/garage?expand=devices

Dann gehst du zum Tab „Vorschau“, um die Antwort zu sehen, und öffnest das Gerät „lum“ und seine Features.

Es sollte so aussehen:

Das ist derzeit nicht möglich. Vielleicht ist es aber eine zukünftige Entwicklung, wer weiß.

Aber in diesem Fall gibt es eindeutig einen Bug, also müssen wir zuerst untersuchen, was hier nicht stimmt :slight_smile:

@pierre-gilles,

Danke für deine Verfügbarkeit.

Hier ist die Rückmeldung der Anfrage (‹ lum › ist tatsächlich in der Kategorie: light):

Allerdings, was die Logs betrifft, nachdem ich docker logs gladys auf dem Pi ausgeführt habe, gibt es keine Rückmeldung von der manuellen Steuerung der Schalter, egal welcher Art (Tasmota, MQTT, Garage).

Ich habe mit dem PR für die Dokumentation der Website in der französischen Version begonnen. Ich hoffe, sie dir noch diese Woche schicken zu können, und wenn es okay ist, werde ich die englische Version erstellen.

ok, das scheint gut zu sein.

Du siehst also trotzdem Logs, oder? Du siehst einfach nichts Besonderes, wenn du den Ein-/Ausschaltbefehl auslöst?

Ein kleiner Tipp, du kannst machen:

docker logs gladys -f

Wenn du möchtest, dass die Logs auf dem Bildschirm bleiben und sich live aktualisieren

Toll! :+1:

Ja, ich sehe die Logs (danke für den Tipp -f), aber keine neue Zeile, wenn ich den Raumschalter manuell oder über die Befehle im Chat aktiviert oder deaktiviert.

Okay, es gibt also keinen spezifischen Fehler in den Logs.

Ich gestehe, ich bin da ein bisschen ratlos:

  • Dein Gerät scheint in Ordnung zu sein (es ist tatsächlich eine Kategorie « Licht » und Typ « binär »)
  • Keine Fehlerprotokolle

Ich verstehe nicht, warum es weder in der Benutzeroberfläche noch bei den Sprachbefehlen erkennt, dass dieses Licht eingeschaltet werden muss…

Kann der Fehler nicht von weiter oben kommen? Einzeln funktioniert die Steckdose, oder? Wenn du auf das Licht klickst, geht es an, oder?

Das bedeutet also, dass der Eingang in Ordnung ist, das Relais klickt, aber was kommt am Ausgang an?

Ja, alles funktioniert perfekt, wenn ich auf « lum » oder « garage » klicke.
Ich habe wirklich das Gefühl, dass der Tasmota-Service bei dieser Funktion nicht richtig arbeitet.

Hier sind die Screenshots:

Wenn ich den Garagen-Schalter von AUS auf EIN und umgekehrt schalte, funktioniert alles (der Sonoff macht ein Geräusch, die Lampe geht an, die Nachrichten werden an die MQTT-Topics gesendet)


Nach dem Klick auf den Garagen-Schalter

Dafür ist es perfekt.

Jetzt, mit den Befehlen « allume » und « éteins » für die Garage (die normalerweise den Garagen-Schalter wie zuvor schaltet):

Ergebnis

Gladys antwortet im Chat, dass sie das Licht nicht einschalten konnte, was teilweise stimmt, da sie das MQTT-Gerät eingeschaltet hat (Nachricht wurde auf dem Topic des MQTT-Geräts empfangen).
Der Sonoff hat nicht geklickt und nichts auf dem Topic des Sonoffs (normal, da der Schalter « lum » auf AUS blieb).

Deshalb wissen wir, dass Gladys weiß, dass sie ein Problem mit dem Tasmota-Schalter hat, dank der Konversation, aber ich bestätige, dass nichts in den Logs steht.

Redest du von den Nachrichten, die von Tasmota veröffentlicht werden, wenn das Relais klickt?

Okay! Ich bin komplett am Ende, ich gestehe, mir geht der Ideenreichtum aus!

Falls jemand, der diese Unterhaltung liest, eine Idee hat…

Vielleicht @Tlse-vins, falls du in der Gegend bist, könntest du überprüfen, ob das Verhalten, das ich zwischen Tasmota und dem Einschaltbefehl über die Diskussion beschreibe, auf einem deiner Sonoff-Geräte identisch ist?

Ich bin gerade dabei, in mein neues Haus einzuziehen und habe noch nicht alles wieder eingerichtet.
Ich habe nur den Pi mit Gladys wieder angeschlossen, um ihn zu aktualisieren.
Ich schaue mir das an, sobald ich kann.