|
58 | 58 | #define ADR_MC_GREEN 22 |
59 | 59 | #define ADR_MC_BLUE 24 |
60 | 60 | #define ADR_STATE 26 |
| 61 | +#define ADR_NM_ACTIVATED 27 |
61 | 62 | #define ADR_COLSHIFTSPEED 28 |
62 | 63 | #define ADR_COLSHIFTACTIVE 29 |
63 | 64 |
|
@@ -184,6 +185,7 @@ float filterFactor = DEFAULT_SMOOTHING_FACTOR;// stores smoothing factor for led |
184 | 185 | uint8_t currentState = st_clock; // stores current state |
185 | 186 | bool stateAutoChange = false; // stores state of automatic state change |
186 | 187 | bool nightMode = false; // stores state of nightmode |
| 188 | +bool nightModeActivated = true; // stores if the function nightmode is activated (its not the state of nightmode) |
187 | 189 | bool ledOff = false; // stores state of led off |
188 | 190 | uint32_t maincolor_clock = colors24bit[2]; // color of the clock and digital clock |
189 | 191 | uint32_t maincolor_snake = colors24bit[1]; // color of the random snake animation |
@@ -617,15 +619,15 @@ void checkNightmode(){ |
617 | 619 | int startInMinutes = nightModeStartHour * 60 + nightModeStartMin; |
618 | 620 | int endInMinutes = nightModeEndHour * 60 + nightModeEndMin; |
619 | 621 |
|
620 | | - if (startInMinutes < endInMinutes) { // Same day scenario |
| 622 | + if (startInMinutes < endInMinutes && nightModeActivated) { // Same day scenario |
621 | 623 | if (startInMinutes < currentTimeInMinutes && currentTimeInMinutes < endInMinutes) { |
622 | 624 | nightMode = true; |
623 | | - logger.logString("Nightmode activated"); |
| 625 | + logger.logString("Nightmode active"); |
624 | 626 | } |
625 | | - } else if (startInMinutes > endInMinutes) { // Overnight scenario |
| 627 | + } else if (startInMinutes > endInMinutes && nightModeActivated) { // Overnight scenario |
626 | 628 | if (currentTimeInMinutes >= startInMinutes || currentTimeInMinutes < endInMinutes) { |
627 | 629 | nightMode = true; |
628 | | - logger.logString("Nightmode activated"); |
| 630 | + logger.logString("Nightmode active"); |
629 | 631 | } |
630 | 632 | } |
631 | 633 | } |
@@ -853,10 +855,12 @@ void loadNightmodeSettingsFromEEPROM() |
853 | 855 | nightModeStartMin = EEPROM.read(ADR_NM_START_M); |
854 | 856 | nightModeEndHour = EEPROM.read(ADR_NM_END_H); |
855 | 857 | nightModeEndMin = EEPROM.read(ADR_NM_END_M); |
| 858 | + nightModeActivated = EEPROM.read(ADR_NM_ACTIVATED); |
856 | 859 | if(nightModeStartHour < 0 || nightModeStartHour > 23) nightModeStartHour = 22; |
857 | 860 | if(nightModeStartMin < 0 || nightModeStartMin > 59) nightModeStartMin = 0; |
858 | 861 | if(nightModeEndHour < 0 || nightModeEndHour > 23) nightModeEndHour = 7; |
859 | 862 | if(nightModeEndMin < 0 || nightModeEndMin > 59) nightModeEndMin = 0; |
| 863 | + logger.logString("Nightmode activated: " + String(nightModeActivated)); |
860 | 864 | logger.logString("Nightmode starts at: " + String(nightModeStartHour) + ":" + String(nightModeStartMin)); |
861 | 865 | logger.logString("Nightmode ends at: " + String(nightModeEndHour) + ":" + String(nightModeEndMin)); |
862 | 866 | } |
@@ -941,6 +945,15 @@ void handleCommand() { |
941 | 945 | if(modestr == "1") ledOff = true; |
942 | 946 | else ledOff = false; |
943 | 947 | } |
| 948 | + else if(server.argName(0) == "nightmodeactivated"){ |
| 949 | + String modestr = server.arg(0); |
| 950 | + logger.logString("nightModeActivated change via Webserver to: " + modestr); |
| 951 | + if(modestr == "1") nightModeActivated = true; |
| 952 | + else nightModeActivated = false; |
| 953 | + EEPROM.write(ADR_NM_ACTIVATED, nightModeActivated); |
| 954 | + EEPROM.commit(); |
| 955 | + checkNightmode(); |
| 956 | + } |
944 | 957 | else if(server.argName(0) == "setting"){ |
945 | 958 | String timestr = server.arg(0) + "-"; |
946 | 959 | logger.logString("Nightmode setting change via Webserver to: " + timestr); |
@@ -1112,7 +1125,7 @@ void handleDataRequest() { |
1112 | 1125 | message += ","; |
1113 | 1126 | message += "\"ledoff\":\"" + String(ledOff) + "\""; |
1114 | 1127 | message += ","; |
1115 | | - message += "\"nightMode\":\"" + String(nightMode) + "\""; |
| 1128 | + message += "\"nightModeActivated\":\"" + String(nightModeActivated) + "\""; |
1116 | 1129 | message += ","; |
1117 | 1130 | message += "\"nightModeStart\":\"" + leadingZero2Digit(nightModeStartHour) + "-" + leadingZero2Digit(nightModeStartMin) + "\""; |
1118 | 1131 | message += ","; |
|
0 commit comments