diff --git a/wled00/FX.h b/wled00/FX.h
index 31cfefc94..2cd886f61 100644
--- a/wled00/FX.h
+++ b/wled00/FX.h
@@ -545,7 +545,7 @@ class WS2812FX {
//10 names per line
const char JSON_mode_names[] PROGMEM = R"=====([
"Solid","Blink","Breathe","Wipe","Wipe Random","Random Colors","Sweep","Dynamic","Colorloop","Rainbow",
-"Scan","Dual Scan","Fade","Chase","Chase Rainbow","Running","Saw","Twinkle","Dissolve","Dissolve Rnd",
+"Scan","Dual Scan","Fade","Theater","Theater Rainbow","Running","Saw","Twinkle","Dissolve","Dissolve Rnd",
"Sparkle","Dark Sparkle","Sparkle+","Strobe","Strobe Rainbow","Mega Strobe","Blink Rainbow","Android","Chase","Chase Random",
"Chase Rainbow","Chase Flash","Chase Flash Rnd","Rainbow Runner","Colorful","Traffic Light","Sweep Random","Running 2","Red & Blue","Stream",
"Scanner","Lighthouse","Fireworks","Rain","Merry Christmas","Fire Flicker","Gradient","Loading","In Out","In In",
diff --git a/wled00/html_settings.h b/wled00/html_settings.h
index 98b9012e4..cb3b29fc3 100644
--- a/wled00/html_settings.h
+++ b/wled00/html_settings.h
@@ -52,7 +52,7 @@ mDNS address (leave empty for no mDNS):
http:// .local
Client IP: Not connected
Configure Access Point
-AP SSID (leave empty for no AP):
+AP name (SSID):
Hide AP name:
AP password (leave empty for open):
Access Point WiFi channel:
@@ -316,6 +316,7 @@ Time zone:
+
UTC offset: seconds (max. 18 hours)
Current local time is unknown.
diff --git a/wled00/wled00.ino b/wled00/wled00.ino
index 96e136e45..88157e816 100644
--- a/wled00/wled00.ino
+++ b/wled00/wled00.ino
@@ -100,7 +100,7 @@
//version code in format yymmddb (b = daily build)
-#define VERSION 1910255
+#define VERSION 1910291
char versionString[] = "0.8.6";
@@ -409,7 +409,7 @@ time_t local = 0;
unsigned long ntpLastSyncTime = 999000000L;
unsigned long ntpPacketSentTime = 999000000L;
IPAddress ntpServerIP;
-unsigned int ntpLocalPort = 2390;
+uint16_t ntpLocalPort = 2390;
#define NTP_PACKET_SIZE 48
#define MAX_LEDS 1500
diff --git a/wled00/wled10_ntp.ino b/wled00/wled10_ntp.ino
index e9eec7694..6eb5d9070 100644
--- a/wled00/wled10_ntp.ino
+++ b/wled00/wled10_ntp.ino
@@ -52,7 +52,10 @@ Timezone tzNZ(NZDT, NZST);
TimeChangeRule NKST = {Last, Sun, Mar, 1, 510}; //Pyongyang Time = UTC + 8.5 hours
Timezone tzNK(NKST, NKST);
-Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK};
+TimeChangeRule IST = {Last, Sun, Mar, 1, 330}; // India Standard Time = UTC + 5.5 hours
+Timezone tzIndia(IST, IST);
+
+Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia};
void handleNetworkTime()
{
diff --git a/wled00/wled17_mqtt.ino b/wled00/wled17_mqtt.ino
index 6a52b85e8..53d499d4a 100644
--- a/wled00/wled17_mqtt.ino
+++ b/wled00/wled17_mqtt.ino
@@ -102,7 +102,7 @@ char* buffer;
void sendHADiscoveryMQTT()
{
-
+//TODO: With LwIP 1 the ESP loses MQTT connection and causes memory leak when sending discovery packet
#if ARDUINO_ARCH_ESP32 || LWIP_VERSION_MAJOR > 1
/*
diff --git a/wled00/wled19_json.ino b/wled00/wled19_json.ino
index d2a3e8a1d..9d02d457c 100644
--- a/wled00/wled19_json.ino
+++ b/wled00/wled19_json.ino
@@ -77,21 +77,22 @@ bool deserializeState(JsonObject root)
}
}
- byte fx = elem["fx"] | seg.mode;
- if (fx != seg.mode && fx < strip.getModeCount()) strip.setMode(id, fx);
- seg.speed = elem["sx"] | seg.speed;
- seg.intensity = elem["ix"] | seg.intensity;
- seg.palette = elem["pal"] | seg.palette;
//if (pal != seg.palette && pal < strip.getPaletteCount()) strip.setPalette(pal);
seg.setOption(0, elem["sel"] | seg.getOption(0)); //selected
seg.setOption(1, elem["rev"] | seg.getOption(1)); //reverse
//int cln = seg_0["cln"];
- //temporary
+ //temporary, strip object gets updated via colorUpdated()
if (id == 0) {
- effectCurrent = seg.mode;
- effectSpeed = seg.speed;
- effectIntensity = seg.intensity;
- effectPalette = seg.palette;
+ effectCurrent = elem["fx"] | effectCurrent;
+ effectSpeed = elem["sx"] | effectSpeed;
+ effectIntensity = elem["ix"] | effectIntensity ;
+ effectPalette = elem["pal"] | effectPalette;
+ } else { //permanent
+ byte fx = elem["fx"] | seg.mode;
+ if (fx != seg.mode && fx < strip.getModeCount()) strip.setMode(id, fx);
+ seg.speed = elem["sx"] | seg.speed;
+ seg.intensity = elem["ix"] | seg.intensity;
+ seg.palette = elem["pal"] | seg.palette;
}
}
it++;