Remove FS defines

Increase boot preset max. to 250
Update changelog
Update readme
This commit is contained in:
cschwinne 2020-11-15 15:45:51 +01:00
parent 76f4c49e22
commit 595fd9377c
10 changed files with 1732 additions and 1715 deletions

View File

@ -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

View File

@ -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)

View File

@ -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;
} }
@ -1368,6 +1364,7 @@ function getLowestUnusedP()
{ {
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">&#xe390;</i>${(i>0)?"Save changes":"Save preset"}</button> <button class="btn btn-i btn-p" onclick="saveP(${i})"><i class="icons btn-icon">&#xe390;</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">&#xe037;</i>Delete preset</button>': ${(i>0)?'<button class="btn btn-i btn-p" onclick="delP('+i+')"><i class="icons btn-icon">&#xe037;</i>Delete preset</button>':

View File

@ -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>

View File

@ -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

View File

@ -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">

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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);