From 60530a2931d491eb621cf93671840955af586b37 Mon Sep 17 00:00:00 2001 From: cschwinne Date: Mon, 11 Dec 2017 23:59:12 +0100 Subject: [PATCH] Created dependency subfolder (this eases compilation since all libraries are included except the ESP8266 core and NeoPixelBus) Disabled serial debug output of Alexa library, may be re-enabled in .h-Files ifneedbe Added &SR= to set random hue Added &ST= to manually set time without NTP Secondary color buttons now functional Shifted effect by 1, range is now 1-25 Effect 0 is now the default boot setting Fixed preset function not calling GIO() in js, which caused a delayed action --- bin/wled04p_1712111_RGB.bin | Bin 0 -> 352320 bytes wled00/WS2812FX.h | 4 +- wled00/data/index-min.htm | 21 +- wled00/data/index.htm | 53 +-- wled00/htmls00.h | 20 +- .../alexa-multiple}/CallbackFunction.h | 0 .../dependencies/alexa-multiple/LICENSE.txt | 23 ++ .../dependencies/alexa-multiple}/Switch.cpp | 48 +-- .../dependencies/alexa-multiple}/Switch.h | 0 .../UpnpBroadcastResponder.cpp | 34 +- .../alexa-multiple}/UpnpBroadcastResponder.h | 0 wled00/src/dependencies/time/DateStrings.cpp | 97 ++++++ wled00/src/dependencies/time/LICENSE.txt | 25 ++ wled00/src/dependencies/time/Readme.txt | 135 ++++++++ wled00/src/dependencies/time/Time.cpp | 321 ++++++++++++++++++ wled00/src/dependencies/time/Time.h | 1 + wled00/src/dependencies/time/TimeLib.h | 144 ++++++++ wled00/src/dependencies/time/keywords.txt | 34 ++ wled00/src/dependencies/time/library.json | 26 ++ .../src/dependencies/time/library.properties | 10 + wled00/src/dependencies/timezone/LICENSE.md | 11 + wled00/src/dependencies/timezone/ReadMe.md | 173 ++++++++++ wled00/src/dependencies/timezone/Timezone.cpp | 211 ++++++++++++ wled00/src/dependencies/timezone/Timezone.h | 61 ++++ wled00/src/dependencies/timezone/keywords.txt | 8 + wled00/src/dependencies/ws2812fx/LICENSE.txt | 21 ++ wled00/src/dependencies/ws2812fx/readme.txt | 4 + wled00/wled00.ino | 17 +- wled00/wled01_eeprom.ino | 19 +- wled00/wled03_set.ino | 95 +++++- wled00/wled05_init.ino | 3 +- 31 files changed, 1521 insertions(+), 98 deletions(-) create mode 100644 bin/wled04p_1712111_RGB.bin rename wled00/{ => src/dependencies/alexa-multiple}/CallbackFunction.h (100%) create mode 100644 wled00/src/dependencies/alexa-multiple/LICENSE.txt rename wled00/{ => src/dependencies/alexa-multiple}/Switch.cpp (83%) rename wled00/{ => src/dependencies/alexa-multiple}/Switch.h (100%) rename wled00/{ => src/dependencies/alexa-multiple}/UpnpBroadcastResponder.cpp (71%) rename wled00/{ => src/dependencies/alexa-multiple}/UpnpBroadcastResponder.h (100%) create mode 100644 wled00/src/dependencies/time/DateStrings.cpp create mode 100644 wled00/src/dependencies/time/LICENSE.txt create mode 100644 wled00/src/dependencies/time/Readme.txt create mode 100644 wled00/src/dependencies/time/Time.cpp create mode 100644 wled00/src/dependencies/time/Time.h create mode 100644 wled00/src/dependencies/time/TimeLib.h create mode 100644 wled00/src/dependencies/time/keywords.txt create mode 100644 wled00/src/dependencies/time/library.json create mode 100644 wled00/src/dependencies/time/library.properties create mode 100644 wled00/src/dependencies/timezone/LICENSE.md create mode 100644 wled00/src/dependencies/timezone/ReadMe.md create mode 100644 wled00/src/dependencies/timezone/Timezone.cpp create mode 100644 wled00/src/dependencies/timezone/Timezone.h create mode 100644 wled00/src/dependencies/timezone/keywords.txt create mode 100644 wled00/src/dependencies/ws2812fx/LICENSE.txt create mode 100644 wled00/src/dependencies/ws2812fx/readme.txt diff --git a/bin/wled04p_1712111_RGB.bin b/bin/wled04p_1712111_RGB.bin new file mode 100644 index 0000000000000000000000000000000000000000..5c88bdfb63d1f80154fc02496a552153c6311813 GIT binary patch literal 352320 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

UC88U3O@%w)tHCvmW@pT!Z8Dypdu8?2WA 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 MtrOgXLLry`53)9#fdBvi literal 0 HcmV?d00001 diff --git a/wled00/WS2812FX.h b/wled00/WS2812FX.h index 8d66894e..e315e6c2 100644 --- a/wled00/WS2812FX.h +++ b/wled00/WS2812FX.h @@ -255,12 +255,14 @@ class WS2812FX : public NeoPixelBrightnessBus WLED 0.4p - + Loading... -//Linearicons.com/free + +//Linearicons.com/free @@ -58,11 +59,12 @@ Effect Panel




Set secondary color to - - - - - + + + + + +or


diff --git a/wled00/data/index.htm b/wled00/data/index.htm index 339d037f..f7ee2c40 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -103,12 +103,12 @@ setHS(Cf.SR.value,Cf.SG.value,Cf.SB.value); SetHSB(); nlb.style.fill=(nla)?bCol:dC; - switch (nState) + switch(nState) { - case 0: gId("path1").style.fill = dC; gId("path2").style.fill = dC; break; - case 1: gId("path1").style.fill = bCol; gId("path2").style.fill = dC; break; - case 2: gId("path1").style.fill = dC;gId("path2").style.fill = bCol; break; - case 3: gId("path1").style.fill = bCol; gId("path2").style.fill = bCol; break; + case 0: gId("path1").style.fill = dC; gId("path2").style.fill = dC;break; + case 1: gId("path1").style.fill = bCol; gId("path2").style.fill = dC;break; + case 2: gId("path1").style.fill = dC;gId("path2").style.fill = bCol;break; + case 3: gId("path1").style.fill = bCol; gId("path2").style.fill = bCol; } tgb.style.fill=(Cf.SA.value>0)?bCol:dC; ccX.style.display=(Cf.TF.value>52)?"block":"none"; @@ -255,6 +255,7 @@ if(d.Cf.FC.checked){resp+="&PX=";resp+=d.Cf.FF.value;} } } + GIO(); } function OpenSettings() { @@ -293,16 +294,16 @@ if (nState>3) nState=0; switch (nState) { - case 0: resp+="&SN=0&RN=0"; break; - case 1: resp+="&SN=0&RN=1"; break; - case 2: resp+="&SN=1&RN=0"; break; - case 3: resp+="&SN=1&RN=1"; break; + case 0: resp+="&SN=0&RN=0";break; + case 1: resp+="&SN=0&RN=1";break; + case 2: resp+="&SN=1&RN=0";break; + case 3: resp+="&SN=1&RN=1"; } UV(); GIO(); } function setHS() { - var rr, gg, bb, + var rr,gg,bb, r=arguments[0]/255, g=arguments[1]/255, b=arguments[2]/255, @@ -351,7 +352,7 @@ case 2: r=p,g=v,b=t;break; case 3: r=p,g=q,b=v;break; case 4: r=t,g=p,b=v;break; - case 5: r=v,g=p,b=q;break; + case 5: r=v,g=p,b=q; } d.Cf.SR.value=r; d.Cf.SG.value=g; @@ -368,7 +369,19 @@ resp+=d.Cf.HF.value; resp+=(d.Cf.SC.checked)?"&CF=1":"&CF=0"; resp+=(d.Cf.EC.checked)?"&CE=1":"&CE=0"; - UV(); + GIO(); + } + function ColSec(i) + { + switch(i) + { + case 0: resp+="&SW";break; + case 1: resp+="&SB";break; + case 2: resp+="&SR=1";break; + case 3: resp+="&SP";break; + case 4: resp+="&SC";break; + case 5: resp+="&SR=0"; + } GIO(); } @@ -601,11 +614,12 @@


Set secondary color to - - - - - + + + + + + or

Custom Theater Chase
using primary and @@ -620,8 +634,9 @@ -


- Click checkmark to apply brightness, color and effects. +


+ Click checkmark to apply brightness, color and effects.
+ Effect 0 is the configuration when the light is powered up.

diff --git a/wled00/htmls00.h b/wled00/htmls00.h index 6e55bb2b..6ad9b98a 100644 --- a/wled00/htmls00.h +++ b/wled00/htmls00.h @@ -20,13 +20,13 @@ const char favicon[156] PROGMEM = { /* * Index html */ -//head +//head (js, css) const char PAGE_index0[] PROGMEM = R"=====( WLED 0.4p - + )====="; @@ -90,11 +90,12 @@ Effect Panel




Set secondary color to - - - - - + + + + + +or

Custom Theater Chase
using primary and @@ -109,8 +110,9 @@ Favorite Presets

-


-Click checkmark to apply brightness, color and effects. +


+Click checkmark to apply brightness, color and effects.
+Effect 0 is the configuration when the light is powered up.

diff --git a/wled00/CallbackFunction.h b/wled00/src/dependencies/alexa-multiple/CallbackFunction.h similarity index 100% rename from wled00/CallbackFunction.h rename to wled00/src/dependencies/alexa-multiple/CallbackFunction.h diff --git a/wled00/src/dependencies/alexa-multiple/LICENSE.txt b/wled00/src/dependencies/alexa-multiple/LICENSE.txt new file mode 100644 index 00000000..8d34afeb --- /dev/null +++ b/wled00/src/dependencies/alexa-multiple/LICENSE.txt @@ -0,0 +1,23 @@ +https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch + +The MIT License (MIT) + +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/wled00/Switch.cpp b/wled00/src/dependencies/alexa-multiple/Switch.cpp similarity index 83% rename from wled00/Switch.cpp rename to wled00/src/dependencies/alexa-multiple/Switch.cpp index 00b38215..5ed674ed 100644 --- a/wled00/Switch.cpp +++ b/wled00/src/dependencies/alexa-multiple/Switch.cpp @@ -1,11 +1,21 @@ #include "Switch.h" #include "CallbackFunction.h" +//#define DEBUG +#ifdef DEBUG + #define DEBUG_PRINT(x) Serial.print (x) + #define DEBUG_PRINTLN(x) Serial.println (x) + #define DEBUG_PRINTF(x) Serial.printf (x) +#else + #define DEBUG_PRINT(x) + #define DEBUG_PRINTLN(x) + #define DEBUG_PRINTF(x) +#endif //<> Switch::Switch(){ - Serial.println("default constructor called"); + DEBUG_PRINTLN("default constructor called"); } //Switch::Switch(String alexaInvokeName,unsigned int port){ Switch::Switch(String alexaInvokeName, unsigned int port, CallbackFunction oncb, CallbackFunction offcb){ @@ -62,12 +72,12 @@ void Switch::startWebServer(){ //server->onNotFound(handleNotFound); server->begin(); - Serial.println("WebServer started on port: "); - Serial.println(localPort); + DEBUG_PRINTLN("WebServer started on port: "); + DEBUG_PRINTLN(localPort); } void Switch::handleEventservice(){ - Serial.println(" ########## Responding to eventservice.xml ... ########\n"); + DEBUG_PRINTLN(" ########## Responding to eventservice.xml ... ########\n"); String eventservice_xml = "" "" @@ -101,23 +111,23 @@ void Switch::handleEventservice(){ } void Switch::handleUpnpControl(){ - Serial.println("########## Responding to /upnp/control/basicevent1 ... ##########"); + DEBUG_PRINTLN("########## Responding to /upnp/control/basicevent1 ... ##########"); //for (int x=0; x <= HTTP.args(); x++) { - // Serial.println(HTTP.arg(x)); + // DEBUG_PRINTLN(HTTP.arg(x)); //} String request = server->arg(0); - Serial.print("request:"); - Serial.println(request); + DEBUG_PRINT("request:"); + DEBUG_PRINTLN(request); if(request.indexOf("1") > 0) { - Serial.println("Got Turn on request"); + DEBUG_PRINTLN("Got Turn on request"); onCallback(); } if(request.indexOf("0") > 0) { - Serial.println("Got Turn off request"); + DEBUG_PRINTLN("Got Turn off request"); offCallback(); } @@ -129,7 +139,7 @@ void Switch::handleRoot(){ } void Switch::handleSetupXml(){ - Serial.println(" ########## Responding to setup.xml ... ########\n"); + DEBUG_PRINTLN(" ########## Responding to setup.xml ... ########\n"); IPAddress localIP = WiFi.localIP(); char s[16]; @@ -161,8 +171,8 @@ void Switch::handleSetupXml(){ server->send(200, "text/xml", setup_xml.c_str()); - Serial.print("Sending :"); - Serial.println(setup_xml); + DEBUG_PRINT("Sending :"); + DEBUG_PRINTLN(setup_xml); } String Switch::getAlexaInvokeName() { @@ -170,11 +180,11 @@ String Switch::getAlexaInvokeName() { } void Switch::respondToSearch(IPAddress& senderIP, unsigned int senderPort) { - Serial.println(""); - Serial.print("Sending response to "); - Serial.println(senderIP); - Serial.print("Port : "); - Serial.println(senderPort); + DEBUG_PRINTLN(""); + DEBUG_PRINT("Sending response to "); + DEBUG_PRINTLN(senderIP); + DEBUG_PRINT("Port : "); + DEBUG_PRINTLN(senderPort); IPAddress localIP = WiFi.localIP(); char s[16]; @@ -197,5 +207,5 @@ void Switch::respondToSearch(IPAddress& senderIP, unsigned int senderPort) { UDP.write(response.c_str()); UDP.endPacket(); - Serial.println("Response sent !"); + DEBUG_PRINTLN("Response sent !"); } diff --git a/wled00/Switch.h b/wled00/src/dependencies/alexa-multiple/Switch.h similarity index 100% rename from wled00/Switch.h rename to wled00/src/dependencies/alexa-multiple/Switch.h diff --git a/wled00/UpnpBroadcastResponder.cpp b/wled00/src/dependencies/alexa-multiple/UpnpBroadcastResponder.cpp similarity index 71% rename from wled00/UpnpBroadcastResponder.cpp rename to wled00/src/dependencies/alexa-multiple/UpnpBroadcastResponder.cpp index 2a721e33..32eae5a1 100644 --- a/wled00/UpnpBroadcastResponder.cpp +++ b/wled00/src/dependencies/alexa-multiple/UpnpBroadcastResponder.cpp @@ -1,6 +1,18 @@ #include "UpnpBroadcastResponder.h" #include "Switch.h" #include + +//#define DEBUG + +#ifdef DEBUG + #define DEBUG_PRINT(x) Serial.print (x) + #define DEBUG_PRINTLN(x) Serial.println (x) + #define DEBUG_PRINTF(x) Serial.printf (x) +#else + #define DEBUG_PRINT(x) + #define DEBUG_PRINTLN(x) + #define DEBUG_PRINTF(x) +#endif // Multicast declarations IPAddress ipMulti(239, 255, 255, 250); @@ -24,18 +36,18 @@ UpnpBroadcastResponder::~UpnpBroadcastResponder(){/*nothing to destruct*/} bool UpnpBroadcastResponder::beginUdpMulticast(){ boolean state = false; - Serial.println("Begin multicast .."); + DEBUG_PRINTLN("Begin multicast .."); if(UDP.beginMulticast(WiFi.localIP(), ipMulti, portMulti)) { - Serial.print("Udp multicast server started at "); - Serial.print(ipMulti); - Serial.print(":"); - Serial.println(portMulti); + DEBUG_PRINT("Udp multicast server started at "); + DEBUG_PRINT(ipMulti); + DEBUG_PRINT(":"); + DEBUG_PRINTLN(portMulti); state = true; } else{ - Serial.println("Connection failed"); + DEBUG_PRINTLN("Connection failed"); } return state; @@ -44,10 +56,10 @@ bool UpnpBroadcastResponder::beginUdpMulticast(){ //Switch *ptrArray; void UpnpBroadcastResponder::addDevice(Switch& device) { - Serial.print("Adding switch : "); - Serial.print(device.getAlexaInvokeName()); - Serial.print(" index : "); - Serial.println(numOfSwitchs); + DEBUG_PRINT("Adding switch : "); + DEBUG_PRINT(device.getAlexaInvokeName()); + DEBUG_PRINT(" index : "); + DEBUG_PRINTLN(numOfSwitchs); switches[numOfSwitchs] = device; numOfSwitchs++; @@ -69,7 +81,7 @@ void UpnpBroadcastResponder::serverLoop(){ if(request.indexOf('M-SEARCH') > 0) { if(request.indexOf("urn:Belkin:device:**") > 0) { - Serial.println("Got UDP Belkin Request.."); + DEBUG_PRINTLN("Got UDP Belkin Request.."); // int arrSize = sizeof(switchs) / sizeof(Switch); diff --git a/wled00/UpnpBroadcastResponder.h b/wled00/src/dependencies/alexa-multiple/UpnpBroadcastResponder.h similarity index 100% rename from wled00/UpnpBroadcastResponder.h rename to wled00/src/dependencies/alexa-multiple/UpnpBroadcastResponder.h diff --git a/wled00/src/dependencies/time/DateStrings.cpp b/wled00/src/dependencies/time/DateStrings.cpp new file mode 100644 index 00000000..3eccff3e --- /dev/null +++ b/wled00/src/dependencies/time/DateStrings.cpp @@ -0,0 +1,97 @@ +/* DateStrings.cpp + * Definitions for date strings for use with the Time library + * + * Updated for Arduino 1.5.7 18 July 2014 + * + * No memory is consumed in the sketch if your code does not call any of the string methods + * You can change the text of the strings, make sure the short strings are each exactly 3 characters + * the long strings can be any length up to the constant dt_MAX_STRING_LEN defined in TimeLib.h + * + */ + +#if defined(__AVR__) +#include +#else +// for compatiblity with Arduino Due and Teensy 3.0 and maybe others? +#define PROGMEM +#define PGM_P const char * +#define pgm_read_byte(addr) (*(const unsigned char *)(addr)) +#define pgm_read_word(addr) (*(const unsigned char **)(addr)) +#define strcpy_P(dest, src) strcpy((dest), (src)) +#endif +#include // for strcpy_P or strcpy +#include "TimeLib.h" + +// the short strings for each day or month must be exactly dt_SHORT_STR_LEN +#define dt_SHORT_STR_LEN 3 // the length of short strings + +static char buffer[dt_MAX_STRING_LEN+1]; // must be big enough for longest string and the terminating null + +const char monthStr0[] PROGMEM = ""; +const char monthStr1[] PROGMEM = "January"; +const char monthStr2[] PROGMEM = "February"; +const char monthStr3[] PROGMEM = "March"; +const char monthStr4[] PROGMEM = "April"; +const char monthStr5[] PROGMEM = "May"; +const char monthStr6[] PROGMEM = "June"; +const char monthStr7[] PROGMEM = "July"; +const char monthStr8[] PROGMEM = "August"; +const char monthStr9[] PROGMEM = "September"; +const char monthStr10[] PROGMEM = "October"; +const char monthStr11[] PROGMEM = "November"; +const char monthStr12[] PROGMEM = "December"; + +const PROGMEM char * const PROGMEM monthNames_P[] = +{ + monthStr0,monthStr1,monthStr2,monthStr3,monthStr4,monthStr5,monthStr6, + monthStr7,monthStr8,monthStr9,monthStr10,monthStr11,monthStr12 +}; + +const char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec"; + +const char dayStr0[] PROGMEM = "Err"; +const char dayStr1[] PROGMEM = "Sunday"; +const char dayStr2[] PROGMEM = "Monday"; +const char dayStr3[] PROGMEM = "Tuesday"; +const char dayStr4[] PROGMEM = "Wednesday"; +const char dayStr5[] PROGMEM = "Thursday"; +const char dayStr6[] PROGMEM = "Friday"; +const char dayStr7[] PROGMEM = "Saturday"; + +const PROGMEM char * const PROGMEM dayNames_P[] = +{ + dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7 +}; + +const char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThuFriSat"; + +/* functions to return date strings */ + +char* monthStr(uint8_t month) +{ + strcpy_P(buffer, (PGM_P)pgm_read_word(&(monthNames_P[month]))); + return buffer; +} + +char* monthShortStr(uint8_t month) +{ + for (int i=0; i < dt_SHORT_STR_LEN; i++) + buffer[i] = pgm_read_byte(&(monthShortNames_P[i+ (month*dt_SHORT_STR_LEN)])); + buffer[dt_SHORT_STR_LEN] = 0; + return buffer; +} + +char* dayStr(uint8_t day) +{ + strcpy_P(buffer, (PGM_P)pgm_read_word(&(dayNames_P[day]))); + return buffer; +} + +char* dayShortStr(uint8_t day) +{ + uint8_t index = day*dt_SHORT_STR_LEN; + for (int i=0; i < dt_SHORT_STR_LEN; i++) + buffer[i] = pgm_read_byte(&(dayShortNames_P[index + i])); + buffer[dt_SHORT_STR_LEN] = 0; + return buffer; +} diff --git a/wled00/src/dependencies/time/LICENSE.txt b/wled00/src/dependencies/time/LICENSE.txt new file mode 100644 index 00000000..4beeb919 --- /dev/null +++ b/wled00/src/dependencies/time/LICENSE.txt @@ -0,0 +1,25 @@ +https://github.com/PaulStoffregen/Time/ + +time.c - low level time and date functions +Copyright (c) Michael Margolis 2009-2014 +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +1.0 6 Jan 2010 - initial release +1.1 12 Feb 2010 - fixed leap year calculation error +1.2 1 Nov 2010 - fixed setTime bug (thanks to Korman for this) +1.3 24 Mar 2012 - many edits by Paul Stoffregen: fixed timeStatus() to update + status, updated examples for Arduino 1.0, fixed ARM + compatibility issues, added TimeArduinoDue and TimeTeensy3 + examples, add error checking and messages to RTC examples, + add examples to DS1307RTC library. +1.4 5 Sep 2014 - compatibility with Arduino 1.5.7 diff --git a/wled00/src/dependencies/time/Readme.txt b/wled00/src/dependencies/time/Readme.txt new file mode 100644 index 00000000..234242ab --- /dev/null +++ b/wled00/src/dependencies/time/Readme.txt @@ -0,0 +1,135 @@ +Readme file for Arduino Time Library + +Time is a library that provides timekeeping functionality for Arduino. + +The code is derived from the Playground DateTime library but is updated +to provide an API that is more flexable and easier to use. + +A primary goal was to enable date and time functionality that can be used with +a variety of external time sources with minimum differences required in sketch logic. + +Example sketches illustrate how similar sketch code can be used with: a Real Time Clock, +internet NTP time service, GPS time data, and Serial time messages from a computer +for time synchronization. + +The functions available in the library include: + +hour(); // the hour now (0-23) +minute(); // the minute now (0-59) +second(); // the second now (0-59) +day(); // the day now (1-31) +weekday(); // day of the week (1-7), Sunday is day 1 +month(); // the month now (1-12) +year(); // the full four digit year: (2009, 2010 etc) + +there are also functions to return the hour in 12 hour format +hourFormat12(); // the hour now in 12 hour format +isAM(); // returns true if time now is AM +isPM(); // returns true if time now is PM + +now(); // returns the current time as seconds since Jan 1 1970 + +The time and date functions can take an optional parameter for the time. This prevents +errors if the time rolls over between elements. For example, if a new minute begins +between getting the minute and second, the values will be inconsistent. Using the +following functions eliminates this probglem + time_t t = now(); // store the current time in time variable t + hour(t); // returns the hour for the given time t + minute(t); // returns the minute for the given time t + second(t); // returns the second for the given time t + day(t); // the day for the given time t + weekday(t); // day of the week for the given time t + month(t); // the month for the given time t + year(t); // the year for the given time t + + +Functions for managing the timer services are: + + setTime(t); // set the system time to the give time t + setTime(hr,min,sec,day,mnth,yr); // alternative to above, yr is 2 or 4 digit yr + // (2010 or 10 sets year to 2010) + adjustTime(adjustment); // adjust system time by adding the adjustment value + timeStatus(); // indicates if time has been set and recently synchronized + // returns one of the following enumerations: + timeNotSet // the time has never been set, the clock started at Jan 1 1970 + timeNeedsSync // the time had been set but a sync attempt did not succeed + timeSet // the time is set and is synced + +Time and Date values are not valid if the status is timeNotSet. Otherwise values can be used but +the returned time may have drifted if the status is timeNeedsSync. + + setSyncProvider(getTimeFunction); // set the external time provider + setSyncInterval(interval); // set the number of seconds between re-sync + + +There are many convenience macros in the time.h file for time constants and conversion +of time units. + +To use the library, copy the download to the Library directory. + +The Time directory contains the Time library and some example sketches +illustrating how the library can be used with various time sources: + +- TimeSerial.pde shows Arduino as a clock without external hardware. + It is synchronized by time messages sent over the serial port. + A companion Processing sketch will automatically provide these messages + if it is running and connected to the Arduino serial port. + +- TimeSerialDateStrings.pde adds day and month name strings to the sketch above + Short (3 character) and long strings are available to print the days of + the week and names of the months. + +- TimeRTC uses a DS1307 real time clock to provide time synchronization. + A basic RTC library named DS1307RTC is included in the download. + To run this sketch the DS1307RTC library must be installed. + +- TimeRTCSet is similar to the above and adds the ability to set the Real Time Clock + +- TimeRTCLog demonstrates how to calculate the difference between times. + It is a vary simple logger application that monitors events on digtial pins + and prints (to the serial port) the time of an event and the time period since + the previous event. + +- TimeNTP uses the Arduino Ethernet shield to access time using the internet NTP time service. + The NTP protocol uses UDP and the UdpBytewise library is required, see: + http://bitbucket.org/bjoern/arduino_osc/src/14667490521f/libraries/Ethernet/ + +- TimeGPS gets time from a GPS + This requires the TinyGPS library from Mikal Hart: + http://arduiniana.org/libraries/TinyGPS + +Differences between this code and the playground DateTime library +although the Time library is based on the DateTime codebase, the API has changed. +Changes in the Time library API: +- time elements are functions returning int (they are variables in DateTime) +- Years start from 1970 +- days of the week and months start from 1 (they start from 0 in DateTime) +- DateStrings do not require a seperate library +- time elements can be accessed non-atomically (in DateTime they are always atomic) +- function added to automatically sync time with extrnal source +- localTime and maketime parameters changed, localTime renamed to breakTime + +Technical notes: + +Internal system time is based on the standard Unix time_t. +The value is the number of seconds since Jan 1 1970. +System time begins at zero when the sketch starts. + +The internal time can be automatically synchronized at regular intervals to an external time source. +This is enabled by calling the setSyncProvider(provider) function - the provider argument is +the address of a function that returns the current time as a time_t. +See the sketches in the examples directory for usage. + +The default interval for re-syncing the time is 5 minutes but can be changed by calling the +setSyncInterval( interval) method to set the number of seconds between re-sync attempts. + +The Time library defines a structure for holding time elements that is a compact version of the C tm structure. +All the members of the Arduino tm structure are bytes and the year is offset from 1970. +Convenience macros provide conversion to and from the Arduino format. + +Low level functions to convert between system time and individual time elements are provided: + breakTime(time, &tm); // break time_t into elements stored in tm struct + makeTime(&tm); // return time_t from elements stored in tm struct + +The DS1307RTC library included in the download provides an example of how a time provider +can use the low level functions to interface with the Time library. diff --git a/wled00/src/dependencies/time/Time.cpp b/wled00/src/dependencies/time/Time.cpp new file mode 100644 index 00000000..5ca13277 --- /dev/null +++ b/wled00/src/dependencies/time/Time.cpp @@ -0,0 +1,321 @@ +/* + time.c - low level time and date functions + Copyright (c) Michael Margolis 2009-2014 + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + 1.0 6 Jan 2010 - initial release + 1.1 12 Feb 2010 - fixed leap year calculation error + 1.2 1 Nov 2010 - fixed setTime bug (thanks to Korman for this) + 1.3 24 Mar 2012 - many edits by Paul Stoffregen: fixed timeStatus() to update + status, updated examples for Arduino 1.0, fixed ARM + compatibility issues, added TimeArduinoDue and TimeTeensy3 + examples, add error checking and messages to RTC examples, + add examples to DS1307RTC library. + 1.4 5 Sep 2014 - compatibility with Arduino 1.5.7 +*/ + +#if ARDUINO >= 100 +#include +#else +#include +#endif + +#include "TimeLib.h" + +static tmElements_t tm; // a cache of time elements +static time_t cacheTime; // the time the cache was updated +static uint32_t syncInterval = 300; // time sync will be attempted after this many seconds + +void refreshCache(time_t t) { + if (t != cacheTime) { + breakTime(t, tm); + cacheTime = t; + } +} + +int hour() { // the hour now + return hour(now()); +} + +int hour(time_t t) { // the hour for the given time + refreshCache(t); + return tm.Hour; +} + +int hourFormat12() { // the hour now in 12 hour format + return hourFormat12(now()); +} + +int hourFormat12(time_t t) { // the hour for the given time in 12 hour format + refreshCache(t); + if( tm.Hour == 0 ) + return 12; // 12 midnight + else if( tm.Hour > 12) + return tm.Hour - 12 ; + else + return tm.Hour ; +} + +uint8_t isAM() { // returns true if time now is AM + return !isPM(now()); +} + +uint8_t isAM(time_t t) { // returns true if given time is AM + return !isPM(t); +} + +uint8_t isPM() { // returns true if PM + return isPM(now()); +} + +uint8_t isPM(time_t t) { // returns true if PM + return (hour(t) >= 12); +} + +int minute() { + return minute(now()); +} + +int minute(time_t t) { // the minute for the given time + refreshCache(t); + return tm.Minute; +} + +int second() { + return second(now()); +} + +int second(time_t t) { // the second for the given time + refreshCache(t); + return tm.Second; +} + +int day(){ + return(day(now())); +} + +int day(time_t t) { // the day for the given time (0-6) + refreshCache(t); + return tm.Day; +} + +int weekday() { // Sunday is day 1 + return weekday(now()); +} + +int weekday(time_t t) { + refreshCache(t); + return tm.Wday; +} + +int month(){ + return month(now()); +} + +int month(time_t t) { // the month for the given time + refreshCache(t); + return tm.Month; +} + +int year() { // as in Processing, the full four digit year: (2009, 2010 etc) + return year(now()); +} + +int year(time_t t) { // the year for the given time + refreshCache(t); + return tmYearToCalendar(tm.Year); +} + +/*============================================================================*/ +/* functions to convert to and from system time */ +/* These are for interfacing with time serivces and are not normally needed in a sketch */ + +// leap year calulator expects year argument as years offset from 1970 +#define LEAP_YEAR(Y) ( ((1970+Y)>0) && !((1970+Y)%4) && ( ((1970+Y)%100) || !((1970+Y)%400) ) ) + +static const uint8_t monthDays[]={31,28,31,30,31,30,31,31,30,31,30,31}; // API starts months from 1, this array starts from 0 + +void breakTime(time_t timeInput, tmElements_t &tm){ +// break the given time_t into time components +// this is a more compact version of the C library localtime function +// note that year is offset from 1970 !!! + + uint8_t year; + uint8_t month, monthLength; + uint32_t time; + unsigned long days; + + time = (uint32_t)timeInput; + tm.Second = time % 60; + time /= 60; // now it is minutes + tm.Minute = time % 60; + time /= 60; // now it is hours + tm.Hour = time % 24; + time /= 24; // now it is days + tm.Wday = ((time + 4) % 7) + 1; // Sunday is day 1 + + year = 0; + days = 0; + while((unsigned)(days += (LEAP_YEAR(year) ? 366 : 365)) <= time) { + year++; + } + tm.Year = year; // year is offset from 1970 + + days -= LEAP_YEAR(year) ? 366 : 365; + time -= days; // now it is days in this year, starting at 0 + + days=0; + month=0; + monthLength=0; + for (month=0; month<12; month++) { + if (month==1) { // february + if (LEAP_YEAR(year)) { + monthLength=29; + } else { + monthLength=28; + } + } else { + monthLength = monthDays[month]; + } + + if (time >= monthLength) { + time -= monthLength; + } else { + break; + } + } + tm.Month = month + 1; // jan is month 1 + tm.Day = time + 1; // day of month +} + +time_t makeTime(tmElements_t &tm){ +// assemble time elements into time_t +// note year argument is offset from 1970 (see macros in time.h to convert to other formats) +// previous version used full four digit year (or digits since 2000),i.e. 2009 was 2009 or 9 + + int i; + uint32_t seconds; + + // seconds from 1970 till 1 jan 00:00:00 of the given year + seconds= tm.Year*(SECS_PER_DAY * 365); + for (i = 0; i < tm.Year; i++) { + if (LEAP_YEAR(i)) { + seconds += SECS_PER_DAY; // add extra days for leap years + } + } + + // add days for this year, months start from 1 + for (i = 1; i < tm.Month; i++) { + if ( (i == 2) && LEAP_YEAR(tm.Year)) { + seconds += SECS_PER_DAY * 29; + } else { + seconds += SECS_PER_DAY * monthDays[i-1]; //monthDay array starts from 0 + } + } + seconds+= (tm.Day-1) * SECS_PER_DAY; + seconds+= tm.Hour * SECS_PER_HOUR; + seconds+= tm.Minute * SECS_PER_MIN; + seconds+= tm.Second; + return (time_t)seconds; +} +/*=====================================================*/ +/* Low level system time functions */ + +static uint32_t sysTime = 0; +static uint32_t prevMillis = 0; +static uint32_t nextSyncTime = 0; +static timeStatus_t Status = timeNotSet; + +getExternalTime getTimePtr; // pointer to external sync function +//setExternalTime setTimePtr; // not used in this version + +#ifdef TIME_DRIFT_INFO // define this to get drift data +time_t sysUnsyncedTime = 0; // the time sysTime unadjusted by sync +#endif + + +time_t now() { + // calculate number of seconds passed since last call to now() + while (millis() - prevMillis >= 1000) { + // millis() and prevMillis are both unsigned ints thus the subtraction will always be the absolute value of the difference + sysTime++; + prevMillis += 1000; +#ifdef TIME_DRIFT_INFO + sysUnsyncedTime++; // this can be compared to the synced time to measure long term drift +#endif + } + if (nextSyncTime <= sysTime) { + if (getTimePtr != 0) { + time_t t = getTimePtr(); + if (t != 0) { + setTime(t); + } else { + nextSyncTime = sysTime + syncInterval; + Status = (Status == timeNotSet) ? timeNotSet : timeNeedsSync; + } + } + } + return (time_t)sysTime; +} + +void setTime(time_t t) { +#ifdef TIME_DRIFT_INFO + if(sysUnsyncedTime == 0) + sysUnsyncedTime = t; // store the time of the first call to set a valid Time +#endif + + sysTime = (uint32_t)t; + nextSyncTime = (uint32_t)t + syncInterval; + Status = timeSet; + prevMillis = millis(); // restart counting from now (thanks to Korman for this fix) +} + +void setTime(int hr,int min,int sec,int dy, int mnth, int yr){ + // year can be given as full four digit year or two digts (2010 or 10 for 2010); + //it is converted to years since 1970 + if( yr > 99) + yr = yr - 1970; + else + yr += 30; + tm.Year = yr; + tm.Month = mnth; + tm.Day = dy; + tm.Hour = hr; + tm.Minute = min; + tm.Second = sec; + setTime(makeTime(tm)); +} + +void adjustTime(long adjustment) { + sysTime += adjustment; +} + +// indicates if time has been set and recently synchronized +timeStatus_t timeStatus() { + now(); // required to actually update the status + return Status; +} + +void setSyncProvider( getExternalTime getTimeFunction){ + getTimePtr = getTimeFunction; + nextSyncTime = sysTime; + now(); // this will sync the clock +} + +void setSyncInterval(time_t interval){ // set the number of seconds between re-sync + syncInterval = (uint32_t)interval; + nextSyncTime = sysTime + syncInterval; +} diff --git a/wled00/src/dependencies/time/Time.h b/wled00/src/dependencies/time/Time.h new file mode 100644 index 00000000..a79b0801 --- /dev/null +++ b/wled00/src/dependencies/time/Time.h @@ -0,0 +1 @@ +#include "TimeLib.h" diff --git a/wled00/src/dependencies/time/TimeLib.h b/wled00/src/dependencies/time/TimeLib.h new file mode 100644 index 00000000..ddb16685 --- /dev/null +++ b/wled00/src/dependencies/time/TimeLib.h @@ -0,0 +1,144 @@ +/* + time.h - low level time and date functions +*/ + +/* + July 3 2011 - fixed elapsedSecsThisWeek macro (thanks Vincent Valdy for this) + - fixed daysToTime_t macro (thanks maniacbug) +*/ + +#ifndef _Time_h +#ifdef __cplusplus +#define _Time_h + +#include +#ifndef __AVR__ +#include // for __time_t_defined, but avr libc lacks sys/types.h +#endif + + +#if !defined(__time_t_defined) // avoid conflict with newlib or other posix libc +typedef unsigned long time_t; +#endif + + +// This ugly hack allows us to define C++ overloaded functions, when included +// from within an extern "C", as newlib's sys/stat.h does. Actually it is +// intended to include "time.h" from the C library (on ARM, but AVR does not +// have that file at all). On Mac and Windows, the compiler will find this +// "Time.h" instead of the C library "time.h", so we may cause other weird +// and unpredictable effects by conflicting with the C library header "time.h", +// but at least this hack lets us define C++ functions as intended. Hopefully +// nothing too terrible will result from overriding the C library header?! +extern "C++" { +typedef enum {timeNotSet, timeNeedsSync, timeSet +} timeStatus_t ; + +typedef enum { + dowInvalid, dowSunday, dowMonday, dowTuesday, dowWednesday, dowThursday, dowFriday, dowSaturday +} timeDayOfWeek_t; + +typedef enum { + tmSecond, tmMinute, tmHour, tmWday, tmDay,tmMonth, tmYear, tmNbrFields +} tmByteFields; + +typedef struct { + uint8_t Second; + uint8_t Minute; + uint8_t Hour; + uint8_t Wday; // day of week, sunday is day 1 + uint8_t Day; + uint8_t Month; + uint8_t Year; // offset from 1970; +} tmElements_t, TimeElements, *tmElementsPtr_t; + +//convenience macros to convert to and from tm years +#define tmYearToCalendar(Y) ((Y) + 1970) // full four digit year +#define CalendarYrToTm(Y) ((Y) - 1970) +#define tmYearToY2k(Y) ((Y) - 30) // offset is from 2000 +#define y2kYearToTm(Y) ((Y) + 30) + +typedef time_t(*getExternalTime)(); +//typedef void (*setExternalTime)(const time_t); // not used in this version + + +/*==============================================================================*/ +/* Useful Constants */ +#define SECS_PER_MIN ((time_t)(60UL)) +#define SECS_PER_HOUR ((time_t)(3600UL)) +#define SECS_PER_DAY ((time_t)(SECS_PER_HOUR * 24UL)) +#define DAYS_PER_WEEK ((time_t)(7UL)) +#define SECS_PER_WEEK ((time_t)(SECS_PER_DAY * DAYS_PER_WEEK)) +#define SECS_PER_YEAR ((time_t)(SECS_PER_WEEK * 52UL)) +#define SECS_YR_2000 ((time_t)(946684800UL)) // the time at the start of y2k + +/* Useful Macros for getting elapsed time */ +#define numberOfSeconds(_time_) (_time_ % SECS_PER_MIN) +#define numberOfMinutes(_time_) ((_time_ / SECS_PER_MIN) % SECS_PER_MIN) +#define numberOfHours(_time_) (( _time_% SECS_PER_DAY) / SECS_PER_HOUR) +#define dayOfWeek(_time_) ((( _time_ / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday +#define elapsedDays(_time_) ( _time_ / SECS_PER_DAY) // this is number of days since Jan 1 1970 +#define elapsedSecsToday(_time_) (_time_ % SECS_PER_DAY) // the number of seconds since last midnight +// The following macros are used in calculating alarms and assume the clock is set to a date later than Jan 1 1971 +// Always set the correct time before settting alarms +#define previousMidnight(_time_) (( _time_ / SECS_PER_DAY) * SECS_PER_DAY) // time at the start of the given day +#define nextMidnight(_time_) ( previousMidnight(_time_) + SECS_PER_DAY ) // time at the end of the given day +#define elapsedSecsThisWeek(_time_) (elapsedSecsToday(_time_) + ((dayOfWeek(_time_)-1) * SECS_PER_DAY) ) // note that week starts on day 1 +#define previousSunday(_time_) (_time_ - elapsedSecsThisWeek(_time_)) // time at the start of the week for the given time +#define nextSunday(_time_) ( previousSunday(_time_)+SECS_PER_WEEK) // time at the end of the week for the given time + + +/* Useful Macros for converting elapsed time to a time_t */ +#define minutesToTime_t ((M)) ( (M) * SECS_PER_MIN) +#define hoursToTime_t ((H)) ( (H) * SECS_PER_HOUR) +#define daysToTime_t ((D)) ( (D) * SECS_PER_DAY) // fixed on Jul 22 2011 +#define weeksToTime_t ((W)) ( (W) * SECS_PER_WEEK) + +/*============================================================================*/ +/* time and date functions */ +int hour(); // the hour now +int hour(time_t t); // the hour for the given time +int hourFormat12(); // the hour now in 12 hour format +int hourFormat12(time_t t); // the hour for the given time in 12 hour format +uint8_t isAM(); // returns true if time now is AM +uint8_t isAM(time_t t); // returns true the given time is AM +uint8_t isPM(); // returns true if time now is PM +uint8_t isPM(time_t t); // returns true the given time is PM +int minute(); // the minute now +int minute(time_t t); // the minute for the given time +int second(); // the second now +int second(time_t t); // the second for the given time +int day(); // the day now +int day(time_t t); // the day for the given time +int weekday(); // the weekday now (Sunday is day 1) +int weekday(time_t t); // the weekday for the given time +int month(); // the month now (Jan is month 1) +int month(time_t t); // the month for the given time +int year(); // the full four digit year: (2009, 2010 etc) +int year(time_t t); // the year for the given time + +time_t now(); // return the current time as seconds since Jan 1 1970 +void setTime(time_t t); +void setTime(int hr,int min,int sec,int day, int month, int yr); +void adjustTime(long adjustment); + +/* date strings */ +#define dt_MAX_STRING_LEN 9 // length of longest date string (excluding terminating null) +char* monthStr(uint8_t month); +char* dayStr(uint8_t day); +char* monthShortStr(uint8_t month); +char* dayShortStr(uint8_t day); + +/* time sync functions */ +timeStatus_t timeStatus(); // indicates if time has been set and recently synchronized +void setSyncProvider( getExternalTime getTimeFunction); // identify the external time provider +void setSyncInterval(time_t interval); // set the number of seconds between re-sync + +/* low level functions to convert to and from system time */ +void breakTime(time_t time, tmElements_t &tm); // break time_t into elements +time_t makeTime(tmElements_t &tm); // convert time elements into time_t + +} // extern "C++" +#endif // __cplusplus +#endif /* _Time_h */ + diff --git a/wled00/src/dependencies/time/keywords.txt b/wled00/src/dependencies/time/keywords.txt new file mode 100644 index 00000000..073f8f88 --- /dev/null +++ b/wled00/src/dependencies/time/keywords.txt @@ -0,0 +1,34 @@ +####################################### +# Syntax Coloring Map For Time +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### +time_t KEYWORD1 +####################################### +# Methods and Functions (KEYWORD2) +####################################### +now KEYWORD2 +second KEYWORD2 +minute KEYWORD2 +hour KEYWORD2 +day KEYWORD2 +month KEYWORD2 +year KEYWORD2 +isAM KEYWORD2 +isPM KEYWORD2 +weekday KEYWORD2 +setTime KEYWORD2 +adjustTime KEYWORD2 +setSyncProvider KEYWORD2 +setSyncInterval KEYWORD2 +timeStatus KEYWORD2 +TimeLib KEYWORD2 +####################################### +# Instances (KEYWORD2) +####################################### + +####################################### +# Constants (LITERAL1) +####################################### diff --git a/wled00/src/dependencies/time/library.json b/wled00/src/dependencies/time/library.json new file mode 100644 index 00000000..6603650f --- /dev/null +++ b/wled00/src/dependencies/time/library.json @@ -0,0 +1,26 @@ +{ + "name": "Time", + "description": "Time keeping library", + "keywords": "Time, date, hour, minute, second, day, week, month, year, RTC", + "authors": [ + { + "name": "Michael Margolis" + }, + { + "name": "Paul Stoffregen", + "email": "paul@pjrc.com", + "url": "http://www.pjrc.com", + "maintainer": true + } + ], + "repository": { + "type": "git", + "url": "https://github.com/PaulStoffregen/Time" + }, + "version": "1.5", + "homepage": "http://playground.arduino.cc/Code/Time", + "frameworks": "Arduino", + "examples": [ + "examples/*/*.ino" + ] +} diff --git a/wled00/src/dependencies/time/library.properties b/wled00/src/dependencies/time/library.properties new file mode 100644 index 00000000..49b1e2a1 --- /dev/null +++ b/wled00/src/dependencies/time/library.properties @@ -0,0 +1,10 @@ +name=Time +version=1.5 +author=Michael Margolis +maintainer=Paul Stoffregen +sentence=Timekeeping functionality for Arduino +paragraph=Date and Time functions, with provisions to synchronize to external time sources like GPS and NTP (Internet). This library is often used together with TimeAlarms and DS1307RTC. +category=Timing +url=http://playground.arduino.cc/code/time +architectures=* + diff --git a/wled00/src/dependencies/timezone/LICENSE.md b/wled00/src/dependencies/timezone/LICENSE.md new file mode 100644 index 00000000..93345939 --- /dev/null +++ b/wled00/src/dependencies/timezone/LICENSE.md @@ -0,0 +1,11 @@ +#Arduino Timezone Library v1.0 +https://github.com/JChristensen/Timezone +LICENSE file +Jack Christensen Mar 2012 + +![CC BY-SA](http://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-sa.png) +##CC BY-SA +Arduino Timezone Library by Jack Christensen is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to: +Creative Commons +444 Castro Street, Suite 900 +Mountain View, CA 94041 diff --git a/wled00/src/dependencies/timezone/ReadMe.md b/wled00/src/dependencies/timezone/ReadMe.md new file mode 100644 index 00000000..4f1662bc --- /dev/null +++ b/wled00/src/dependencies/timezone/ReadMe.md @@ -0,0 +1,173 @@ +#Arduino Timezone Library v1.0 +https://github.com/JChristensen/Timezone +ReadMe file +Jack Christensen Mar 2012 + +![CC BY-SA](http://mirrors.creativecommons.org/presskit/buttons/80x15/png/by-sa.png) + +##Introduction +The **Timezone** library is designed to work in conjunction with the [Arduino Time library](http://www.arduino.cc/playground/Code/Time). The Time library must be installed and referenced in your sketch with `#include `. This documentation assumes some familiarity with the Time library. + +The primary aim of the **Timezone** library is to convert Universal Coordinated Time (UTC) to the correct local time, whether it is daylight saving time (a.k.a. summer time) or standard time. The time source could be a GPS receiver, an NTP server, or a Real-Time Clock (RTC) set to UTC. But whether a hardware RTC or other time source is even present is immaterial; although the Time library can function as a software RTC without additional hardware, its accuracy is dependent on the accuracy of the microcontroller's system clock. + +The **Timezone** library implements two objects to facilitate time zone conversions: +- A **TimeChangeRule** object describes when local time changes to daylight (summer) time, or to standard time, for a particular locale. +- A **Timezone** object uses **TimeChangeRule**s to perform conversions and related functions. It can also write its **TimeChangeRule**s to EEPROM, or read them from EEPROM. Multiple time zones can be represented by defining multiple **Timezone** objects. + +##Installation +To use the **Timezone** library: +- Go to https://github.com/JChristensen/Timezone and click the **Download ZIP** button to download the repository as a ZIP file to a convenient location on your PC. +- Uncompress the downloaded file. This will result in a folder containing all the files for the library, that has a name that includes the branch name, for example **Timezone-master**. +- Rename the folder to just **Timezone**. +- Copy the renamed folder to the Arduino sketchbook\libraries folder. + +##Examples +The following example sketches are included with the **Timezone** library: +- **Clock:** A simple self-adjusting clock for a single time zone. **TimeChangeRule**s may be optionally read from EEPROM. +- **HardwareRTC:** A self-adjusting clock for one time zone using an external real-time clock, either a DS1307 or DS3231 (e.g. Chronodot) which is set to UTC. +- **WorldClock:** A self-adjusting clock for multiple time zones. +- **WriteRules:** A sketch to write **TimeChangeRule**s to EEPROM. + +##Coding TimeChangeRules +Normally these will be coded in pairs for a given time zone: One rule to describe when daylight (summer) time starts, and one to describe when standard time starts. + +As an example, here in the Eastern US time zone, Eastern Daylight Time (EDT) starts on the 2nd Sunday in March at 02:00 local time. Eastern Standard Time (EST) starts on the 1st Sunday in November at 02:00 local time. + +Define a **TimeChangeRule** as follows: + +`TimeChangeRule myRule = {abbrev, week, dow, month, hour, offset};` + +Where: + +**abbrev** is a character string abbreviation for the time zone; it must be no longer than five characters. + +**week** is the week of the month that the rule starts. + +**dow** is the day of the week that the rule starts. + +**hour** is the hour in local time that the rule starts (0-23). + +**offset** is the UTC offset _in minutes_ for the time zone being defined. + +For convenience, the following symbolic names can be used: + +**week:** First, Second, Third, Fourth, Last +**dow:** Sun, Mon, Tue, Wed, Thu, Fri, Sat +**month:** Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec + +For the Eastern US time zone, the **TimeChangeRule**s could be defined as follows: + +```c++ +TimeChangeRule usEDT = {"EDT", Second, Sun, Mar, 2, -240}; //UTC - 4 hours +TimeChangeRule usEST = {"EST", First, Sun, Nov, 2, -300}; //UTC - 5 hours +``` + +For a time zone that does not change to daylight/summer time, pass the same rule twice to the constructor, for example: +`Timezone usAZ(usMST, usMST);` + +##Coding Timezone objects +There are two ways to define **Timezone** objects. + +By first defining **TimeChangeRule**s (as above) and giving the daylight time rule and the standard time rule (assuming usEDT and usEST defined as above): +`Timezone usEastern(usEDT, usEST);` + +By reading rules previously stored in EEPROM. This reads both the daylight and standard time rules previously stored at EEPROM address 100: +`Timezone usPacific(100);` + +Note that **TimeChangeRule**s require 12 bytes of storage each, so the pair of rules associated with a Timezone object requires 24 bytes total. This could possibly change in future versions of the library. The size of a **TimeChangeRule** can be checked with `sizeof(usEDT)`. + +##Timezone library methods +Note that the `time_t` data type is defined by the Arduino Time library . See the [Time library documentation](http://www.arduino.cc/playground/Code/Time) for additional details. + +###time_t toLocal(time_t utc); +#####Description +Converts the given UTC time to local time, standard or daylight as appropriate. +#####Syntax +`myTZ.toLocal(utc);` +#####Parameters +***utc:*** Universal Coordinated Time *(time_t)* +#####Returns +Local time *(time_t)* +#####Example +```c++ +time_t eastern, utc; +TimeChangeRule usEDT = {"EDT", Second, Sun, Mar, 2, -240}; //UTC - 4 hours +TimeChangeRule usEST = {"EST", First, Sun, Nov, 2, -300}; //UTC - 5 hours +Timezone usEastern(usEDT, usEST); +utc = now(); //current time from the Time Library +eastern = usEastern.toLocal(utc); +``` + +###time_t toLocal(time_t utc, TimeChangeRule **tcr); +#####Description +As above, converts the given UTC time to local time, and also returns a pointer to the **TimeChangeRule** that was applied to do the conversion. This could then be used, for example, to include the time zone abbreviation as part of a time display. The caller must take care not to alter the pointed **TimeChangeRule**, as this will then result in incorrect conversions. +#####Syntax +`myTZ.toLocal(utc, &tcr);` +#####Parameters +***utc:*** Universal Coordinated Time *(time_t)* +***tcr:*** Address of a pointer to a **TimeChangeRule** _(\*\*TimeChangeRule)_ +#####Returns +Local time *(time_t)* +Pointer to **TimeChangeRule** _(\*\*TimeChangeRule)_ +#####Example +```c++ +time_t eastern, utc; +TimeChangeRule *tcr; +TimeChangeRule usEDT = {"EDT", Second, Sun, Mar, 2, -240}; //UTC - 4 hours +TimeChangeRule usEST = {"EST", First, Sun, Nov, 2, -300}; //UTC - 5 hours +Timezone usEastern(usEDT, usEST); +utc = now(); //current time from the Time Library +eastern = usEastern.toLocal(utc, &tcr); +Serial.print("The time zone is: "); +Serial.println(tcr -> abbrev); +``` + +###boolean utcIsDST(time_t utc); +###boolean locIsDST(time_t local); +#####Description +These functions determine whether a given UTC time or a given local time is within the daylight saving (summer) time interval, and return true or false accordingly. +#####Syntax +`utcIsDST(utc);` +`locIsDST(local);` +#####Parameters +***utc:*** Universal Coordinated Time *(time_t)* +***local:*** Local Time *(time_t)* +#####Returns +true or false *(boolean)* +#####Example +`if (usEastern.utcIsDST(utc)) { /*do something*/ }` + +###void readRules(int address); +###void writeRules(int address); +#####Description +These functions read or write a **Timezone** object's two **TimeChangeRule**s from or to EEPROM. +#####Syntax +`myTZ.readRules(address);` +`myTZ.writeRules(address);` +#####Parameters +***address:*** The beginning EEPROM address to write to or read from *(int)* +#####Returns +None. +#####Example +`usEastern.writeRules(100); //write rules beginning at EEPROM address 100` + +###time_t toUTC(time_t local); +#####Description +Converts the given local time to UTC time. + +**WARNING:** This function is provided for completeness, but should seldom be needed and should be used sparingly and carefully. + +Ambiguous situations occur after the Standard-to-DST and the DST-to-Standard time transitions. When changing to DST, there is one hour of local time that does not exist, since the clock moves forward one hour. Similarly, when changing to standard time, there is one hour of local time that occurs twice since the clock moves back one hour. + +This function does not test whether it is passed an erroneous time value during the Local-to-DST transition that does not exist. If passed such a time, an incorrect UTC time value will be returned. + +If passed a local time value during the DST-to-Local transition that occurs twice, it will be treated as the earlier time, i.e. the time that occurs before the transition. + +Calling this function with local times during a transition interval should be +avoided! +#####Syntax +`myTZ.toUTC(local);` +#####Parameters +***local:*** Local Time *(time_t)* +#####Returns +UTC *(time_t)* diff --git a/wled00/src/dependencies/timezone/Timezone.cpp b/wled00/src/dependencies/timezone/Timezone.cpp new file mode 100644 index 00000000..a7ff97df --- /dev/null +++ b/wled00/src/dependencies/timezone/Timezone.cpp @@ -0,0 +1,211 @@ +/*----------------------------------------------------------------------* + * Arduino Timezone Library v1.0 * + * Jack Christensen Mar 2012 * + * * + * This work is licensed under the Creative Commons Attribution- * + * ShareAlike 3.0 Unported License. To view a copy of this license, * + * visit http://creativecommons.org/licenses/by-sa/3.0/ or send a * + * letter to Creative Commons, 171 Second Street, Suite 300, * + * San Francisco, California, 94105, USA. * + *----------------------------------------------------------------------*/ + +#include "Timezone.h" + +//THIS LINE WAS ADDED FOR COMPATIBILY WITH THE WLED DEPENDENCY STRUCTURE. REMOVE IF YOU USE IT OUTSIDE OF WLED! +#include "../time/Time.h" + +#ifdef __AVR__ + #include +#endif + + +/*----------------------------------------------------------------------* + * Create a Timezone object from the given time change rules. * + *----------------------------------------------------------------------*/ +Timezone::Timezone(TimeChangeRule dstStart, TimeChangeRule stdStart) +{ + _dst = dstStart; + _std = stdStart; +} + +#ifdef __AVR__ +/*----------------------------------------------------------------------* + * Create a Timezone object from time change rules stored in EEPROM * + * at the given address. * + *----------------------------------------------------------------------*/ +Timezone::Timezone(int address) +{ + readRules(address); +} +#endif + +/*----------------------------------------------------------------------* + * Convert the given UTC time to local time, standard or * + * daylight time, as appropriate. * + *----------------------------------------------------------------------*/ +time_t Timezone::toLocal(time_t utc) +{ + //recalculate the time change points if needed + if (year(utc) != year(_dstUTC)) calcTimeChanges(year(utc)); + + if (utcIsDST(utc)) + return utc + _dst.offset * SECS_PER_MIN; + else + return utc + _std.offset * SECS_PER_MIN; +} + +/*----------------------------------------------------------------------* + * Convert the given UTC time to local time, standard or * + * daylight time, as appropriate, and return a pointer to the time * + * change rule used to do the conversion. The caller must take care * + * not to alter this rule. * + *----------------------------------------------------------------------*/ +time_t Timezone::toLocal(time_t utc, TimeChangeRule **tcr) +{ + //recalculate the time change points if needed + if (year(utc) != year(_dstUTC)) calcTimeChanges(year(utc)); + + if (utcIsDST(utc)) { + *tcr = &_dst; + return utc + _dst.offset * SECS_PER_MIN; + } + else { + *tcr = &_std; + return utc + _std.offset * SECS_PER_MIN; + } +} + +/*----------------------------------------------------------------------* + * Convert the given local time to UTC time. * + * * + * WARNING: * + * This function is provided for completeness, but should seldom be * + * needed and should be used sparingly and carefully. * + * * + * Ambiguous situations occur after the Standard-to-DST and the * + * DST-to-Standard time transitions. When changing to DST, there is * + * one hour of local time that does not exist, since the clock moves * + * forward one hour. Similarly, when changing to standard time, there * + * is one hour of local times that occur twice since the clock moves * + * back one hour. * + * * + * This function does not test whether it is passed an erroneous time * + * value during the Local -> DST transition that does not exist. * + * If passed such a time, an incorrect UTC time value will be returned. * + * * + * If passed a local time value during the DST -> Local transition * + * that occurs twice, it will be treated as the earlier time, i.e. * + * the time that occurs before the transistion. * + * * + * Calling this function with local times during a transition interval * + * should be avoided! * + *----------------------------------------------------------------------*/ +time_t Timezone::toUTC(time_t local) +{ + //recalculate the time change points if needed + if (year(local) != year(_dstLoc)) calcTimeChanges(year(local)); + + if (locIsDST(local)) + return local - _dst.offset * SECS_PER_MIN; + else + return local - _std.offset * SECS_PER_MIN; +} + +/*----------------------------------------------------------------------* + * Determine whether the given UTC time_t is within the DST interval * + * or the Standard time interval. * + *----------------------------------------------------------------------*/ +boolean Timezone::utcIsDST(time_t utc) +{ + //recalculate the time change points if needed + if (year(utc) != year(_dstUTC)) calcTimeChanges(year(utc)); + + if (_stdUTC > _dstUTC) //northern hemisphere + return (utc >= _dstUTC && utc < _stdUTC); + else //southern hemisphere + return !(utc >= _stdUTC && utc < _dstUTC); +} + +/*----------------------------------------------------------------------* + * Determine whether the given Local time_t is within the DST interval * + * or the Standard time interval. * + *----------------------------------------------------------------------*/ +boolean Timezone::locIsDST(time_t local) +{ + //recalculate the time change points if needed + if (year(local) != year(_dstLoc)) calcTimeChanges(year(local)); + + if (_stdLoc > _dstLoc) //northern hemisphere + return (local >= _dstLoc && local < _stdLoc); + else //southern hemisphere + return !(local >= _stdLoc && local < _dstLoc); +} + +/*----------------------------------------------------------------------* + * Calculate the DST and standard time change points for the given * + * given year as local and UTC time_t values. * + *----------------------------------------------------------------------*/ +void Timezone::calcTimeChanges(int yr) +{ + _dstLoc = toTime_t(_dst, yr); + _stdLoc = toTime_t(_std, yr); + _dstUTC = _dstLoc - _std.offset * SECS_PER_MIN; + _stdUTC = _stdLoc - _dst.offset * SECS_PER_MIN; +} + +/*----------------------------------------------------------------------* + * Convert the given DST change rule to a time_t value * + * for the given year. * + *----------------------------------------------------------------------*/ +time_t Timezone::toTime_t(TimeChangeRule r, int yr) +{ + tmElements_t tm; + time_t t; + uint8_t m, w; //temp copies of r.month and r.week + + m = r.month; + w = r.week; + if (w == 0) { //Last week = 0 + if (++m > 12) { //for "Last", go to the next month + m = 1; + yr++; + } + w = 1; //and treat as first week of next month, subtract 7 days later + } + + tm.Hour = r.hour; + tm.Minute = 0; + tm.Second = 0; + tm.Day = 1; + tm.Month = m; + tm.Year = yr - 1970; + t = makeTime(tm); //first day of the month, or first day of next month for "Last" rules + t += (7 * (w - 1) + (r.dow - weekday(t) + 7) % 7) * SECS_PER_DAY; + if (r.week == 0) t -= 7 * SECS_PER_DAY; //back up a week if this is a "Last" rule + return t; +} + +#ifdef __AVR__ +/*----------------------------------------------------------------------* + * Read the daylight and standard time rules from EEPROM at * + * the given address. * + *----------------------------------------------------------------------*/ +void Timezone::readRules(int address) +{ + eeprom_read_block((void *) &_dst, (void *) address, sizeof(_dst)); + address += sizeof(_dst); + eeprom_read_block((void *) &_std, (void *) address, sizeof(_std)); +} + +/*----------------------------------------------------------------------* + * Write the daylight and standard time rules to EEPROM at * + * the given address. * + *----------------------------------------------------------------------*/ +void Timezone::writeRules(int address) +{ + eeprom_write_block((void *) &_dst, (void *) address, sizeof(_dst)); + address += sizeof(_dst); + eeprom_write_block((void *) &_std, (void *) address, sizeof(_std)); +} + +#endif \ No newline at end of file diff --git a/wled00/src/dependencies/timezone/Timezone.h b/wled00/src/dependencies/timezone/Timezone.h new file mode 100644 index 00000000..e0581ee3 --- /dev/null +++ b/wled00/src/dependencies/timezone/Timezone.h @@ -0,0 +1,61 @@ +/*----------------------------------------------------------------------* + * Arduino Timezone Library v1.0 * + * Jack Christensen Mar 2012 * + * * + * This work is licensed under the Creative Commons Attribution- * + * ShareAlike 3.0 Unported License. To view a copy of this license, * + * visit http://creativecommons.org/licenses/by-sa/3.0/ or send a * + * letter to Creative Commons, 171 Second Street, Suite 300, * + * San Francisco, California, 94105, USA. * + *----------------------------------------------------------------------*/ + +#ifndef Timezone_h +#define Timezone_h +#if ARDUINO >= 100 +#include +#else +#include +#endif +#include //http://www.arduino.cc/playground/Code/Time + +//convenient constants for dstRules +enum week_t {Last, First, Second, Third, Fourth}; +enum dow_t {Sun=1, Mon, Tue, Wed, Thu, Fri, Sat}; +enum month_t {Jan=1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec}; + +//structure to describe rules for when daylight/summer time begins, +//or when standard time begins. +struct TimeChangeRule +{ + char abbrev[6]; //five chars max + uint8_t week; //First, Second, Third, Fourth, or Last week of the month + uint8_t dow; //day of week, 1=Sun, 2=Mon, ... 7=Sat + uint8_t month; //1=Jan, 2=Feb, ... 12=Dec + uint8_t hour; //0-23 + int offset; //offset from UTC in minutes +}; + +class Timezone +{ + public: + Timezone(TimeChangeRule dstStart, TimeChangeRule stdStart); + Timezone(int address); + time_t toLocal(time_t utc); + time_t toLocal(time_t utc, TimeChangeRule **tcr); + time_t toUTC(time_t local); + boolean utcIsDST(time_t utc); + boolean locIsDST(time_t local); + void readRules(int address); + void writeRules(int address); + + private: + void calcTimeChanges(int yr); + time_t toTime_t(TimeChangeRule r, int yr); + TimeChangeRule _dst; //rule for start of dst or summer time for any year + TimeChangeRule _std; //rule for start of standard time for any year + time_t _dstUTC; //dst start for given/current year, given in UTC + time_t _stdUTC; //std time start for given/current year, given in UTC + time_t _dstLoc; //dst start for given/current year, given in local time + time_t _stdLoc; //std time start for given/current year, given in local time +}; +#endif diff --git a/wled00/src/dependencies/timezone/keywords.txt b/wled00/src/dependencies/timezone/keywords.txt new file mode 100644 index 00000000..376c622e --- /dev/null +++ b/wled00/src/dependencies/timezone/keywords.txt @@ -0,0 +1,8 @@ +TimeChangeRule KEYWORD1 +Timezone KEYWORD1 +toLocal KEYWORD2 +toUTC KEYWORD2 +utcIsDST KEYWORD2 +locIsDST KEYWORD2 +readRules KEYWORD2 +writeRules KEYWORD2 \ No newline at end of file diff --git a/wled00/src/dependencies/ws2812fx/LICENSE.txt b/wled00/src/dependencies/ws2812fx/LICENSE.txt new file mode 100644 index 00000000..fe29daa8 --- /dev/null +++ b/wled00/src/dependencies/ws2812fx/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Harm Aldick + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/wled00/src/dependencies/ws2812fx/readme.txt b/wled00/src/dependencies/ws2812fx/readme.txt new file mode 100644 index 00000000..1fc452c0 --- /dev/null +++ b/wled00/src/dependencies/ws2812fx/readme.txt @@ -0,0 +1,4 @@ +https://github.com/kitesurfer1404/WS2812FX/ + +The WS2812FX implementation was heavily altered and differs from its master branch. +Due to regural changes to the library code it is kept in the source dir for now. \ No newline at end of file diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 3f8d7f77..9804c5af 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -8,19 +8,19 @@ #include #include #include -#include "WS2812FX.h" #include -#include -#include -#include +#include "src/dependencies/time/Time.h" +#include "src/dependencies/time/TimeLib.h" +#include "src/dependencies/timezone/Timezone.h" +#include "src/dependencies/alexa-multiple/switch.h" +#include "src/dependencies/alexa-multiple/UpnpBroadcastResponder.h" +#include "src/dependencies/alexa-multiple/CallbackFunction.h" #include "htmls00.h" #include "htmls01.h" -#include "switch.h" -#include "UpnpBroadcastResponder.h" -#include "CallbackFunction.h" +#include "WS2812FX.h" //version in format yymmddb (b = daily build) -#define VERSION 1712090 +#define VERSION 1712111 //If you have an RGBW strip, uncomment first line in WS2812FX.h! @@ -142,6 +142,7 @@ byte col_sec[]{0, 0, 0}; byte col_sec_it[]{0, 0, 0}; byte white, white_old, white_t, white_it; byte white_sec, white_sec_it; +uint8_t lastRandomIndex = 0; unsigned long transitionStartTime; unsigned long nightlightStartTime; float tper_last = 0; diff --git a/wled00/wled01_eeprom.ino b/wled00/wled01_eeprom.ino index 1620b2eb..5c5a566e 100644 --- a/wled00/wled01_eeprom.ino +++ b/wled00/wled01_eeprom.ino @@ -123,7 +123,7 @@ void saveSettingsToEEPROM() EEPROM.commit(); } -void loadSettingsFromEEPROM() +void loadSettingsFromEEPROM(bool first) { if (EEPROM.read(233) != 233) //first boot/reset to default { @@ -190,7 +190,7 @@ void loadSettingsFromEEPROM() col_s[1] = EEPROM.read(247); col[1] = col_s[1]; col_s[2] = EEPROM.read(248); col[2] = col_s[2]; bri_s = EEPROM.read(249); bri = bri_s; - if (!EEPROM.read(369)) + if (!EEPROM.read(369) && first) { bri = 0; bri_last = bri_s; } @@ -262,6 +262,10 @@ void loadSettingsFromEEPROM() //400 - 899 reserved useHSB = useHSBDefault; + + strip.setMode(effectCurrent); + strip.setSpeed(effectSpeed); + overlayCurrent = overlayDefault; } //PRESET PROTOCOL 20 bytes @@ -270,9 +274,9 @@ void loadSettingsFromEEPROM() void applyPreset(uint8_t index, bool loadBri, bool loadCol, bool loadFX) { - if (index == 255) loadSettingsFromEEPROM();//load boot defaults - if (index > 24) return; - uint16_t i = 400 + index*20; + if (index == 255 || index == 0) loadSettingsFromEEPROM(false);//load boot defaults + if (index > 25 || index < 1) return; + uint16_t i = 380 + index*20; if (EEPROM.read(i) == 0) return; if (loadBri) bri = EEPROM.read(i+1); if (loadCol) @@ -303,8 +307,9 @@ void applyPreset(uint8_t index, bool loadBri, bool loadCol, bool loadFX) void savePreset(uint8_t index) { - if (index > 24) return; - uint16_t i = 400 + index*20; + if (index > 25) return; + if (index < 1) {saveSettingsToEEPROM();return;} + uint16_t i = 380 + index*20;//min400 EEPROM.write(i, 1); EEPROM.write(i+1, bri); EEPROM.write(i+2, col[0]); diff --git a/wled00/wled03_set.ino b/wled00/wled03_set.ino index 4f5acf55..a629381f 100644 --- a/wled00/wled03_set.ino +++ b/wled00/wled03_set.ino @@ -2,6 +2,23 @@ * Receives client input */ +void _setRandomColor(bool _sec) +{ + lastRandomIndex = strip.get_random_wheel_index(lastRandomIndex); + uint32_t _color = strip.color_wheel(lastRandomIndex); + if (_sec){ + white_sec = ((_color >> 24) & 0xFF); + col_sec[0] = ((_color >> 16) & 0xFF); + col_sec[1] = ((_color >> 8) & 0xFF); + col_sec[2] = (_color & 0xFF); + } else { + white = ((_color >> 24) & 0xFF); + col[0] = ((_color >> 16) & 0xFF); + col[1] = ((_color >> 8) & 0xFF); + col[2] = (_color & 0xFF); + } +} + void handleSettingsSet() { if (server.hasArg("CSSID")) clientssid = server.arg("CSSID"); @@ -251,24 +268,24 @@ boolean handleSet(String req) bri = req.substring(pos + 3).toInt(); } //set red value - pos = req.indexOf("R="); + pos = req.indexOf("&R="); if (pos > 0) { - col[0] = req.substring(pos + 2).toInt(); + col[0] = req.substring(pos + 3).toInt(); } //set green value - pos = req.indexOf("G="); + pos = req.indexOf("&G="); if (pos > 0) { - col[1] = req.substring(pos + 2).toInt(); + col[1] = req.substring(pos + 3).toInt(); } //set blue value - pos = req.indexOf("B="); + pos = req.indexOf("&B="); if (pos > 0) { - col[2] = req.substring(pos + 2).toInt(); + col[2] = req.substring(pos + 3).toInt(); } //set white value - pos = req.indexOf("W="); + pos = req.indexOf("&W="); if (pos > 0) { - white = req.substring(pos + 2).toInt(); + white = req.substring(pos + 3).toInt(); } //set 2nd red value pos = req.indexOf("R2="); @@ -290,6 +307,55 @@ boolean handleSet(String req) if (pos > 0) { white_sec = req.substring(pos + 3).toInt(); } + //set 2nd to white + pos = req.indexOf("SW"); + if (pos > 0) { + if(useRGBW) { + white_sec = 255; + col_sec[0] = 0; + col_sec[1] = 0; + col_sec[2] = 0; + } else { + col_sec[0] = 255; + col_sec[1] = 255; + col_sec[2] = 255; + } + } + //set 2nd to black + pos = req.indexOf("SB"); + if (pos > 0) { + white_sec = 0; + col_sec[0] = 0; + col_sec[1] = 0; + col_sec[2] = 0; + } + //set to random hue SR=0->1st SR=1->2nd + pos = req.indexOf("SR"); + if (pos > 0) { + _setRandomColor(req.substring(pos + 3).toInt()); + } + //set 2nd to 1st + pos = req.indexOf("SP"); + if (pos > 0) { + col_sec[0] = col[0]; + col_sec[1] = col[1]; + col_sec[2] = col[2]; + white_sec = white; + } + //swap 2nd & 1st + pos = req.indexOf("SC"); + if (pos > 0) { + uint8_t _temp[4]; + for (int i = 0; i<3; i++) + { + _temp[i] = col[i]; + col[i] = col_sec[i]; + col_sec[i] = _temp[i]; + } + _temp[3] = white; + white = white_sec; + white_sec = _temp[3]; + } //set current effect index pos = req.indexOf("FX="); if (pos > 0) { @@ -322,9 +388,9 @@ boolean handleSet(String req) strip.unlockAll(); } //set individual pixel (range) to current color - pos = req.indexOf("I="); + pos = req.indexOf("&I="); if (pos > 0){ - int index = req.substring(pos + 2).toInt(); + int index = req.substring(pos + 3).toInt(); pos = req.indexOf("I2="); if (pos > 0){ int index2 = req.substring(pos + 3).toInt(); @@ -397,9 +463,9 @@ boolean handleSet(String req) if (auxTime == 0) auxActive = false; } //main toggle on/off - pos = req.indexOf("T="); + pos = req.indexOf("&T="); if (pos > 0) { - switch (req.substring(pos + 2).toInt()) + switch (req.substring(pos + 3).toInt()) { case 0: if (bri != 0){bri_last = bri; bri = 0;} break; //off case 1: bri = bri_last; break; //on @@ -413,6 +479,11 @@ boolean handleSet(String req) } } } + //set time (unix timestamp) + pos = req.indexOf("ST="); + if (pos > 0) { + setTime(req.substring(pos+3).toInt()); + } //set custom chase data bool _cc_updated = false; pos = req.indexOf("C0="); if (pos > 0) {cc_start = (req.substring(pos + 3).toInt()); _cc_updated = true;} diff --git a/wled00/wled05_init.ino b/wled00/wled05_init.ino index 5d5ff105..9a326cd9 100644 --- a/wled00/wled05_init.ino +++ b/wled00/wled05_init.ino @@ -23,7 +23,7 @@ void wledInit() DEBUG_PRINTLN("Init EEPROM"); EEPROM.begin(1024); - loadSettingsFromEEPROM(); + loadSettingsFromEEPROM(true); DEBUG_PRINT("CC: SSID: "); DEBUG_PRINT(clientssid); @@ -153,7 +153,6 @@ void wledInit() //Init alexa service alexaInit(); - overlayCurrent = overlayDefault; // Initialize NeoPixel Strip strip.init(); strip.setLedCount(ledcount);