MQTT - Erstellung eines reinen MQTT-Geräts

Diese Anfrage betrifft diese Diskussion

et erscheint mir nicht ganz ähnlich wie diese hier, da es sich hier um Szenen handelt, daher diese Anfrage

Der Gedanke wäre also, die Möglichkeit zu haben, ein Gerät in der MQTT-Integration zu erstellen, das auf ein eigenes MQTT-Abonnement reagiert, um es zu transformieren und in Gladys zu verwenden, und es von Gladys aus zu veröffentlichen, ohne über Node-Red gehen zu müssen

das heißt, von einem „Text“-Gerät


zu einem reinen MQTT-Gerät

Das war’s, ich hoffe, ich war klar! Eure Stimmen :wink:

Ich weiß nicht, ob diese Anfrage sehr klar ist und ob sie Sinn ergibt…

Ich antworte hier, das scheint mir passender :wink:
Hallo @pierre-gilles,

Ich vermische nicht alles, zumindest hoffe ich das :exploding_head:…Aber wie Lao-Tseu sagte « Wenn du einem Mann einen Fisch gibst, wird er einen Tag essen. Wenn du ihm das Fischen beibringst, wird er immer essen. » :thinking: :blush:

Die Idee ist, über diesen Feature-Request zu ermöglichen, jedes Gerät zu verwenden, das noch nicht integriert ist, ohne Node-Red nutzen zu müssen (wenn es jetzt schwierig ist oder nicht in den kurzfristigen Zielen liegt, verstehe ich, dass es nicht gemacht wird, da gibt es keine Zweifel daran).

Voilà, ich hoffe, ich war klarer und habe dieser Anfrage einen Sinn gegeben… :slight_smile:

Du verwechselst die MQTT-Integration und die Zigbee2mqtt-Integration :slight_smile:

Diese beiden Integrationen sind nicht miteinander verbunden, du möchtest, dass der Benutzer manuelle Befehle an den Zigbee2mqtt-Server senden kann.

Ich glaube nicht, dass das der Philosophie des Projekts entspricht, warum fügst du nicht einfach die fehlende Sirene hinzu (was eine kleine Arbeit ist)?

Also, es sei denn, ich bin bereits in die Senilität verfallen und kandidiere für ein EPHAD, aber wenn ich noch einmal lese

Verstehe ich richtig, dass es auf der einen Seite Geräte (Steckdosendetektoren usw.) gibt, die über ein Funkprotokoll, Zigbee, kommunizieren, das hardwaremäßig mit einem dedizierten Gateway oder einem generischen Schlüssel (Conbee, Deconz, Sonoff) verbunden ist, das es ermöglicht, die Gateways zu umgehen und zu einem TCP-Protokoll zu wechseln, das MQTT ist (ähnlich wie eine Netzwerkkarte auf einem PC).
Ich habe verstanden, dass dieses MQTT-Protokoll TCP-Frames an einen MQTT-Broker (dedizierten HTTP-Server) und bidirektional überträgt.
Dass dieser Broker funktioniert wie

  • ich erhalte eine MQTT-Nachricht (Topic) mit einem Inhalt (Payload), ich sende an die Personen, die sich für diese Nachricht (Topic) in der Liste der Abonnements, die ich besitze, angemeldet haben, den Wert der Nachricht (Payload).
    Im Fall des Alarms sehe ich in der Dokumentation

Man muss also an das Topic
zigbee2mqtt/FRIENDLY_NAME/set
die Nachricht
{"warning": {"duration": 10, "mode": "emergency", "strobe": false}}
schicken, oder?

Nein, ich möchte, dass der Benutzer manuelle Befehle an den MQTT-Server senden kann

Manchmal habe ich das Gefühl, dich zu ärgern @pierre-gilles :thinking: :face_with_thermometer: :wink: :blush:

Derzeit ist der MQTT-Broker der MQTT-Integration nicht mit dem MQTT-Broker von zigbee2mqtt verbunden.
Es handelt sich um 2 völlig unterschiedliche Integrationen ohne jeglichen Zusammenhang.

@_Will_71

Aber wenn ich die Dokumentation anschaue…

Oder verstehe ich da etwas nicht :upside_down_face:

Ich bestätige, du verstehst nicht ..

Es gibt die MQTT-Integration, die ihren eigenen Broker hat, um mit Node Red zu kommunizieren oder mit Gladys selbst über seine virtuellen Geräte.

Und dann gibt es die Zigbee2MQTT-Integration, die einen anderen Broker verwendet, um mit dem des Zigbee-Projekts zu kommunizieren.

Wenn du immer noch nicht glaubst, schau dir deine Instanz an, indem du docker ps ausführst und schau dir den Code an..
Selbst wenn du noch nie Node gemacht hast, ist es lesbar..

Jede Integration auf glagla ist so aufgebaut, dass, wenn eine Integration abstürzt, der Rest weiterhin funktioniert, daher die Vermehrung der MQTT-Broker

Zusammenfassend gibt es also 2 MQTT-Broker.
1 für zigbee2mqtt und einen weiteren für die MQTT-Integration.

Tatsächlich dachte ich, die Konfiguration in zigbee2mqtt würde auf den von Gladys installierten MQTT-Server verweisen, aber tatsächlich verweist sie auf den MQTT-Server, den der Container selbst hostet.
Ich habe verstanden, dass es den Port 1883 für den Docker-MQTT-Broker gibt, indem ich die offenen Ports angesehen habe.


Und den Port 1884 für den MQTT-Broker des Zigbee2Mqtt-Containers

Ich hatte nicht verstanden, warum der MQTT-Broker doppelt vorhanden ist, aber dann habe ich verstanden, indem ich die verschiedenen Integration-Codes im GitHub angesehen habe, dass der MQTT-Broker des Docker-Zigbee2Mqtt nur dazu dient, die Übersetzung zwischen der Gladys-eigenen Syntax und der von zigbee2mqtt im Zigbee2Mqtt-Container zu übernehmen.
Daher ist es grob gesagt so, dass, wenn ein Gerät in die Zigbee2Mqtt-Integration von Gladys integriert wird, eine Entsprechung zwischen (um das Beispiel des Alarms zu nehmen) der Gladys-Syntax

gladys/master/device/mqtt:Heiman/feature/mqtt:Heiman/text

und der zigbee2mqtt-Syntax besteht.
Der Versand (Publish) an den zigbee2mqtt-Broker mit dem Topic
zigbee2mqtt/FRIENDLY_NAME/set
et dem Payload
{"warning": {"duration": 10, "mode": "emergency", "strobe": false}}
zumindest, wenn das Gerät integriert wurde, ist das richtig?

Um den Satz von @spenceur aufzunehmen

Dient die MQTT-Integration sozusagen als API oder Kommunikationsmittel zwischen Gladys und Node-Red?

Unabhängig von den in den verschiedenen Integrationen (hue, xiaomi, zigbee2mqtt, mqtt, usw.) erstellten Geräten werden sie zu virtuellen Geräten innerhalb von Gladys und werden als solche behandelt. Die Integrationsebene dient als Schnittstelle (wie eine API) zwischen Gladys und den externen Protokollen. Ist das richtig oder liege ich wieder falsch?

Ich entschuldige mich dafür, dass ich so aufdringlich bin, aber das Verständnis, wie die interne „Küche“ funktioniert, hilft auch, das externe Verhalten zu verstehen und zu wissen, was möglich ist, welche Funktionen man anfordern oder sogar versuchen kann, beim Code zu helfen! Es mag für diejenigen, die das interne Funktionieren von Gladys verstanden haben, einfach erscheinen, für die anderen ist es nicht einfach zu verstehen… Zu wissen, wie Gladys funktioniert, kann auch kompetente Entwickler anziehen, um dem aktuellen Team beizutreten.
Ich habe den Code auf GitHub angesehen und muss sagen, dass er nicht sehr explizit oder nicht ausreichend dokumentiert ist, das ist meine Meinung und sie bindet nur mich…

Nimm es nicht persönlich, aber manchmal greifst du in Themen ein, in denen ein Anfänger eine einfache Frage stellt, auf die es eine einfache Antwort gibt, und antwortest mit einer sehr komplizierten und falschen Antwort :grimacing:

In Gladys 4 hatte ich wirklich den Wunsch, die Dinge zu vereinfachen und ein Produkt für die breite Masse ohne Entwickler-Jargon zu schaffen. Manchmal führst du neue Nutzer in die falsche Richtung, was mich tatsächlich ein bisschen ärgert (aber ich versuche, höflich zu bleiben :slight_smile: ).

Ich nehme es nicht persönlich, wenn ich eingreife, um zu antworten, dann auch mit dem, was ich verstanden zu haben glaube (bei der Container-Seite MQTT Zigbee2mqtt habe ich mich geirrt, das gebe ich zu), und in der Lösung, die ich vorschlage, kann ich mich irren (das Forum ist dafür da, um Fortschritte zu machen, oder?), in diesem Fall scheint es mir angemessen, über Node-RED zu gehen (aber dein Ansatz, dass man es besser entwickeln sollte, ist der richtige), aber was macht @Isage in der Zwischenzeit? Ich habe mit meinem IPX800V5 gekämpft, um es über MQTT mit Gladys zu verbinden, ich habe es gefunden und ein Mini-Tutorial dafür erstellt, bis eines Tages diese Integration erfolgt (falls sie existiert, sie existiert unter HA und Jeedom), indem ich dieses Mini-Tutorial erstellt habe, das ich auch im IPX800-Forum veröffentlicht habe, um Gladys bekannt zu machen und zu zeigen, dass man auch mit Node-RED umgehen kann, selbst wenn die Hardware nicht von Gladys unterstützt wird, genauso wie bei dieser Alarmanlage.
Ich weiß, dass das Forum manchmal zeitaufwendig für dich sein kann, aber es ist auch eine Quelle der Inspiration

  • hier eine gute Idee!
  • hier hat jemand nicht verstanden, vielleicht ist er nicht der Einzige oder es fehlt an Klarheit

Mein fast sechzigstes Jahr :sob: :ambulance: du bist dankbar (aber ich frage mich, was höflich ist, ist es für den Begriff « iirritieren » oder für mich? Nein, ich scherze nur, aber wie man sieht, gibt es zwischen dem, was man ausdrückt, und dem, was interpretiert wird, Stoff für eine Abhandlung und für Abschweifungen! :wink:)

Ich schließe diesen Antrag zugunsten von: