Release of WLED v0.12.0
This commit is contained in:
parent
de6f32e486
commit
46d66dded8
10
CHANGELOG.md
10
CHANGELOG.md
@ -2,13 +2,19 @@
|
|||||||
|
|
||||||
### WLED release 0.12.0
|
### WLED release 0.12.0
|
||||||
|
|
||||||
|
#### Build 2104020
|
||||||
|
|
||||||
|
- Allow clearing button/IR/relay pin on platforms that don't support negative numbers
|
||||||
|
- Removed AUX pin
|
||||||
|
- Hid some easter eggs, only to be found at easter
|
||||||
|
|
||||||
|
### Development versions between 0.11.1 and 0.12.0 releases
|
||||||
|
|
||||||
#### Build 2103310
|
#### Build 2103310
|
||||||
|
|
||||||
- Version bump to 0.12.0 "Hikari"
|
- Version bump to 0.12.0 "Hikari"
|
||||||
- Fixed LED settings submission in iOS app
|
- Fixed LED settings submission in iOS app
|
||||||
|
|
||||||
### Development versions between 0.11.1 and 0.12.0 releases
|
|
||||||
|
|
||||||
#### Build 2103300
|
#### Build 2103300
|
||||||
|
|
||||||
- Version bump to 0.12.0-b5 "Hikari"
|
- Version bump to 0.12.0-b5 "Hikari"
|
||||||
|
@ -21,6 +21,7 @@ A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control
|
|||||||
- Segments to set different effects and colors to parts of the LEDs
|
- Segments to set different effects and colors to parts of the LEDs
|
||||||
- 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
|
||||||
|
- Up to 10 LED outputs per instance
|
||||||
- Support for RGBW strips
|
- Support for RGBW strips
|
||||||
- Up to 250 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.
|
||||||
- Presets can be used to automatically execute API calls
|
- Presets can be used to automatically execute API calls
|
||||||
|
@ -105,31 +105,4 @@ void handleIO()
|
|||||||
}
|
}
|
||||||
offMode = true;
|
offMode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//output
|
|
||||||
if (auxPin>=1 && (auxActive || auxActiveBefore))
|
|
||||||
{
|
|
||||||
if (!auxActiveBefore)
|
|
||||||
{
|
|
||||||
auxActiveBefore = true;
|
|
||||||
switch (auxTriggeredState)
|
|
||||||
{
|
|
||||||
case 0: pinMode(auxPin, INPUT); break;
|
|
||||||
case 1: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, HIGH); break;
|
|
||||||
case 2: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, LOW); break;
|
|
||||||
}
|
|
||||||
auxStartTime = millis();
|
|
||||||
}
|
|
||||||
if ((millis() - auxStartTime > auxTime*1000 && auxTime != 255) || !auxActive)
|
|
||||||
{
|
|
||||||
auxActive = false;
|
|
||||||
auxActiveBefore = false;
|
|
||||||
switch (auxDefaultState)
|
|
||||||
{
|
|
||||||
case 0: pinMode(auxPin, INPUT); break;
|
|
||||||
case 1: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, HIGH); break;
|
|
||||||
case 2: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, LOW); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -500,9 +500,6 @@ void serializeConfig() {
|
|||||||
//JsonObject hw_status = hw.createNestedObject("status");
|
//JsonObject hw_status = hw.createNestedObject("status");
|
||||||
//hw_status["pin"] = -1;
|
//hw_status["pin"] = -1;
|
||||||
|
|
||||||
JsonObject hw_aux = hw.createNestedObject("aux");
|
|
||||||
hw_aux["pin"] = auxPin;
|
|
||||||
|
|
||||||
JsonObject light = doc.createNestedObject(F("light"));
|
JsonObject light = doc.createNestedObject(F("light"));
|
||||||
light[F("scale-bri")] = briMultiplier;
|
light[F("scale-bri")] = briMultiplier;
|
||||||
light[F("pal-mode")] = strip.paletteBlend;
|
light[F("pal-mode")] = strip.paletteBlend;
|
||||||
|
@ -156,6 +156,7 @@ function loadBg(iUrl) {
|
|||||||
if (iUrl == "") {
|
if (iUrl == "") {
|
||||||
var today = new Date();
|
var today = new Date();
|
||||||
if (today.getMonth() == 11 && (today.getDate() > 23 && today.getDate() < 28)) img.src = "https://aircoookie.github.io/xmas.png";
|
if (today.getMonth() == 11 && (today.getDate() > 23 && today.getDate() < 28)) img.src = "https://aircoookie.github.io/xmas.png";
|
||||||
|
else if (today.getMonth() == 3 && (today.getDate() > 3 && today.getDate() < 6)) img.src = "https://aircoookie.github.io/easter.png";
|
||||||
}
|
}
|
||||||
img.addEventListener('load', (event) => {
|
img.addEventListener('load', (event) => {
|
||||||
var a = parseFloat(cfg.theme.alpha.bg);
|
var a = parseFloat(cfg.theme.alpha.bg);
|
||||||
|
@ -14,6 +14,9 @@
|
|||||||
{
|
{
|
||||||
window.open("/settings","_self");
|
window.open("/settings","_self");
|
||||||
}
|
}
|
||||||
|
function off(n){
|
||||||
|
d.getElementsByName(n)[0].value = -1;
|
||||||
|
}
|
||||||
function bLimits(b,p,m) {
|
function bLimits(b,p,m) {
|
||||||
maxB = b; maxM = m; maxPB = p;
|
maxB = b; maxM = m; maxPB = p;
|
||||||
}
|
}
|
||||||
@ -299,11 +302,11 @@
|
|||||||
<div id="ledwarning" style="color: orange; display: none;">
|
<div id="ledwarning" style="color: orange; display: none;">
|
||||||
⚠ You might run into stability or lag issues.<br>
|
⚠ You might run into stability or lag issues.<br>
|
||||||
Use less than <span id="wreason">800 LEDs per pin</span> for the best experience!<br>
|
Use less than <span id="wreason">800 LEDs per pin</span> for the best experience!<br>
|
||||||
</div><br>
|
</div>
|
||||||
Relay pin: <input type="number" min="-1" max="40" name="RL" onchange="UI()"> Active high <input type="checkbox" name="RM"><br>
|
Button pin: <input type="number" min="-1" max="40" name="BT" onchange="UI()"><span style="cursor: pointer;" onclick="off('BT')"> ×</span><br>
|
||||||
Button pin: <input type="number" min="-1" max="40" name="BT" onchange="UI()"><br>
|
IR pin: <input type="number" min="-1" max="40" name="IR" onchange="UI()"><span style="cursor: pointer;" onclick="off('IR')"> ×</span><br>
|
||||||
IR pin: <input type="number" min="-1" max="40" name="IR" onchange="UI()"><br>
|
Relay pin: <input type="number" min="-1" max="40" name="RL" onchange="UI()"><span style="cursor: pointer;" onclick="off('RL')"> ×</span><br>
|
||||||
AUX pin: <input type="number" min="-1" max="40" name="AX" onchange="UI()">
|
Active high <input type="checkbox" name="RM">
|
||||||
<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>
|
||||||
|
@ -18,6 +18,7 @@ button {
|
|||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.helpB {
|
.helpB {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
File diff suppressed because one or more lines are too long
1249
wled00/html_ui.h
1249
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -153,13 +153,6 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
|
|||||||
btnPin = -1;
|
btnPin = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hw_aux_pin = request->arg(F("AX")).toInt();
|
|
||||||
if (pinManager.allocatePin(hw_aux_pin,true)) {
|
|
||||||
auxPin = hw_aux_pin;
|
|
||||||
} else {
|
|
||||||
auxPin = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
strip.ablMilliampsMax = request->arg(F("MA")).toInt();
|
strip.ablMilliampsMax = request->arg(F("MA")).toInt();
|
||||||
strip.milliampsPerLed = request->arg(F("LA")).toInt();
|
strip.milliampsPerLed = request->arg(F("LA")).toInt();
|
||||||
|
|
||||||
@ -722,16 +715,6 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply)
|
|||||||
}
|
}
|
||||||
if (nightlightMode > NL_MODE_SUN) nightlightMode = NL_MODE_SUN;
|
if (nightlightMode > NL_MODE_SUN) nightlightMode = NL_MODE_SUN;
|
||||||
|
|
||||||
//toggle general purpose output
|
|
||||||
if (auxPin>=0) {
|
|
||||||
pos = req.indexOf(F("AX="));
|
|
||||||
if (pos > 0) {
|
|
||||||
auxTime = getNumVal(&req, pos);
|
|
||||||
auxActive = true;
|
|
||||||
if (auxTime == 0) auxActive = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pos = req.indexOf(F("TT="));
|
pos = req.indexOf(F("TT="));
|
||||||
if (pos > 0) transitionDelay = getNumVal(&req, pos);
|
if (pos > 0) transitionDelay = getNumVal(&req, pos);
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2103310
|
#define VERSION 2104020
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
@ -16,8 +16,8 @@
|
|||||||
// ESP8266-01 (blue) got too little storage space to work with WLED. 0.10.2 is the last release supporting this unit.
|
// ESP8266-01 (blue) got too little storage space to work with WLED. 0.10.2 is the last release supporting this unit.
|
||||||
|
|
||||||
// ESP8266-01 (black) has 1MB flash and can thus fit the whole program, although OTA update is not possible. Use 1M(128K SPIFFS).
|
// ESP8266-01 (black) has 1MB flash and can thus fit the whole program, although OTA update is not possible. Use 1M(128K SPIFFS).
|
||||||
// Uncomment some of the following lines to disable features to compile for ESP8266-01 (max flash size 434kB):
|
// Uncomment some of the following lines to disable features:
|
||||||
// Alternatively, with platformio pass your chosen flags to your custom build target in platformio.ini.override
|
// Alternatively, with platformio pass your chosen flags to your custom build target in platformio_override.ini
|
||||||
|
|
||||||
// You are required to disable over-the-air updates:
|
// You are required to disable over-the-air updates:
|
||||||
//#define WLED_DISABLE_OTA // saves 14kb
|
//#define WLED_DISABLE_OTA // saves 14kb
|
||||||
@ -481,19 +481,6 @@ WLED_GLOBAL unsigned long lastInterfaceUpdate _INIT(0);
|
|||||||
WLED_GLOBAL byte interfaceUpdateCallMode _INIT(NOTIFIER_CALL_MODE_INIT);
|
WLED_GLOBAL byte interfaceUpdateCallMode _INIT(NOTIFIER_CALL_MODE_INIT);
|
||||||
WLED_GLOBAL char mqttStatusTopic[40] _INIT(""); // this must be global because of async handlers
|
WLED_GLOBAL char mqttStatusTopic[40] _INIT(""); // this must be global because of async handlers
|
||||||
|
|
||||||
// auxiliary debug pin
|
|
||||||
#ifndef AUXPIN
|
|
||||||
WLED_GLOBAL int8_t auxPin _INIT(-1);
|
|
||||||
#else
|
|
||||||
WLED_GLOBAL int8_t auxPin _INIT(AUXPIN);
|
|
||||||
#endif
|
|
||||||
WLED_GLOBAL byte auxTime _INIT(0);
|
|
||||||
WLED_GLOBAL unsigned long auxStartTime _INIT(0);
|
|
||||||
WLED_GLOBAL bool auxActive _INIT(false);
|
|
||||||
WLED_GLOBAL bool auxActiveBefore _INIT(false);
|
|
||||||
WLED_GLOBAL byte auxDefaultState _INIT(0); // 0: input 1: high 2: low
|
|
||||||
WLED_GLOBAL byte auxTriggeredState _INIT(0); // 0: input 1: high 2: low
|
|
||||||
|
|
||||||
// alexa udp
|
// alexa udp
|
||||||
WLED_GLOBAL String escapedMac;
|
WLED_GLOBAL String escapedMac;
|
||||||
#ifndef WLED_DISABLE_ALEXA
|
#ifndef WLED_DISABLE_ALEXA
|
||||||
|
@ -339,7 +339,6 @@ void getSettingsJS(byte subPage, char* dest)
|
|||||||
sappend('c',SET_F("RM"),rlyMde);
|
sappend('c',SET_F("RM"),rlyMde);
|
||||||
sappend('v',SET_F("BT"),btnPin);
|
sappend('v',SET_F("BT"),btnPin);
|
||||||
sappend('v',SET_F("IR"),irPin);
|
sappend('v',SET_F("IR"),irPin);
|
||||||
sappend('v',SET_F("AX"),auxPin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subPage == 3)
|
if (subPage == 3)
|
||||||
|
Loading…
Reference in New Issue
Block a user