* Improved pin manager, ethernet config
* Ethernet is configured prior even to LED pins
* Pin Manager allocation / deallocation functions
now take an "ownership" tag parameter, helping
avoid accidentally free'ing pins that were allocated
by other code
* Pin Manager now has ability to allocate multiple
pins at once; Simplifies error handling
* Fix operator precedence error
Bitwise AND has lower precedence than the
relational "greater than" operator.
* PinManager update for some user modules
* don't build everything...
* Final step to reduce RAM overhead
* update comment
* remove macros
* Remove leftover allocated
* Init ethernet after settings saved
Co-authored-by: Christian Schwinne <dev.aircoookie@gmail.com>
* 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>
- added parsing of POST fields to use proper type
- updated readFromConfig() to reflect parsing
- added a possibility to use nested object in UM settings
- internal changes and fixes
commit 7893cb9ebc66faa39d430148e6dd66894cd2fc90
Merge: c4086b94e139d7
Author: Blaž Kristan <blaz@kristan-sp.si>
Date: Fri May 21 12:57:43 2021 +0200
Merge branch 'master' of https://github.com/scottrbailey/WLED into scottrbailey-master
commit 4e139d7c0a
Author: Artacus <40248830+scottrbailey@users.noreply.github.com>
Date: Tue May 18 12:57:20 2021 -0700
Update ir.cpp
Handle both 24-key and 24-key old in decodeIR switch statement
commit 9a405d374b
Author: Artacus <40248830+scottrbailey@users.noreply.github.com>
Date: Tue May 18 11:05:42 2021 -0700
Update readme.md
commit 94af6d0561
Merge: 1ed687abfb27c4
Author: Artacus <40248830+scottrbailey@users.noreply.github.com>
Date: Sun May 16 22:00:15 2021 -0700
Merge branch 'Aircoookie:master' into master
commit 1ed687a51a
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Sun May 2 21:27:33 2021 -0700
remove colorUpdated notifier that was pasted in accidentally
commit 845dcabe0c
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Sat May 1 12:53:34 2021 -0700
Handle setting palette when effect is still on default solid and will not display it
commit 90e8ae1457
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Sat May 1 02:07:47 2021 -0700
refactor decodeIRJson to change how ir.json is loaded add support for calling several c functions
commit e4f9fa3117
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Thu Apr 29 23:33:01 2021 -0700
comment out printing API commands in IR handling
commit 26247b247e
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Thu Apr 29 23:31:30 2021 -0700
removed code that forced IR codes in a certain range to be decoded by decodeIR24. Generate default ir.json files for currently supported remotes.
commit 5acecda6a0
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Thu Apr 29 11:25:24 2021 -0700
handle JSON API commands also
commit 754e3e092a
Author: Scott Bailey <scottrbailey@gmail.com>
Date: Wed Apr 28 22:53:27 2021 -0700
add decodeIRJson and JSON remote option
- Utilizing addToConfig() & readFromConfig()
- UM configuration Settings page
- MQTT support for usermods
- A few sample usermods including rewritten Temparature and new Multi-Relay
Avoid buffer overflows with longer mqtt topics
mqtDeviceTopic in wled.h is defined with a size of 33, so this should be set to 45 to accommodate the additional 12 characters - /temperature
* 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.
* 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>
* runs w/ multi and temp on my preasmbld QL-DQuad
* working build file
* runs w/ multi and temp on my preasmbld QL-DQuad
* working build file
* Remove custom info
* Added README, found the UI update wasn't necessary
* Rebase the precompiled HTML file
* Spellcheck
Co-authored-by: cheffpj2 <patrick.j.mcdonough@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>
* Adding new usermod for TTGO T-DIsplay.
* Finalizing the code
* Modified and cleaned up readme.md file
* Fixes to platformio.ini to restore back to previous state
* Cleaned up comments in usermod file
* Updated readme with clarifications on how to modify the library files. Saving the platformio.ini file after uncommenting the line to add the TFT_eSPI library should download the necessary library files without needing to build (and fail) first.
* Cleanup
* Readme cleanup
* corrected error in commenting platformio.ini
* updated usermod to add more info to built-in display, revised readme, added images for readme
* readme file updates
* 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>
...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".
* Rawframe edit:
* - TESTED ON WLED VS.0.10.1 - WHERE ONLY PRESET 16 SAVES SEGMENTS - some macros may not be needed if this changes.
* - Code has been modified as my usage changed, as such it has poor use of functions vs if thens, but feel free to change it for me :)
*
* Edited to SWITCH between two lighting scenes/modes : STANDBY and HIGHLIGHT
*
* Usage:
* - Standby is the default mode and Highlight is activated when the PIR detects activity.
* - PIR delay now set to same value as Nightlight feature on boot but otherwise controlled as normal.
* - Standby and Highlight brightness can be set on the fly (default values set on boot via macros calling presets).
* - Macros are used to set Standby and Highlight states (macros can load saved presets etc).
*
* - Macro short button press = Highlight state default (used on boot only and sets default brightness).
* - Macro double button press = Standby state default (used on boot only and sets default brightness).
* - Macro long button press = Highlight state (after boot).
* - Macro 16 = Standby state (after boot).
*
* ! It is advised not to set 'Apply preset at boot' or a boot macro (that activates a preset) as we will call our own macros on boot.
*
* - When the strip is off before PIR activates the strip will return to off for Standby mode, and vice versa.
* - When the strip is turned off while in Highlight mode, it will return to standby mode. (This behaviour could be changed easily if for some reason you wanted the lights to go out when the pir is activated).
* - Macros can be chained so you could do almost anything, such as have standby mode also turn on the nightlight function with a new time delay.
*
* Segment Notes:
* - It's easier to save the segment selections in preset than apply via macro while we a limited to preset 16. (Ie, instead of selecting sections at the point of activating standby/highlight modes).
* - Because only preset 16 saves segments, for now we are having to use additional macros to control segments where they are involved. Macros can be chained so this works but it would be better if macros also accepted json-api commands. (Testing http api segment behaviour of SS with SB left me a little confused).
*
* Future:
* - Maybe a second timer/timetable that turns on/off standby mode also after set inactivity period / date & times. For now this can be achieved others ways so may not be worth eating more processing power.
* 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
* initial word clock usermod
Based on code provided by Aircoookie I added my code to create a word clock using a 8x8 RGB matrix
* construction source files
files for laser or 3d printing enclosures
* Update word-clock-matrix.cpp
fixed missed localTime var and removed brightness schedule to use timed macros
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
Fix a typo in one of the json vars
Fix an odd issue that would occur if sunrise or sunset occurs in the first hour after midnight UTC. (The Dusk2Dawn lib would return a value greater than 1440.)
- 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)
* Adding new usermod for TTGO T-DIsplay.
* Finalizing the code
* Modified and cleaned up readme.md file
* Fixes to platformio.ini to restore back to previous state
* Cleaned up comments in usermod file
* Updated readme with clarifications on how to modify the library files. Saving the platformio.ini file after uncommenting the line to add the TFT_eSPI library should download the necessary library files without needing to build (and fail) first.
* Cleanup
* Readme cleanup
* corrected error in commenting platformio.ini
* Adding new usermod for TTGO T-DIsplay.
* Finalizing the code
* Modified and cleaned up readme.md file
* Fixes to platformio.ini to restore back to previous state
* Cleaned up comments in usermod file
This commit adds example of usermod file for displaying basic
infromation SSD1306 I2C OLED displya utilizing u8g2 library.
Related to:
https://github.com/Aircoookie/WLED/issues/389