#pragma once #include #include #include #include #include #include // <-- mDNS hinzufügen #include "master.h" #include "licenceing.h" String uniqueSSID; PrettyOTA OTAUpdates; String getUniqueSSID(); void setupWifi() { uniqueSSID = getUniqueSSID(); ssidAP = uniqueSSID.c_str(); //print station SSID Serial.println("Access Point SSID: " + String(ssidSTA)); Serial.println("Access Point PW: " + String(passwordSTA)); if (ssidSTA == nullptr || passwordSTA == nullptr || String(ssidSTA).isEmpty() || String(passwordSTA).isEmpty() ) { Serial.println("Fehler: ssidSTA oder passwordSTA ist null!"); WiFi.mode(WIFI_MODE_AP); WiFi.softAP(ssidAP, passwordAP); } else { WiFi.mode(WIFI_MODE_APSTA); WiFi.begin(ssidSTA, passwordSTA); WiFi.softAP(ssidAP, passwordAP); while (WiFi.status() != WL_CONNECTED){ delay(500); Serial.print("."); } } //Only wait for connection if ssidSTA and passwordSTA are set Serial.println(""); Serial.println("Verbunden mit WLAN!"); Serial.print("IP-Adresse: "); Serial.println(WiFi.localIP()); Serial.println("WiFi AP gestartet"); Serial.print("SSID: "); Serial.println(WiFi.softAPSSID()); Serial.print("IP Adresse: "); Serial.println(WiFi.softAPIP()); Serial.println("PrettyOTA can be accessed at: http://" + WiFi.softAPIP().toString() + "/update"); // mDNS starten if (MDNS.begin("aquacross-timer")) { // z.B. http://aquacross-timer.local/ Serial.println("mDNS responder gestartet: http://aquacross-timer.local/"); } else { Serial.println("Fehler beim Starten von mDNS!"); } } void setupOTA(AsyncWebServer *server) { // Initialize PrettyOTA OTAUpdates.Begin(server); // Set unique Hardware-ID for your hardware/board OTAUpdates.SetHardwareID("AquaCross-Master"); // Set firmware version to 1.0.0 OTAUpdates.SetAppVersion(firmwareversion); // Set current build time and date PRETTY_OTA_SET_CURRENT_BUILD_TIME_AND_DATE(); } String getUniqueSSID() { uint8_t mac[6]; esp_wifi_get_mac(WIFI_IF_STA, mac); // Create a 5-character string from last 3 bytes of MAC char uniqueId[6]; snprintf(uniqueId, sizeof(uniqueId), "%02X%03X", mac[4], mac[5]); return String("AquaCross-") + String(uniqueId); } // WiFi als Access Point