mirror of
https://github.com/wled/WLED.git
synced 2025-07-20 09:16:31 +00:00
Merge branch 'usermod-libs' into usermod-libs-matrix
This commit is contained in:
commit
5f19608e41
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@ -57,11 +57,6 @@ jobs:
|
|||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
- name: Install PlatformIO
|
- name: Install PlatformIO
|
||||||
run: pip install -r requirements.txt
|
run: pip install -r requirements.txt
|
||||||
- name: Add usermods environment
|
|
||||||
run: |
|
|
||||||
cp -v usermods/platformio_override.usermods.ini platformio_override.ini
|
|
||||||
echo -n "custom_usermods = " >> platformio_override.ini
|
|
||||||
find usermods/ -name library.json | xargs dirname | xargs -n 1 basename | xargs echo >> platformio_override.ini
|
|
||||||
|
|
||||||
- name: Build firmware
|
- name: Build firmware
|
||||||
run: pio run -e ${{ matrix.environment }}
|
run: pio run -e ${{ matrix.environment }}
|
||||||
|
47
boards/lolin_s3_mini.json
Normal file
47
boards/lolin_s3_mini.json
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"arduino": {
|
||||||
|
"ldscript": "esp32s3_out.ld",
|
||||||
|
"memory_type": "qio_qspi"
|
||||||
|
},
|
||||||
|
"core": "esp32",
|
||||||
|
"extra_flags": [
|
||||||
|
"-DBOARD_HAS_PSRAM",
|
||||||
|
"-DARDUINO_LOLIN_S3_MINI",
|
||||||
|
"-DARDUINO_USB_MODE=1"
|
||||||
|
],
|
||||||
|
"f_cpu": "240000000L",
|
||||||
|
"f_flash": "80000000L",
|
||||||
|
"flash_mode": "qio",
|
||||||
|
"hwids": [
|
||||||
|
[
|
||||||
|
"0x303A",
|
||||||
|
"0x8167"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"mcu": "esp32s3",
|
||||||
|
"variant": "lolin_s3_mini"
|
||||||
|
},
|
||||||
|
"connectivity": [
|
||||||
|
"bluetooth",
|
||||||
|
"wifi"
|
||||||
|
],
|
||||||
|
"debug": {
|
||||||
|
"openocd_target": "esp32s3.cfg"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"arduino",
|
||||||
|
"espidf"
|
||||||
|
],
|
||||||
|
"name": "WEMOS LOLIN S3 Mini",
|
||||||
|
"upload": {
|
||||||
|
"flash_size": "4MB",
|
||||||
|
"maximum_ram_size": 327680,
|
||||||
|
"maximum_size": 4194304,
|
||||||
|
"require_upload_port": true,
|
||||||
|
"speed": 460800
|
||||||
|
},
|
||||||
|
"url": "https://www.wemos.cc/en/latest/s3/index.html",
|
||||||
|
"vendor": "WEMOS"
|
||||||
|
}
|
||||||
|
|
@ -1,17 +0,0 @@
|
|||||||
Import('env')
|
|
||||||
|
|
||||||
# Patch up each usermod's include folders to include anything referenced by wled
|
|
||||||
# This is because usermods need to include wled.h
|
|
||||||
lib_builders = env.GetLibBuilders()
|
|
||||||
um_deps = [dep for dep in lib_builders if "/usermods" in dep.src_dir]
|
|
||||||
other_deps = [dep for dep in lib_builders if "/usermods" not in dep.src_dir]
|
|
||||||
|
|
||||||
for um in um_deps:
|
|
||||||
# Add include paths for all non-usermod dependencies
|
|
||||||
for dep in other_deps:
|
|
||||||
for dir in dep.get_include_dirs():
|
|
||||||
um.env.PrependUnique(CPPPATH=dir)
|
|
||||||
# Add the wled folder to the include path
|
|
||||||
um.env.PrependUnique(CPPPATH=env["PROJECT_SRC_DIR"])
|
|
||||||
|
|
||||||
#raise RuntimeError("debug")
|
|
@ -1,26 +1,95 @@
|
|||||||
Import('env')
|
Import('env')
|
||||||
import os
|
import os.path
|
||||||
|
from pathlib import Path # For OS-agnostic path manipulation
|
||||||
|
from platformio.package.manager.library import LibraryPackageManager
|
||||||
|
|
||||||
def find_usermod(mod_dir: str, mod: str):
|
usermod_dir = Path(env["PROJECT_DIR"]) / "usermods"
|
||||||
|
all_usermods = [f for f in usermod_dir.iterdir() if f.is_dir() and f.joinpath('library.json').exists()]
|
||||||
|
|
||||||
|
if env['PIOENV'] == "usermods":
|
||||||
|
# Add all usermods
|
||||||
|
env.GetProjectConfig().set(f"env:usermods", 'custom_usermods', " ".join([f.name for f in all_usermods]))
|
||||||
|
|
||||||
|
def find_usermod(mod: str):
|
||||||
"""Locate this library in the usermods folder.
|
"""Locate this library in the usermods folder.
|
||||||
We do this to avoid needing to rename a bunch of folders;
|
We do this to avoid needing to rename a bunch of folders;
|
||||||
this could be removed later
|
this could be removed later
|
||||||
"""
|
"""
|
||||||
# Check name match
|
# Check name match
|
||||||
mp = f"{mod_dir}/{mod}"
|
mp = usermod_dir / mod
|
||||||
if os.path.exists(mp):
|
if mp.exists():
|
||||||
return mp
|
return mp
|
||||||
mp = f"{mod_dir}/usermod_v2_{mod}"
|
mp = usermod_dir / f"usermod_v2_{mod}"
|
||||||
if os.path.exists(mp):
|
if mp.exists():
|
||||||
return mp
|
return mp
|
||||||
raise RuntimeError(f"Couldn't locate module {mod} in usermods directory!")
|
raise RuntimeError(f"Couldn't locate module {mod} in usermods directory!")
|
||||||
|
|
||||||
usermods = env.GetProjectOption("custom_usermods","")
|
usermods = env.GetProjectOption("custom_usermods","")
|
||||||
if usermods:
|
if usermods:
|
||||||
|
# Inject usermods in to project lib_deps
|
||||||
proj = env.GetProjectConfig()
|
proj = env.GetProjectConfig()
|
||||||
deps = env.GetProjectOption('lib_deps')
|
deps = env.GetProjectOption('lib_deps')
|
||||||
src_dir = proj.get("platformio", "src_dir")
|
src_dir = proj.get("platformio", "src_dir")
|
||||||
src_dir = src_dir.replace('\\','/')
|
src_dir = src_dir.replace('\\','/')
|
||||||
mod_paths = {mod: find_usermod(f"{src_dir}/../usermods", mod) for mod in usermods.split(" ")}
|
mod_paths = {mod: find_usermod(mod) for mod in usermods.split(" ")}
|
||||||
usermods = [f"{mod} = symlink://{path}" for mod, path in mod_paths.items()]
|
usermods = [f"{mod} = symlink://{path}" for mod, path in mod_paths.items()]
|
||||||
proj.set("env:" + env['PIOENV'], 'lib_deps', deps + usermods)
|
proj.set("env:" + env['PIOENV'], 'lib_deps', deps + usermods)
|
||||||
|
# Force usermods to be installed in to the environment build state before the LDF runs
|
||||||
|
# Otherwise we won't be able to see them until it's too late to change their paths for LDF
|
||||||
|
# Logic is largely borrowed from PlaformIO internals
|
||||||
|
not_found_specs = []
|
||||||
|
for spec in usermods:
|
||||||
|
found = False
|
||||||
|
for storage_dir in env.GetLibSourceDirs():
|
||||||
|
#print(f"Checking {storage_dir} for {spec}")
|
||||||
|
lm = LibraryPackageManager(storage_dir)
|
||||||
|
if lm.get_package(spec):
|
||||||
|
#print("Found!")
|
||||||
|
found = True
|
||||||
|
break
|
||||||
|
if not found:
|
||||||
|
#print("Missing!")
|
||||||
|
not_found_specs.append(spec)
|
||||||
|
if not_found_specs:
|
||||||
|
lm = LibraryPackageManager(
|
||||||
|
env.subst(os.path.join("$PROJECT_LIBDEPS_DIR", "$PIOENV"))
|
||||||
|
)
|
||||||
|
for spec in not_found_specs:
|
||||||
|
#print(f"LU: forcing install of {spec}")
|
||||||
|
lm.install(spec)
|
||||||
|
|
||||||
|
|
||||||
|
# Monkey-patch ConfigureProjectLibBuilder to mark up the dependencies
|
||||||
|
# Save the old value
|
||||||
|
old_ConfigureProjectLibBuilder = env.ConfigureProjectLibBuilder
|
||||||
|
|
||||||
|
# Our new wrapper
|
||||||
|
def wrapped_ConfigureProjectLibBuilder(xenv):
|
||||||
|
# Update usermod properties
|
||||||
|
# Set libArchive before build actions are added
|
||||||
|
for um in (um for um in xenv.GetLibBuilders() if usermod_dir in Path(um.src_dir).parents):
|
||||||
|
build = um._manifest.get("build", {})
|
||||||
|
build["libArchive"] = False
|
||||||
|
um._manifest["build"] = build
|
||||||
|
|
||||||
|
# Call the wrapped function
|
||||||
|
result = old_ConfigureProjectLibBuilder.clone(xenv)()
|
||||||
|
|
||||||
|
# Fix up include paths
|
||||||
|
# In PlatformIO >=6.1.17, this could be done prior to ConfigureProjectLibBuilder
|
||||||
|
wled_dir = xenv["PROJECT_SRC_DIR"]
|
||||||
|
lib_builders = xenv.GetLibBuilders()
|
||||||
|
um_deps = [dep for dep in lib_builders if usermod_dir in Path(dep.src_dir).parents]
|
||||||
|
other_deps = [dep for dep in lib_builders if usermod_dir not in Path(dep.src_dir).parents]
|
||||||
|
for um in um_deps:
|
||||||
|
# Add the wled folder to the include path
|
||||||
|
um.env.PrependUnique(CPPPATH=wled_dir)
|
||||||
|
# Add WLED's own dependencies
|
||||||
|
for dep in other_deps:
|
||||||
|
for dir in dep.get_include_dirs():
|
||||||
|
um.env.PrependUnique(CPPPATH=dir)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
# Apply the wrapper
|
||||||
|
env.AddMethod(wrapped_ConfigureProjectLibBuilder, "ConfigureProjectLibBuilder")
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
# CI/release binaries
|
# CI/release binaries
|
||||||
default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, nodemcuv2_compat, esp8266_2m_compat, esp01_1m_full_compat, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_16MB_opi, esp32s3dev_8MB_opi, esp32s3_4M_qspi, esp32_wrover, usermods
|
default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, nodemcuv2_compat, esp8266_2m_compat, esp01_1m_full_compat, esp32dev, esp32dev_V4, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_16MB_opi, esp32s3dev_8MB_opi, esp32s3_4M_qspi, esp32_wrover, usermods
|
||||||
|
|
||||||
src_dir = ./wled00
|
src_dir = ./wled00
|
||||||
data_dir = ./wled00/data
|
data_dir = ./wled00/data
|
||||||
@ -115,7 +115,6 @@ extra_scripts =
|
|||||||
post:pio-scripts/strip-floats.py
|
post:pio-scripts/strip-floats.py
|
||||||
pre:pio-scripts/user_config_copy.py
|
pre:pio-scripts/user_config_copy.py
|
||||||
pre:pio-scripts/load_usermods.py
|
pre:pio-scripts/load_usermods.py
|
||||||
post:pio-scripts/fixup_usermods.py
|
|
||||||
pre:pio-scripts/build_ui.py
|
pre:pio-scripts/build_ui.py
|
||||||
; post:pio-scripts/obj-dump.py ;; convenience script to create a disassembly dump of the firmware (hardcore debugging)
|
; post:pio-scripts/obj-dump.py ;; convenience script to create a disassembly dump of the firmware (hardcore debugging)
|
||||||
|
|
||||||
@ -267,8 +266,9 @@ AR_lib_deps = ;; for pre-usermod-library platformio_override compatibility
|
|||||||
;;
|
;;
|
||||||
;; please note that you can NOT update existing ESP32 installs with a "V4" build. Also updating by OTA will not work properly.
|
;; please note that you can NOT update existing ESP32 installs with a "V4" build. Also updating by OTA will not work properly.
|
||||||
;; You need to completely erase your device (esptool erase_flash) first, then install the "V4" build from VSCode+platformio.
|
;; You need to completely erase your device (esptool erase_flash) first, then install the "V4" build from VSCode+platformio.
|
||||||
platform = espressif32@ ~6.3.2
|
|
||||||
platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
|
;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
|
||||||
|
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.06.02/platform-espressif32.zip ;; Tasmota Arduino Core 2.0.9 with IPv6 support, based on IDF 4.4.4
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = -g
|
build_flags = -g
|
||||||
-Wshadow=compatible-local ;; emit warning in case a local variable "shadows" another local one
|
-Wshadow=compatible-local ;; emit warning in case a local variable "shadows" another local one
|
||||||
@ -282,8 +282,7 @@ board_build.partitions = ${esp32.default_partitions} ;; default partioning for
|
|||||||
|
|
||||||
[esp32s2]
|
[esp32s2]
|
||||||
;; generic definitions for all ESP32-S2 boards
|
;; generic definitions for all ESP32-S2 boards
|
||||||
platform = espressif32@ ~6.3.2
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = -g
|
build_flags = -g
|
||||||
-DARDUINO_ARCH_ESP32
|
-DARDUINO_ARCH_ESP32
|
||||||
@ -302,8 +301,7 @@ board_build.partitions = ${esp32.default_partitions} ;; default partioning for
|
|||||||
|
|
||||||
[esp32c3]
|
[esp32c3]
|
||||||
;; generic definitions for all ESP32-C3 boards
|
;; generic definitions for all ESP32-C3 boards
|
||||||
platform = espressif32@ ~6.3.2
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = -g
|
build_flags = -g
|
||||||
-DARDUINO_ARCH_ESP32
|
-DARDUINO_ARCH_ESP32
|
||||||
@ -321,8 +319,7 @@ board_build.partitions = ${esp32.default_partitions} ;; default partioning for
|
|||||||
|
|
||||||
[esp32s3]
|
[esp32s3]
|
||||||
;; generic definitions for all ESP32-S3 boards
|
;; generic definitions for all ESP32-S3 boards
|
||||||
platform = espressif32@ ~6.3.2
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = platformio/framework-arduinoespressif32 @ 3.20009.0 ;; select arduino-esp32 v2.0.9 (arduino-esp32 2.0.10 thru 2.0.14 are buggy so avoid them)
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = -g
|
build_flags = -g
|
||||||
-DESP32
|
-DESP32
|
||||||
@ -366,7 +363,7 @@ build_flags = ${common.build_flags} ${esp8266.build_flags_compat} -D WLED_RELEAS
|
|||||||
extends = env:nodemcuv2
|
extends = env:nodemcuv2
|
||||||
board_build.f_cpu = 160000000L
|
board_build.f_cpu = 160000000L
|
||||||
build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME=\"ESP8266_160\" #-DWLED_DISABLE_2D
|
build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME=\"ESP8266_160\" #-DWLED_DISABLE_2D
|
||||||
-D USERMOD_AUDIOREACTIVE
|
custom_usermods = audioreactive
|
||||||
|
|
||||||
[env:esp8266_2m]
|
[env:esp8266_2m]
|
||||||
board = esp_wroom_02
|
board = esp_wroom_02
|
||||||
@ -388,7 +385,7 @@ build_flags = ${common.build_flags} ${esp8266.build_flags_compat} -D WLED_RELEAS
|
|||||||
extends = env:esp8266_2m
|
extends = env:esp8266_2m
|
||||||
board_build.f_cpu = 160000000L
|
board_build.f_cpu = 160000000L
|
||||||
build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME=\"ESP02_160\"
|
build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME=\"ESP02_160\"
|
||||||
-D USERMOD_AUDIOREACTIVE
|
custom_usermods = audioreactive
|
||||||
|
|
||||||
[env:esp01_1m_full]
|
[env:esp01_1m_full]
|
||||||
board = esp01_1m
|
board = esp01_1m
|
||||||
@ -411,24 +408,34 @@ build_flags = ${common.build_flags} ${esp8266.build_flags_compat} -D WLED_RELEAS
|
|||||||
extends = env:esp01_1m_full
|
extends = env:esp01_1m_full
|
||||||
board_build.f_cpu = 160000000L
|
board_build.f_cpu = 160000000L
|
||||||
build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME=\"ESP01_160\" -D WLED_DISABLE_OTA
|
build_flags = ${common.build_flags} ${esp8266.build_flags} -D WLED_RELEASE_NAME=\"ESP01_160\" -D WLED_DISABLE_OTA
|
||||||
-D USERMOD_AUDIOREACTIVE
|
|
||||||
; -D WLED_USE_REAL_MATH ;; may fix wrong sunset/sunrise times, at the cost of 7064 bytes FLASH and 975 bytes RAM
|
; -D WLED_USE_REAL_MATH ;; may fix wrong sunset/sunrise times, at the cost of 7064 bytes FLASH and 975 bytes RAM
|
||||||
|
custom_usermods = audioreactive
|
||||||
|
|
||||||
[env:esp32dev]
|
[env:esp32dev]
|
||||||
board = esp32dev
|
board = esp32dev
|
||||||
platform = ${esp32.platform}
|
platform = ${esp32.platform}
|
||||||
platform_packages = ${esp32.platform_packages}
|
platform_packages = ${esp32.platform_packages}
|
||||||
custom_usermods = audioreactive auto_save animartrix
|
custom_usermods = audioreactive
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32\" #-D WLED_DISABLE_BROWNOUT_DET
|
build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"ESP32\" #-D WLED_DISABLE_BROWNOUT_DET
|
||||||
lib_deps = ${esp32.lib_deps}
|
lib_deps = ${esp32.lib_deps}
|
||||||
monitor_filters = esp32_exception_decoder
|
monitor_filters = esp32_exception_decoder
|
||||||
board_build.partitions = ${esp32.default_partitions}
|
board_build.partitions = ${esp32.default_partitions}
|
||||||
|
|
||||||
|
[env:esp32dev_V4]
|
||||||
|
board = esp32dev
|
||||||
|
platform = ${esp32_idf_V4.platform}
|
||||||
|
build_unflags = ${common.build_unflags}
|
||||||
|
build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_V4\" #-D WLED_DISABLE_BROWNOUT_DET
|
||||||
|
lib_deps = ${esp32_idf_V4.lib_deps}
|
||||||
|
${esp32.AR_lib_deps}
|
||||||
|
monitor_filters = esp32_exception_decoder
|
||||||
|
board_build.partitions = ${esp32.default_partitions}
|
||||||
|
board_build.flash_mode = dio
|
||||||
|
|
||||||
[env:esp32dev_8M]
|
[env:esp32dev_8M]
|
||||||
board = esp32dev
|
board = esp32dev
|
||||||
platform = ${esp32_idf_V4.platform}
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = ${esp32_idf_V4.platform_packages}
|
|
||||||
custom_usermods = audioreactive
|
custom_usermods = audioreactive
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_8M\" #-D WLED_DISABLE_BROWNOUT_DET
|
build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_8M\" #-D WLED_DISABLE_BROWNOUT_DET
|
||||||
@ -443,7 +450,6 @@ board_upload.maximum_size = 8388608
|
|||||||
[env:esp32dev_16M]
|
[env:esp32dev_16M]
|
||||||
board = esp32dev
|
board = esp32dev
|
||||||
platform = ${esp32_idf_V4.platform}
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = ${esp32_idf_V4.platform_packages}
|
|
||||||
custom_usermods = audioreactive
|
custom_usermods = audioreactive
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_16M\" #-D WLED_DISABLE_BROWNOUT_DET
|
build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_16M\" #-D WLED_DISABLE_BROWNOUT_DET
|
||||||
@ -483,7 +489,6 @@ board_build.partitions = ${esp32.default_partitions}
|
|||||||
[env:esp32_wrover]
|
[env:esp32_wrover]
|
||||||
extends = esp32_idf_V4
|
extends = esp32_idf_V4
|
||||||
platform = ${esp32_idf_V4.platform}
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = ${esp32_idf_V4.platform_packages}
|
|
||||||
board = ttgo-t7-v14-mini32
|
board = ttgo-t7-v14-mini32
|
||||||
board_build.f_flash = 80000000L
|
board_build.f_flash = 80000000L
|
||||||
board_build.flash_mode = qio
|
board_build.flash_mode = qio
|
||||||
@ -498,7 +503,6 @@ lib_deps = ${esp32_idf_V4.lib_deps}
|
|||||||
[env:esp32c3dev]
|
[env:esp32c3dev]
|
||||||
extends = esp32c3
|
extends = esp32c3
|
||||||
platform = ${esp32c3.platform}
|
platform = ${esp32c3.platform}
|
||||||
platform_packages = ${esp32c3.platform_packages}
|
|
||||||
framework = arduino
|
framework = arduino
|
||||||
board = esp32-c3-devkitm-1
|
board = esp32-c3-devkitm-1
|
||||||
board_build.partitions = ${esp32.default_partitions}
|
board_build.partitions = ${esp32.default_partitions}
|
||||||
@ -510,13 +514,13 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=
|
|||||||
upload_speed = 460800
|
upload_speed = 460800
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
lib_deps = ${esp32c3.lib_deps}
|
lib_deps = ${esp32c3.lib_deps}
|
||||||
|
board_build.flash_mode = qio
|
||||||
|
|
||||||
[env:esp32s3dev_16MB_opi]
|
[env:esp32s3dev_16MB_opi]
|
||||||
;; ESP32-S3 development board, with 16MB FLASH and >= 8MB PSRAM (memory_type: qio_opi)
|
;; ESP32-S3 development board, with 16MB FLASH and >= 8MB PSRAM (memory_type: qio_opi)
|
||||||
board = esp32-s3-devkitc-1 ;; generic dev board; the next line adds PSRAM support
|
board = esp32-s3-devkitc-1 ;; generic dev board; the next line adds PSRAM support
|
||||||
board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB
|
board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB
|
||||||
platform = ${esp32s3.platform}
|
platform = ${esp32s3.platform}
|
||||||
platform_packages = ${esp32s3.platform_packages}
|
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
custom_usermods = audioreactive
|
custom_usermods = audioreactive
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
@ -538,7 +542,6 @@ monitor_filters = esp32_exception_decoder
|
|||||||
board = esp32-s3-devkitc-1 ;; generic dev board; the next line adds PSRAM support
|
board = esp32-s3-devkitc-1 ;; generic dev board; the next line adds PSRAM support
|
||||||
board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB
|
board_build.arduino.memory_type = qio_opi ;; use with PSRAM: 8MB or 16MB
|
||||||
platform = ${esp32s3.platform}
|
platform = ${esp32s3.platform}
|
||||||
platform_packages = ${esp32s3.platform_packages}
|
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
custom_usermods = audioreactive
|
custom_usermods = audioreactive
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
@ -557,7 +560,6 @@ monitor_filters = esp32_exception_decoder
|
|||||||
;; For ESP32-S3 WROOM-2, a.k.a. ESP32-S3 DevKitC-1 v1.1
|
;; For ESP32-S3 WROOM-2, a.k.a. ESP32-S3 DevKitC-1 v1.1
|
||||||
;; with >= 16MB FLASH and >= 8MB PSRAM (memory_type: opi_opi)
|
;; with >= 16MB FLASH and >= 8MB PSRAM (memory_type: opi_opi)
|
||||||
platform = ${esp32s3.platform}
|
platform = ${esp32s3.platform}
|
||||||
platform_packages = ${esp32s3.platform_packages}
|
|
||||||
board = esp32s3camlcd ;; this is the only standard board with "opi_opi"
|
board = esp32s3camlcd ;; this is the only standard board with "opi_opi"
|
||||||
board_build.arduino.memory_type = opi_opi
|
board_build.arduino.memory_type = opi_opi
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
@ -583,7 +585,6 @@ monitor_filters = esp32_exception_decoder
|
|||||||
;; ESP32-S3, with 4MB FLASH and <= 4MB PSRAM (memory_type: qio_qspi)
|
;; ESP32-S3, with 4MB FLASH and <= 4MB PSRAM (memory_type: qio_qspi)
|
||||||
board = lolin_s3_mini ;; -S3 mini, 4MB flash 2MB PSRAM
|
board = lolin_s3_mini ;; -S3 mini, 4MB flash 2MB PSRAM
|
||||||
platform = ${esp32s3.platform}
|
platform = ${esp32s3.platform}
|
||||||
platform_packages = ${esp32s3.platform_packages}
|
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
custom_usermods = audioreactive
|
custom_usermods = audioreactive
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
@ -600,7 +601,6 @@ monitor_filters = esp32_exception_decoder
|
|||||||
|
|
||||||
[env:lolin_s2_mini]
|
[env:lolin_s2_mini]
|
||||||
platform = ${esp32s2.platform}
|
platform = ${esp32s2.platform}
|
||||||
platform_packages = ${esp32s2.platform_packages}
|
|
||||||
board = lolin_s2_mini
|
board = lolin_s2_mini
|
||||||
board_build.partitions = ${esp32.default_partitions}
|
board_build.partitions = ${esp32.default_partitions}
|
||||||
board_build.flash_mode = qio
|
board_build.flash_mode = qio
|
||||||
@ -627,9 +627,13 @@ lib_deps = ${esp32s2.lib_deps}
|
|||||||
|
|
||||||
[env:usermods]
|
[env:usermods]
|
||||||
board = esp32dev
|
board = esp32dev
|
||||||
platform = ${esp32.platform}
|
platform = ${esp32_idf_V4.platform}
|
||||||
platform_packages = ${esp32.platform_packages}
|
|
||||||
build_unflags = ${common.build_unflags}
|
build_unflags = ${common.build_unflags}
|
||||||
build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\"
|
build_flags = ${common.build_flags} ${esp32_idf_V4.build_flags} -D WLED_RELEASE_NAME=\"ESP32_USERMODS\"
|
||||||
${esp32.AR_build_flags}
|
-DTOUCH_CS=9
|
||||||
lib_deps = ${esp32.lib_deps}
|
-DMQTTSWITCHPINS=8
|
||||||
|
lib_deps = ${esp32_idf_V4.lib_deps}
|
||||||
|
monitor_filters = esp32_exception_decoder
|
||||||
|
board_build.flash_mode = dio
|
||||||
|
; custom_usermods = *every folder with library.json* -- injected by pio-scripts/load_usermods.py
|
||||||
|
board_build.partitions = ${esp32.extreme_partitions} ; We're gonna need a bigger boat
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <Adafruit_ADS1X15.h>
|
#include <Adafruit_ADS1X15.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <AHT10.h>
|
#include <AHT10.h>
|
||||||
|
|
||||||
@ -54,12 +52,6 @@ private:
|
|||||||
_lastTemperature = 0;
|
_lastTemperature = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
~UsermodAHT10()
|
|
||||||
{
|
|
||||||
delete _aht;
|
|
||||||
_aht = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_MQTT
|
#ifndef WLED_DISABLE_MQTT
|
||||||
void mqttInitialize()
|
void mqttInitialize()
|
||||||
{
|
{
|
||||||
@ -322,6 +314,12 @@ public:
|
|||||||
_initDone = true;
|
_initDone = true;
|
||||||
return configComplete;
|
return configComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~UsermodAHT10()
|
||||||
|
{
|
||||||
|
delete _aht;
|
||||||
|
_aht = nullptr;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const char UsermodAHT10::_name[] PROGMEM = "AHTxx";
|
const char UsermodAHT10::_name[] PROGMEM = "AHTxx";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
*
|
*
|
||||||
* See the accompanying README.md file for more info.
|
* See the accompanying README.md file for more info.
|
||||||
*/
|
*/
|
||||||
#pragma once
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
class Animated_Staircase : public Usermod {
|
class Animated_Staircase : public Usermod {
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
// force the compiler to show a warning to confirm that this file is included
|
// force the compiler to show a warning to confirm that this file is included
|
||||||
#warning **** Included USERMOD_BH1750 ****
|
#warning **** Included USERMOD_BH1750 ****
|
||||||
|
|
||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <BH1750.h>
|
#include <BH1750.h>
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
// the max frequency to check photoresistor, 10 seconds
|
// the max frequency to check photoresistor, 10 seconds
|
||||||
#ifndef USERMOD_BH1750_MAX_MEASUREMENT_INTERVAL
|
#ifndef USERMOD_BH1750_MAX_MEASUREMENT_INTERVAL
|
||||||
#define USERMOD_BH1750_MAX_MEASUREMENT_INTERVAL 10000
|
#define USERMOD_BH1750_MAX_MEASUREMENT_INTERVAL 10000
|
||||||
|
@ -1,17 +1,15 @@
|
|||||||
// force the compiler to show a warning to confirm that this file is included
|
// force the compiler to show a warning to confirm that this file is included
|
||||||
#warning **** Included USERMOD_BME280 version 2.0 ****
|
#warning **** Included USERMOD_BME280 version 2.0 ****
|
||||||
|
|
||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <BME280I2C.h> // BME280 sensor
|
#include <BME280I2C.h> // BME280 sensor
|
||||||
#include <EnvironmentCalculations.h> // BME280 extended measurements
|
#include <EnvironmentCalculations.h> // BME280 extended measurements
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
class UsermodBME280 : public Usermod
|
class UsermodBME280 : public Usermod
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"name:": "BME280_v2",
|
|
||||||
"build": { "libArchive": false }
|
|
||||||
}
|
|
7
usermods/BME280_v2/library.json.disabled
Normal file
7
usermods/BME280_v2/library.json.disabled
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name:": "BME280_v2",
|
||||||
|
"build": { "libArchive": false },
|
||||||
|
"dependencies": {
|
||||||
|
"finitespace/BME280":"~3.0.0"
|
||||||
|
}
|
||||||
|
}
|
@ -6,7 +6,6 @@
|
|||||||
* @date 19 Feb 2024
|
* @date 19 Feb 2024
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
|
||||||
#warning ********************Included USERMOD_BME68X ********************
|
#warning ********************Included USERMOD_BME68X ********************
|
||||||
|
|
||||||
#define UMOD_DEVICE "ESP32" // NOTE - Set your hardware here
|
#define UMOD_DEVICE "ESP32" // NOTE - Set your hardware here
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "battery_defaults.h"
|
#include "battery_defaults.h"
|
||||||
#include "UMBattery.h"
|
#include "UMBattery.h"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
class UsermodCronixie : public Usermod {
|
class UsermodCronixie : public Usermod {
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#ifndef WLED_ENABLE_MQTT
|
#ifdef WLED_DISABLE_MQTT
|
||||||
#error "This user mod requires MQTT to be enabled."
|
#error "This user mod requires MQTT to be enabled."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
#include "TFTs.h"
|
#include "TFTs.h"
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name:": "EleksTube_IPS",
|
"name:": "EleksTube_IPS",
|
||||||
"build": { "libArchive": false }
|
"build": { "libArchive": false },
|
||||||
|
"dependencies": {
|
||||||
|
"TFT_eSPI" : "2.5.33"
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,11 +1,12 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <U8x8lib.h> // from https://github.com/olikraus/u8g2/
|
#include <U8x8lib.h> // from https://github.com/olikraus/u8g2/
|
||||||
#include <DallasTemperature.h> //Dallastemperature sensor
|
#include <DallasTemperature.h> //Dallastemperature sensor
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
//The SCL and SDA pins are defined here.
|
//The SCL and SDA pins are defined here.
|
||||||
//Lolin32 boards use SCL=5 SDA=4
|
//Lolin32 boards use SCL=5 SDA=4
|
||||||
#define U8X8_PIN_SCL 5
|
#define U8X8_PIN_SCL 5
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <U8x8lib.h> // from https://github.com/olikraus/u8g2/
|
#include <U8x8lib.h> // from https://github.com/olikraus/u8g2/
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
#include <BME280I2C.h> //BME280 sensor
|
#include <BME280I2C.h> //BME280 sensor
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
void UpdateBME280Data();
|
void UpdateBME280Data();
|
||||||
|
|
||||||
#define Celsius // Show temperature measurement in Celsius otherwise is in Fahrenheit
|
#define Celsius // Show temperature measurement in Celsius otherwise is in Fahrenheit
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <INA226_WE.h>
|
#include <INA226_WE.h>
|
||||||
|
|
||||||
@ -210,12 +208,6 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
~UsermodINA226()
|
|
||||||
{
|
|
||||||
delete _ina226;
|
|
||||||
_ina226 = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_MQTT
|
#ifndef WLED_DISABLE_MQTT
|
||||||
void mqttInitialize()
|
void mqttInitialize()
|
||||||
{
|
{
|
||||||
@ -551,6 +543,13 @@ public:
|
|||||||
_initDone = true;
|
_initDone = true;
|
||||||
return configComplete;
|
return configComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~UsermodINA226()
|
||||||
|
{
|
||||||
|
delete _ina226;
|
||||||
|
_ina226 = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const char UsermodINA226::_name[] PROGMEM = "INA226";
|
const char UsermodINA226::_name[] PROGMEM = "INA226";
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
class InternalTemperatureUsermod : public Usermod
|
class InternalTemperatureUsermod : public Usermod
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
#warning **** Included USERMOD_LD2410 ****
|
|
||||||
|
|
||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <ld2410.h>
|
#include <ld2410.h>
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
class LD2410Usermod : public Usermod {
|
class LD2410Usermod : public Usermod {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name:": "LD2410_v2",
|
"name:": "LD2410_v2",
|
||||||
"build": { "libArchive": false }
|
"build": { "libArchive": false },
|
||||||
|
"dependencies": {
|
||||||
|
"ncmreynolds/ld2410":"^0.1.3"
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,4 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
#ifndef ARDUINO_ARCH_ESP32
|
#ifndef ARDUINO_ARCH_ESP32
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// force the compiler to show a warning to confirm that this file is included
|
// force the compiler to show a warning to confirm that this file is included
|
||||||
#warning **** Included USERMOD_MAX17048 V2.0 ****
|
#warning **** Included USERMOD_MAX17048 V2.0 ****
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "Adafruit_MAX1704X.h"
|
#include "Adafruit_MAX1704X.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "MY92xx.h"
|
#include "MY92xx.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
#ifndef PIR_SENSOR_PIN
|
#ifndef PIR_SENSOR_PIN
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#if !defined(USERMOD_DALLASTEMPERATURE) && !defined(USERMOD_SHT)
|
#if !defined(USERMOD_DALLASTEMPERATURE) && !defined(USERMOD_SHT)
|
||||||
#error The "PWM fan" usermod requires "Dallas Temeprature" or "SHT" usermod to function properly.
|
#error The "PWM fan" usermod requires "Dallas Temeprature" or "SHT" usermod to function properly.
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "src/dependencies/time/DS1307RTC.h"
|
#include "src/dependencies/time/DS1307RTC.h"
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
//Pin defaults for QuinLed Dig-Uno (A0)
|
//Pin defaults for QuinLed Dig-Uno (A0)
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
// Credits to @mrVanboy, @gwaland and my dearest friend @westward
|
// Credits to @mrVanboy, @gwaland and my dearest friend @westward
|
||||||
// Also for @spiff72 for usermod TTGO-T-Display
|
// Also for @spiff72 for usermod TTGO-T-Display
|
||||||
// 210217
|
// 210217
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <TFT_eSPI.h>
|
#include <TFT_eSPI.h>
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// this is remixed from usermod_v2_SensorsToMqtt.h (sensors_to_mqtt usermod)
|
// this is remixed from usermod_v2_SensorsToMqtt.h (sensors_to_mqtt usermod)
|
||||||
// and usermod_multi_relay.h (multi_relay usermod)
|
// and usermod_multi_relay.h (multi_relay usermod)
|
||||||
|
|
||||||
@ -11,6 +5,10 @@
|
|||||||
#include <Adafruit_Si7021.h>
|
#include <Adafruit_Si7021.h>
|
||||||
#include <EnvironmentCalculations.h> // EnvironmentCalculations::HeatIndex(), ::DewPoint(), ::AbsoluteHumidity()
|
#include <EnvironmentCalculations.h> // EnvironmentCalculations::HeatIndex(), ::DewPoint(), ::AbsoluteHumidity()
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
Adafruit_Si7021 si7021;
|
Adafruit_Si7021 si7021;
|
||||||
|
|
||||||
class Si7021_MQTT_HA : public Usermod
|
class Si7021_MQTT_HA : public Usermod
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name:": "Si7021_MQTT_HA",
|
"name:": "Si7021_MQTT_HA",
|
||||||
"build": { "libArchive": false }
|
"build": { "libArchive": false },
|
||||||
|
"dependencies": {
|
||||||
|
"finitespace/BME280":"3.0.0"
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "OneWire.h"
|
#include "OneWire.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "FX.h"
|
#include "FX.h"
|
||||||
#include "fcn_declare.h"
|
#include "fcn_declare.h"
|
||||||
|
@ -13,8 +13,6 @@
|
|||||||
* lib_deps = ${env.lib_deps}
|
* lib_deps = ${env.lib_deps}
|
||||||
* pololu/VL53L0X @ ^1.3.0
|
* pololu/VL53L0X @ ^1.3.0
|
||||||
*/
|
*/
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include "driver/rtc_io.h"
|
#include "driver/rtc_io.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
/* This driver reads quaternion data from the MPU6060 and adds it to the JSON
|
/* This driver reads quaternion data from the MPU6060 and adds it to the JSON
|
||||||
@ -105,7 +103,7 @@ class MPU6050Driver : public Usermod {
|
|||||||
VectorInt16 aaReal; // [x, y, z] gravity-free accel sensor measurements
|
VectorInt16 aaReal; // [x, y, z] gravity-free accel sensor measurements
|
||||||
VectorInt16 aaWorld; // [x, y, z] world-frame accel sensor measurements
|
VectorInt16 aaWorld; // [x, y, z] world-frame accel sensor measurements
|
||||||
VectorFloat gravity; // [x, y, z] gravity vector
|
VectorFloat gravity; // [x, y, z] gravity vector
|
||||||
uint32 sample_count;
|
uint32_t sample_count;
|
||||||
|
|
||||||
// Usermod output
|
// Usermod output
|
||||||
um_data_t um_data;
|
um_data_t um_data;
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#warning "This usermod is deprecated and no longer maintained. It will be removed in a future WLED release. Please use usermod multi_relay which has more features."
|
#warning "This usermod is deprecated and no longer maintained. It will be removed in a future WLED release. Please use usermod multi_relay which has more features."
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#ifndef WLED_ENABLE_MQTT
|
#ifdef WLED_DISABLE_MQTT
|
||||||
#error "This user mod requires MQTT to be enabled."
|
#error "This user mod requires MQTT to be enabled."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -159,5 +157,5 @@ inline void UsermodMqttSwitch::updateState(uint8_t pinNr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static UsermodMqttSwitc mqtt_switch_v2;
|
static UsermodMqttSwitch mqtt_switch_v2;
|
||||||
REGISTER_USERMOD(mqtt_switch_v2);
|
REGISTER_USERMOD(mqtt_switch_v2);
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
#define COUNT_OF(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
|
#define COUNT_OF(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <pixels_dice_interface.h> // https://github.com/axlan/arduino-pixels-dice
|
#include <pixels_dice_interface.h> // https://github.com/axlan/arduino-pixels-dice
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
[env:usermods]
|
|
||||||
board = esp32dev
|
|
||||||
platform = ${esp32.platform}
|
|
||||||
platform_packages = ${esp32.platform_packages}
|
|
||||||
build_unflags = ${common.build_unflags}
|
|
||||||
build_flags = ${common.build_flags} ${esp32.build_flags} -D WLED_RELEASE_NAME=\"USERMODS\"
|
|
||||||
${esp32.AR_build_flags}
|
|
||||||
lib_deps = ${esp32.lib_deps}
|
|
||||||
board_build.partitions = ${esp32.big_partitions}
|
|
@ -1,4 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <PNGdec.h>
|
#include <PNGdec.h>
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
#ifndef ESP32
|
#ifndef ESP32
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "U8g2lib.h"
|
#include "U8g2lib.h"
|
||||||
#include "SHT85.h"
|
#include "SHT85.h"
|
||||||
#include "Wire.h"
|
#include "Wire.h"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "ESPRotary.h"
|
#include "ESPRotary.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
// SD connected via MMC / SPI
|
// SD connected via MMC / SPI
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
"name:": "sensors_to_mqtt",
|
"name:": "sensors_to_mqtt",
|
||||||
"build": { "libArchive": false},
|
"build": { "libArchive": false},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"adafruit/Adafruit BMP280 Library":"2.1.0",
|
"adafruit/Adafruit BMP280 Library":"2.6.8",
|
||||||
"adafruit/Adafruit CCS811 Library":"1.0.4",
|
"adafruit/Adafruit CCS811 Library":"1.1.3",
|
||||||
"adafruit/Adafruit Si7021 Library":"1.4.0"
|
"adafruit/Adafruit Si7021 Library":"1.5.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
|
||||||
#error "This user mod requires MQTT to be enabled."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <Adafruit_Sensor.h>
|
#include <Adafruit_Sensor.h>
|
||||||
@ -11,6 +5,10 @@
|
|||||||
#include <Adafruit_CCS811.h>
|
#include <Adafruit_CCS811.h>
|
||||||
#include <Adafruit_Si7021.h>
|
#include <Adafruit_Si7021.h>
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
|
#error "This user mod requires MQTT to be enabled."
|
||||||
|
#endif
|
||||||
|
|
||||||
Adafruit_BMP280 bmp;
|
Adafruit_BMP280 bmp;
|
||||||
Adafruit_Si7021 si7021;
|
Adafruit_Si7021 si7021;
|
||||||
Adafruit_CCS811 ccs811;
|
Adafruit_CCS811 ccs811;
|
||||||
@ -23,7 +21,7 @@ private:
|
|||||||
float SensorPressure = 0;
|
float SensorPressure = 0;
|
||||||
float SensorTemperature = 0;
|
float SensorTemperature = 0;
|
||||||
float SensorHumidity = 0;
|
float SensorHumidity = 0;
|
||||||
char *SensorIaq = "Unknown";
|
const char *SensorIaq = "Unknown";
|
||||||
String mqttTemperatureTopic = "";
|
String mqttTemperatureTopic = "";
|
||||||
String mqttHumidityTopic = "";
|
String mqttHumidityTopic = "";
|
||||||
String mqttPressureTopic = "";
|
String mqttPressureTopic = "";
|
||||||
@ -117,7 +115,7 @@ private:
|
|||||||
/**
|
/**
|
||||||
* Credits: Bouke_Regnerus @ https://community.home-assistant.io/t/example-indoor-air-quality-text-sensor-using-ccs811-sensor/125854
|
* Credits: Bouke_Regnerus @ https://community.home-assistant.io/t/example-indoor-air-quality-text-sensor-using-ccs811-sensor/125854
|
||||||
*/
|
*/
|
||||||
char *_getIaqIndex(float humidity, int tvoc, int eco2)
|
const char *_getIaqIndex(float humidity, int tvoc, int eco2)
|
||||||
{
|
{
|
||||||
int iaq_index = 0;
|
int iaq_index = 0;
|
||||||
|
|
||||||
@ -216,6 +214,7 @@ private:
|
|||||||
{
|
{
|
||||||
return "Excellent";
|
return "Excellent";
|
||||||
}
|
}
|
||||||
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
#include "wled.h"
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
#error "This user mod requires MQTT to be enabled."
|
#error "This user mod requires MQTT to be enabled."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
|
||||||
|
|
||||||
class SevenSegmentDisplay : public Usermod
|
class SevenSegmentDisplay : public Usermod
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
#include "wled.h"
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
#error "This user mod requires MQTT to be enabled."
|
#error "This user mod requires MQTT to be enabled."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
|
||||||
|
|
||||||
class UsermodSSDR : public Usermod {
|
class UsermodSSDR : public Usermod {
|
||||||
|
|
||||||
//#define REFRESHTIME 497
|
//#define REFRESHTIME 497
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
#include "wled.h"
|
||||||
|
#include "SHT85.h"
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
#error "This user mod requires MQTT to be enabled."
|
#error "This user mod requires MQTT to be enabled."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "SHT85.h"
|
|
||||||
|
|
||||||
#define USERMOD_SHT_TYPE_SHT30 0
|
#define USERMOD_SHT_TYPE_SHT30 0
|
||||||
#define USERMOD_SHT_TYPE_SHT31 1
|
#define USERMOD_SHT_TYPE_SHT31 1
|
||||||
#define USERMOD_SHT_TYPE_SHT35 2
|
#define USERMOD_SHT_TYPE_SHT35 2
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
#ifndef WLED_ENABLE_MQTT
|
#include "wled.h"
|
||||||
|
|
||||||
|
#ifdef WLED_DISABLE_MQTT
|
||||||
#error "This user mod requires MQTT to be enabled."
|
#error "This user mod requires MQTT to be enabled."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
|
||||||
|
|
||||||
class Smartnest : public Usermod
|
class Smartnest : public Usermod
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
//v2 usermod that allows to change brightness and color using a rotary encoder,
|
//v2 usermod that allows to change brightness and color using a rotary encoder,
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
// v2 Usermod to automatically save settings
|
// v2 Usermod to automatically save settings
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#undef U8X8_NO_HW_I2C // borrowed from WLEDMM: we do want I2C hardware drivers - if possible
|
#undef U8X8_NO_HW_I2C // borrowed from WLEDMM: we do want I2C hardware drivers - if possible
|
||||||
#include <U8x8lib.h> // from https://github.com/olikraus/u8g2/
|
#include <U8x8lib.h> // from https://github.com/olikraus/u8g2/
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
class klipper_percentage : public Usermod
|
class klipper_percentage : public Usermod
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
class PingPongClockUsermod : public Usermod
|
class PingPongClockUsermod : public Usermod
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <WireGuard-ESP32.h>
|
#include <WireGuard-ESP32.h>
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
#include <WiFiUdp.h>
|
#include <WiFiUdp.h>
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -269,7 +269,7 @@ using PSRAMDynamicJsonDocument = BasicJsonDocument<PSRAM_Allocator>;
|
|||||||
// Global Variable definitions
|
// Global Variable definitions
|
||||||
WLED_GLOBAL char versionString[] _INIT(TOSTRING(WLED_VERSION));
|
WLED_GLOBAL char versionString[] _INIT(TOSTRING(WLED_VERSION));
|
||||||
WLED_GLOBAL char releaseString[] _INIT(WLED_RELEASE_NAME); // must include the quotes when defining, e.g -D WLED_RELEASE_NAME=\"ESP32_MULTI_USREMODS\"
|
WLED_GLOBAL char releaseString[] _INIT(WLED_RELEASE_NAME); // must include the quotes when defining, e.g -D WLED_RELEASE_NAME=\"ESP32_MULTI_USREMODS\"
|
||||||
#define WLED_CODENAME "Kōsen"
|
#define WLED_CODENAME "Niji"
|
||||||
|
|
||||||
// AP and OTA default passwords (for maximum security change them!)
|
// AP and OTA default passwords (for maximum security change them!)
|
||||||
WLED_GLOBAL char apPass[65] _INIT(WLED_AP_PASS);
|
WLED_GLOBAL char apPass[65] _INIT(WLED_AP_PASS);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user