idryer-core für iDryer-Geräte und DIY-Module¶
idryer-core ist nützlich, wenn ein DIY-Filamenttrockner, eine beheizte Kammer, ein Beleuchtungssystem oder ein anderes 3D-Drucker-Modul zu einem verwalteten iDryer-Gerät werden soll. Die Bibliothek übernimmt WLAN, MQTT, Befehle, Telemetrie und Portal-Kommunikation; der Produktcode beschreibt nur das Verhalten des konkreten Geräts.
idryer-core ist eine C++-Bibliothek (Arduino/PlatformIO) für ESP32-basierte iDryer-Geräte. Sie verwaltet WLAN, MQTT, die Cloud-Zustandsmaschine und das Routing von Befehlen. Das Produkt implementiert nur gerätespezifisches Verhalten.
Dies ist die Dokumentation der Bibliothek, nicht eines bestimmten Produkts.
Produktdokumentation liegt in docs/ru/.
Schnellstart¶
Drei Dinge, die du implementierst:
IProfileimplementieren — fünf Methoden (Konfiguration, Info, Loop).main.cppzusammensetzen — statische Objekte, Abhängigkeiten über Konstruktoren übergeben.handleCommandregistrieren — ein gemeinsamer Handler für MQTT und optional lokalen WS.
Drei Dinge, die die Bibliothek erledigt:
- WLAN → Provisioning → MQTT-Sitzung verwalten.
- Eingehende Befehle an dein
handleCommandweiterleiten (pingwird intern verarbeitet). - Deine
IProfile-Methoden zum richtigen Zeitpunkt aufrufen.
Was unverändert bleiben kann:
ArduinoWifiManager,ArduinoCredentialStoreund andereArduino*-Klassen — unverändert verwenden, keine Unterklassen nötig.CloudStateMachine— erstellen und anIdryerRuntimeübergeben; danach verwaltet sie sich selbst.ActionDispatcher— Kompatibilitäts-Fallback für invoke/set; bei neuen Produkten läuft die Befehlsverarbeitung übersetCommandHandler(), nicht überActionDispatcher.
Praktischer Leitfaden: 09-add-product/01-add-new-product.md
Arbeitsbeispiele: examples/
Abschnitte¶
| Abschnitt | Beschreibung |
|---|---|
| 01-overview/01-what-is-idryer-core | Zweck der Bibliothek, was sie nicht tut, wer sie verwendet |
| 01-overview/02-module-map | Tabelle aller Module: Zweck und Optionalität |
| 02-getting-started | Kurzer Einstieg für neue Entwickler: was verbunden, geflasht und erwartet wird |
| 05-architecture/01-composition-root | Wie das Produkt den Stack zusammensetzt: Reihenfolge der Objekte, Muster für main.cpp |
| 05-architecture/02-library-vs-product-boundary | Was in die Bibliothek gehört und was ins Produkt |
| 05-architecture/03-data-flow | Datenfluss im laufenden Gerät: eingehende Befehle, ausgehende Nachrichten, Verbindungen |
| 06-mqtt/01-mqtt-client | Klasse MqttClient: Konstruktor, Verbindung, Veröffentlichung |
| 06-mqtt/02-topics-and-messages | Alle MQTT-Topics: Strings, Payloads, retained, QoS |
| 04-runtime/01-idryer-runtime | IdryerRuntime: was sie koordiniert und welche Befehle sie verarbeitet |
| 05-uart/01-uart-layer | UART-Brücke für Dual-MCU-Geräte |
| 06-integrations/01-integrations-overview | Bambu, Home Assistant, Moonraker: Einrichtung und Einschränkungen |
| 07-platform-arduino/01-arduino-platform | Arduino-Implementierungen der Geräteschnittstellen |
| 08-profiles-and-products/01-profiles-model | IProfile-Schnittstelle, Callbacks, Beispiel LedStripProfile |
| 09-contracts/01-mqtt-contract | mqtt_contract.yaml: Zweck und Änderungsregeln |
| 10-how-to-add-product/01-add-new-product | Checkliste zum Aufbau eines neuen Produkts auf idryer-core |
| 10-troubleshooting | Häufige Probleme: WLAN, Provisioning, MQTT, Befehle, LocalAccess |
| 04-patterns/01-add-sensor | Sensor hinzufügen und Messwerte veröffentlichen |
| 04-patterns/02-add-peripheral | Peripherie hinzufügen und Befehle empfangen |
| 04-patterns/03-add-transport | Parallelen Transport hinzufügen (BLE, HTTP, custom) |
| 04-patterns/04-data-flow | Praktische Rezepte für Datenübergabe zwischen Sensoren, Peripherie, Profil und Publishern |