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>