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.