MQTT-Vertrag¶
Die Datei contracts/mqtt_contract.yaml ist die Quelle der Wahrheit für die idryer-core MQTT-Schnittstelle.
Umfang¶
Der Vertrag beschreibt nur, was MqttClient von idryer-core implementiert:
- Themen, die die Bibliothek veröffentlichen kann
- Befehle, die die Bibliothek akzeptiert und leitet
Die vollständige Plattform-Schnittstelle (alle Backend-Befehle für alle Gerätetypen, einschließlich drying, storage, profile, rfid usw.) ist in contracts/portal_backend_status.md — dies ist die [Platform Reference].
Geräte-Themen (Gerät → Backend)¶
| Suffix | Beibehalten | Status |
|---|---|---|
info |
ja | implementiert |
telemetry |
nein | implementiert |
status |
ja | implementiert |
config |
nein | implementiert |
config/delta |
nein | implementiert |
events |
nein | implementiert |
integrations/status |
ja | implementiert |
offline (LWT) |
nein | implementiert |
Befehle (Backend → Gerät)¶
| Suffix | Handler | Status |
|---|---|---|
commands/ping |
IdryerRuntime (eingebaut) |
implementiert |
commands/invoke |
Produkt CommandHandler (emp.); Fallback → ActionDispatcher |
implementiert |
commands/set |
Produkt CommandHandler (emp.); Fallback → ActionDispatcher |
implementiert |
commands/link_integration |
LinkIntegrationsManager über CommandHandler |
implementiert |
commands/bambu_apply |
LinkIntegrationsManager über CommandHandler |
implementiert |
| Alle anderen | Produkt CommandHandler |
produktdefiniert |
Änderungsregel¶
Jede Änderung am MQTT-Protokoll in idryer-core muss gleichzeitig folgende Punkte ändern:
contracts/mqtt_contract.yaml- Bibliothekscode (
mqtt_client.h/.cpp) - Portal / Backend-Code
Aktualisieren Sie zuerst den Vertrag, dann den Code.
Kompatibilität¶
- Das Hinzufügen neuer optionaler Felder zu einer Payload ist sicher.
- Das Umbenennen bestehender Felder erfordert gleichzeitige Updates auf Firmware, Portal und Vertrag.
infoundconfigPayloads werden vom Produkt definiert —idryer-corevalidiert sie nicht.