mirror of
https://github.com/wled/WLED.git
synced 2025-07-28 21:26:36 +00:00
NL=0 instant off bugfix attempt
added udpPort = 0 as off implement all settings setters (notifyNightlight \n udpPort) De-implement notification fwd and led_amount settings descriptive text / title (server side + settings) nightlight function different after brightness than 0
This commit is contained in:
parent
a3a2c0448f
commit
945839e3d3
29
TODO.txt
29
TODO.txt
@ -1,8 +1,8 @@
|
|||||||
color cycle
|
color cycle
|
||||||
|
other vfx (fire...)
|
||||||
sequence
|
sequence
|
||||||
simple slide transition
|
simple slide transition
|
||||||
additional color picker field
|
additional color picker field
|
||||||
implement all settings setters (notifyNightlight \n udpPort)
|
|
||||||
implement HSB slider option
|
implement HSB slider option
|
||||||
implement ranges
|
implement ranges
|
||||||
implement discrete range color setter
|
implement discrete range color setter
|
||||||
@ -11,11 +11,32 @@ svg icons in html
|
|||||||
add preferred colors to settings -> quickly t. UI, button select,
|
add preferred colors to settings -> quickly t. UI, button select,
|
||||||
use iframe for settings, seperate tabs for wifi and application confg
|
use iframe for settings, seperate tabs for wifi and application confg
|
||||||
use iframe for all adv. features?
|
use iframe for all adv. features?
|
||||||
/dumpeeprom and /pusheeprom
|
/dumpeeprom and /pusheeprom (ota lock!)
|
||||||
aux trigger pin
|
aux trigger pin
|
||||||
descriptive text
|
randomizer
|
||||||
|
|
||||||
|
clock functions:
|
||||||
|
analog clock on range (dots)
|
||||||
|
5 min lines
|
||||||
|
slider clock on range (track)
|
||||||
|
get time from ntp
|
||||||
|
time zones + dst
|
||||||
|
adjustable chimes
|
||||||
|
timed light activation
|
||||||
|
alarm clock
|
||||||
|
countdown (= NL with seq. trans)
|
||||||
|
|
||||||
|
more button functions (hold for bri select, double click, etc.):
|
||||||
|
hold
|
||||||
|
single click
|
||||||
|
double click
|
||||||
|
triple click
|
||||||
|
quad click
|
||||||
|
funcs: toggle on/off
|
||||||
|
toggle nightlight
|
||||||
|
toggle notifier
|
||||||
|
var. brightness
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
static ip disables mdns
|
static ip disables mdns
|
||||||
? authentification for security relevant areas ([/settings, /reset])
|
? authentification for security relevant areas ([/settings, /reset])
|
||||||
(Unverified) led_amount does nothing (is always 16) because NeoPixelBus is initiated before EEPROM read
|
|
||||||
|
@ -31,18 +31,19 @@
|
|||||||
document.S_form.APHSSID.checked = (this.responseXML.getElementsByTagName('aphssid')[0].innerHTML)!=0?true:false;
|
document.S_form.APHSSID.checked = (this.responseXML.getElementsByTagName('aphssid')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.APPASS.value = this.responseXML.getElementsByTagName('appass')[0].innerHTML; //fake pass like ******
|
document.S_form.APPASS.value = this.responseXML.getElementsByTagName('appass')[0].innerHTML; //fake pass like ******
|
||||||
document.S_form.APCHAN.value = this.responseXML.getElementsByTagName('apchan')[0].innerHTML;
|
document.S_form.APCHAN.value = this.responseXML.getElementsByTagName('apchan')[0].innerHTML;
|
||||||
document.S_form.LEDS.value = this.responseXML.getElementsByTagName('leds')[0].innerHTML;
|
document.S_form.DESC.value = this.responseXML.getElementsByTagName('desc')[0].innerHTML;
|
||||||
document.S_form.BTNON.checked = (this.responseXML.getElementsByTagName('btnon')[0].innerHTML)!=0?true:false;
|
document.S_form.BTNON.checked = (this.responseXML.getElementsByTagName('btnon')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.TFADE.checked = (this.responseXML.getElementsByTagName('tfade')[0].innerHTML)!=0?true:false;
|
document.S_form.TFADE.checked = (this.responseXML.getElementsByTagName('tfade')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.TDLAY.value = this.responseXML.getElementsByTagName('tdlay')[0].innerHTML;
|
document.S_form.TDLAY.value = this.responseXML.getElementsByTagName('tdlay')[0].innerHTML;
|
||||||
|
document.S_form.TLBRI.value = this.responseXML.getElementsByTagName('tlbri')[0].innerHTML;
|
||||||
document.S_form.TLDUR.value = this.responseXML.getElementsByTagName('tldur')[0].innerHTML;
|
document.S_form.TLDUR.value = this.responseXML.getElementsByTagName('tldur')[0].innerHTML;
|
||||||
document.S_form.TLFDE.checked = (this.responseXML.getElementsByTagName('tlfde')[0].innerHTML)!=0?true:false;
|
document.S_form.TLFDE.checked = (this.responseXML.getElementsByTagName('tlfde')[0].innerHTML)!=0?true:false;
|
||||||
|
document.S_form.NUDPP.value = this.responseXML.getElementsByTagName('nudpp')[0].innerHTML;
|
||||||
document.S_form.NRCVE.checked = (this.responseXML.getElementsByTagName('nrcve')[0].innerHTML)!=0?true:false;
|
document.S_form.NRCVE.checked = (this.responseXML.getElementsByTagName('nrcve')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.NRBRI.value = this.responseXML.getElementsByTagName('nrbri')[0].innerHTML;
|
document.S_form.NRBRI.value = this.responseXML.getElementsByTagName('nrbri')[0].innerHTML;
|
||||||
document.S_form.NSDIR.checked = (this.responseXML.getElementsByTagName('nsdir')[0].innerHTML)!=0?true:false;
|
document.S_form.NSDIR.checked = (this.responseXML.getElementsByTagName('nsdir')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.NSBTN.checked = (this.responseXML.getElementsByTagName('nsbtn')[0].innerHTML)!=0?true:false;
|
document.S_form.NSBTN.checked = (this.responseXML.getElementsByTagName('nsbtn')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.NSFWD.checked = (this.responseXML.getElementsByTagName('nsfwd')[0].innerHTML)!=0?true:false;
|
document.S_form.NSFWD.checked = (this.responseXML.getElementsByTagName('nsfwd')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.NSIPS.innerHTML = this.responseXML.getElementsByTagName('nsips')[0].innerHTML;
|
|
||||||
document.S_form.NOOTA.checked = (this.responseXML.getElementsByTagName('noota')[0].innerHTML)!=0?true:false;
|
document.S_form.NOOTA.checked = (this.responseXML.getElementsByTagName('noota')[0].innerHTML)!=0?true:false;
|
||||||
document.S_form.NORAP.checked = (this.responseXML.getElementsByTagName('norap')[0].innerHTML)!=0?true:false;
|
document.S_form.NORAP.checked = (this.responseXML.getElementsByTagName('norap')[0].innerHTML)!=0?true:false;
|
||||||
document.getElementsByClassName("sip")[0].innerHTML = this.responseXML.getElementsByTagName('sip')[0].innerHTML;
|
document.getElementsByClassName("sip")[0].innerHTML = this.responseXML.getElementsByTagName('sip')[0].innerHTML;
|
||||||
@ -102,25 +103,26 @@
|
|||||||
AP IP: <span class="sip"> Not active </span> <br>
|
AP IP: <span class="sip"> Not active </span> <br>
|
||||||
|
|
||||||
<h2>Application setup</h2>
|
<h2>Application setup</h2>
|
||||||
|
<h3>Web setup</h3>
|
||||||
|
Server description: <input type="text" name="DESC" maxlength="32"> <br>
|
||||||
<h3>LED setup</h3>
|
<h3>LED setup</h3>
|
||||||
The default boot LED color is the current color when settings are saved. <br>
|
The default boot LED color is the current color when settings are saved. <br>
|
||||||
LED amount: <input type="text" name="LEDS" maxlength="3" size="2"> <br>
|
Brightness factor: <input type="text" name="NRBRI" maxlength="3" size="2"> % <br>
|
||||||
<h3>Button setup</h3>
|
<h3>Button setup</h3>
|
||||||
On/Off button enabled: <input type="checkbox" name="BTNON" value="0"> <br>
|
On/Off button enabled: <input type="checkbox" name="BTNON" value="0"> <br>
|
||||||
<h3>Transitions</h3>
|
<h3>Transitions</h3>
|
||||||
Fade: <input type="checkbox" name="TFADE" value="0"> <br>
|
Fade: <input type="checkbox" name="TFADE" value="0"> <br>
|
||||||
Transition Delay: <input type="text" name="TDLAY" maxlength="5" size="2"> ms <br>
|
Transition Delay: <input type="text" name="TDLAY" maxlength="5" size="2"> ms <br>
|
||||||
<h3>Timed light</h3>
|
<h3>Timed light</h3>
|
||||||
Turn off after: <input type="text" name="TLDUR" maxlength="3" size="2"> min <br>
|
Target brightness: <input type="text" name="TLBRI" maxlength="3" size="2"> (0-255) <br>
|
||||||
Fade down: <input type="checkbox" name="TLFDE" value="0"> <br>
|
Change after: <input type="text" name="TLDUR" maxlength="3" size="2"> min <br>
|
||||||
|
Fade: <input type="checkbox" name="TLFDE" value="0"> <br>
|
||||||
<h3>Daisy chain</h3>
|
<h3>Daisy chain</h3>
|
||||||
|
UDP Port: <input type="text" name="NUDPP" maxlength="5" size="2"><br>
|
||||||
Receive notifications: <input type="checkbox" name="NRCVE" value="0"> <br>
|
Receive notifications: <input type="checkbox" name="NRCVE" value="0"> <br>
|
||||||
Received brightness factor: <input type="text" name="NRBRI" maxlength="3" size="2"> % <br><br>
|
|
||||||
Send notifications on direct change: <input type="checkbox" name="NSDIR" value="0"> <br>
|
Send notifications on direct change: <input type="checkbox" name="NSDIR" value="0"> <br>
|
||||||
Send notifications on button press: <input type="checkbox" name="NSBTN" value="0"> <br>
|
Send notifications on button press: <input type="checkbox" name="NSBTN" value="0"> <br>
|
||||||
Forward received notifications: <input type="checkbox" name="NSFWD" value="0"> <br>
|
Send nightlight notifications: <input type="checkbox" name="NSFWD" value="0"> <br>
|
||||||
Hosts to send notifications to: (1 IP per line) <br>
|
|
||||||
<textarea name="NSIPS" rows="8" cols="16"></textarea>
|
|
||||||
<h3>Security</h3>
|
<h3>Security</h3>
|
||||||
OTA locked: <input type="checkbox" name="NOOTA" value="0"> <br>
|
OTA locked: <input type="checkbox" name="NOOTA" value="0"> <br>
|
||||||
Passphrase: <input type="password" name="OPASS" maxlength="32"> <br>
|
Passphrase: <input type="password" name="OPASS" maxlength="32"> <br>
|
||||||
|
@ -14,7 +14,11 @@
|
|||||||
* @version 0.3pd
|
* @version 0.3pd
|
||||||
* @author Christian Schwinne
|
* @author Christian Schwinne
|
||||||
*/
|
*/
|
||||||
|
//Hardware-settings (only changeble via code)
|
||||||
|
uint8_t led_amount = 16;
|
||||||
|
uint8_t buttonPin = 0; //needs pull-up
|
||||||
//Default CONFIG
|
//Default CONFIG
|
||||||
|
String serverDescription = "WLED 0.3pd";
|
||||||
String clientssid = "Your_Network_Here";
|
String clientssid = "Your_Network_Here";
|
||||||
String clientpass = "Dummy_Pass";
|
String clientpass = "Dummy_Pass";
|
||||||
String cmdns = "led";
|
String cmdns = "led";
|
||||||
@ -27,21 +31,20 @@ IPAddress staticip(0, 0, 0, 0);
|
|||||||
IPAddress staticgateway(0, 0, 0, 0);
|
IPAddress staticgateway(0, 0, 0, 0);
|
||||||
IPAddress staticsubnet(255, 255, 255, 0);
|
IPAddress staticsubnet(255, 255, 255, 0);
|
||||||
byte col[]{255, 127, 0};
|
byte col[]{255, 127, 0};
|
||||||
|
uint8_t bri_nl = 0;
|
||||||
boolean fadeTransition = true;
|
boolean fadeTransition = true;
|
||||||
boolean seqTransition = false;
|
boolean seqTransition = false;
|
||||||
uint16_t transitionDelay = 1500;
|
uint16_t transitionDelay = 1500;
|
||||||
boolean ota_lock = true;
|
boolean ota_lock = true;
|
||||||
String otapass = "wledota";
|
String otapass = "wledota";
|
||||||
boolean only_ap = false;
|
boolean only_ap = false;
|
||||||
uint8_t led_amount = 16;
|
|
||||||
uint8_t buttonPin = 3; //needs pull-up
|
|
||||||
boolean buttonEnabled = true;
|
boolean buttonEnabled = true;
|
||||||
boolean notifyDirect = true, notifyButton = true, notifyForward = true, notifyNightlight = false;
|
boolean notifyDirect = true, notifyButton = true, notifyNightlight = false;
|
||||||
boolean receiveNotifications = true;
|
boolean receiveNotifications = true;
|
||||||
uint8_t bri_n = 100;
|
uint8_t bri_n = 100;
|
||||||
uint8_t nightlightDelayMins = 60;
|
uint8_t nightlightDelayMins = 60;
|
||||||
boolean nightlightFade = true;
|
boolean nightlightFade = true;
|
||||||
unsigned int udpPort = 21324;
|
uint16_t udpPort = 21324;
|
||||||
|
|
||||||
double transitionResolution = 0.011;
|
double transitionResolution = 0.011;
|
||||||
|
|
||||||
@ -62,7 +65,6 @@ boolean buttonPressedBefore = false;
|
|||||||
boolean nightlightActive = false;
|
boolean nightlightActive = false;
|
||||||
boolean nightlightActive_old = false;
|
boolean nightlightActive_old = false;
|
||||||
int transitionDelay_old;
|
int transitionDelay_old;
|
||||||
long nightlightPassedTime = 0;
|
|
||||||
int nightlightDelayMs;
|
int nightlightDelayMs;
|
||||||
boolean udpConnected = false;
|
boolean udpConnected = false;
|
||||||
byte notifierBuffer[16];
|
byte notifierBuffer[16];
|
||||||
|
@ -41,7 +41,7 @@ void saveSettingsToEEPROM()
|
|||||||
EEPROM.write(228, aphide);
|
EEPROM.write(228, aphide);
|
||||||
EEPROM.write(229, led_amount);
|
EEPROM.write(229, led_amount);
|
||||||
EEPROM.write(230, notifyButton);
|
EEPROM.write(230, notifyButton);
|
||||||
EEPROM.write(231, notifyForward);
|
EEPROM.write(231, notifyNightlight);
|
||||||
EEPROM.write(232, buttonEnabled);
|
EEPROM.write(232, buttonEnabled);
|
||||||
//233 reserved for first boot flag
|
//233 reserved for first boot flag
|
||||||
EEPROM.write(234, staticip[0]);
|
EEPROM.write(234, staticip[0]);
|
||||||
@ -70,7 +70,14 @@ void saveSettingsToEEPROM()
|
|||||||
{
|
{
|
||||||
EEPROM.write(i, otapass.charAt(i-256));
|
EEPROM.write(i, otapass.charAt(i-256));
|
||||||
}
|
}
|
||||||
|
EEPROM.write(288, bri_nl);
|
||||||
EEPROM.write(289, ota_lock);
|
EEPROM.write(289, ota_lock);
|
||||||
|
EEPROM.write(290, (udpPort >> 0) & 0xFF);
|
||||||
|
EEPROM.write(291, (udpPort >> 8) & 0xFF);
|
||||||
|
for (int i = 292; i < 324; ++i)
|
||||||
|
{
|
||||||
|
EEPROM.write(i, serverDescription.charAt(i-292));
|
||||||
|
}
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +127,7 @@ void loadSettingsFromEEPROM()
|
|||||||
if (aphide > 1) aphide = 1;
|
if (aphide > 1) aphide = 1;
|
||||||
led_amount = EEPROM.read(229);
|
led_amount = EEPROM.read(229);
|
||||||
notifyButton = EEPROM.read(230);
|
notifyButton = EEPROM.read(230);
|
||||||
notifyForward = EEPROM.read(231);
|
notifyNightlight = EEPROM.read(231);
|
||||||
buttonEnabled = EEPROM.read(232);
|
buttonEnabled = EEPROM.read(232);
|
||||||
staticip[0] = EEPROM.read(234);
|
staticip[0] = EEPROM.read(234);
|
||||||
staticip[1] = EEPROM.read(235);
|
staticip[1] = EEPROM.read(235);
|
||||||
@ -149,5 +156,13 @@ void loadSettingsFromEEPROM()
|
|||||||
if (EEPROM.read(i) == 0) break;
|
if (EEPROM.read(i) == 0) break;
|
||||||
otapass += char(EEPROM.read(i));
|
otapass += char(EEPROM.read(i));
|
||||||
}
|
}
|
||||||
|
bri_nl = EEPROM.read(288);
|
||||||
ota_lock = EEPROM.read(289);
|
ota_lock = EEPROM.read(289);
|
||||||
|
udpPort = ((EEPROM.read(290) << 0) & 0xFF) + ((EEPROM.read(291) << 8) & 0xFF00);
|
||||||
|
serverDescription = "";
|
||||||
|
for (int i = 292; i < 324; ++i)
|
||||||
|
{
|
||||||
|
if (EEPROM.read(i) == 0) break;
|
||||||
|
serverDescription += char(EEPROM.read(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,12 @@ void XML_response()
|
|||||||
resp = resp + col[i];
|
resp = resp + col[i];
|
||||||
resp = resp + "</cl>";
|
resp = resp + "</cl>";
|
||||||
}
|
}
|
||||||
|
resp = resp + "<nl>";
|
||||||
|
resp = resp + nightlightActive;
|
||||||
|
resp = resp + "</nl>";
|
||||||
|
resp = resp + "<desc>";
|
||||||
|
resp = resp + serverDescription;
|
||||||
|
resp = resp + "</desc>";
|
||||||
//enable toolbar here
|
//enable toolbar here
|
||||||
resp = resp + "</vs>";
|
resp = resp + "</vs>";
|
||||||
server.send(200, "text/xml", resp);
|
server.send(200, "text/xml", resp);
|
||||||
@ -75,9 +81,9 @@ void XML_response_settings()
|
|||||||
resp = resp + "<apchan>";
|
resp = resp + "<apchan>";
|
||||||
resp = resp + apchannel;
|
resp = resp + apchannel;
|
||||||
resp = resp + "</apchan>";
|
resp = resp + "</apchan>";
|
||||||
resp = resp + "<leds>";
|
resp = resp + "<desc>";
|
||||||
resp = resp + led_amount;
|
resp = resp + serverDescription;
|
||||||
resp = resp + "</leds>";
|
resp = resp + "</desc>";
|
||||||
resp = resp + "<btnon>";
|
resp = resp + "<btnon>";
|
||||||
resp = resp + bool2int(buttonEnabled);
|
resp = resp + bool2int(buttonEnabled);
|
||||||
resp = resp + "</btnon><tfade>";
|
resp = resp + "</btnon><tfade>";
|
||||||
@ -85,12 +91,18 @@ void XML_response_settings()
|
|||||||
resp = resp + "</tfade><tdlay>";
|
resp = resp + "</tfade><tdlay>";
|
||||||
resp = resp + transitionDelay;
|
resp = resp + transitionDelay;
|
||||||
resp = resp + "</tdlay>";
|
resp = resp + "</tdlay>";
|
||||||
|
resp = resp + "<tlbri>";
|
||||||
|
resp = resp + bri_nl;
|
||||||
|
resp = resp + "</tlbri>";
|
||||||
resp = resp + "<tldur>";
|
resp = resp + "<tldur>";
|
||||||
resp = resp + nightlightDelayMins;
|
resp = resp + nightlightDelayMins;
|
||||||
resp = resp + "</tldur>";
|
resp = resp + "</tldur>";
|
||||||
resp = resp + "<tlfde>";
|
resp = resp + "<tlfde>";
|
||||||
resp = resp + bool2int(nightlightFade);
|
resp = resp + bool2int(nightlightFade);
|
||||||
resp = resp + "</tlfde>";
|
resp = resp + "</tlfde>";
|
||||||
|
resp = resp + "<nudpp>";
|
||||||
|
resp = resp + udpPort;
|
||||||
|
resp = resp + "</nudpp>";
|
||||||
resp = resp + "<nrcve>";
|
resp = resp + "<nrcve>";
|
||||||
resp = resp + bool2int(receiveNotifications);
|
resp = resp + bool2int(receiveNotifications);
|
||||||
resp = resp + "</nrcve><nrbri>";
|
resp = resp + "</nrcve><nrbri>";
|
||||||
@ -100,8 +112,8 @@ void XML_response_settings()
|
|||||||
resp = resp + "</nsdir><nsbtn>";
|
resp = resp + "</nsdir><nsbtn>";
|
||||||
resp = resp + bool2int(notifyButton);
|
resp = resp + bool2int(notifyButton);
|
||||||
resp = resp + "</nsbtn><nsfwd>";
|
resp = resp + "</nsbtn><nsfwd>";
|
||||||
resp = resp + bool2int(notifyForward);
|
resp = resp + bool2int(notifyNightlight);
|
||||||
resp = resp + "</nsfwd><nsips>Legacy</nsips>";
|
resp = resp + "</nsfwd>";
|
||||||
resp = resp + "<noota>";
|
resp = resp + "<noota>";
|
||||||
resp = resp + bool2int(ota_lock);
|
resp = resp + bool2int(ota_lock);
|
||||||
resp = resp +"</noota>";
|
resp = resp +"</noota>";
|
||||||
@ -134,7 +146,7 @@ void XML_response_settings()
|
|||||||
{
|
{
|
||||||
resp = resp + "Not active";
|
resp = resp + "Not active";
|
||||||
}
|
}
|
||||||
resp = resp + "</sip><otastat>LS</otastat>";
|
resp = resp + "</sip>";
|
||||||
resp = resp + "<msg>WLED 0.3pd OK</msg>";
|
resp = resp + "<msg>WLED 0.3pd OK</msg>";
|
||||||
resp = resp + "</vs>";
|
resp = resp + "</vs>";
|
||||||
Serial.println(resp);
|
Serial.println(resp);
|
||||||
|
@ -93,11 +93,7 @@ void handleSettingsSet()
|
|||||||
int i = server.arg("CSSN3").toInt();
|
int i = server.arg("CSSN3").toInt();
|
||||||
if (i >= 0 && i <= 255) staticsubnet[3] = i;
|
if (i >= 0 && i <= 255) staticsubnet[3] = i;
|
||||||
}
|
}
|
||||||
if (server.hasArg("LEDS"))
|
if (server.hasArg("DESC")) serverDescription = server.arg("DESC");
|
||||||
{
|
|
||||||
int i = server.arg("LEDS").toInt();
|
|
||||||
if (i > 0) led_amount = i;
|
|
||||||
}
|
|
||||||
buttonEnabled = server.hasArg("BTNON");
|
buttonEnabled = server.hasArg("BTNON");
|
||||||
fadeTransition = server.hasArg("TFADE");
|
fadeTransition = server.hasArg("TFADE");
|
||||||
if (server.hasArg("TDLAY"))
|
if (server.hasArg("TDLAY"))
|
||||||
@ -108,12 +104,20 @@ void handleSettingsSet()
|
|||||||
transitionDelay_old = transitionDelay;
|
transitionDelay_old = transitionDelay;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (server.hasArg("TLBRI"))
|
||||||
|
{
|
||||||
|
bri_nl = server.arg("TLBRI").toInt();
|
||||||
|
}
|
||||||
if (server.hasArg("TLDUR"))
|
if (server.hasArg("TLDUR"))
|
||||||
{
|
{
|
||||||
int i = server.arg("TLDUR").toInt();
|
int i = server.arg("TLDUR").toInt();
|
||||||
if (i > 0) nightlightDelayMins = i;
|
if (i > 0) nightlightDelayMins = i;
|
||||||
}
|
}
|
||||||
nightlightFade = server.hasArg("TLFDE");
|
nightlightFade = server.hasArg("TLFDE");
|
||||||
|
if (server.hasArg("NUDPP"))
|
||||||
|
{
|
||||||
|
udpPort = server.arg("NUDPP").toInt();
|
||||||
|
}
|
||||||
receiveNotifications = server.hasArg("NRCVE");
|
receiveNotifications = server.hasArg("NRCVE");
|
||||||
if (server.hasArg("NRBRI"))
|
if (server.hasArg("NRBRI"))
|
||||||
{
|
{
|
||||||
@ -122,7 +126,7 @@ void handleSettingsSet()
|
|||||||
}
|
}
|
||||||
notifyDirect = server.hasArg("NSDIR");
|
notifyDirect = server.hasArg("NSDIR");
|
||||||
notifyButton = server.hasArg("NSBTN");
|
notifyButton = server.hasArg("NSBTN");
|
||||||
notifyForward = server.hasArg("NSFWD");
|
notifyNightlight = server.hasArg("NSFWD");
|
||||||
if (server.hasArg("OPASS"))
|
if (server.hasArg("OPASS"))
|
||||||
{
|
{
|
||||||
if (!ota_lock)
|
if (!ota_lock)
|
||||||
@ -173,6 +177,7 @@ boolean handleSet(String req)
|
|||||||
if (req.indexOf("NL=0") > 0)
|
if (req.indexOf("NL=0") > 0)
|
||||||
{
|
{
|
||||||
nightlightActive = false;
|
nightlightActive = false;
|
||||||
|
bri = bri_t;
|
||||||
} else {
|
} else {
|
||||||
nightlightActive = true;
|
nightlightActive = true;
|
||||||
nightlightStartTime = millis();
|
nightlightStartTime = millis();
|
||||||
|
@ -59,7 +59,10 @@ void wledInit()
|
|||||||
}
|
}
|
||||||
Serial.println("mDNS responder started");
|
Serial.println("mDNS responder started");
|
||||||
|
|
||||||
udpConnected = notifierUdp.begin(udpPort);
|
if (udpPort > 0)
|
||||||
|
{
|
||||||
|
udpConnected = notifierUdp.begin(udpPort);
|
||||||
|
}
|
||||||
|
|
||||||
//SERVER INIT
|
//SERVER INIT
|
||||||
//settings page
|
//settings page
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
void notify(uint8_t callMode)
|
void notify(uint8_t callMode)
|
||||||
{
|
{
|
||||||
|
if (!udpConnected) return;
|
||||||
switch (callMode)
|
switch (callMode)
|
||||||
{
|
{
|
||||||
case 1: if (!notifyDirect) return; break;
|
case 1: if (!notifyDirect) return; break;
|
||||||
case 2: if (!notifyButton) return; break;
|
case 2: if (!notifyButton) return; break;
|
||||||
case 3: if (!notifyForward) return; break;
|
case 3: return;
|
||||||
case 4: if (!notifyNightlight) return; break;
|
case 4: if (!notifyNightlight) return; break;
|
||||||
default: return;
|
default: return;
|
||||||
}
|
}
|
||||||
byte udpOut[16];
|
byte udpOut[16];
|
||||||
udpOut[0] = 0; //reserved for future "port" feature
|
udpOut[0] = 0; //reserved
|
||||||
udpOut[1] = callMode;
|
udpOut[1] = callMode;
|
||||||
udpOut[2] = bri;
|
udpOut[2] = bri;
|
||||||
udpOut[3] = col[0];
|
udpOut[3] = col[0];
|
||||||
@ -32,21 +33,13 @@ void handleNotifications()
|
|||||||
if(packetSize && notifierUdp.remoteIP() != WiFi.localIP())
|
if(packetSize && notifierUdp.remoteIP() != WiFi.localIP())
|
||||||
{
|
{
|
||||||
notifierUdp.read(notifierBuffer, 16);
|
notifierUdp.read(notifierBuffer, 16);
|
||||||
int bri_r = notifierBuffer[2]*(((float)bri_n)/100);
|
col[0] = notifierBuffer[3];
|
||||||
if (bri_r < 256)
|
|
||||||
{
|
|
||||||
bri_n = bri_r;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
bri_n = 255;
|
|
||||||
}
|
|
||||||
col[0] = notifierBuffer[3]
|
|
||||||
col[1] = notifierBuffer[4];
|
col[1] = notifierBuffer[4];
|
||||||
col[2] = notifierBuffer[5];
|
col[2] = notifierBuffer[5];
|
||||||
if (notifierBuffer[6])
|
nightlightActive = notifierBuffer[6];
|
||||||
|
if (!notifierBuffer[6])
|
||||||
{
|
{
|
||||||
nightlightActive = true;
|
bri = notifierBuffer[2];
|
||||||
} else {
|
|
||||||
colorUpdated(3);
|
colorUpdated(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
void setAllLeds() {
|
void setAllLeds() {
|
||||||
double d = bri_t;
|
double d = bri_t*bri_n;
|
||||||
double val = d /256;
|
double val = d/25600;
|
||||||
|
if (val > 1.0)
|
||||||
|
{
|
||||||
|
val = 1.0;
|
||||||
|
}
|
||||||
int r = col_t[0]*val;
|
int r = col_t[0]*val;
|
||||||
int g = col_t[1]*val;
|
int g = col_t[1]*val;
|
||||||
int b = col_t[2]*val;
|
int b = col_t[2]*val;
|
||||||
@ -25,7 +29,7 @@ void setLedsStandard()
|
|||||||
|
|
||||||
void colorUpdated(int callMode)
|
void colorUpdated(int callMode)
|
||||||
{
|
{
|
||||||
//call for notifier -> 0: init 1: direct change 2: button 3: notification 4: nightlight
|
//call for notifier -> 0: init 1: direct change 2: button 3: notification 4: nightlight 5: other (no not.)
|
||||||
if (col[0] == col_it[0] && col[1] == col_it[1] && col[2] == col_it[2] && bri == bri_it)
|
if (col[0] == col_it[0] && col[1] == col_it[1] && col[2] == col_it[2] && bri == bri_it)
|
||||||
{
|
{
|
||||||
return; //no change
|
return; //no change
|
||||||
@ -97,8 +101,8 @@ void initNightlightFade()
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bri = 0;
|
bri = bri_nl;
|
||||||
bri_it = 0;
|
bri_it = bri_nl;
|
||||||
transitionDelay = (int)(nightlightDelayMins*60000);
|
transitionDelay = (int)(nightlightDelayMins*60000);
|
||||||
transitionStartTime = nightlightStartTime;
|
transitionStartTime = nightlightStartTime;
|
||||||
transitionActive = true;
|
transitionActive = true;
|
||||||
@ -111,6 +115,7 @@ void handleNightlight()
|
|||||||
{
|
{
|
||||||
if (!nightlightActive_old) //init
|
if (!nightlightActive_old) //init
|
||||||
{
|
{
|
||||||
|
nightlightStartTime = millis();
|
||||||
notify(4);
|
notify(4);
|
||||||
nightlightDelayMs = (int)(nightlightDelayMins*60000);
|
nightlightDelayMs = (int)(nightlightDelayMins*60000);
|
||||||
nightlightActive_old = true;
|
nightlightActive_old = true;
|
||||||
@ -123,19 +128,19 @@ void handleNightlight()
|
|||||||
if (nper >= 1)
|
if (nper >= 1)
|
||||||
{
|
{
|
||||||
nightlightActive = false;
|
nightlightActive = false;
|
||||||
|
if (!nightlightFade)
|
||||||
|
{
|
||||||
|
bri = bri_nl;
|
||||||
|
colorUpdated(5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (nightlightActive_old) //de-init
|
} else if (nightlightActive_old) //early de-init
|
||||||
{
|
{
|
||||||
nightlightPassedTime = 0;
|
|
||||||
nightlightActive_old = false;
|
nightlightActive_old = false;
|
||||||
if (nightlightFade)
|
if (nightlightFade)
|
||||||
{
|
{
|
||||||
transitionDelay = transitionDelay_old;
|
transitionDelay = transitionDelay_old;
|
||||||
transitionActive = false;
|
transitionActive = false;
|
||||||
} else
|
|
||||||
{
|
|
||||||
bri = 0;
|
|
||||||
colorUpdated(4);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user