nightlight dev in progress

BUILD UNTESTED

notifier bugs 2A
no udp
This commit is contained in:
cschwinne 2016-11-26 19:34:05 +01:00
parent 9a06c748c0
commit 25e9967dae
7 changed files with 71 additions and 5 deletions

View File

@ -14,6 +14,8 @@ add preferred colors to settings -> quickly t. UI, button select,
use iframe for settings, seperate tabs for wifi and application confg
use iframe for all adv. features?
/dumpeeprom and /pusheeprom
aux trigger pin
descriptive text
BUGS
static ip disables mdns

View File

@ -37,7 +37,7 @@ uint8_t led_amount = 16;
uint8_t buttonPin = 3; //needs pull-up
boolean buttonEnabled = true;
String notifier_ips[]{"10.10.1.191","10.10.1.129"};
boolean notifyDirect = true, notifyButton = true, notifyForward = true;
boolean notifyDirect = true, notifyButton = true, notifyForward = true, notifyNightlight = false;
boolean receiveNotifications = true;
uint8_t bri_n = 100;
uint8_t nightlightDelayMins = 60;
@ -62,6 +62,9 @@ boolean buttonPressedBefore = false;
int notifier_ips_count = 1;
String notifier_ips_raw = "";
boolean nightlightActive = false;
boolean nightlightFade_old = false;
boolean nightlightActive_old = false;
int transitionDelay_old;
NeoPixelBus<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod> strip(led_amount, 1);
@ -97,10 +100,34 @@ void handleNightlight()
{
if (nightlightActive)
{
float nper = (millis() - nightlightStartTime)/(float)(((int)nightlightDelayMins)*60000);
if (!nightlightActive_old) //init
{
nightlightActive_old = true;
if (nightlightFade)
{
transitionDelay_old = transitionDelay;
transitionDelay = (int)(nightlightDelayMins*60000);
transitionStartTime = nightlightStartTime;
transitionActive = true;
}
}
float nper = (millis() - nightlightStartTime)/(float)transitionDelay;
if (nper >= 1)
{
nightlightActive = false;
}
}
} else if (nightlightActive_old) //de-init
{
nightlightActive_old = false;
if (nightlightFade)
{
transitionDelay = transitionDelay_old;
transitionActive = false;
} else
{
bri = 0;
colorUpdated(4);
}
}
}

View File

@ -111,6 +111,7 @@ void handleSettingsSet()
if (i > 0) nightlightDelayMins = i;
}
nightlightFade = server.hasArg("TLFDE");
nightlightFade_old = nightlightFade;
receiveNotifications = server.hasArg("NRCVE");
if (server.hasArg("NRBRI"))
{

View File

@ -76,6 +76,31 @@ void handleFileDelete(){
path = String();
}
void handleFileList() {
if(!server.hasArg("dir")) {server.send(500, "text/plain", "BAD ARGS"); return;}
String path = server.arg("dir");
Serial.println("handleFileList: " + path);
Dir dir = SPIFFS.openDir(path);
path = String();
String output = "[";
while(dir.next()){
File entry = dir.openFile("r");
if (output != "[") output += ',';
bool isDir = false;
output += "{\"type\":\"";
output += (isDir)?"dir":"file";
output += "\",\"name\":\"";
output += String(entry.name()).substring(1);
output += "\"}";
entry.close();
}
output += "]";
server.send(200, "text/json", output);
}
void handleFileCreate(){
if(server.args() == 0)
return server.send(500, "text/plain", "BAD ARGS");

View File

@ -22,7 +22,7 @@ void wledInit()
Serial.println("Init EEPROM");
EEPROM.begin(1024);
loadSettingsFromEEPROM();
nightlightFade_old = nightlightFade;
Serial.print("CC: SSID: ");
Serial.print(clientssid);
@ -94,6 +94,7 @@ void wledInit()
server.on("/edit", HTTP_POST, [](){ server.send(200, "text/plain", ""); }, handleFileUpload);
server.on("/down", HTTP_GET, down);
server.on("/cleareeprom", HTTP_GET, clearEEPROM);
server.on("/list", HTTP_GET, handleFileList);
//init ota page
httpUpdater.setup(&server);
} else
@ -110,6 +111,9 @@ void wledInit()
server.on("/update", HTTP_GET, [](){
server.send(500, "text/plain", "OTA lock active");
});
server.on("/list", HTTP_GET, [](){
server.send(500, "text/plain", "OTA lock active");
});
}
//called when the url is not defined here, ajax-in; get-settings
server.onNotFound([](){

View File

@ -5,6 +5,7 @@ void notify(int callMode)
case 1: if (!notifyDirect) return; break;
case 2: if (!notifyButton) return; break;
case 3: if (!notifyForward) return; break;
case 4: if (!notifyNightlight) return; break;
default: return;
}
String snd = "/ajax_inputs&N=1&A=";

View File

@ -25,7 +25,7 @@ void setLedsStandard()
void colorUpdated(int callMode)
{
//call for notifier -> 0: init 1: direct change 2: button 3: notification
//call for notifier -> 0: init 1: direct change 2: button 3: notification 4: nightlight
if (col[0] == col_it[0] && col[1] == col_it[1] && col[2] == col_it[2] && bri == bri_it)
{
return; //no change
@ -47,6 +47,11 @@ void colorUpdated(int callMode)
}
transitionActive = true;
transitionStartTime = millis();
if (nightlightActive)
{
nightlightFade_old = nightlightFade;
nightlightFade = false;
}
} else
{
setLedsStandard();
@ -62,6 +67,7 @@ void handleTransitions()
{
transitionActive = false;
tper_last = 0;
nightlightFade = nightlightFade_old;
setLedsStandard();
return;
}