MQTT messages. Button anleren, Wifi frontend
This commit is contained in:
101
src/master.cpp
101
src/master.cpp
@@ -24,100 +24,11 @@ const char* firmwareversion = "1.0.0"; // Version der Firmware
|
||||
|
||||
|
||||
|
||||
void handleLearningMode(const uint8_t* mac) {
|
||||
// Prüfen ob MAC bereits einem anderen Button zugewiesen ist
|
||||
if (buttonConfigs.start1.isAssigned && memcmp(buttonConfigs.start1.mac, mac, 6) == 0) {
|
||||
Serial.println("Diese MAC ist bereits zugewiesen - wird ignoriert");
|
||||
return;
|
||||
}
|
||||
if (buttonConfigs.stop1.isAssigned && memcmp(buttonConfigs.stop1.mac, mac, 6) == 0) {
|
||||
Serial.println("Diese MAC ist bereits zugewiesen - wird ignoriert");
|
||||
return;
|
||||
}
|
||||
if (buttonConfigs.start2.isAssigned && memcmp(buttonConfigs.start2.mac, mac, 6) == 0) {
|
||||
Serial.println("Diese MAC ist bereits zugewiesen - wird ignoriert");
|
||||
return;
|
||||
}
|
||||
if (buttonConfigs.stop2.isAssigned && memcmp(buttonConfigs.stop2.mac, mac, 6) == 0) {
|
||||
Serial.println("Diese MAC ist bereits zugewiesen - wird ignoriert");
|
||||
return;
|
||||
}
|
||||
|
||||
// MAC ist noch nicht zugewiesen, normal fortfahren
|
||||
switch(learningStep) {
|
||||
case 0: // Start1
|
||||
memcpy(buttonConfigs.start1.mac, mac, 6);
|
||||
buttonConfigs.start1.isAssigned = true;
|
||||
Serial.println("Start1 Button zugewiesen");
|
||||
break;
|
||||
case 1: // Stop1
|
||||
memcpy(buttonConfigs.stop1.mac, mac, 6);
|
||||
buttonConfigs.stop1.isAssigned = true;
|
||||
Serial.println("Stop1 Button zugewiesen");
|
||||
break;
|
||||
case 2: // Start2
|
||||
memcpy(buttonConfigs.start2.mac, mac, 6);
|
||||
buttonConfigs.start2.isAssigned = true;
|
||||
Serial.println("Start2 Button zugewiesen");
|
||||
break;
|
||||
case 3: // Stop2
|
||||
memcpy(buttonConfigs.stop2.mac, mac, 6);
|
||||
buttonConfigs.stop2.isAssigned = true;
|
||||
Serial.println("Stop2 Button zugewiesen");
|
||||
break;
|
||||
}
|
||||
|
||||
learningStep++;
|
||||
if (learningStep >= 4) {
|
||||
learningMode = false;
|
||||
learningStep = 0;
|
||||
saveButtonConfig();
|
||||
Serial.println("Lernmodus beendet!");
|
||||
}
|
||||
}
|
||||
|
||||
void handleStartLearning() {
|
||||
learningMode = true;
|
||||
|
||||
// Count assigned buttons and set appropriate learning step
|
||||
int assignedButtons = 0;
|
||||
if (buttonConfigs.start1.isAssigned) assignedButtons++;
|
||||
if (buttonConfigs.stop1.isAssigned) assignedButtons++;
|
||||
if (buttonConfigs.start2.isAssigned) assignedButtons++;
|
||||
if (buttonConfigs.stop2.isAssigned) assignedButtons++;
|
||||
|
||||
learningStep = assignedButtons;
|
||||
|
||||
Serial.printf("Learning mode started - %d buttons already assigned, continuing at step %d\n",
|
||||
assignedButtons, learningStep);
|
||||
}
|
||||
|
||||
void handleLearningStatus() {
|
||||
DynamicJsonDocument doc(256);
|
||||
doc["active"] = learningMode;
|
||||
doc["step"] = learningStep;
|
||||
|
||||
String response;
|
||||
serializeJson(doc, response);
|
||||
}
|
||||
|
||||
void unlearnButton() {
|
||||
|
||||
memset(buttonConfigs.start1.mac, 0, 6);
|
||||
buttonConfigs.start1.isAssigned = false;
|
||||
memset(buttonConfigs.stop1.mac, 0, 6);
|
||||
buttonConfigs.stop1.isAssigned = false;
|
||||
memset(buttonConfigs.start2.mac, 0, 6);
|
||||
buttonConfigs.start2.isAssigned = false;
|
||||
memset(buttonConfigs.stop2.mac, 0, 6);
|
||||
buttonConfigs.stop2.isAssigned = false;
|
||||
|
||||
saveButtonConfig();
|
||||
Serial.println("Buttons wurden verlernt.");
|
||||
}
|
||||
|
||||
void handleStart1() {
|
||||
if (!timerData.isRunning1) {
|
||||
if (!timerData.isRunning1 && timerData.isReady1) {
|
||||
timerData.isReady1 = false; // Setze auf "Nicht bereit" bis Stopp
|
||||
timerData.startTime1 = millis();
|
||||
timerData.isRunning1 = true;
|
||||
timerData.endTime1 = 0;
|
||||
@@ -141,7 +52,8 @@ void handleStop1() {
|
||||
}
|
||||
|
||||
void handleStart2() {
|
||||
if (!timerData.isRunning2) {
|
||||
if (!timerData.isRunning2 && timerData.isReady2) {
|
||||
timerData.isReady2 = false; // Setze auf "Nicht bereit" bis Stopp
|
||||
timerData.startTime2 = millis();
|
||||
timerData.isRunning2 = true;
|
||||
timerData.endTime2 = 0;
|
||||
@@ -185,6 +97,7 @@ void checkAutoReset() {
|
||||
timerData.startTime1 = 0;
|
||||
timerData.endTime1 = 0;
|
||||
timerData.finishedSince1 = 0;
|
||||
timerData.isReady1 = true; // Zurücksetzen auf "Bereit"
|
||||
Serial.println("Bahn 1 automatisch auf 'Bereit' zurückgesetzt");
|
||||
}
|
||||
}
|
||||
@@ -194,6 +107,7 @@ void checkAutoReset() {
|
||||
timerData.startTime2 = 0;
|
||||
timerData.endTime2 = 0;
|
||||
timerData.finishedSince2 = 0;
|
||||
timerData.isReady2 = true; // Zurücksetzen auf "Bereit"
|
||||
Serial.println("Bahn 2 automatisch auf 'Bereit' zurückgesetzt");
|
||||
}
|
||||
}
|
||||
@@ -321,12 +235,11 @@ void setup() {
|
||||
setupRoutes();
|
||||
setupLED();
|
||||
setupMqttServer(); // MQTT Server initialisieren
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
checkAutoReset();
|
||||
loopMqttServer(); // MQTT Server in der Loop aufrufen
|
||||
delay(100);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user