Was ist idryer-core¶
Wenn Sie ein ESP32-Gerät für die iDryer Cloud entwickeln, handhabt diese Bibliothek WiFi-Bereitstellung (Improv), das Claim-Protokoll, die MQTT-Sitzung (TLS, erneute Verbindung, Zeitsynchronisierung), periodische Telemetrie-/Statusveröffentlichung und eingehende Befehlsweiterleitung. Etwa 500 Zeilen Boilerplate-Code fallen in link.begin(); link.loop(); zusammen.
Minimales Beispiel¶
#include <iDryer.h>
static const iDryer::Config CFG = {
.deviceType = iDryer::DeviceType::StorageLink,
.unitsCount = 1,
.hasAirTemp = true,
.telemetryPeriodMs = 10000,
.hardwareVersion = "1.0",
.firmwareVersion = "1.0.0",
};
static iDryer::Link link(CFG);
void setup() { link.begin(); }
void loop() { link.loop(); link.telemetry.airTempC[0] = sensor.read(); }
Was die Bibliothek tut¶
- WiFi-Verbindung und Keep-Alive; Improv-Bereitstellung über Web Serial für die anfängliche Einrichtung.
- Claim-Protokoll: Geräteregistrierung im Backend, Kontoanspruch über PIN.
- MQTT-Sitzung mit dem iDryer Broker: TLS, persistente Sitzung, Auto-Neuverbindung, NTP-Zeitsynchronisierung.
- Periodische Veröffentlichung von Telemetrie (
Telemetry) und Status (Status) nach Zeitplan. - Weiterleitung eingehender Befehle (
commands/invoke,commands/set,commands/ping) zum Produkthandler. - Lokaler WebSocket-Server: Ein LAN-Client sieht den gleichen Stream wie die Cloud.
- NVS-Persistierung: WiFi-Anmeldedaten, Gerätetoken, Menükonfiguration über Neustarts hinweg.
Was die Bibliothek nicht tut¶
- Verwaltet keine Produkt-Hardware: Ventilatoren, Heizer, LED-Streifen, Sensoren.
- Enthält keine Geschäftslogik für Trocknen, Lagern oder Beleuchtung.
- Kennt produktspezifische Menüparameter nicht — transportiert sie nur.
- Veröffentlicht Telemetrie nicht ohne Daten vom Produkt: Sie füllen
link.telemetry.*selbst inloop()aus.