* Initial support for WT32-ETH01 board
* Initial ethernet config option, doesn't save yet
* Fixed saving/restoring ethernet option, works now!
* Fixed ESP32-POE pin config (thanks to tbnobody)
* Remove esp32_eth target (use poe), minor cleanup
* Fix BTNPIN for WT32-ETH01, as found by @k7bbr
* Various fixes to ethernet option
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* Fix swipe behavior on firefox when clicking on palette selection input
When clicking on the palette select element on firefox, it would often swipe to the next tab due to a bug in firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1410816
* Update UI .h files and remove console log
* Added aurora effect
* Cosmetic changes prior to PR to match some guidelines
* Update FX.cpp
Moved mode_aurora function to end of FX.cpp
* Cosmetic changes prior to PR
- Changed new palette name to have a whitespace
- Undid changes to platformio.ini
* Removed commented out test palette
* Improved memory handling
Use SEGENV to allocate and manage dynamic memory needs of effect.
Only allocate as much memory as needed for current amount of waves set.
* Improvements to Aurora effect
- Smoother on low speed
- CRGB is trivially copiable
- Replaced Red & Blue mode
- Simplified logic and mem use a tiny bit
- Aurora2 palette a bit less yellowish
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* Adding SensorsToMqtt usermod, which allows WLED to read bmp280/SI7021/CCS811 sensors and publish it via MQTT to e.g. Home Assistant.
* undo some changes we dont want upstream
* undo some changes we dont want upstream2
Co-authored-by: Machiel Pronk <machiel.pronk89@gmail.com>
* New Effect "TV Simulator"
based on "Fake TV Light for Engineers" by Phillip Burgess https://learn.adafruit.com/fake-tv-light-for-engineers/arduino-sketch
* removed some not-used functions
...from my 1st attempt with "Phoney TV" - but this one did not look good.
* Dynamic Effect extended with a "smooth" variant
...to close#1114 / the "Dynamice fade effect" in the projects section
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
* New Effect "TV Simulator"
based on "Fake TV Light for Engineers" by Phillip Burgess https://learn.adafruit.com/fake-tv-light-for-engineers/arduino-sketch
* removed some not-used functions
...from my 1st attempt with "Phoney TV" - but this one did not look good.
* Created new version of tv_colors.h based on 18 movies
...and some corrections
* Add include guards for tv_colors.h and disable option
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* Add fields for customization Blynk host
Add fields to 'Sync Interfaces' for customization Blynk host.
Now you can set you own Blynk server.
All you needs its set custom host and port to local Blync server.
* Lower blynk host length (memory usage)
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
Fixed AP hide not saving (fixes#1520)
Fixed MQTT password re-transmitted to HTML
Hide Update buttons while uploading, accept .bin
Make sure AP password is at least 8 characters long
* Removed usermod Fix_unreachable_webserver
* Changed README. Added a compiler warning for ESP32
* Fix ESP32 compiling issue. Add instance ptr API.
* Updated usermods. Store config values. ESP32 fix.
* Store analog clock settings
* Rename JSON values
bring them visually more in line with the other settings
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* Prevent UI from sliding when using sliders (#1400)
An iro.js version bump in commit 98e4ac6 changed names for the slider &
colorwheel classes which made the filter in function lock() fail.
Also it seems that not all elements of the Iro sliders & colorwheel have
appropriate classes set. Just changing the names still sometimes failed
when the user accidentally grabbed a part of the slider / colorwheel
that has no class name set.
To mitigate this, lock() now checks the events classlist for classes
starting with "Iro" as well as it's parents classlist if no "Iro" classes
were found
* Regenerate wled00/html_ui.h
* Added Temperature Palette
Added cpt-city temperature_gp palette. Palette is nice combination of blues to reds to yellows. Reduced original cpt-city palette to 18 lines to fit WLED constraints. Tested palette and it visually is consistent with original cpt-city colors and look and works in WLED.
* Update palettes.h
* Update palettes.h
...in cfg.cpp the if statement used "IRPIN" (which is consistent to all other PIN names), but on the declaration-side "IR_PIN" was used.
Changed all occurences of "IR_PIN" to "IRPIN".
RGBW leds can be individually adressed through E1.31 control.
-Added option 'Multi RGBW' to the settings
-Modified e131.cpp accordingly
-Tuned other parameters to make it work
* Alexa RGBW Support
When adding an RGBW device to Alexa and then selecting a white color tone, Alexa will send CT values to the device. Having a warm white or cold white strip should use 100% of that strip and then add the RGB colors to get either a warmer color or a colder one.
* 40 keys IR Remote
Added IR remote with 40 keys to use with RGBW stripes.
* ESU8285 flash size corrected
* ESP32 fixes for Solid RGBW
...not implemented for ESP32 yet
ESP32 Solid RGBW defines
moved from env:esp32dev to env:esp32
ESP32 Solid RGBW defines
* Update readme.md
* Update readme.md
* Update readme.md
Update readme.md
* Use different IR remotes in the settings
To turn off IR remote use "0" in the settings, use 1 to 4 for different IR remote types.
* Use 5CH solid RGB stripes
adapt the logic to use CW and WW for different CT-values
* change from Opt-Out to Opt-In for solid (analoge) RGB stripes
Changed code from #define WLED_DISABLE_ANALOG_LEDS to #define WLED_USE_ANALOG_LEDS
* DEFINES for different devices added
* order of PINs alligned to hardware
* Update readme.md
* correct initialization of variable rgb[]
* SunRise Effect
NightLight used to brighten the light combined with fading from the actual (primary) color to the secondary color
* Fixed headline
RLYPIN definition dependant on WLED_USE_ANALOG_LEDS
Corrected list-item indents (readme.md)
updated to match upstream master (briLast in wled00.ino)
* Updates to adopt to upstream master
RLYPIN definition dependant on WLED_USE_ANALOG_LEDS
Fixed headline and corrected list-item indents (readme.md)
updated to match upstream master (briLast in wled00.ino)
* Sync with upstream master
* PIO ini correction
* sync of upstream readme.md
* FX intensity slider to desaturate Color in Colorloop FX
in default intensity (128) everything looks the same, decreasing the intensity will desaturate the color towards WHITE
* PIO changes
* adjusted linker scripts, debug settings etc.
* Override script updated accordingly
* ldscriipt for 1m0 adjusted
* backup files deleted
* deletion of wled00,ino.cpp
* remove travis build from PIO
* add custom builds to PIO
...to map the releases
* removed build_type = release (as this is default)
* updated to use espressif8266@2.3.3
...instead of espressif8266@2.3.2 (both on arduino 2.6.3)
* added more options to the PIO-override.ini
* analog, too
* build only 5 envs with Travis.CI
* should be include not exclude
* YAML correction
* next YAML
* UNDO
* some effects behave wrong with strips longer then 256 LEDs
This is particular true for the effects "Phased" and "Phased Noise" as well as for "Chase Rainbow".
The reason is that in this cases 256 is divided by SEGLEN and used in the formula, but with SEGLEN greater than 256 the integer result will always be ZERO.
Platformio.ini updates and streamlining (PR #1266)
my_config.h custom compile settings system (not yet used for much, adapted from PR #1266)
Linebreak after 5 quick select buttons
This returns the number of seconds remaining in the nightlight in the
"rem" field of the nightlight ("nl") state. If there is no nightlight
active, it returns -1.
The previous code only looked for certain keywords in the topic instead of comparing it completely.
For example if mqttDeviceTopic is set to "lights/colorRGB" the MQTT interface is unusable because
the search for "/col" will always return a match and therefore any MQTT command is interpreted as
a color.
The new code checks the full topic.
- Colorful effect now supports palettes
- Added C9 2 palette (#1291)
- Improved C9 palette brightness by 12%
- Disable onboard LED if LEDs are off (PR #1245)
- Added optional status LED (PR #1264)
- Realtime max. brightness now honors brightness factor (fixes#1271)
- Updated ArduinoJSON to 6.17.0
* Disable onboard LED when LEDs are not in use
* Remove unused variable
* Only disable onboard LED if LEDPIN == LED_BUILTIN
* Change LEDPIN to LED_BUILTIN
* A separate socket for UDP api has been added. This uses the same API as HTML. Commands for Loxone were added to the API.
* html files for udp api newly generated
* codm pixel controller board configurations added to platformio.ini file
* Parser for LX/LY commands adapted. Calculation of the values corrected. Segment handling for LX/LY removed.
* Lox parser moved to own file. Lox parser added to the JSON api. Within a segment LX and LY are now supported.
* serial port removed
* F() macro added
Co-authored-by: Marius Groos <marius.groos@codm.de>
* Add touch option to button handler
* Check if touch is pressed in setup
* Add TOUCHPIN build env and override example
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
* Allow modem sleep if power off and sleep permitted
* Only add auto modem sleep handling for ESP8266
* Add comment and remove redundant condition
Co-authored-by: Aircoookie <cschwinne@gmail.com>
* Change Temperature usermod to use async reading to avoid blocking
* Fix comparison on wait time
* Add
* Simplify logic in the loop method
* Optimize calls to minimize latency, inform user how long till first measurement
* disable usermod if sensor not found
* Added debug statements on init, update readme
* fix spelling error of celsius
* Akemi on the welcome screen
* Move style element to CSS
* Use smaller Akemi image, improve margin, rounded buttons
* New WLED logo on welcome page
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* New Segments are now initialized with default speed and intensity
* Open releases in new tab (#1152)
* open releases in new tab
* Revert "open releases in new tab"
This reverts commit 6e3940c8eb.
* open releases in new tab
Co-authored-by: Woody <>
Co-authored-by: Woody <27882680+WoodyLetsCode@users.noreply.github.com>
* Use maximum gzip compression
* Revert extra changes
* Remove extra code used when testing brotli compression
* Remove extra space on unrelated changes
* Add segment mirror option (#1010)
* Update new pull with playlist and palette changes
* Revert "Update new pull with playlist and palette changes"
This reverts commit 9802a7c4e2.
The existing code was very buggy - a 512 channel ArtNet packet sent data to
171 LEDs, not 170. Also the second ArtNet universe was off-by-one.
The math was very confusing with so many branches. The reduces the
amount of code and amount of branching.
Tested with Resolume + my own ArtNet software + 252 LEDs for ArtNet.
Tested with LedFx for e1.31
* Use string derived from serverDescription for wifi.hostname()
The code was sending illegal hostname strings to WiFi.hostname() (which is then submitted to DHCP and often times to DNS.) A valid hostname contains only alphanumeric characters and hyphens (though it can't start with a hypen.) This change simply alters the value passed to wifi.hostname() by replacing all non alphanum chars with hyphens while ensuring the first char is never a hyphen. If the resulting hostname is empty, it uses the escapedMac value (which I'm assuming is initialized by the time this code executes.)
This change would result issue #1033
* replace string with char array
prefix wled
improve documentation
Co-authored-by: garyd9 <garyd9@hotmail.com>
Co-authored-by: Gary Dezern <gdezern@internal.youforgot.net>
- Added Sunrise nightlight mode
- Added Chunchun effect
- Added `LO` (live override) command to HTTP API
- Added `mode` to `nl` object of JSON state API, deprecating `fade`
- Added light color scheme support to web UI (click sun next to brightness slider)
- Added option to hide labels in web UI (click flame icon next to intensity slider)
- Added hex color input (click palette icon next to palette select) (resolves#506)
- Added support for RGB sliders (need to set in localstorage)
- Added support for custom background color or image (need to set in localstorage)
- Added option to hide bottom tab bar in PC mode (need to set in localstorage)
- Fixed transition lag with multiple segments (fixes#985)
- Changed Nightlight wording (resolves#940)
Replace outdated CSS in HTML by style.css import
Fix missing button double press in time settings
FIx missing meta utf-8 in WiFi and UI settings
Modify cdata.js to add an info header to the top of auto-generated files
- Added realtime override option and `lor` JSON property
- Added `lm` (live mode) and `lip` (live IP) properties to info in JSON API
- Added reset commands to APIs
- Added `json/si`, returning state and info, but no FX or Palette lists
- Added rollover detection to millis(). Can track uptimes longer than 49 days
- Attempted to fix Wifi issues with Unifi brand APs
output a configurable universe (E1.31 or ArtNet) via MAX485 module that connects its DI to D4 on d1_mini.
as this function competes with DMX output for the same hardware, the universe to proxy acts as a switch.
0 = DMX OUTPUT (of configured WLED LEDs, which is the classic behaviour)
1-63999 = DMX PROXY (selected universe, ArtNet is limited up to 32768)
Fixed color of main segment returned in JSON API during transition not being target color
- Fixed arlsLock() being called after pixels set in E1.31, (closes#772)
- Fixed HTTP API calls not having an effect if no segment selected (now applies to main segment)
* initial dmx setup
* adds support for multiple fixtures, addr gaps, start addresses and all that good DMX stuff
* removes init function. do not need.
* adds some comments, removes others. words.
* added menu entry and dummy HTML
* added server request handler
* cloned options page UI for DMX
* only add code when DMX is enabled
* added infobutton to HTML
* DMX settings form
* procedurally generated HTML form. OBACHT: Values still not coming from the EEPROM.
* upped eeprom version to 15
* changed index for set to 255 to 6 because web interface wants it that way
* gets values for XML from actual settings
* changes the default values for dmx to blanks
* reads and writes DMX settings from EEPROM (2550 - 2569)
* fixes addressing bug in DMX EEPROM read
* saves settings from WebUI to memory
* disables DMX by default
* changed a comment in the ENABLE_DMX line
* makes the display of the DMX entry in settings dependant on WLED_DMX_ENABLE
* adds the server listener for the DMX map
* fixes a bug when selecting 255 for a channel at the dmx settings page
* now actually reads the DMX settings back to the HTML UI.
* cleans up a little
* adds a warning message to the HTML UI when setting up defunct DMX settings
* changed DMX EEPROM addressing to close a gap
* basic DMX map
* fixes a few styling flaws and bugs in the DMX map
* changes config variables to uint16_t
Co-authored-by: Aircoookie <cschwinne@gmail.com>
* remove analog LED flicker
run SetRgbwPwm from main loop and with GetPixelColor(0) to get all effects using fade_out() working.
* correct unintended bitwise AND to logical AND
* Update analogLastShow
* new Arduino Core WaveForm library included
* new Arduino Core only for 8266
* correct formating + define for MQTT_KEEP_ALIVE
* fix for ESP32
* reduce scope of variable "done"
* call analogWrite only if Color or Bri did change
* Remove duplicate wifi sleep code
Co-authored-by: Aircoookie <cschwinne@gmail.com>
Enable intensity slider for the Effects based on "police_base"
the intensity slider controls the width of the "dot" from 1 pixel (as now) to 64 pixels.
DISABLED: don't act on packets
SINGLE_RGB: treat all LEDs the same and controll them using 3 channels: RGB
SINGLE_DRGB: as above, but has an additional first channel for Dimmer
EFFECT: not a realtime mode. disables fadeTransition to reduce delay. just exposes parameters as 11 channels to trigger effects locally: Dimmer Effect Speed Intensity Palette PriRed PriGreen PriBlue SecRed SecGreen SecBlue
MULTIPLE_RGB: legacy mode. address each LED individually with 3 channels: RGB.
MULTIPLE_DRGB as above, but has an additional first channel for master Dimmer
add client stats (IP + user agent)
add support for DMX address (so you don't need a whole universe per fixture)
skip out-of-order packets
from 0 to 100 the strip will get color(0) starting at the ESP, from 200 to 100 to strip will do it the other way around.
So, when using this effect for the staircase usermod, a person entering area near the ESP would set an intensity starting with 1 and getting bigger and leaving on the other side would need to further increase the intensity until 200. then the strip has color(1) again.
The speed slider defines the "size" of pixels that will be added or substracted each refresh. If this size is bigger than the last value and you quickly move the intensity slider to zero, then the effect shows 100% all the time until it will be changed.
This cheap remote has the advantage of being more powerful (longer range) than cheap credit-card remotes
"CH" controls brightness, "VOL +" controls effect, "VOL -" controls colour/palette, "MUTE" sets bright plain white.
changed WLED08_led.ino to fade from current color to the secondary color. This can be used without effecting the current logic with setting "NF=2" in a macro or through the API.
If a red color tone is chosen as primary and a yellow/white tone as secondary color,
the actual brightness is set to 5 and the target brightness to 255,
the duration is set to 10 minutes,
this will create a smooth fade from darkest red to a bright warm light (like in a real SunRise)