Files
AquaMasterMQTT/src/wificlass.h

95 lines
2.5 KiB
C

#pragma once
#include <Arduino.h>
#include <esp_wifi.h>
#include <PrettyOTA.h>
#include <esp_now.h>
#include <WiFi.h>
#include <ESPmDNS.h> // <-- 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