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…