mirror of
https://github.com/wled/WLED.git
synced 2025-07-26 20:26:34 +00:00
Added JSON FX + palette lists
This commit is contained in:
parent
6171883758
commit
6e76fc0aa7
@ -889,6 +889,7 @@ uint16_t WS2812FX::mode_merry_christmas(void) {
|
|||||||
return running(RED, GREEN);
|
return running(RED, GREEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Alternating orange/purple pixels running.
|
* Alternating orange/purple pixels running.
|
||||||
*/
|
*/
|
||||||
@ -910,7 +911,11 @@ uint16_t WS2812FX::mode_running_random(void) {
|
|||||||
setPixelColor(SEGMENT.start, color_wheel(SEGMENT_RUNTIME.aux_param));
|
setPixelColor(SEGMENT.start, color_wheel(SEGMENT_RUNTIME.aux_param));
|
||||||
}
|
}
|
||||||
|
|
||||||
SEGMENT_RUNTIME.counter_mode_step = (SEGMENT_RUNTIME.counter_mode_step == 0) ? 1 : 0;
|
SEGMENT_RUNTIME.counter_mode_step++;
|
||||||
|
if (SEGMENT_RUNTIME.counter_mode_step > ((255-SEGMENT.intensity) >> 4))
|
||||||
|
{
|
||||||
|
SEGMENT_RUNTIME.counter_mode_step = 0;
|
||||||
|
}
|
||||||
return SPEED_FORMULA_L;
|
return SPEED_FORMULA_L;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -976,7 +981,6 @@ uint16_t WS2812FX::fireworks(uint32_t color) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return SPEED_FORMULA_L;
|
return SPEED_FORMULA_L;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1464,12 +1468,12 @@ uint16_t WS2812FX::mode_random_chase(void)
|
|||||||
setPixelColor(i, getPixelColor(i-1));
|
setPixelColor(i, getPixelColor(i-1));
|
||||||
}
|
}
|
||||||
uint32_t color = getPixelColor(SEGMENT.start + 1);
|
uint32_t color = getPixelColor(SEGMENT.start + 1);
|
||||||
int r = random8(6) != 0 ? (color >> 16 & 0xFF) : random8();
|
uint8_t r = random8(6) != 0 ? (color >> 16 & 0xFF) : random8();
|
||||||
int g = random8(6) != 0 ? (color >> 8 & 0xFF) : random8();
|
uint8_t g = random8(6) != 0 ? (color >> 8 & 0xFF) : random8();
|
||||||
int b = random8(6) != 0 ? (color & 0xFF) : random8();
|
uint8_t b = random8(6) != 0 ? (color & 0xFF) : random8();
|
||||||
setPixelColor(SEGMENT.start, r, g, b);
|
setPixelColor(SEGMENT.start, r, g, b);
|
||||||
|
|
||||||
return 10 + (uint16_t)(255 - SEGMENT.speed);
|
return SPEED_FORMULA_L;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct Oscillator {
|
typedef struct Oscillator {
|
||||||
@ -1731,11 +1735,7 @@ uint16_t WS2812FX::mode_colorwaves(void)
|
|||||||
uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536;
|
uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536;
|
||||||
bri8 += (255 - brightdepth);
|
bri8 += (255 - brightdepth);
|
||||||
|
|
||||||
uint8_t index = hue8;
|
CRGB newcolor = ColorFromPalette(currentPalette, hue8, bri8);
|
||||||
//index = triwave8( index);
|
|
||||||
index = scale8( index, 240);
|
|
||||||
|
|
||||||
CRGB newcolor = ColorFromPalette(currentPalette, index, bri8);
|
|
||||||
fastled_col = fastled_from_col(getPixelColor(i));
|
fastled_col = fastled_from_col(getPixelColor(i));
|
||||||
|
|
||||||
nblend(fastled_col, newcolor, 128);
|
nblend(fastled_col, newcolor, 128);
|
||||||
|
@ -494,4 +494,139 @@ class WS2812FX {
|
|||||||
segment_runtime _segment_runtimes[MAX_NUM_SEGMENTS]; // SRAM footprint: 17 bytes per element
|
segment_runtime _segment_runtimes[MAX_NUM_SEGMENTS]; // SRAM footprint: 17 bytes per element
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const char JSON_mode_names[] PROGMEM = R"=====({"effects":[
|
||||||
|
"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",
|
||||||
|
"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",
|
||||||
|
"Fireworks Rnd",
|
||||||
|
"Merry Christmas",
|
||||||
|
"Fire Flicker",
|
||||||
|
"Gradient",
|
||||||
|
"Loading",
|
||||||
|
"In Out",
|
||||||
|
"In In",
|
||||||
|
"Out Out",
|
||||||
|
"Out In",
|
||||||
|
"Circus",
|
||||||
|
"Halloween",
|
||||||
|
"Tri Chase",
|
||||||
|
"Tri Wipe",
|
||||||
|
"Tri Fade",
|
||||||
|
"Lightning",
|
||||||
|
"ICU",
|
||||||
|
"Multi Comet",
|
||||||
|
"Dual Scanner",
|
||||||
|
"Stream 2",
|
||||||
|
"Oscillate",
|
||||||
|
"Pride 2015",
|
||||||
|
"Juggle",
|
||||||
|
"Palette",
|
||||||
|
"Fire 2012",
|
||||||
|
"Colorwaves",
|
||||||
|
"BPM",
|
||||||
|
"Fill Noise",
|
||||||
|
"Noise 1",
|
||||||
|
"Noise 2",
|
||||||
|
"Noise 3",
|
||||||
|
"Noise 4",
|
||||||
|
"Colortwinkle",
|
||||||
|
"Lake",
|
||||||
|
"Meteor",
|
||||||
|
"Smooth Meteor",
|
||||||
|
"Railway",
|
||||||
|
"Ripple"
|
||||||
|
]})=====";
|
||||||
|
|
||||||
|
|
||||||
|
const char JSON_palette_names[] PROGMEM = R"=====({"palettes":[
|
||||||
|
"Default",
|
||||||
|
"Random Cycle",
|
||||||
|
"Primary Color",
|
||||||
|
"Based on Primary",
|
||||||
|
"Set Colors",
|
||||||
|
"Based on Set",
|
||||||
|
"Party",
|
||||||
|
"Cloud",
|
||||||
|
"Lava",
|
||||||
|
"Ocean",
|
||||||
|
"Forest",
|
||||||
|
"Rainbow",
|
||||||
|
"Rainbow Bands",
|
||||||
|
"Sunset",
|
||||||
|
"Rivendell",
|
||||||
|
"Breeze",
|
||||||
|
"Red & Blue",
|
||||||
|
"Yellowout",
|
||||||
|
"Analogous",
|
||||||
|
"Splash",
|
||||||
|
"Pastel",
|
||||||
|
"Sunset 2",
|
||||||
|
"Beech",
|
||||||
|
"Vintage",
|
||||||
|
"Departure",
|
||||||
|
"Landscape",
|
||||||
|
"Beach",
|
||||||
|
"Sherbet",
|
||||||
|
"Hult",
|
||||||
|
"Hult 64",
|
||||||
|
"Drywet",
|
||||||
|
"Jul",
|
||||||
|
"Grintage",
|
||||||
|
"Rewhi",
|
||||||
|
"Tertiary",
|
||||||
|
"Fire",
|
||||||
|
"Icefire",
|
||||||
|
"Cyane",
|
||||||
|
"Light Pink",
|
||||||
|
"Autumn",
|
||||||
|
"Magenta",
|
||||||
|
"Magred",
|
||||||
|
"Yelmag",
|
||||||
|
"Yelblu",
|
||||||
|
"Orange & Teal",
|
||||||
|
"Tiamat",
|
||||||
|
"April Night"
|
||||||
|
]})=====";
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
|
|
||||||
#define LED_SKIP_AMOUNT 1
|
#define LED_SKIP_AMOUNT 1
|
||||||
|
|
||||||
#define LED_SKIP_AMOUNT 1
|
|
||||||
|
|
||||||
void WS2812FX::init(bool supportWhite, uint16_t countPixels, bool skipFirst)
|
void WS2812FX::init(bool supportWhite, uint16_t countPixels, bool skipFirst)
|
||||||
{
|
{
|
||||||
if (supportWhite == _rgbwMode && countPixels == _length && _locked != NULL) return;
|
if (supportWhite == _rgbwMode && countPixels == _length && _locked != NULL) return;
|
||||||
|
@ -38,8 +38,10 @@
|
|||||||
var w=window.getComputedStyle(d.querySelector("html"));
|
var w=window.getComputedStyle(d.querySelector("html"));
|
||||||
UCol();
|
UCol();
|
||||||
CV(0);
|
CV(0);
|
||||||
setInterval('GIO()', 5000);
|
setInterval(GIO, 5000);
|
||||||
GIO();
|
GIO();
|
||||||
|
setTimeout(function(){fillfx(0);}, 500);
|
||||||
|
setTimeout(function(){fillfx(1);}, 750);
|
||||||
}
|
}
|
||||||
function GIO()
|
function GIO()
|
||||||
{
|
{
|
||||||
@ -356,6 +358,29 @@
|
|||||||
{
|
{
|
||||||
resp+="&PL=0";GIO();
|
resp+="&PL=0";GIO();
|
||||||
}
|
}
|
||||||
|
function fillfx(fp)
|
||||||
|
{
|
||||||
|
e="<option>Error loading list!</option>";
|
||||||
|
el = fp?Cf.FP:Cf.TX;
|
||||||
|
fetch(fp?'/json/palettes':'/json/effects')
|
||||||
|
.then(res => {
|
||||||
|
if (!res.ok) {
|
||||||
|
el.innerHTML=e;
|
||||||
|
}
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.then(json => {
|
||||||
|
var x="";
|
||||||
|
var l=fp?json.palettes:json.effects;
|
||||||
|
for (i in l) {
|
||||||
|
x += "<option value=\""+i+"\">"+l[i]+" ("+i+")</option>";
|
||||||
|
}
|
||||||
|
el.innerHTML=x;
|
||||||
|
})
|
||||||
|
.catch(function () {
|
||||||
|
el.innerHTML=e;
|
||||||
|
})
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
@ -597,85 +622,7 @@
|
|||||||
<svg id="fmf" onclick="SwFX(1)"><use xlink:href="#lnr-arrow-right-circle"></use></svg>
|
<svg id="fmf" onclick="SwFX(1)"><use xlink:href="#lnr-arrow-right-circle"></use></svg>
|
||||||
<svg id="fof" onclick="SwFX(99)"><use xlink:href="#lnr-rocket"></use></svg><br><br>
|
<svg id="fof" onclick="SwFX(99)"><use xlink:href="#lnr-rocket"></use></svg><br><br>
|
||||||
<select name="TX" onchange="GX()">
|
<select name="TX" onchange="GX()">
|
||||||
<option value="0" selected>Solid (0)</option>
|
<option>Loading...</option>
|
||||||
<option value="1">Blink (1)</option>
|
|
||||||
<option value="2">Breath (2)</option>
|
|
||||||
<option value="3">Wipe (3)</option>
|
|
||||||
<option value="4">Wipe Random (4)</option>
|
|
||||||
<option value="5">Color R (5)</option>
|
|
||||||
<option value="6">Sweep (6)</option>
|
|
||||||
<option value="7">Dynamic (7)</option>
|
|
||||||
<option value="8">Colorloop (8)</option>
|
|
||||||
<option value="9">Rainbow (9)</option>
|
|
||||||
<option value="10">Scan (10)</option>
|
|
||||||
<option value="11">Scan x2 (11)</option>
|
|
||||||
<option value="12">Fade (12)</option>
|
|
||||||
<option value="13">Chase (13)</option>
|
|
||||||
<option value="14">Chase Cl (14)</option>
|
|
||||||
<option value="15">Running (15)</option>
|
|
||||||
<option value="16">Twinkle (16)</option>
|
|
||||||
<option value="17">Twinkle R (17)</option>
|
|
||||||
<option value="18">Twinkle Fade (18)</option>
|
|
||||||
<option value="19">Twinkle RF (19)</option>
|
|
||||||
<option value="20">Sparkle (20)</option>
|
|
||||||
<option value="21">Sparkle Inv (21)</option>
|
|
||||||
<option value="22">Sparkle Inv+ (22)</option>
|
|
||||||
<option value="23">Strobe (23)</option>
|
|
||||||
<option value="24">Strobe Cl (24)</option>
|
|
||||||
<option value="25">Strobe + (25)</option>
|
|
||||||
<option value="26">Blink Cl (26)</option>
|
|
||||||
<option value="27">Android (27)</option>
|
|
||||||
<option value="28">Chase (28)</option>
|
|
||||||
<option value="29">Chase R (29)</option>
|
|
||||||
<option value="30">Chase Rainbow (30)</option>
|
|
||||||
<option value="31">Chase Flash (31)</option>
|
|
||||||
<option value="32">Chase RF (32)</option>
|
|
||||||
<option value="33">Chase Cl Inv (33)</option>
|
|
||||||
<option value="34">Colorful (34)</option>
|
|
||||||
<option value="35">Traffic Light (35)</option>
|
|
||||||
<option value="36">Sweep R(36)</option>
|
|
||||||
<option value="37">Running 2 (37)</option>
|
|
||||||
<option value="38">Red/Blue (38)</option>
|
|
||||||
<option value="39">Running R (39)</option>
|
|
||||||
<option value="40">Scanner (40)</option>
|
|
||||||
<option value="41">Lighthouse (41)</option>
|
|
||||||
<option value="42">Fireworks (42)</option>
|
|
||||||
<option value="43">Fireworks R (43)</option>
|
|
||||||
<option value="44">Christmas (44)</option>
|
|
||||||
<option value="45">Fire Flicker (45)</option>
|
|
||||||
<option value="46">Gradient (46)</option>
|
|
||||||
<option value="47">Loading (47)</option>
|
|
||||||
<option value="48">Wipe IO (48)</option>
|
|
||||||
<option value="49">Wipe II (49)</option>
|
|
||||||
<option value="50">Wipe OO (50)</option>
|
|
||||||
<option value="51">Wipe OI (51)</option>
|
|
||||||
<option value="52">Circus (52)</option>
|
|
||||||
<option value="53">Halloween (53)</option>
|
|
||||||
<option value="54">Tricolor Chase (54)</option>
|
|
||||||
<option value="55">Tricolor Wipe (55)</option>
|
|
||||||
<option value="56">Tricolor Fade (56)</option>
|
|
||||||
<option value="57">Lighting (57)</option>
|
|
||||||
<option value="58">ICU (58)</option>
|
|
||||||
<option value="59">Multi Comet (59)</option>
|
|
||||||
<option value="60">Scanner x2 (60)</option>
|
|
||||||
<option value="61">Random Chase (61)</option>
|
|
||||||
<option value="62">Oscillate (62)</option>
|
|
||||||
<option value="63">Pride 2015 (63)</option>
|
|
||||||
<option value="64">Juggle (64)</option>
|
|
||||||
<option value="65">Palette (65)</option>
|
|
||||||
<option value="66">Fire 2012 (66)</option>
|
|
||||||
<option value="67">Colorwaves (67)</option>
|
|
||||||
<option value="68">BPM (68)</option>
|
|
||||||
<option value="69">Fill Noise 8 (69)</option>
|
|
||||||
<option value="70">Noise 16 1 (70)</option>
|
|
||||||
<option value="71">Noise 16 2 (71)</option>
|
|
||||||
<option value="72">Noise 16 3 (72)</option>
|
|
||||||
<option value="73">Noise 16 4 (73)</option>
|
|
||||||
<option value="74">Colortwinkle (74)</option>
|
|
||||||
<option value="75">Lake (75)</option>
|
|
||||||
<option value="76">Meteor (76)</option>
|
|
||||||
<option value="77">Smooth Meteor (77)</option>
|
|
||||||
<option value="78">Railway (78)</option>
|
|
||||||
</select><br><br>
|
</select><br><br>
|
||||||
Set secondary color to
|
Set secondary color to
|
||||||
<button type="button" onclick="CS(0)">White</button>
|
<button type="button" onclick="CS(0)">White</button>
|
||||||
@ -687,53 +634,7 @@
|
|||||||
<div id="fpX">
|
<div id="fpX">
|
||||||
<br>FastLED Palette<br><br>
|
<br>FastLED Palette<br><br>
|
||||||
<select name="FP" onchange="GP()">
|
<select name="FP" onchange="GP()">
|
||||||
<option value="0" selected>Default</option>
|
<option>Loading...</option>
|
||||||
<option value="1">Random Cycle</option>
|
|
||||||
<option value="2">Primary Color Only</option>
|
|
||||||
<option value="3">Based on Primary</option>
|
|
||||||
<option value="4">Set Colors Only</option>
|
|
||||||
<option value="5">Based on Set Colors</option>
|
|
||||||
<option value="6">Party</option>
|
|
||||||
<option value="7">Cloud</option>
|
|
||||||
<option value="8">Lava</option>
|
|
||||||
<option value="9">Ocean</option>
|
|
||||||
<option value="10">Forest</option>
|
|
||||||
<option value="11">Rainbow</option>
|
|
||||||
<option value="12">Rainbow Stripe</option>
|
|
||||||
<option value="13">Sunset</option>
|
|
||||||
<option value="14">Rivendell</option>
|
|
||||||
<option value="15">Breeze</option>
|
|
||||||
<option value="16">Red & Blue</option>
|
|
||||||
<option value="17">Yellowout</option>
|
|
||||||
<option value="18">Analogous</option>
|
|
||||||
<option value="19">Splash</option>
|
|
||||||
<option value="20">Pastel</option>
|
|
||||||
<option value="21">Sunset2</option>
|
|
||||||
<option value="22">Beech</option>
|
|
||||||
<option value="23">Vintage</option>
|
|
||||||
<option value="24">Departure</option>
|
|
||||||
<option value="25">Landscape</option>
|
|
||||||
<option value="26">Beach</option>
|
|
||||||
<option value="27">Sherbet</option>
|
|
||||||
<option value="28">Hult</option>
|
|
||||||
<option value="29">Hult64</option>
|
|
||||||
<option value="30">Drywet</option>
|
|
||||||
<option value="31">Jul</option>
|
|
||||||
<option value="32">Grintage</option>
|
|
||||||
<option value="33">Rewhi</option>
|
|
||||||
<option value="34">Tertiary</option>
|
|
||||||
<option value="35">Fire</option>
|
|
||||||
<option value="36">Icefire</option>
|
|
||||||
<option value="37">Cyane</option>
|
|
||||||
<option value="38">Light Pink</option>
|
|
||||||
<option value="39">Autumn</option>
|
|
||||||
<option value="40">Magenta</option>
|
|
||||||
<option value="41">Magred</option>
|
|
||||||
<option value="42">Yelmag</option>
|
|
||||||
<option value="43">Yelblu</option>
|
|
||||||
<option value="44">Orange & Teal</option>
|
|
||||||
<option value="43">Tiamat</option>
|
|
||||||
<option value="44">April Night</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div id="slX" class="sl">
|
<div id="slX" class="sl">
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
100%{background-color:#333}
|
100%{background-color:#333}
|
||||||
}
|
}
|
||||||
.segment{
|
.segment{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height:145px;
|
height:145px;
|
||||||
max-width:250px;
|
max-width:250px;
|
||||||
}
|
}
|
||||||
@ -37,7 +37,7 @@
|
|||||||
width: 27px;
|
width: 27px;
|
||||||
height: 27px;
|
height: 27px;
|
||||||
float: left;
|
float: left;
|
||||||
border: solid;
|
border: 2px solid white;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
@ -49,7 +49,7 @@
|
|||||||
margin: 10px;
|
margin: 10px;
|
||||||
border-color: white;
|
border-color: white;
|
||||||
color: white;
|
color: white;
|
||||||
border: solid;
|
border: 2px solid white;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-family: helvetica;
|
font-family: helvetica;
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
@ -60,7 +60,7 @@
|
|||||||
.mode li a {
|
.mode li a {
|
||||||
color: white;
|
color: white;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
font-family: helvetica;
|
font-family: helvetica;
|
||||||
display:block;
|
display:block;
|
||||||
}
|
}
|
||||||
@ -216,14 +216,14 @@
|
|||||||
width:30%;
|
width:30%;
|
||||||
float:left;
|
float:left;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
border:solid;
|
border: 2px solid white;
|
||||||
border-color:white;
|
border-color:white;
|
||||||
margin: 1px;
|
margin: 1px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
border-radius: 29px;
|
border-radius: 29px;
|
||||||
list-style:none;
|
list-style:none;
|
||||||
border-radius:30px;
|
border-radius:30px;
|
||||||
}
|
}
|
||||||
li {
|
li {
|
||||||
box-shadow: rgba(255,255,255,0) 0 0 0px;
|
box-shadow: rgba(255,255,255,0) 0 0 0px;
|
||||||
@ -303,7 +303,7 @@
|
|||||||
<div class="cC" onclick="pC('#00ffc8');" style="background-color:#00ffc8;"> </div>
|
<div class="cC" onclick="pC('#00ffc8');" style="background-color:#00ffc8;"> </div>
|
||||||
<div class="cC" onclick="pC('#08ff00');" style="background-color:#08ff00;"> </div>
|
<div class="cC" onclick="pC('#08ff00');" style="background-color:#08ff00;"> </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row segment" style="height:245px;">
|
<div class="row segment" style="height:360px;">
|
||||||
<div style="height: 46px;">
|
<div style="height: 46px;">
|
||||||
<p style="text-align: right; margin-bottom: 5px;">Edit Presets</p>
|
<p style="text-align: right; margin-bottom: 5px;">Edit Presets</p>
|
||||||
<div class="oos" style="float:right;">
|
<div class="oos" style="float:right;">
|
||||||
@ -328,8 +328,8 @@
|
|||||||
<div class="cC" onclick="ps(15);">15</div>
|
<div class="cC" onclick="ps(15);">15</div>
|
||||||
<div class="cC" onclick="ps(16);">16</div>
|
<div class="cC" onclick="ps(16);">16</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row segment" style="height:50px;padding-top:100px; width:280px;">
|
<div class="row segment" style="height:50px; width:280px;">
|
||||||
<p style="text-align:right;margin-bottom:5px;padding-top:15px;">Cycle Mode</p>
|
<p style="text-align:right;margin-bottom:5px;">Cycle Mode</p>
|
||||||
<div class="oos" style="float:right;">
|
<div class="oos" style="float:right;">
|
||||||
<input class="oos-chk oos-chk-cy" id="myoos-cy" name="oos-cy" onclick="tC();" type="checkbox"> <label class="oos-label" for="myoos-cy"></label>
|
<input class="oos-chk oos-chk-cy" id="myoos-cy" name="oos-cy" onclick="tC();" type="checkbox"> <label class="oos-label" for="myoos-cy"></label>
|
||||||
</div>
|
</div>
|
||||||
@ -350,137 +350,14 @@
|
|||||||
<p id="CDurL" style="margin-bottom: -4px;">Color Transition</p><input id="cycts" max="65000" min="0" step="50" type="range" value="500">
|
<p id="CDurL" style="margin-bottom: -4px;">Color Transition</p><input id="cycts" max="65000" min="0" step="50" type="range" value="500">
|
||||||
</div>
|
</div>
|
||||||
<p>FX Mode</p>
|
<p>FX Mode</p>
|
||||||
<ul class="mode" style="margin-top:20px;">
|
<ul class="mode" id="fxl" style="margin-top:20px;">
|
||||||
<li onclick="X(0)">Solid</li>
|
Loading...
|
||||||
<li onclick="X(1)">Blink</li>
|
</ul>
|
||||||
<li onclick="X(2)">Breathe</li>
|
|
||||||
<li onclick="X(3)">Wipe</li>
|
|
||||||
<li onclick="X(4)">Wipe Random</li>
|
|
||||||
<li onclick="X(5)">Random Colors</li>
|
|
||||||
<li onclick="X(6)">Sweep</li>
|
|
||||||
<li onclick="X(7)">Dynamic</li>
|
|
||||||
<li onclick="X(8)">Colorloop</li>
|
|
||||||
<li onclick="X(9)">Rainbow</li>
|
|
||||||
<li onclick="X(10)">Scan</li>
|
|
||||||
<li onclick="X(11)">Double Scan</li>
|
|
||||||
<li onclick="X(12)">Fade</li>
|
|
||||||
<li onclick="X(13)">Chase</li>
|
|
||||||
<li onclick="X(14)">Chase Rainbow</li>
|
|
||||||
<li onclick="X(15)">Running</li>
|
|
||||||
<li onclick="X(16)">Twinkle</li>
|
|
||||||
<li onclick="X(17)">Twinkle Random</li>
|
|
||||||
<li onclick="X(18)">Twinkle Fade</li>
|
|
||||||
<li onclick="X(19)">Twinkle Random Fade</li>
|
|
||||||
<li onclick="X(20)">Sparkle</li>
|
|
||||||
<li onclick="X(21)">Dark Sparkle</li>
|
|
||||||
<li onclick="X(22)">Dark Sparkle+</li>
|
|
||||||
<li onclick="X(23)">Strobe</li>
|
|
||||||
<li onclick="X(24)">Strobe Rainbow</li>
|
|
||||||
<li onclick="X(25)">Double Strobe</li>
|
|
||||||
<li onclick="X(26)">Blink Rainbow</li>
|
|
||||||
<li onclick="X(27)">Android</li>
|
|
||||||
<li onclick="X(28)">Dark Chase</li>
|
|
||||||
<li onclick="X(29)">Dark Chase Random</li>
|
|
||||||
<li onclick="X(30)">Dark Chase Rainbow</li>
|
|
||||||
<li onclick="X(31)">Chase Flash</li>
|
|
||||||
<li onclick="X(32)">Dark Chase Random</li>
|
|
||||||
<li onclick="X(33)">Rainbow Runner</li>
|
|
||||||
<li onclick="X(34)">Colorful</li>
|
|
||||||
<li onclick="X(35)">Traffic Light</li>
|
|
||||||
<li onclick="X(36)">Sweep Random</li>
|
|
||||||
<li onclick="X(37)">Running 2</li>
|
|
||||||
<li onclick="X(38)">Red & Blue</li>
|
|
||||||
<li onclick="X(39)">Running 2 Random</li>
|
|
||||||
<li onclick="X(40)">Scanner</li>
|
|
||||||
<li onclick="X(41)">Lighthouse</li>
|
|
||||||
<li onclick="X(42)">Fireworks</li>
|
|
||||||
<li onclick="X(43)">Fireworks Random</li>
|
|
||||||
<li onclick="X(44)">Merry Christmas</li>
|
|
||||||
<li onclick="X(45)">Fire Flicker</li>
|
|
||||||
<li onclick="X(46)">Gradient</li>
|
|
||||||
<li onclick="X(47)">Loading</li>
|
|
||||||
<li onclick="X(48)">In Out</li>
|
|
||||||
<li onclick="X(49)">In In</li>
|
|
||||||
<li onclick="X(50)">Out Out</li>
|
|
||||||
<li onclick="X(51)">Out In</li>
|
|
||||||
<li onclick="X(52)">Circus</li>
|
|
||||||
<li onclick="X(53)">Halloween</li>
|
|
||||||
<li onclick="X(54)">Tri Chase</li>
|
|
||||||
<li onclick="X(55)">Tri Wipe</li>
|
|
||||||
<li onclick="X(56)">Tri Fade</li>
|
|
||||||
<li onclick="X(57)">Lightning</li>
|
|
||||||
<li onclick="X(58)">ICU</li>
|
|
||||||
<li onclick="X(59)">Multi Comet</li>
|
|
||||||
<li onclick="X(60)">Dual Scanner</li>
|
|
||||||
<li onclick="X(61)">Random Chase</li>
|
|
||||||
<li onclick="X(62)">Oscillate</li>
|
|
||||||
<li onclick="X(63)">Pride 2015</li>
|
|
||||||
<li onclick="X(64)">Juggle</li>
|
|
||||||
<li onclick="X(65)">Palette</li>
|
|
||||||
<li onclick="X(66)">Fire 2012</li>
|
|
||||||
<li onclick="X(67)">Colorwaves</li>
|
|
||||||
<li onclick="X(68)">BPM</li>
|
|
||||||
<li onclick="X(69)">Fill Noise 8</li>
|
|
||||||
<li onclick="X(70)">Noise 16 1</li>
|
|
||||||
<li onclick="X(71)">Noise 16 2</li>
|
|
||||||
<li onclick="X(72)">Noise 16 3</li>
|
|
||||||
<li onclick="X(73)">Noise 16 4</li>
|
|
||||||
<li onclick="X(74)">Colortwinkle</li>
|
|
||||||
<li onclick="X(75)">Lake</li>
|
|
||||||
<li onclick="X(76)">Meteor</li>
|
|
||||||
<li onclick="X(77)">Smooth Meteor</li>
|
|
||||||
<li onclick="X(78)">Railway</li></ul>
|
|
||||||
<p style="margin-bottom: -4px;">FX Speed</p><input id="sxs" max="255" min="0" type="range" value="128">
|
<p style="margin-bottom: -4px;">FX Speed</p><input id="sxs" max="255" min="0" type="range" value="128">
|
||||||
<p style="margin-bottom: -4px;">FX Intensity</p><input id="ixs" max="255" min="0" type="range" value="128">
|
<p style="margin-bottom: -4px;">FX Intensity</p><input id="ixs" max="255" min="0" type="range" value="128">
|
||||||
<p>FastLED Palette</p>
|
<p>FastLED Palette</p>
|
||||||
<ul class="mode">
|
<ul class="mode" id="fpl">
|
||||||
<li onclick="P(0)">Default</li>
|
Loading...
|
||||||
<li onclick="P(1)">Random Cycle</li>
|
|
||||||
<li onclick="P(2)">Primary Color Only</li>
|
|
||||||
<li onclick="P(3)">Based on Primary</li>
|
|
||||||
<li onclick="P(4)">Set Colors Only</li>
|
|
||||||
<li onclick="P(5)">Based on Set Colors</li>
|
|
||||||
<li onclick="P(6)">Party</li>
|
|
||||||
<li onclick="P(7)">Cloud</li>
|
|
||||||
<li onclick="P(8)">Lava</li>
|
|
||||||
<li onclick="P(9)">Ocean</li>
|
|
||||||
<li onclick="P(10)">Forest</li>
|
|
||||||
<li onclick="P(11)">Rainbow</li>
|
|
||||||
<li onclick="P(12)">Rainbow Stripe</li>
|
|
||||||
<li onclick="P(13)">Sunset</li>
|
|
||||||
<li onclick="P(14)">Rivendell</li>
|
|
||||||
<li onclick="P(15)">Breeze</li>
|
|
||||||
<li onclick="P(16)">Red & Blue</li>
|
|
||||||
<li onclick="P(17)">Yellowout</li>
|
|
||||||
<li onclick="P(18)">Analogous</li>
|
|
||||||
<li onclick="P(19)">Splash</li>
|
|
||||||
<li onclick="P(20)">Pastel</li>
|
|
||||||
<li onclick="P(21)">Sunset2</li>
|
|
||||||
<li onclick="P(22)">Beech</li>
|
|
||||||
<li onclick="P(23)">Vintage</li>
|
|
||||||
<li onclick="P(24)">Departure</li>
|
|
||||||
<li onclick="P(25)">Landscape</li>
|
|
||||||
<li onclick="P(26)">Beach</li>
|
|
||||||
<li onclick="P(27)">Sherbet</li>
|
|
||||||
<li onclick="P(28)">Hult</li>
|
|
||||||
<li onclick="P(29)">Hult64</li>
|
|
||||||
<li onclick="P(30)">Drywet</li>
|
|
||||||
<li onclick="P(31)">Jul</li>
|
|
||||||
<li onclick="P(32)">Grintage</li>
|
|
||||||
<li onclick="P(33)">Rewhi</li>
|
|
||||||
<li onclick="P(34)">Tertiary</li>
|
|
||||||
<li onclick="P(35)">Fire</li>
|
|
||||||
<li onclick="P(36)">Icefire</li>
|
|
||||||
<li onclick="P(37)">Cyane</li>
|
|
||||||
<li onclick="P(38)">Light Pink</li>
|
|
||||||
<li onclick="P(39)">Autumn</li>
|
|
||||||
<li onclick="P(40)">Magenta</li>
|
|
||||||
<li onclick="P(41)">Magred</li>
|
|
||||||
<li onclick="P(42)">Yelmag</li>
|
|
||||||
<li onclick="P(43)">Yelblu</li>
|
|
||||||
<li onclick="P(44)">Orange & Teal</li>
|
|
||||||
<li onclick="P(45)">Tiamat</li>
|
|
||||||
<li onclick="P(46)">April Night</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<iframe id="stf" onload="feedback();" style="display:none;"></iframe>
|
<iframe id="stf" onload="feedback();" style="display:none;"></iframe>
|
||||||
</main>
|
</main>
|
||||||
@ -502,7 +379,7 @@ function feedback(){
|
|||||||
var e = d.body;
|
var e = d.body;
|
||||||
e.classList.remove("feedbackanim");
|
e.classList.remove("feedbackanim");
|
||||||
void e.offsetWidth;
|
void e.offsetWidth;
|
||||||
if(!fs)e.classList.add("feedbackanim");
|
e.classList.add("feedbackanim");
|
||||||
fs=false;
|
fs=false;
|
||||||
}
|
}
|
||||||
//Speed slider
|
//Speed slider
|
||||||
@ -585,6 +462,28 @@ if (d.getElementById('myoos-n').checked)
|
|||||||
EC('win&SN=0');
|
EC('win&SN=0');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function fillfx(fp){
|
||||||
|
e="Error loading list!";
|
||||||
|
el = d.getElementById(fp?'fpl':'fxl');
|
||||||
|
fetch(fp?'/json/palettes':'http://10.10.1.52/json/effects')
|
||||||
|
.then(res => {
|
||||||
|
if (!res.ok) {
|
||||||
|
el.innerHTML=e;
|
||||||
|
}
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.then(json => {
|
||||||
|
var x="";
|
||||||
|
var l=fp?json.palettes:json.effects;
|
||||||
|
for (i in l) {
|
||||||
|
x += "<li onclick=\""+(fp?"P":"X")+"("+i+")\">"+l[i]+"</li>";
|
||||||
|
}
|
||||||
|
el.innerHTML=x;
|
||||||
|
})
|
||||||
|
.catch(function () {
|
||||||
|
el.innerHTML=e;
|
||||||
|
})
|
||||||
|
}
|
||||||
function ms2mins(millis) {
|
function ms2mins(millis) {
|
||||||
var minutes = Math.floor(millis / 60000);
|
var minutes = Math.floor(millis / 60000);
|
||||||
var seconds = ((millis % 60000) / 1000).toFixed(0);
|
var seconds = ((millis % 60000) / 1000).toFixed(0);
|
||||||
@ -614,6 +513,8 @@ return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
|
|||||||
}
|
}
|
||||||
if(recv) EC(curl);
|
if(recv) EC(curl);
|
||||||
});
|
});
|
||||||
|
setTimeout(function(){fillfx(0);}, 500);
|
||||||
|
setTimeout(function(){fillfx(1);}, 750);
|
||||||
d.getElementById("cv").style.opacity=0;
|
d.getElementById("cv").style.opacity=0;
|
||||||
}
|
}
|
||||||
function GIO()
|
function GIO()
|
||||||
@ -642,6 +543,7 @@ function GIO()
|
|||||||
d.getElementsByClassName("desc")[0].innerHTML = this.responseXML.getElementsByTagName('ds')[0].innerHTML;
|
d.getElementsByClassName("desc")[0].innerHTML = this.responseXML.getElementsByTagName('ds')[0].innerHTML;
|
||||||
recv =1;
|
recv =1;
|
||||||
uB();
|
uB();
|
||||||
|
setTimeout(fillfx, 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
request.open("GET", "win" +nocache, true);
|
request.open("GET", "win" +nocache, true);
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
2462
wled00/html_mobile.h
2462
wled00/html_mobile.h
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -3,19 +3,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//common CSS of settings pages
|
//common CSS of settings pages
|
||||||
const char PAGE_settingsCss[] PROGMEM = R"=====(
|
const char PAGE_settingsCss[] PROGMEM = R"=====(body{font-family:var(--cFn),sans-serif;text-align:center;background:var(--cCol);color:var(--tCol);line-height:200%;margin:0;background-attachment:fixed}hr{border-color:var(--dCol);filter:drop-shadow(-5px -5px 5px var(--sCol))}button{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),sans-serif;border:.3ch solid var(--bCol);display:inline-block;filter:drop-shadow(-5px -5px 5px var(--sCol));font-size:20px;margin:8px;margin-top:12px}.helpB{text-align:left;position:absolute;width:60px}input{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),sans-serif;border:.5ch solid var(--bCol);filter:drop-shadow(-5px -5px 5px var(--sCol))}input[type=number]{width:4em}select{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),sans-serif;border:0.5ch solid var(--bCol);filter:drop-shadow( -5px -5px 5px var(--sCol) );}td{padding:2px;}</style>)=====";
|
||||||
body{font-family:var(--cFn),sans-serif;text-align:center;background:var(--cCol);color:var(--tCol);line-height:200%;margin:0;background-attachment:fixed}hr{border-color:var(--dCol);filter:drop-shadow(-5px -5px 5px var(--sCol))}button{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),sans-serif;border:.3ch solid var(--bCol);display:inline-block;filter:drop-shadow(-5px -5px 5px var(--sCol));font-size:20px;margin:8px;margin-top:12px}.helpB{text-align:left;position:absolute;width:60px}input{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),sans-serif;border:.5ch solid var(--bCol);filter:drop-shadow(-5px -5px 5px var(--sCol))}input[type=number]{width:4em}select{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),sans-serif;border:0.5ch solid var(--bCol);filter:drop-shadow( -5px -5px 5px var(--sCol) );}td{padding:2px;}</style>
|
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//settings menu
|
//settings menu
|
||||||
const char PAGE_settings0[] PROGMEM = R"=====(
|
const char PAGE_settings0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
<html><head><title>WLED Settings</title>)=====";
|
||||||
<html><head><title>WLED Settings</title>
|
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings1[] PROGMEM = R"=====(
|
const char PAGE_settings1[] PROGMEM = R"=====(body{text-align:center;background:var(--cCol);height:100%;margin:0;background-attachment:fixed}html{--h:11.55vh}button{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),Helvetica,sans-serif;border:.3ch solid var(--bCol);display:inline-block;filter:drop-shadow(-5px -5px 5px var(--sCol));font-size:8vmin;height:var(--h);width:95%;margin-top:2.4vh}</style>
|
||||||
body{text-align:center;background:var(--cCol);height:100%;margin:0;background-attachment:fixed}html{--h:11.55vh}button{background:var(--bCol);color:var(--tCol);font-family:var(--cFn),Helvetica,sans-serif;border:.3ch solid var(--bCol);display:inline-block;filter:drop-shadow(-5px -5px 5px var(--sCol));font-size:8vmin;height:var(--h);width:95%;margin-top:2.4vh}</style>
|
|
||||||
<script>function BB(){if(window.frameElement){document.getElementById("b").style.display="none";document.documentElement.style.setProperty("--h","13.86vh")}};</script>
|
<script>function BB(){if(window.frameElement){document.getElementById("b").style.display="none";document.documentElement.style.setProperty("--h","13.86vh")}};</script>
|
||||||
</head>
|
</head>
|
||||||
<body onload=BB()>
|
<body onload=BB()>
|
||||||
@ -27,19 +22,15 @@ body{text-align:center;background:var(--cCol);height:100%;margin:0;background-at
|
|||||||
<form action=/settings/time><button type=submit>Time & Macros</button></form>
|
<form action=/settings/time><button type=submit>Time & Macros</button></form>
|
||||||
<form action=/settings/sec><button type=submit>Security & Updates</button></form>
|
<form action=/settings/sec><button type=submit>Security & Updates</button></form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//wifi settings
|
//wifi settings
|
||||||
const char PAGE_settings_wifi0[] PROGMEM = R"=====(
|
const char PAGE_settings_wifi0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
|
||||||
<html><head><meta name="viewport" content="width=500">
|
<html><head><meta name="viewport" content="width=500">
|
||||||
<title>WiFi Settings</title><script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#wifi-settings");}function B(){window.history.back();}function GetV(){var d = document;
|
<title>WiFi Settings</title><script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#wifi-settings");}function B(){window.history.back();}function GetV(){var d = document;)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings_wifi1[] PROGMEM = R"=====(
|
const char PAGE_settings_wifi1[] PROGMEM = R"=====(</head>
|
||||||
</head>
|
|
||||||
<body onload="GetV()">
|
<body onload="GetV()">
|
||||||
<form id="form_s" name="Sf" method="post">
|
<form id="form_s" name="Sf" method="post">
|
||||||
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
||||||
@ -76,13 +67,11 @@ AP IP: <span class="sip"> Not active </span><hr>
|
|||||||
<button type="button" onclick="B()">Back</button><button type="submit">Save & Reboot</button>
|
<button type="button" onclick="B()">Back</button><button type="submit">Save & Reboot</button>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//LED settings
|
//LED settings
|
||||||
const char PAGE_settings_leds0[] PROGMEM = R"=====(
|
const char PAGE_settings_leds0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
|
||||||
<html><head><meta name="viewport" content="width=500">
|
<html><head><meta name="viewport" content="width=500">
|
||||||
<title>LED Settings</title><script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#led-settings");}function B(){window.history.back();}function S(){GetV();UI();}function UI(){
|
<title>LED Settings</title><script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#led-settings");}function B(){window.history.back();}function S(){GetV();UI();}function UI(){
|
||||||
var myC=document.querySelectorAll('.wc'),l=myC.length;
|
var myC=document.querySelectorAll('.wc'),l=myC.length;
|
||||||
@ -91,11 +80,9 @@ var val=Math.ceil((100+document.Sf.LC.value*55)/500)/2;
|
|||||||
val=(val>5)?Math.ceil(val):val;var s="";
|
val=(val>5)?Math.ceil(val):val;var s="";
|
||||||
if (val<1.1){s="ESP 5V pin with 1A USB supply";}else{s="External 5V ";s+=val;s+="A supply connected to LEDs";}
|
if (val<1.1){s="ESP 5V pin with 1A USB supply";}else{s="External 5V ";s+=val;s+="A supply connected to LEDs";}
|
||||||
document.getElementById('psu').innerHTML=s;document.getElementById('ps2').innerHTML=val+"A = "+val*1000;
|
document.getElementById('psu').innerHTML=s;document.getElementById('ps2').innerHTML=val+"A = "+val*1000;
|
||||||
}function GetV(){var d = document;
|
}function GetV(){var d = document;)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings_leds1[] PROGMEM = R"=====(
|
const char PAGE_settings_leds1[] PROGMEM = R"=====(</head>
|
||||||
</head>
|
|
||||||
<body onload="S()">
|
<body onload="S()">
|
||||||
<form id="form_s" name="Sf" method="post">
|
<form id="form_s" name="Sf" method="post">
|
||||||
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
||||||
@ -164,20 +151,16 @@ Skip first LED: <input type="checkbox" name="SL"><hr>
|
|||||||
<button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
<button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//User Interface settings
|
//User Interface settings
|
||||||
const char PAGE_settings_ui0[] PROGMEM = R"=====(
|
const char PAGE_settings_ui0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
|
||||||
<html><head><meta name="viewport" content="width=500">
|
<html><head><meta name="viewport" content="width=500">
|
||||||
<title>UI Settings</title><script>
|
<title>UI Settings</title><script>
|
||||||
function gId(s){return document.getElementById(s);}function S(){GetV();Ct();}function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#user-interface-settings");}function B(){window.history.back();}function Ct(){if (gId("co").selected){gId("cth").style.display="block";}else{gId("cth").style.display="none";}}function GetV(){var d = document;
|
function gId(s){return document.getElementById(s);}function S(){GetV();Ct();}function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#user-interface-settings");}function B(){window.history.back();}function Ct(){if (gId("co").selected){gId("cth").style.display="block";}else{gId("cth").style.display="none";}}function GetV(){var d = document;)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings_ui1[] PROGMEM = R"=====(
|
const char PAGE_settings_ui1[] PROGMEM = R"=====(</head>
|
||||||
</head>
|
|
||||||
<body onload="S()">
|
<body onload="S()">
|
||||||
<form id="form_s" name="Sf" method="post">
|
<form id="form_s" name="Sf" method="post">
|
||||||
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
||||||
@ -201,7 +184,7 @@ Color Theme:
|
|||||||
<option value="4">Electric</option>
|
<option value="4">Electric</option>
|
||||||
<option value="5">Mint</option>
|
<option value="5">Mint</option>
|
||||||
<option value="6">Amber</option>
|
<option value="6">Amber</option>
|
||||||
<option value="7">Club</option>
|
<option value="7">Dark</option>
|
||||||
<option value="8">Air</option>
|
<option value="8">Air</option>
|
||||||
<option value="9">Nixie</option>
|
<option value="9">Nixie</option>
|
||||||
<option value="10">Terminal</option>
|
<option value="10">Terminal</option>
|
||||||
@ -224,19 +207,15 @@ Make sure the font you use is installed on your system!<br>
|
|||||||
<hr><button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
<hr><button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//sync settings
|
//sync settings
|
||||||
const char PAGE_settings_sync0[] PROGMEM = R"=====(
|
const char PAGE_settings_sync0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
|
||||||
<html><head><meta name="viewport" content="width=500"><title>Sync Settings</title>
|
<html><head><meta name="viewport" content="width=500"><title>Sync Settings</title>
|
||||||
<script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#sync-settings");}function B(){window.open("/settings","_self");}function GetV(){var d = document;
|
<script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#sync-settings");}function B(){window.open("/settings","_self");}function GetV(){var d = document;)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings_sync1[] PROGMEM = R"=====(
|
const char PAGE_settings_sync1[] PROGMEM = R"=====(</head>
|
||||||
</head>
|
|
||||||
<body onload="GetV()">
|
<body onload="GetV()">
|
||||||
<form id="form_s" name="Sf" method="post">
|
<form id="form_s" name="Sf" method="post">
|
||||||
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
||||||
@ -295,22 +274,18 @@ Hue status: <span class="hms"> Internal ESP Error! </span><hr>
|
|||||||
<button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
<button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//time and macro settings
|
//time and macro settings
|
||||||
const char PAGE_settings_time0[] PROGMEM = R"=====(
|
const char PAGE_settings_time0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
|
||||||
<html><head><meta name="viewport" content="width=500"><title>Time Settings</title>
|
<html><head><meta name="viewport" content="width=500"><title>Time Settings</title>
|
||||||
<script>var d=document;function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#time-settings");}function B(){window.open("/settings","_self");}function S(){BTa();GetV();Cs();FC();}function gId(s){return d.getElementById(s);}function Cs(){gId("cac").style.display="none";gId("coc").style.display="block";gId("ccc").style.display="none";if (gId("ca").selected){gId("cac").style.display="block";}if (gId("cc").selected){gId("coc").style.display="none";gId("ccc").style.display="block";}if (gId("cn").selected){gId("coc").style.display="none";}}
|
<script>var d=document;function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#time-settings");}function B(){window.open("/settings","_self");}function S(){BTa();GetV();Cs();FC();}function gId(s){return d.getElementById(s);}function Cs(){gId("cac").style.display="none";gId("coc").style.display="block";gId("ccc").style.display="none";if (gId("ca").selected){gId("cac").style.display="block";}if (gId("cc").selected){gId("coc").style.display="none";gId("ccc").style.display="block";}if (gId("cn").selected){gId("coc").style.display="none";}}
|
||||||
function BTa(){var ih="<tr><th>Active</th><th>Hour</th><th>Minute</th><th>Macro</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th></tr>";for (i=0;i<8;i++){ih+="<tr><td><input name=\"W"+i+"\" id=\"W"+i+"\" type=\"number\" style=\"display:none\"><input id=\"W"+i+"0\" type=\"checkbox\"></td><td><input name=\"H"+i+"\" type=\"number\" min=\"0\" max=\"24\"></td><td><input name=\"N"+i+"\" type=\"number\" min=\"0\" max=\"59\"></td><td><input name=\"T"+i+"\" type=\"number\" min=\"0\" max=\"16\"></td>";for (j=1;j<8;j++) ih+="<td><input id=\"W"+i+j+"\" type=\"checkbox\"></td>";}gId("TMT").innerHTML=ih;}
|
function BTa(){var ih="<tr><th>Active</th><th>Hour</th><th>Minute</th><th>Macro</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th></tr>";for (i=0;i<8;i++){ih+="<tr><td><input name=\"W"+i+"\" id=\"W"+i+"\" type=\"number\" style=\"display:none\"><input id=\"W"+i+"0\" type=\"checkbox\"></td><td><input name=\"H"+i+"\" type=\"number\" min=\"0\" max=\"24\"></td><td><input name=\"N"+i+"\" type=\"number\" min=\"0\" max=\"59\"></td><td><input name=\"T"+i+"\" type=\"number\" min=\"0\" max=\"16\"></td>";for (j=1;j<8;j++) ih+="<td><input id=\"W"+i+j+"\" type=\"checkbox\"></td>";}gId("TMT").innerHTML=ih;}
|
||||||
function FC(){for(j=0;j<8;j++){for(i=0;i<8;i++)gId("W"+i+j).checked=gId("W"+i).value>>j&1;}}
|
function FC(){for(j=0;j<8;j++){for(i=0;i<8;i++)gId("W"+i+j).checked=gId("W"+i).value>>j&1;}}
|
||||||
function Wd(){a=[0,0,0,0,0,0,0,0];for(i=0;i<8;i++){m=1;for(j=0;j<8;j++){a[i]+=gId("W"+i+j).checked*m;m*=2;}gId("W"+i).value=a[i];}}function GetV(){
|
function Wd(){a=[0,0,0,0,0,0,0,0];for(i=0;i<8;i++){m=1;for(j=0;j<8;j++){a[i]+=gId("W"+i+j).checked*m;m*=2;}gId("W"+i).value=a[i];}}function GetV(){)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings_time1[] PROGMEM = R"=====(
|
const char PAGE_settings_time1[] PROGMEM = R"=====(</head>
|
||||||
</head>
|
|
||||||
<body onload="S()">
|
<body onload="S()">
|
||||||
<form id="form_s" name="Sf" method="post" onsubmit="Wd()">
|
<form id="form_s" name="Sf" method="post" onsubmit="Wd()">
|
||||||
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
||||||
@ -391,20 +366,16 @@ Time-Controlled Macros:<br>
|
|||||||
<button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
<button type="button" onclick="B()">Back</button><button type="submit">Save</button>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
|
|
||||||
//security settings and about
|
//security settings and about
|
||||||
const char PAGE_settings_sec0[] PROGMEM = R"=====(
|
const char PAGE_settings_sec0[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<!DOCTYPE html>
|
|
||||||
<html><head><meta name="viewport" content="width=500">
|
<html><head><meta name="viewport" content="width=500">
|
||||||
<title>Misc Settings</title>
|
<title>Misc Settings</title>
|
||||||
<script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#security-settings");}function B(){window.open("/settings","_self");}function U(){window.open("/update","_self");}function GetV(){var d = document;
|
<script>function H(){window.open("https://github.com/Aircoookie/WLED/wiki/Settings#security-settings");}function B(){window.open("/settings","_self");}function U(){window.open("/update","_self");}function GetV(){var d = document;)=====";
|
||||||
)=====";
|
|
||||||
|
|
||||||
const char PAGE_settings_sec1[] PROGMEM = R"=====(
|
const char PAGE_settings_sec1[] PROGMEM = R"=====(</head>
|
||||||
</head>
|
|
||||||
<body onload="GetV()">
|
<body onload="GetV()">
|
||||||
<form id="form_s" name="Sf" method="post">
|
<form id="form_s" name="Sf" method="post">
|
||||||
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
<div class="helpB"><button type="button" onclick="H()">?</button></div>
|
||||||
@ -436,5 +407,4 @@ Server message: <span class="msg"> Response error! </span><hr>
|
|||||||
<button type="button" onclick="B()">Back</button><button type="submit">Save & Reboot</button>
|
<button type="button" onclick="B()">Back</button><button type="submit">Save & Reboot</button>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>)=====";
|
||||||
)=====";
|
|
||||||
|
@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//version code in format yymmddb (b = daily build)
|
//version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 1902092
|
#define VERSION 1902101
|
||||||
char versionString[] = "0.8.3-dev";
|
char versionString[] = "0.8.3-dev";
|
||||||
|
|
||||||
|
|
||||||
|
@ -372,12 +372,12 @@ void getThemeColors(char o[][9])
|
|||||||
// accent color (aCol) background (bCol) panel (cCol) controls (dCol) shadows (sCol) text (tCol)
|
// accent color (aCol) background (bCol) panel (cCol) controls (dCol) shadows (sCol) text (tCol)
|
||||||
default: strcpy(o[0], "D9B310"); strcpy(o[1], "0B3C5D"); strcpy(o[2], "1D2731"); strcpy(o[3], "328CC1"); strcpy(o[4], "000"); strcpy(o[5], "328CC1"); break; //night
|
default: strcpy(o[0], "D9B310"); strcpy(o[1], "0B3C5D"); strcpy(o[2], "1D2731"); strcpy(o[3], "328CC1"); strcpy(o[4], "000"); strcpy(o[5], "328CC1"); break; //night
|
||||||
case 1: strcpy(o[0], "eee"); strcpy(o[1], "ddd"); strcpy(o[2], "b9b9b9"); strcpy(o[3], "049"); strcpy(o[4], "777"); strcpy(o[5], "049"); break; //modern
|
case 1: strcpy(o[0], "eee"); strcpy(o[1], "ddd"); strcpy(o[2], "b9b9b9"); strcpy(o[3], "049"); strcpy(o[4], "777"); strcpy(o[5], "049"); break; //modern
|
||||||
case 2: strcpy(o[0], "abc"); strcpy(o[1], "fff"); strcpy(o[2], "ddd"); strcpy(o[3], "000"); strcpy(o[4], "0004"); strcpy(o[5], "000"); break; //bright
|
case 2: strcpy(o[0], "abb"); strcpy(o[1], "fff"); strcpy(o[2], "ddd"); strcpy(o[3], "000"); strcpy(o[4], "0004"); strcpy(o[5], "000"); break; //bright
|
||||||
case 3: strcpy(o[0], "c09f80"); strcpy(o[1], "d7cec7"); strcpy(o[2], "76323f"); strcpy(o[3], "888"); strcpy(o[4], "3334"); strcpy(o[5], "888"); break; //wine
|
case 3: strcpy(o[0], "c09f80"); strcpy(o[1], "d7cec7"); strcpy(o[2], "76323f"); strcpy(o[3], "888"); strcpy(o[4], "3334"); strcpy(o[5], "888"); break; //wine
|
||||||
case 4: strcpy(o[0], "3cc47c"); strcpy(o[1], "828081"); strcpy(o[2], "d9a803"); strcpy(o[3], "1e392a"); strcpy(o[4], "000a"); strcpy(o[5], "1e392a"); break; //electric
|
case 4: strcpy(o[0], "3cc47c"); strcpy(o[1], "828081"); strcpy(o[2], "d9a803"); strcpy(o[3], "1e392a"); strcpy(o[4], "000a"); strcpy(o[5], "1e392a"); break; //electric
|
||||||
case 5: strcpy(o[0], "57bc90"); strcpy(o[1], "a5a5af"); strcpy(o[2], "015249"); strcpy(o[3], "88c9d4"); strcpy(o[4], "0004"); strcpy(o[5], "88c9d4"); break; //mint
|
case 5: strcpy(o[0], "57bc90"); strcpy(o[1], "a5a5af"); strcpy(o[2], "015249"); strcpy(o[3], "88c9d4"); strcpy(o[4], "0004"); strcpy(o[5], "88c9d4"); break; //mint
|
||||||
case 6: strcpy(o[0], "f7c331"); strcpy(o[1], "dcc7aa"); strcpy(o[2], "6b7a8f"); strcpy(o[3], "f7882f"); strcpy(o[4], "0007"); strcpy(o[5], "f7882f"); break; //amber
|
case 6: strcpy(o[0], "f7c331"); strcpy(o[1], "dca"); strcpy(o[2], "6b7a8f"); strcpy(o[3], "f7882f"); strcpy(o[4], "0007"); strcpy(o[5], "f7882f"); break; //amber
|
||||||
case 7: strcpy(o[0], "fc3"); strcpy(o[1], "124"); strcpy(o[2], "334"); strcpy(o[3], "f1d"); strcpy(o[4], "f00"); strcpy(o[5], "f1d"); break; //club
|
case 7: strcpy(o[0], "fff"); strcpy(o[1], "333"); strcpy(o[2], "222"); strcpy(o[3], "666"); strcpy(o[4], ""); strcpy(o[5], "fff"); break; //dark
|
||||||
case 8: strcpy(o[0], "0ac"); strcpy(o[1], "124"); strcpy(o[2], "224"); strcpy(o[3], "003eff"); strcpy(o[4], "003eff"); strcpy(o[5], "003eff"); break; //air
|
case 8: strcpy(o[0], "0ac"); strcpy(o[1], "124"); strcpy(o[2], "224"); strcpy(o[3], "003eff"); strcpy(o[4], "003eff"); strcpy(o[5], "003eff"); break; //air
|
||||||
case 9: strcpy(o[0], "f70"); strcpy(o[1], "421"); strcpy(o[2], "221"); strcpy(o[3], "a50"); strcpy(o[4], "f70"); strcpy(o[5], "f70"); break; //nixie
|
case 9: strcpy(o[0], "f70"); strcpy(o[1], "421"); strcpy(o[2], "221"); strcpy(o[3], "a50"); strcpy(o[4], "f70"); strcpy(o[5], "f70"); break; //nixie
|
||||||
case 10: strcpy(o[0], "2d2"); strcpy(o[1], "010"); strcpy(o[2], "121"); strcpy(o[3], "060"); strcpy(o[4], "040"); strcpy(o[5], "3f3"); break; //terminal
|
case 10: strcpy(o[0], "2d2"); strcpy(o[1], "010"); strcpy(o[2], "121"); strcpy(o[3], "060"); strcpy(o[4], "040"); strcpy(o[5], "3f3"); break; //terminal
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
* MQTT communication protocol for home automation
|
* MQTT communication protocol for home automation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define WLED_MQTT_PORT 1883
|
||||||
|
|
||||||
void parseMQTTBriPayload(char* payload)
|
void parseMQTTBriPayload(char* payload)
|
||||||
{
|
{
|
||||||
if (strcmp(payload, "ON") == 0) {bri = briLast; colorUpdated(1);}
|
if (strcmp(payload, "ON") == 0) {bri = briLast; colorUpdated(1);}
|
||||||
@ -111,9 +113,9 @@ bool initMQTT()
|
|||||||
IPAddress mqttIP;
|
IPAddress mqttIP;
|
||||||
if (mqttIP.fromString(mqttServer)) //see if server is IP or domain
|
if (mqttIP.fromString(mqttServer)) //see if server is IP or domain
|
||||||
{
|
{
|
||||||
mqtt->setServer(mqttIP,1883);
|
mqtt->setServer(mqttIP, WLED_MQTT_PORT);
|
||||||
} else {
|
} else {
|
||||||
mqtt->setServer(mqttServer,1883);
|
mqtt->setServer(mqttServer, WLED_MQTT_PORT);
|
||||||
}
|
}
|
||||||
mqtt->setCallback(callbackMQTT);
|
mqtt->setCallback(callbackMQTT);
|
||||||
DEBUG_PRINTLN("MQTT ready.");
|
DEBUG_PRINTLN("MQTT ready.");
|
||||||
|
@ -88,6 +88,22 @@ void initServer()
|
|||||||
reset();
|
reset();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
server.on("/json", HTTP_ANY, [](){
|
||||||
|
server.send(500, "application/json", "{\"error\":\"Not implemented\"}");
|
||||||
|
});
|
||||||
|
|
||||||
|
server.on("/json/effects", HTTP_GET, [](){
|
||||||
|
server.setContentLength(strlen_P(JSON_mode_names));
|
||||||
|
server.send(200, "application/json", "");
|
||||||
|
server.sendContent_P(JSON_mode_names);
|
||||||
|
});
|
||||||
|
|
||||||
|
server.on("/json/palettes", HTTP_GET, [](){
|
||||||
|
server.setContentLength(strlen_P(JSON_palette_names));
|
||||||
|
server.send(200, "application/json", "");
|
||||||
|
server.sendContent_P(JSON_palette_names);
|
||||||
|
});
|
||||||
|
|
||||||
server.on("/version", HTTP_GET, [](){
|
server.on("/version", HTTP_GET, [](){
|
||||||
server.send(200, "text/plain", (String)VERSION);
|
server.send(200, "text/plain", (String)VERSION);
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user