* Testing new wrapper functions to read Usermod config
* Usermod Settings polishing
- remove getBoolFromJsonKey() (no longer needed), fix getValueFromJsonKey(element, destination, defaultvalue)
- Update Usermod Settings html "number" field to use step="any", and make wider to make maximum values fully visible
- step="any" allows viewing/submitting full 7/8-digit float values, and the arrow buttons step by 1 now, instead of .00001 (which wasn't good for integers or floats)
- html wasn't generated/compressed yet
* Update usermod_v2_example.h with more complete example and documentation for Usermod Settings
- readFromConfig() has three options for how to load values from the config JSON, we need to pick one
* Update/rename usermode_rotary_brightness_color, to be used as an example of more robust parsing Usermod Settings values
* Update Usermod example, rename getValueFromJsonKey() to getJsonValue()
- chose single readFromConfig() pattern
- demonstrating 3-argument getJsonValue()
- remove leftover printf in getJsonValue()
Co-authored-by: Louis Beaudoin <louis@embedded-creations.com>
* add decodeIRJson and JSON remote option
* handle JSON API commands also
* removed code that forced IR codes in a certain range to be decoded by decodeIR24. Generate default ir.json files for currently supported remotes.
* comment out printing API commands in IR handling
* refactor decodeIRJson to change how ir.json is loaded add support for calling several c functions
* Handle setting palette when effect is still on default solid and will not display it
* remove colorUpdated notifier that was pasted in accidentally
* Update to handle both 24-key and 24-key old remotes (#1969)
* Update readme.md
* Update ir.cpp
Handle both 24-key and 24-key old in decodeIR switch statement
* Re-add JSON remote option
Co-authored-by: Scott Bailey <scottrbailey@gmail.com>
Co-authored-by: Artacus <40248830+scottrbailey@users.noreply.github.com>
Settings cosmetic changes (spaces, smaller pin inputs, moved analog legend to wiki)
Uncommented STATUSPIN code (still defined out by default)
Removed adalight pin 3 lock
Added define for PSRAM
Fixed potential out-of-bounds write in MQTT
Fixed IR pin not changeable if IR disabled
Fixed XML API <wv> containing -1 on Manual only RGBW mode (see #888, #1783)
* Per strip "skip first LED".
Moved skip first led into bus manager.
* Update cfg.cpp
* Do not display Skip 1st on analog types
Rename skipFirstLed() to clarify what it does
Remove RGBW override
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
Co-authored-by: Aircoookie <cschwinne@gmail.com>
- Utilizing addToConfig() & readFromConfig()
- UM configuration Settings page
- MQTT support for usermods
- A few sample usermods including rewritten Temparature and new Multi-Relay
* Add IP Address to JsonInfo
The value is added to the JSON only if the device is connected to the network, and uses the JSON key `"sip"` to match [wled00/xml.cpp](wled00/xml.cpp#L249). The overarching goal of this is to expose the IP Address to the Home Assistant WLED Integration, so that Home Assistant can provide a link to the WLED device (either directly through the Integration/Device page 🤞 or *ad hoc* in Lovelace).
* IP in JSON info
Empty string if not connected
Co-authored-by: Aircoookie <cschwinne@gmail.com>
* version set from package.json and release bin names
* support direnv virtualenv
* versioned PlatformIO environment
* matrix support for parralel CI
* gather artifacts
* release on tagging
* minor scripts formatting
* Better handling for TM1814 strips
* Call SetPixelSettings after Begin as described on the NeoPixelBus wiki
* Use NeoTm1814Settings::MaxCurrent constant
* 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
* Fix indentation in requestJson
* Add palette preview
Add palette and effects search
* Add palette preview
Add palette and effects search
* Add palette preview
Add palette and effects search
* Add palette preview
Add palette and effects search
* Fix error with background image
* Add missing palettes
* Add expiration to cached palette data
* Remove extra console.log
* bug fixes for palettes
* Rename "Default" effect back to "Solid"
* Fix scrolling issue when selecting an effect
* Add sticky default and sticky selected item
* Change checkboxes for radio button
* build html .h files
* Design Iteration 1
* Palette preview style changes
* Add button for clearing search field
* Use version ID for caching palette data rather than 24h expiration
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
* Remove -w (Suppress all warnings, including those which GNU CPP issues by default.) and add back in -Wall (Turn on all optional warnings which are desirable for normal code.) from build_flags
* Fixes warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
* Fixes warning: "CONFIG_LITTLEFS_FOR_IDF_3_2" redefined
* Fixes warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint64_t {aka long long unsigned int}' [-Wformat=]
* Fixes warning: enumeration value 'onoff' not handled in switch [-Wswitch]
* Fixes warning: "ntohl" redefined, warning: "ntohs" redefined, warning: "htonl" redefined, warning: "htons" redefined
- Original fix: 858f8f4ee9
* Fixes warning: unused variable 'mainSeg' [-Wunused-variable]
* Fixes warning: unused variable 'start' [-Wunused-variable]
* (untested!) Fixes warning: operation on '...' may be undefined [-Wsequence-point]
* Fixes warning: unused variable
* Fixes warning: unused variable and warning: narrowing conversion
* Fixes warning: unused variable
* Fixes warning: unused variable
* (untested!) Fixes warning: statement has no effect [-Wunused-value]
* Fixes warning: control reaches end of non-void function
* Fixes warning: unused variable
* Fixes warning: left operand of comma operator has no effect
* Fixes warning: no return statement in function returning non-void
* (untested!) Fixes warning: ISO C++ forbids converting a string constant to 'char*' and fixes warning: unused variable 'nPins'
* Fixes warning: deleting array 'dmxData'
* Fixes warning: unused variable
* Remove all warning suppression buildflags
Co-authored-by: Louis Beaudoin <louis@embedded-creations.com>
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
* Initial version of the PIR Staircase wipe up/down.
* Add pulldown reminder
* Workaround for missing D6 and D7 definitions on esp32dev
* Add pinouts for d1 mini (esp8266 and esp32) and NodeMCU (and Arduino)
* These IO pins on all these boards... NodeMCU and d1_mini esp32 supported. The others? Fingers crossed.
* Changed to not collide with led strip pins
* PIR on GPIO 15 and 16 on esp32 d1 mini
* Removed PIN number ifdefs, it is impossible to match all boards
* Settings in flash, info and API
* Update README.md
* Small doc changes
* Improved README
* Fixed error in reading configuration
* Add API documentation
* Documentation and code cleanup
* Add enable/disable to API settings
* Restore segment state when disabling plugin
* Add debounce
* Set segments in animation mode
* Set segments in animation mode
* Add support for HR04 sensors
* Add preliminary description for using an HR04 sensor
* Fixed typenumber and linked to datasheet
* Moved config away from defines to prevent user error
* Trigger Sensors through API
* Rename scripts folder so that it's name doesn't clash with the `pio` command (prevents platformIO in VSCode to work properly on Mac)
* Bugfix for detection problems
* Separated config from code
* Renamed Signal to Trigger pin
* Filename adjusted
* Clarifications and additions to README
* Fixed references to pio scripts
* Fixed API trigger bug
* Adjustments to README.md
* More efficient use of flash cycles, better naming
* Bugfix: bottom sensor was not read properly
* Renamed to Animated_Staircase
* Add note on ultrasonic sensor and esp32
* Better naming of defines
* Bugfix: Swipe down started with two steps.
* Removed upload port in nodemcuv2 section
Co-authored-by: Rolf <rolf@phobos.local>
Co-authored-by: Rolf <>
* Very incomplete work toward sorting.
* Sort modes and palettes upon startup so I don't have to maintain the static index array.
* Remove cpp test file I used for development
* Added ModeSortUsermod, modified the other two usermods to use it.
* Update platformio_override.ini.sample and readme for ModeSortUsermod
* restore methods accidentally removed.
- Identifying ESP32 hardware SPI by pin number is broken and flawed, replace with temporary hack instead until a better method of assigned resources can be devised
- NeoPixelBus doesn't support HSPI, only VSPI right now, so matching HSPI pins to enable a non-existent VSPI driver is broken
- ESP32 SPI peripherals can use alternate pins, so choosing to use hardware SPI only on the default pins is flawed
- Specify pins during Begin() call to allow for alternate pins and avoid driving the chip select signal
- Dotstar Software/Hardware output tested on ESP32, other SPI protocols and ESP8266 support was not tested
Prior Incrementing/decrementing by fixed steps (typically 10) means large
perceptual jumps at low brightness and small jumps at high brightness. This
change moves to a geometric progression, closer at the bottom of the range and
widely spaced at the top.
While it could be done as a relative jump (incrementing by bri/4 and
decrementing bri/5 works quite well), it makes for irregular behavior when
moving back and forth.
* Ability to lookup Usermod by id so Usermods can use other Usermods.
* Rotary Encoder UI using two Usermods
* Updates. More to come, probably.
* Updated rotary usermod to honor USE_FOUR_LINE_DISPLAY if you want to use four line display. It should be truly optional, now.
* minor logic improvement to showing the current time in clock mode.
* improved 24 hour display foratting and ability to use the FourLineDisplayUsermod without the RotaryEncoderUIUsermod (option disable sleep and clock modes).
* Improved ordering of defines in the FourLineDisplayUsermod to put options people might need to change together toward the top.
* relocate plugins. add mention of the Wire requirement.
* usermod filenames changed, updating comment in const.h
* fix usermod locations.
* fix usermods_list to include changed folder.
* Improved for both usermods: install, config, and docs. Included sample platform_override.ini.
* Updated name of SDA and SCL defines for config of display
* update docs.
* Wrong year. Fixed.
* Fix youtube link, improve config of sleep/clock when the rotary usermod isn't installed.
* Minor fixes to four line display. Addition of Auto Save v2 usermod.
* Allow config for auto-save to set the preset number to use. Load preset at startup (so brightness is set correctly).
* Updated docs for Auto Save.
* Updated docs for Auto Save.
Co-authored-by: Kevin Dorff <kevin@macbookpro-kevin-wifi.local>
* 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>