Remove FS defines
Increase boot preset max. to 250 Update changelog Update readme
This commit is contained in:
parent
76f4c49e22
commit
595fd9377c
26
CHANGELOG.md
26
CHANGELOG.md
@ -2,6 +2,32 @@
|
|||||||
|
|
||||||
### Development versions after the 0.10.2 release
|
### Development versions after the 0.10.2 release
|
||||||
|
|
||||||
|
#### Build 2011152
|
||||||
|
|
||||||
|
- Version bump to 0.11.0p "Mirai"
|
||||||
|
- Increased max. num of segments to 12 (ESP8266) / 16 (ESP32)
|
||||||
|
- Up to 250 presets stored in the `presets.json` file in filesystem
|
||||||
|
- Complete overhaul of the Presets UI tab
|
||||||
|
- Updated iro.js to v5 (fixes black color wheel)
|
||||||
|
- Added white temperature slider to color wheel
|
||||||
|
- Add JSON settings serialization/deserialization to cfg.json and wsec.json
|
||||||
|
- Playlist support - JSON only for now
|
||||||
|
- New v2 usermod methods `addToConfig()` and `readFromConfig()` (see EXAMPLE_v2 for doc)
|
||||||
|
- Added Ethernet support for ESP32 (PR #1316)
|
||||||
|
- IP addresses are now handled by the `Network` class
|
||||||
|
- New `esp32_poe` PIO environment
|
||||||
|
- Use EspAsyncWebserver Aircoookie fork v.2.0.0 (hiding wsec.json)
|
||||||
|
- Removed `WLED_DISABLE_FILESYSTEM` and `WLED_ENABLE_FS_SERVING` defines as they are now required
|
||||||
|
- Added pin manager
|
||||||
|
- UI performance improvements (no drop shadows)
|
||||||
|
- More explanatory error messages in UI
|
||||||
|
- Improved candle brightness
|
||||||
|
- Return remaining nightlight time `nl.rem` in JSON API (PR #1302)
|
||||||
|
- Added gamma calculation (yet unused)
|
||||||
|
- Added LED type definitions to const.h (yet unused)
|
||||||
|
- Removed `NP` and `MS=` macro HTTP API commands
|
||||||
|
- Removed macros from Time settings
|
||||||
|
|
||||||
#### Build 2011120
|
#### Build 2011120
|
||||||
|
|
||||||
- Added the ability for the /api MQTT topic to receive JSON API payloads
|
- Added the ability for the /api MQTT topic to receive JSON API payloads
|
||||||
|
@ -21,19 +21,20 @@ A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control
|
|||||||
- Settings page - configuration over network
|
- Settings page - configuration over network
|
||||||
- Access Point and station mode - automatic failsafe AP
|
- Access Point and station mode - automatic failsafe AP
|
||||||
- Support for RGBW strips
|
- Support for RGBW strips
|
||||||
- 16 user presets to save and load colors/effects easily, supports cycling through them.
|
- Up to 250 user presets to save and load colors/effects easily, supports cycling through them.
|
||||||
- Macro functions to automatically execute API calls
|
- Presets can be used to automatically execute API calls
|
||||||
- Nightlight function (gradually dims down)
|
- Nightlight function (gradually dims down)
|
||||||
- Full OTA software updatability (HTTP + ArduinoOTA), password protectable
|
- Full OTA software updatability (HTTP + ArduinoOTA), password protectable
|
||||||
- Configurable analog clock + support for the Cronixie kit by Diamex
|
- Configurable analog clock + support for the Cronixie kit by Diamex
|
||||||
- Configurable Auto Brightness limit for safer operation
|
- Configurable Auto Brightness limit for safer operation
|
||||||
|
- Filesystem-based config for easier backup of presets and settings
|
||||||
|
|
||||||
## 💡 Supported light control interfaces
|
## 💡 Supported light control interfaces
|
||||||
- WLED app for [Android](https://play.google.com/store/apps/details?id=com.aircoookie.WLED) and [iOS](https://apps.apple.com/us/app/wled/id1475695033)
|
- WLED app for [Android](https://play.google.com/store/apps/details?id=com.aircoookie.WLED) and [iOS](https://apps.apple.com/us/app/wled/id1475695033)
|
||||||
- JSON and HTTP request APIs
|
- JSON and HTTP request APIs
|
||||||
- MQTT
|
- MQTT
|
||||||
- Blynk IoT
|
- Blynk IoT
|
||||||
- E1.31, Art-Net and TPM2.net
|
- E1.31, Art-Net, DDP and TPM2.net
|
||||||
- [Hyperion](https://github.com/hyperion-project/hyperion.ng)
|
- [Hyperion](https://github.com/hyperion-project/hyperion.ng)
|
||||||
- UDP realtime
|
- UDP realtime
|
||||||
- Alexa voice control (including dimming and color)
|
- Alexa voice control (including dimming and color)
|
||||||
|
@ -204,7 +204,6 @@ button {
|
|||||||
.tab {
|
.tab {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: var(--c-d);
|
color: var(--c-d);
|
||||||
/*filter: drop-shadow(0px 0px 0px #111);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bot {
|
.bot {
|
||||||
@ -511,7 +510,6 @@ input[type=range]::-moz-range-thumb {
|
|||||||
#picker {
|
#picker {
|
||||||
margin: 10px auto;
|
margin: 10px auto;
|
||||||
width: 260px;
|
width: 260px;
|
||||||
/*filter: drop-shadow(0px 0px 1px #000);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#rgbwrap {
|
#rgbwrap {
|
||||||
@ -527,7 +525,6 @@ input[type=range]::-moz-range-thumb {
|
|||||||
color: var(--c-f);
|
color: var(--c-f);
|
||||||
border: 0px solid white;
|
border: 0px solid white;
|
||||||
border-radius: 25px;
|
border-radius: 25px;
|
||||||
/*filter: drop-shadow(0px 0px 1px #000);*/
|
|
||||||
transition-duration: 0.5s;
|
transition-duration: 0.5s;
|
||||||
-webkit-backface-visibility: hidden;
|
-webkit-backface-visibility: hidden;
|
||||||
-webkit-transform:translate3d(0,0,0);
|
-webkit-transform:translate3d(0,0,0);
|
||||||
@ -838,7 +835,6 @@ input[type=number]::-webkit-outer-spin-button {
|
|||||||
color: var(--c-f);
|
color: var(--c-f);
|
||||||
border: 0px solid white;
|
border: 0px solid white;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
/*filter: drop-shadow(0px 0px 1px #000);*/
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
transition: background-color 0.5s;
|
transition: background-color 0.5s;
|
||||||
}
|
}
|
||||||
@ -1367,7 +1363,8 @@ function getLowestUnusedP()
|
|||||||
for (var key in pJson)
|
for (var key in pJson)
|
||||||
{
|
{
|
||||||
if (key == l) l++;
|
if (key == l) l++;
|
||||||
}
|
}
|
||||||
|
if (l > 250) l = 250;
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2005,7 +2002,7 @@ function makeP(i) {
|
|||||||
<span class="checkmark schk"></span>
|
<span class="checkmark schk"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="c">Save to ID <input class="noslide" id="p${i}id" type="number" oninput="checkUsed(${i})" min=1 value=${(i>0)?i:getLowestUnusedP()}></div>
|
<div class="c">Save to ID <input class="noslide" id="p${i}id" type="number" oninput="checkUsed(${i})" max=250 min=1 value=${(i>0)?i:getLowestUnusedP()}></div>
|
||||||
<div class="c">
|
<div class="c">
|
||||||
<button class="btn btn-i btn-p" onclick="saveP(${i})"><i class="icons btn-icon"></i>${(i>0)?"Save changes":"Save preset"}</button>
|
<button class="btn btn-i btn-p" onclick="saveP(${i})"><i class="icons btn-icon"></i>${(i>0)?"Save changes":"Save preset"}</button>
|
||||||
${(i>0)?'<button class="btn btn-i btn-p" onclick="delP('+i+')"><i class="icons btn-icon"></i>Delete preset</button>':
|
${(i>0)?'<button class="btn btn-i btn-p" onclick="delP('+i+')"><i class="icons btn-icon"></i>Delete preset</button>':
|
||||||
|
@ -151,7 +151,7 @@
|
|||||||
<h3>Defaults</h3>
|
<h3>Defaults</h3>
|
||||||
Turn LEDs on after power up/reset: <input type="checkbox" name="BO"><br>
|
Turn LEDs on after power up/reset: <input type="checkbox" name="BO"><br>
|
||||||
Default brightness: <input name="CA" type="number" min="0" max="255" required> (0-255)<br><br>
|
Default brightness: <input name="CA" type="number" min="0" max="255" required> (0-255)<br><br>
|
||||||
Apply preset <input name="BP" type="number" min="0" max="16" required> at boot (0 uses defaults)
|
Apply preset <input name="BP" type="number" min="0" max="250" required> at boot (0 uses defaults)
|
||||||
<br>- <i>or</i> -<br>
|
<br>- <i>or</i> -<br>
|
||||||
Set current preset cycle setting as boot default: <input type="checkbox" name="PC"><br><br>
|
Set current preset cycle setting as boot default: <input type="checkbox" name="PC"><br><br>
|
||||||
Use Gamma correction for color: <input type="checkbox" name="GC"> (strongly recommended)<br>
|
Use Gamma correction for color: <input type="checkbox" name="GC"> (strongly recommended)<br>
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
* Utility for SPIFFS filesystem
|
* Utility for SPIFFS filesystem
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_FILESYSTEM
|
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_ESP32 //FS info bare IDF function until FS wrapper is available for ESP32
|
#ifdef ARDUINO_ARCH_ESP32 //FS info bare IDF function until FS wrapper is available for ESP32
|
||||||
#if WLED_FS != LITTLEFS
|
#if WLED_FS != LITTLEFS
|
||||||
#include "esp_spiffs.h"
|
#include "esp_spiffs.h"
|
||||||
@ -375,9 +373,8 @@ void updateFSInfo() {
|
|||||||
fsBytesTotal = fsi.totalBytes;
|
fsBytesTotal = fsi.totalBytes;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined WLED_DISABLE_FILESYSTEM && defined WLED_ENABLE_FS_SERVING
|
|
||||||
//Un-comment any file types you need
|
//Un-comment any file types you need
|
||||||
String getContentType(AsyncWebServerRequest* request, String filename){
|
String getContentType(AsyncWebServerRequest* request, String filename){
|
||||||
if(request->hasArg("download")) return "application/octet-stream";
|
if(request->hasArg("download")) return "application/octet-stream";
|
||||||
@ -413,7 +410,3 @@ bool handleFileRead(AsyncWebServerRequest* request, String path){
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
bool handleFileRead(AsyncWebServerRequest*, String path){return false;}
|
|
||||||
#endif
|
|
||||||
|
@ -109,8 +109,8 @@ value="3">RBG</option><option value="4">BGR</option><option value="5">GBR
|
|||||||
</option></select><h3>Defaults</h3>Turn LEDs on after power up/reset: <input
|
</option></select><h3>Defaults</h3>Turn LEDs on after power up/reset: <input
|
||||||
type="checkbox" name="BO"><br>Default brightness: <input name="CA"
|
type="checkbox" name="BO"><br>Default brightness: <input name="CA"
|
||||||
type="number" min="0" max="255" required> (0-255)<br><br>Apply preset <input
|
type="number" min="0" max="255" required> (0-255)<br><br>Apply preset <input
|
||||||
name="BP" type="number" min="0" max="16" required> at boot (0 uses defaults)<br>
|
name="BP" type="number" min="0" max="250" required> at boot (0 uses defaults)
|
||||||
- <i>or</i> -<br>Set current preset cycle setting as boot default: <input
|
<br>- <i>or</i> -<br>Set current preset cycle setting as boot default: <input
|
||||||
type="checkbox" name="PC"><br><br>Use Gamma correction for color: <input
|
type="checkbox" name="PC"><br><br>Use Gamma correction for color: <input
|
||||||
type="checkbox" name="GC"> (strongly recommended)<br>
|
type="checkbox" name="GC"> (strongly recommended)<br>
|
||||||
Use Gamma correction for brightness: <input type="checkbox" name="GB">
|
Use Gamma correction for brightness: <input type="checkbox" name="GB">
|
||||||
|
3375
wled00/html_ui.h
3375
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -323,6 +323,11 @@ void WLED::beginStrip()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (bootPreset > 0) applyPreset(bootPreset);
|
if (bootPreset > 0) applyPreset(bootPreset);
|
||||||
|
if (turnOnAtBoot) {
|
||||||
|
bri = (briS > 0) ? briS : 128;
|
||||||
|
} else {
|
||||||
|
briLast = briS; bri = 0;
|
||||||
|
}
|
||||||
colorUpdated(NOTIFIER_CALL_MODE_INIT);
|
colorUpdated(NOTIFIER_CALL_MODE_INIT);
|
||||||
|
|
||||||
// init relay pin
|
// init relay pin
|
||||||
|
@ -35,9 +35,7 @@
|
|||||||
#define WLED_ENABLE_WEBSOCKETS
|
#define WLED_ENABLE_WEBSOCKETS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#define WLED_DISABLE_FILESYSTEM // FS used by new preset functionality
|
#define WLED_ENABLE_FS_EDITOR // enable /edit page for editing FS content. Will also be disabled with OTA lock
|
||||||
#define WLED_ENABLE_FS_SERVING // Enable sending html file from SPIFFS before serving progmem version
|
|
||||||
#define WLED_ENABLE_FS_EDITOR // enable /edit page for editing SPIFFS content. Will also be disabled with OTA lock
|
|
||||||
|
|
||||||
// to toggle usb serial debug (un)comment the following line
|
// to toggle usb serial debug (un)comment the following line
|
||||||
//#define WLED_DEBUG
|
//#define WLED_DEBUG
|
||||||
|
@ -124,7 +124,7 @@ void initServer()
|
|||||||
|
|
||||||
//if OTA is allowed
|
//if OTA is allowed
|
||||||
if (!otaLock){
|
if (!otaLock){
|
||||||
#if !defined WLED_DISABLE_FILESYSTEM && defined WLED_ENABLE_FS_EDITOR
|
#ifdef WLED_ENABLE_FS_EDITOR
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
server.addHandler(new SPIFFSEditor(WLED_FS));//http_username,http_password));
|
server.addHandler(new SPIFFSEditor(WLED_FS));//http_username,http_password));
|
||||||
#else
|
#else
|
||||||
@ -216,9 +216,7 @@ void initServer()
|
|||||||
#ifndef WLED_DISABLE_ALEXA
|
#ifndef WLED_DISABLE_ALEXA
|
||||||
if(espalexa.handleAlexaApiCall(request)) return;
|
if(espalexa.handleAlexaApiCall(request)) return;
|
||||||
#endif
|
#endif
|
||||||
#ifdef WLED_ENABLE_FS_SERVING
|
|
||||||
if(handleFileRead(request, request->url())) return;
|
if(handleFileRead(request, request->url())) return;
|
||||||
#endif
|
|
||||||
request->send(404, "text/plain", "Not Found");
|
request->send(404, "text/plain", "Not Found");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -236,9 +234,7 @@ void serveIndexOrWelcome(AsyncWebServerRequest *request)
|
|||||||
|
|
||||||
void serveIndex(AsyncWebServerRequest* request)
|
void serveIndex(AsyncWebServerRequest* request)
|
||||||
{
|
{
|
||||||
#ifdef WLED_ENABLE_FS_SERVING
|
|
||||||
if (handleFileRead(request, "/index.htm")) return;
|
if (handleFileRead(request, "/index.htm")) return;
|
||||||
#endif
|
|
||||||
|
|
||||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_index, PAGE_index_L);
|
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_index, PAGE_index_L);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user