Zum Inhalt

Modülübersicht

Die Bibliothek wird durch einen von drei Headern eingebunden:

#include <idryer_core.h>         // erforderlicher Kern
#include <idryer_uart.h>         // optional: UART-Brücke
#include <idryer_integrations.h> // optional: HA / Bambu / Moonraker

Modultabelle

Modul Header Zweck Erforderlich
core core/config.h, core/types.h Basis-Konstanten (IDRYER_MAX_*, Timeouts) und Strukturen DeviceIdentity, WifiCredentials, CommandCallback Immer
hal hal/hal_types.h, hal/hal_arduino.h Zeit- und Logging-Abstraktion (ITime, ILogger, HAL_LOG_* Makros). Arduino-Implementierungen: ArduinoTime, ArduinoLogger, ArduinoSerial Immer
device/interfaces device/interfaces/ Plattform-Interfaces: IWifiManager, IHttpClient, ICredentialStore Immer
platform/arduino platform/arduino/ Arduino-Implementierungen von Interfaces: ArduinoWifiManager, ArduinoCredentialStore, ArduinoHttpClient, ArduinoWifiStore Immer (ESP32/Arduino)
mqtt mqtt/mqtt_client.h, mqtt/idryer_topics.h MQTT-Client basierend auf PubSubClient: Verbindung, Abonnement von commands/#, Veröffentlichung aller Topics Immer
cloud cloud/cloud_state_machine.h, cloud/http_api.h, cloud/action_dispatcher.h Cloud-Verbindungs-Zustandsmaschine (WiFi → Provision → Claim → MQTT). HTTP-API für Bereitstellung. invoke/set Befehls-Dispatcher Immer
profiles profiles/IProfile.h IProfile Interface — Vertrag zwischen Bibliothek und Produkt Immer
runtime runtime/idryer_runtime.h IdryerRuntime — Top-Level-Koordinator: verbindet CloudStateMachine, ActionDispatcher, IProfile, MqttClient in ein vereinheitlichtes begin()/loop() Immer
uart uart/uart_bridge.h, uart/uart_protocol.h Bidirektionale UART-Brücke für Dual-MCU-Geräte (ESP32 + RP2040). Frame-Protokoll, CRC-16, ACK/Retry Optional (Dual-MCU-Geräte)
config config/config_manager.h ConfigReceiver/ConfigSender — Zusammenstellung und Übertragung einer fragmentierten JSON-Konfiguration über UART Optional (mit uart)
integrations integrations/common/, integrations/bambu/, integrations/home_assistant/, integrations/moonraker/ LinkIntegrationsManager + drei Clients (Bambu LAN MQTT, HA MQTT, Moonraker WebSocket). Integrationskonfiguration-Speicherung in NVS Optional

Modul-Abhängigkeiten

IProfile ──→ IdryerRuntime ←── CloudStateMachine ←── IWifiManager
                                                  ←── ICredentialStore
                                                  ←── HttpApi ←── IHttpClient
                                                  ←── MqttClient

ActionDispatcher ──→ IdryerRuntime

UartBridge und LinkIntegrationsManager sind über den CommandHandler des Produkts (setCommandHandler()) verdrahtet und sind keine Kern-Abhängigkeiten.