Merge pull request #1788 from proddy/feat_modules

Feat modules
This commit is contained in:
Proddy
2024-06-04 17:21:36 +02:00
committed by GitHub
6 changed files with 131 additions and 292 deletions

View File

@@ -21,7 +21,7 @@
- Added scripts for OTA (scripts/upload.py and upload_cli.py) [#1738](https://github.com/emsesp/EMS-ESP32/issues/1738)
- timeout for remote thermostat emulation [#1680](https://github.com/emsesp/EMS-ESP32/discussions/1680), [#1774](https://github.com/emsesp/EMS-ESP32/issues/1774)
- seltemp/mode for CR120 [#1779](https://github.com/emsesp/EMS-ESP32/discussions/1779)
- Moodules [#1778](https://github.com/emsesp/EMS-ESP32/issues/1778)
- Modules - external linkable module library [#1778](https://github.com/emsesp/EMS-ESP32/issues/1778)
## Fixed

159
Makefile
View File

@@ -1,159 +0,0 @@
#
# GNUMakefile for EMS-ESP
#
NUMJOBS=${NUMJOBS:-" -j2 "}
MAKEFLAGS+="j "
#----------------------------------------------------------------------
# Project Structure
#----------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing header files
# LIBRARIES is a list of directories containing libraries, this must be the top level containing include and lib
#----------------------------------------------------------------------
#TARGET := $(notdir $(CURDIR))
TARGET := emsesp
BUILD := build
SOURCES := src src/* lib_standalone lib/uuid-common/src lib/uuid-console/src lib/uuid-log/src src/devices lib/ArduinoJson/src lib/PButton lib/semver lib/espMqttClient/src lib/espMqttClient/src/*
INCLUDES := src lib_standalone lib/espMqttClient/src lib/espMqttClient/src/Transport lib/ArduinoJson/src lib/uuid-common/src lib/uuid-console/src lib/uuid-log/src lib/uuid-telnet/src lib/uuid-syslog/src lib/semver lib/* src/devices
LIBRARIES :=
CPPCHECK = cppcheck
# CHECKFLAGS = -q --force --std=c++17
CHECKFLAGS = -q --force --std=c++11
#----------------------------------------------------------------------
# Languages Standard
#----------------------------------------------------------------------
C_STANDARD := -std=c17
# CXX_STANDARD := -std=c++17
CXX_STANDARD := -std=gnu++11
# C_STANDARD := -std=c11
# CXX_STANDARD := -std=c++11
#----------------------------------------------------------------------
# Defined Symbols
#----------------------------------------------------------------------
DEFINES += -DARDUINOJSON_ENABLE_STD_STRING=1 -DARDUINOJSON_ENABLE_PROGMEM=1 -DARDUINOJSON_ENABLE_ARDUINO_STRING -DARDUINOJSON_USE_DOUBLE=0
DEFINES += -DEMSESP_DEBUG -DEMSESP_STANDALONE -DEMSESP_TEST -D__linux__ -DEMC_RX_BUFFER_SIZE=1500
DEFINES += $(ARGS)
DEFAULTS = -DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.7.0-dev\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S32\"
#----------------------------------------------------------------------
# Sources & Files
#----------------------------------------------------------------------
OUTPUT := $(CURDIR)/$(TARGET)
SYMBOLS := $(CURDIR)/$(BUILD)/$(TARGET).out
CSOURCES := $(foreach dir,$(SOURCES),$(wildcard $(dir)/*.c))
CXXSOURCES := $(foreach dir,$(SOURCES),$(wildcard $(dir)/*.cpp))
OBJS := $(patsubst %,$(BUILD)/%.o,$(basename $(CSOURCES)) $(basename $(CXXSOURCES)) )
DEPS := $(patsubst %,$(BUILD)/%.d,$(basename $(CSOURCES)) $(basename $(CXXSOURCES)) )
INCLUDE += $(addprefix -I,$(foreach dir,$(INCLUDES), $(wildcard $(dir))))
INCLUDE += $(addprefix -I,$(foreach dir,$(LIBRARIES),$(wildcard $(dir)/include)))
LDLIBS += $(addprefix -L,$(foreach dir,$(LIBRARIES),$(wildcard $(dir)/lib)))
#----------------------------------------------------------------------
# Compiler & Linker
#----------------------------------------------------------------------
CC := /usr/bin/gcc
CXX := /usr/bin/g++
#----------------------------------------------------------------------
# Compiler & Linker Flags
#----------------------------------------------------------------------
# CPPFLAGS C and C++ Compiler Flags
# CFLAGS C Compiler Flags
# CXXFLAGS C++ Compiler Flags
# LDFLAGS Linker Flags
#----------------------------------------------------------------------
CPPFLAGS += $(DEFINES) $(DEFAULTS) $(INCLUDE)
CPPFLAGS += -ggdb
CPPFLAGS += -g3
CPPFLAGS += -Os
CFLAGS += $(CPPFLAGS)
CFLAGS += -Wall -Wextra -Werror -Wswitch-enum -Wno-unused-parameter -Wno-inconsistent-missing-override -Wno-missing-braces -Wno-unused-lambda-capture -Wno-sign-compare
CXXFLAGS += $(CFLAGS) -MMD
#----------------------------------------------------------------------
# Compiler & Linker Commands
#----------------------------------------------------------------------
# LINK.o link object files to binary
# COMPILE.c compile C source files
# COMPILE.cpp compile C++ source files
#----------------------------------------------------------------------
ifeq ($(strip $(CXXSOURCES)),)
LD := $(CC)
else
LD := $(CXX)
endif
#DEPFLAGS += -MF $(BUILD)/$*.d
LINK.o = $(LD) $(LDFLAGS) $(LDLIBS) $^ -o $@
COMPILE.c = $(CC) $(C_STANDARD) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
COMPILE.cpp = $(CXX) $(CXX_STANDARD) $(CXXFLAGS) $(DEPFLAGS) -c $< -o $@
#----------------------------------------------------------------------
# Special Built-in Target
#----------------------------------------------------------------------
# .SUFFIXES disable built-in wildcard rules
# .INTERMEDIATE make will treat targets as intermediate files, and delete them
# .PRECIOUS make will not be deleted after it is no longer needed. Keep objects to speed up recompilation
# .PHONY make will run this targets unconditionally, regardless of whether a file with that name exists or what its last-modification time is
#----------------------------------------------------------------------
.SUFFIXES:
.INTERMEDIATE:
.PRECIOUS: $(OBJS) $(DEPS)
.PHONY: all clean help
#----------------------------------------------------------------------
# Targets
#----------------------------------------------------------------------
.PHONY: all
.SILENT: $(OUTPUT)
all: $(OUTPUT)
$(OUTPUT): $(OBJS)
@mkdir -p $(@D)
$(LINK.o)
$(SYMBOLS.out)
$(BUILD)/%.o: %.c
@mkdir -p $(@D)
$(COMPILE.c)
$(BUILD)/%.o: %.cpp
@mkdir -p $(@D)
$(COMPILE.cpp)
$(BUILD)/%.o: %.s
@mkdir -p $(@D)
$(COMPILE.s)
cppcheck: $(SOURCES)
$(CPPCHECK) $(CHECKFLAGS) $^
run: $(OUTPUT)
@$<
.PHONY: clean
clean:
@$(RM) -rf $(BUILD) $(OUTPUT)
help:
@echo available targets: all run clean
@echo $(OUTPUT)
-include $(DEPS)

View File

@@ -30,7 +30,7 @@
"@mui/material": "^5.15.19",
"@table-library/react-table-library": "4.1.7",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.12.13",
"@types/node": "^20.14.1",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@types/react-router-dom": "^5.3.3",
@@ -51,19 +51,19 @@
},
"devDependencies": {
"@babel/core": "^7.24.6",
"@eslint/js": "^9.3.0",
"@eslint/js": "^9.4.0",
"@preact/compat": "^17.1.2",
"@preact/preset-vite": "^2.8.2",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/babel__core": "^7",
"concurrently": "^8.2.2",
"eslint": "^9.3.0",
"eslint": "^9.4.0",
"eslint-config-prettier": "^9.1.0",
"preact": "^10.22.0",
"prettier": "^3.2.5",
"prettier": "^3.3.0",
"rollup-plugin-visualizer": "^5.12.0",
"terser": "^5.31.0",
"typescript-eslint": "^7.11.0",
"typescript-eslint": "^7.12.0",
"vite": "^5.2.12",
"vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^4.3.2"

View File

@@ -913,6 +913,17 @@ __metadata:
languageName: node
linkType: hard
"@eslint/config-array@npm:^0.15.1":
version: 0.15.1
resolution: "@eslint/config-array@npm:0.15.1"
dependencies:
"@eslint/object-schema": "npm:^2.1.3"
debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
checksum: 10c0/60947a188157f2f811cc2aedf3c2494fa10932178838f6a7c7e9a8bb106ab51b4b4e571f49ae63cdd3884002b78631e4395be25d4ae52470360fc7fb463303d2
languageName: node
linkType: hard
"@eslint/eslintrc@npm:^3.1.0":
version: 3.1.0
resolution: "@eslint/eslintrc@npm:3.1.0"
@@ -930,10 +941,17 @@ __metadata:
languageName: node
linkType: hard
"@eslint/js@npm:9.3.0, @eslint/js@npm:^9.3.0":
version: 9.3.0
resolution: "@eslint/js@npm:9.3.0"
checksum: 10c0/1550c68922eb17c3ce541d9ffbb687e656bc0d4e2fff2d9cb0a75101a9cdb6184b7af7378ccf46c6ca750b280d25d45cc5e7374a83a4ee89d404d3717502fd9d
"@eslint/js@npm:9.4.0, @eslint/js@npm:^9.4.0":
version: 9.4.0
resolution: "@eslint/js@npm:9.4.0"
checksum: 10c0/7ffc508d3e9cd496cab7f08c5ba8f97851c8adaea3ebff8804b1c3b4662aa7aac7e9c3b597f7e47fdc29319a107bcf892865070a6b113c2e4d19f8fa1f99f569
languageName: node
linkType: hard
"@eslint/object-schema@npm:^2.1.3":
version: 2.1.3
resolution: "@eslint/object-schema@npm:2.1.3"
checksum: 10c0/ee892d0112ee7ec86312dfb1fa718da76b2d446e3495b9ec1f3ef31382a335d31420b76f3def175b96f7c3517c88fc860fec049d62a81d444237a23881559403
languageName: node
linkType: hard
@@ -975,17 +993,6 @@ __metadata:
languageName: node
linkType: hard
"@humanwhocodes/config-array@npm:^0.13.0":
version: 0.13.0
resolution: "@humanwhocodes/config-array@npm:0.13.0"
dependencies:
"@humanwhocodes/object-schema": "npm:^2.0.3"
debug: "npm:^4.3.1"
minimatch: "npm:^3.0.5"
checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e
languageName: node
linkType: hard
"@humanwhocodes/module-importer@npm:^1.0.1":
version: 1.0.1
resolution: "@humanwhocodes/module-importer@npm:1.0.1"
@@ -993,13 +1000,6 @@ __metadata:
languageName: node
linkType: hard
"@humanwhocodes/object-schema@npm:^2.0.3":
version: 2.0.3
resolution: "@humanwhocodes/object-schema@npm:2.0.3"
checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
languageName: node
linkType: hard
"@humanwhocodes/retry@npm:^0.3.0":
version: 0.3.0
resolution: "@humanwhocodes/retry@npm:0.3.0"
@@ -1738,12 +1738,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^20.12.13":
version: 20.12.13
resolution: "@types/node@npm:20.12.13"
"@types/node@npm:^20.14.1":
version: 20.14.1
resolution: "@types/node@npm:20.14.1"
dependencies:
undici-types: "npm:~5.26.4"
checksum: 10c0/2ac92bb631dbddfb560eb3ba4eedbb1c688044a0130bc1ef032f5c0f20148ac7c9aa3c5aaa5a9787b6c4c6299847d754b96ee8c9def951481ba6628c46b683f5
checksum: 10c0/12b7879047f50cc217bbea3add7c45e542070f6e9fb2092be97542152b7022512bcb2bf848d04f77e295c4c8699acd484e79a4a4dbe9bcfa4e89dd543d530611
languageName: node
linkType: hard
@@ -1838,15 +1838,15 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.11.0"
"@typescript-eslint/eslint-plugin@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.12.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.10.0"
"@typescript-eslint/scope-manager": "npm:7.11.0"
"@typescript-eslint/type-utils": "npm:7.11.0"
"@typescript-eslint/utils": "npm:7.11.0"
"@typescript-eslint/visitor-keys": "npm:7.11.0"
"@typescript-eslint/scope-manager": "npm:7.12.0"
"@typescript-eslint/type-utils": "npm:7.12.0"
"@typescript-eslint/utils": "npm:7.12.0"
"@typescript-eslint/visitor-keys": "npm:7.12.0"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.3.1"
natural-compare: "npm:^1.4.0"
@@ -1857,44 +1857,44 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/50fedf832e4de9546569106eab1d10716204ceebc5cc7d62299112c881212270d0f7857e3d6452c07db031d40b58cf27c4d1b1a36043e8e700fc3496e377b54a
checksum: 10c0/abf899e07144e8edd8ae010d25e4679e2acded407a10efc6aaa7ee325af8daf0dd149946ad58e46982e29e0a23f56b1e0dd461ef09aab09b0d94fc24ffc827c2
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/parser@npm:7.11.0"
"@typescript-eslint/parser@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/parser@npm:7.12.0"
dependencies:
"@typescript-eslint/scope-manager": "npm:7.11.0"
"@typescript-eslint/types": "npm:7.11.0"
"@typescript-eslint/typescript-estree": "npm:7.11.0"
"@typescript-eslint/visitor-keys": "npm:7.11.0"
"@typescript-eslint/scope-manager": "npm:7.12.0"
"@typescript-eslint/types": "npm:7.12.0"
"@typescript-eslint/typescript-estree": "npm:7.12.0"
"@typescript-eslint/visitor-keys": "npm:7.12.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/f5d1343fae90ccd91aea8adf194e22ed3eb4b2ea79d03d8a9ca6e7b669a6db306e93138ec64f7020c5b3128619d50304dea1f06043eaff6b015071822cad4972
checksum: 10c0/223c32a6ba6cee770ee39108fb0a6d132283673d44c751bec85d8792df3382ddb839617787d183dc8fd7686d8a2018bf1ec0f3d63b7010c4370913f249c80fbc
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/scope-manager@npm:7.11.0"
"@typescript-eslint/scope-manager@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/scope-manager@npm:7.12.0"
dependencies:
"@typescript-eslint/types": "npm:7.11.0"
"@typescript-eslint/visitor-keys": "npm:7.11.0"
checksum: 10c0/35f9d88f38f2366017b15c9ee752f2605afa8009fa1eaf81c8b2b71fc22ddd2a33fff794a02015c8991a5fa99f315c3d6d76a5957d3fad1ccbb4cd46735c98b5
"@typescript-eslint/types": "npm:7.12.0"
"@typescript-eslint/visitor-keys": "npm:7.12.0"
checksum: 10c0/7af53cd9045cc70459e4f451377affc0ef03e67bd743480ab2cbfebe1b7d8269fc639406966930c5abb26f1b633623c98442c2b60f6257e0ce1555439343d5e9
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/type-utils@npm:7.11.0"
"@typescript-eslint/type-utils@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/type-utils@npm:7.12.0"
dependencies:
"@typescript-eslint/typescript-estree": "npm:7.11.0"
"@typescript-eslint/utils": "npm:7.11.0"
"@typescript-eslint/typescript-estree": "npm:7.12.0"
"@typescript-eslint/utils": "npm:7.12.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.3.0"
peerDependencies:
@@ -1902,23 +1902,23 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/637395cb0f4c424c610e751906a31dcfedcdbd8c479012da6e81f9be6b930f32317bfe170ccb758d93a411b2bd9c4e7e5d18892094466099c6f9c3dceda81a72
checksum: 10c0/41f4aa20d24724b461eb0cdac69d91ef60c2b628fb4a5739e4dbb8378aa4a7ff20c302f60e5d74ce75d5b99fcd3e3d71b9b3c96a1714aac47ce2ce5d6d611fcd
languageName: node
linkType: hard
"@typescript-eslint/types@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/types@npm:7.11.0"
checksum: 10c0/c5d6c517124017eb44aa180c8ea1fad26ec8e47502f92fd12245ba3141560e69d7f7e35b8aa160ddd5df63a2952af407e2f62cc58b663c86e1f778ffb5b01789
"@typescript-eslint/types@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/types@npm:7.12.0"
checksum: 10c0/76786d02a0838750d74ad6e49b026875c0753b81c5a46a56525a1e82d89c0939a13434b03494e3b31b7ffbba7824f426c5b502a12337806a1f6ca560b5dad46c
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/typescript-estree@npm:7.11.0"
"@typescript-eslint/typescript-estree@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/typescript-estree@npm:7.12.0"
dependencies:
"@typescript-eslint/types": "npm:7.11.0"
"@typescript-eslint/visitor-keys": "npm:7.11.0"
"@typescript-eslint/types": "npm:7.12.0"
"@typescript-eslint/visitor-keys": "npm:7.12.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
@@ -1928,31 +1928,31 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/a4eda43f352d20edebae0c1c221c4fd9de0673a94988cf1ae3f5e4917ef9cdb9ead8d3673ea8dd6e80d9cf3523a47c295be1326a3fae017b277233f4c4b4026b
checksum: 10c0/855be5ba6c3d7540319ad250555055a798deb04855f26abe719a3b8d555a3227d52e09453930bd829e260a72f65a985998b235514ce2872b31615015da3163c0
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/utils@npm:7.11.0"
"@typescript-eslint/utils@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/utils@npm:7.12.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@typescript-eslint/scope-manager": "npm:7.11.0"
"@typescript-eslint/types": "npm:7.11.0"
"@typescript-eslint/typescript-estree": "npm:7.11.0"
"@typescript-eslint/scope-manager": "npm:7.12.0"
"@typescript-eslint/types": "npm:7.12.0"
"@typescript-eslint/typescript-estree": "npm:7.12.0"
peerDependencies:
eslint: ^8.56.0
checksum: 10c0/539a7ff8b825ad810fc59a80269094748df1a397a42cdbb212c493fc2486711c7d8fd6d75d4cd8a067822b8e6a11f42c50441977d51c183eec47992506d1cdf8
checksum: 10c0/04241c0313f2d061bc81ec2d5d589c9a723f8c1493e5b83d98f804ff9dac23c5e7157d9bb57bee8b458f40824f56ea65a02ebd344926a37cb58bf151cb4d3bf2
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:7.11.0":
version: 7.11.0
resolution: "@typescript-eslint/visitor-keys@npm:7.11.0"
"@typescript-eslint/visitor-keys@npm:7.12.0":
version: 7.12.0
resolution: "@typescript-eslint/visitor-keys@npm:7.12.0"
dependencies:
"@typescript-eslint/types": "npm:7.11.0"
"@typescript-eslint/types": "npm:7.12.0"
eslint-visitor-keys: "npm:^3.4.3"
checksum: 10c0/664e558d9645896484b7ffc9381837f0d52443bf8d121a5586d02d42ca4d17dc35faf526768c4b1beb52c57c43fae555898eb087651eb1c7a3d60f1085effea1
checksum: 10c0/f3aa6704961e65fa8d66fcde57cd28e382412bb8bec2e99312bf8cda38772ae9a74d6d95b9765f76a249bc9ab65624db34b8c00078ebad129b2e1b624e935d90
languageName: node
linkType: hard
@@ -1965,7 +1965,7 @@ __metadata:
"@babel/core": "npm:^7.24.6"
"@emotion/react": "npm:^11.11.4"
"@emotion/styled": "npm:^11.11.5"
"@eslint/js": "npm:^9.3.0"
"@eslint/js": "npm:^9.4.0"
"@mui/icons-material": "npm:^5.15.19"
"@mui/material": "npm:^5.15.19"
"@preact/compat": "npm:^17.1.2"
@@ -1974,21 +1974,21 @@ __metadata:
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
"@types/babel__core": "npm:^7"
"@types/lodash-es": "npm:^4.17.12"
"@types/node": "npm:^20.12.13"
"@types/node": "npm:^20.14.1"
"@types/react": "npm:^18.3.3"
"@types/react-dom": "npm:^18.3.0"
"@types/react-router-dom": "npm:^5.3.3"
alova: "npm:^2.20.5"
async-validator: "npm:^4.2.5"
concurrently: "npm:^8.2.2"
eslint: "npm:^9.3.0"
eslint: "npm:^9.4.0"
eslint-config-prettier: "npm:^9.1.0"
history: "npm:^5.3.0"
jwt-decode: "npm:^4.0.0"
lodash-es: "npm:^4.17.21"
mime-types: "npm:^2.1.35"
preact: "npm:^10.22.0"
prettier: "npm:^3.2.5"
prettier: "npm:^3.3.0"
react: "npm:latest"
react-dom: "npm:latest"
react-dropzone: "npm:^14.2.3"
@@ -1999,7 +1999,7 @@ __metadata:
terser: "npm:^5.31.0"
typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.4.5"
typescript-eslint: "npm:^7.11.0"
typescript-eslint: "npm:^7.12.0"
vite: "npm:^5.2.12"
vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^4.3.2"
@@ -3468,15 +3468,15 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^9.3.0":
version: 9.3.0
resolution: "eslint@npm:9.3.0"
"eslint@npm:^9.4.0":
version: 9.4.0
resolution: "eslint@npm:9.4.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
"@eslint-community/regexpp": "npm:^4.6.1"
"@eslint/config-array": "npm:^0.15.1"
"@eslint/eslintrc": "npm:^3.1.0"
"@eslint/js": "npm:9.3.0"
"@humanwhocodes/config-array": "npm:^0.13.0"
"@eslint/js": "npm:9.4.0"
"@humanwhocodes/module-importer": "npm:^1.0.1"
"@humanwhocodes/retry": "npm:^0.3.0"
"@nodelib/fs.walk": "npm:^1.2.8"
@@ -3508,7 +3508,7 @@ __metadata:
text-table: "npm:^0.2.0"
bin:
eslint: bin/eslint.js
checksum: 10c0/d0cf1923408ce720f2fa0dde39094dbee6b03a71d5e6466402bbeb29c08a618713f7a1e8cfc4b4d50dbe3750ce68adf614a0e973dea6fa36ddc428dfb89d4cac
checksum: 10c0/826c901812536451e1bdb151359098db3a01ee9ff41775d5e97553626d07f7319cb2a0fd54176ef8e2e057105874077426b5d408ee6e8cff06bb814651f4c004
languageName: node
linkType: hard
@@ -5932,12 +5932,12 @@ __metadata:
languageName: node
linkType: hard
"prettier@npm:^3.2.5":
version: 3.2.5
resolution: "prettier@npm:3.2.5"
"prettier@npm:^3.3.0":
version: 3.3.0
resolution: "prettier@npm:3.3.0"
bin:
prettier: bin/prettier.cjs
checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6
checksum: 10c0/d033c356320aa2e468bf29c931b094ac730d2f4defd5eb2989d8589313dec901d2fc866e3788f3d161e420b142ea4ec3dda535dbe0169ef4d0026397a68ba9cf
languageName: node
linkType: hard
@@ -7117,19 +7117,19 @@ __metadata:
languageName: node
linkType: hard
"typescript-eslint@npm:^7.11.0":
version: 7.11.0
resolution: "typescript-eslint@npm:7.11.0"
"typescript-eslint@npm:^7.12.0":
version: 7.12.0
resolution: "typescript-eslint@npm:7.12.0"
dependencies:
"@typescript-eslint/eslint-plugin": "npm:7.11.0"
"@typescript-eslint/parser": "npm:7.11.0"
"@typescript-eslint/utils": "npm:7.11.0"
"@typescript-eslint/eslint-plugin": "npm:7.12.0"
"@typescript-eslint/parser": "npm:7.12.0"
"@typescript-eslint/utils": "npm:7.12.0"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/11dbbf4f317abe687733614f85a255e5ebad0d45d2a1f8c4922918bf74b902c8b20fd3be50f58cd6e7645a2cb34e99cb068ac97bca50ff96c931cfa9572855c0
checksum: 10c0/4533dc8f277b431ff6911789581d4f2dada7c3f6382a95b5b727d3fbfc1f316fc28153c46375d2c0d72d628b1fd48762e7b66efb51d49a2614913d42b74a8033
languageName: node
linkType: hard

View File

@@ -12,7 +12,7 @@
; -DEMSESP_EN_ONLY ; only EN translated entity names
; -DEMSESP_PINGTEST ; send log message every 1/2 second
; my_build_flags = -DEMSESP_TEST
my_build_flags = -DEMSESP_DEBUG -DEMSESP_TEST
; my_build_flags = -DEMSESP_DEBUG -DEMSESP_TEST
; my_build_flags = -DEMSESP_DEBUG -DEMSESP_TEST -DEMSESP_PINGTEST
[platformio]
@@ -26,18 +26,20 @@ default_envs = esp32_4M
[env]
; upload settings
; for USB
upload_protocol = esptool
upload_port = /dev/ttyUSB*
; upload_protocol = esptool
; upload_port = /dev/ttyUSB*
; for OTA
; upload_protocol = custom
upload_protocol = custom
custom_emsesp_ip = 10.10.10.173
; custom_emsesp_ip = ems-esp.local
custom_username = admin
custom_password = admin
; uncomment this next line if using the github repo
; use with
; example below is using a locally built version of EMS-ESP-Modules. You can also test with:
; rm -rf .pio/libdeps/native/EMS-ESP-Modules; pio run -e native -t clean; pio run -e native -t exec
lib_deps = file://../../modules/EMS-ESP-Modules
lib_deps =
file://../../modules/EMS-ESP-Modules
bblanchon/ArduinoJson@^7.0.4
https://github.com/mathieucarbou/AsyncTCP.git ; based on ESPHome
[env:native]
extra_scripts =
@@ -46,13 +48,13 @@ extra_scripts =
[env:esp32_4M]
extra_scripts =
; pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
scripts/rename_fw.py
scripts/upload.py
[env:lolin_s3]
extra_scripts =
pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
; pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
scripts/rename_fw.py
scripts/upload.py
@@ -82,8 +84,6 @@ build_flags =
-D ONEWIRE_CRC16=0
-D NO_GLOBAL_ARDUINOOTA
-D ARDUINOJSON_ENABLE_STD_STRING=1
-D ARDUINOJSON_USE_DOUBLE=0
; -D ARDUINOTRACE_ENABLE=1
-D TASMOTA_SDK
; -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_WARN
-D EMSESP_TEST

View File

@@ -18,15 +18,20 @@ core_unbuild_flags = -std=gnu++11
; my_build_flags is set in pio_local.ini
my_build_flags =
; explanation on some custom settings:
; CONFIG_ASYNC_TCP_QUEUE - see https://github.com/emsesp/EMS-ESP32/issues/177
; CONFIG_ASYNC_TCP_STACK_SIZE - stack usage measured: ESP32: ~2.3K, ESP32S3: ~3.5k
; CONFIG_ASYNC_TCP_TASK_PRIORITY - default is 10, was 5 for EMS-ESP
build_flags =
${common.core_build_flags}
${factory_settings.build_flags}
${common.my_build_flags}
-D ONEWIRE_CRC16=0
-D NO_GLOBAL_ARDUINOOTA
-D CONFIG_ETH_ENABLED
-D CONFIG_UART_ISR_IN_IRAM
-D CONFIG_ASYNC_TCP_STACK_SIZE=5120
-D CONFIG_ASYNC_TCP_QUEUE=32
-D CONFIG_ASYNC_TCP_TASK_PRIORITY=10
unbuild_flags =
${common.core_unbuild_flags}
@@ -35,7 +40,8 @@ unbuild_flags =
platform = espressif32@6.7.0
framework = arduino
board_build.filesystem = littlefs
build_flags = ${common.build_flags}
build_flags =
${common.build_flags}
build_unflags = ${common.unbuild_flags}
extra_scripts =
pre:scripts/build_interface.py
@@ -62,18 +68,18 @@ monitor_speed = 115200
monitor_filters = direct
upload_speed = 921600
build_type = release
lib_ldf_mode = chain+
lib_deps =
https://github.com/emsesp/EMS-ESP-Modules
bblanchon/ArduinoJson@^7.0.4
check_tool = cppcheck, clangtidy
check_severity = high, medium
check_flags =
cppcheck: --std=c++11 -v
clangtidy: --checks=-*,clang-analyzer-*,performance-*
lib_ldf_mode = chain+
lib_deps =
https://github.com/emsesp/EMS-ESP-Modules.git
bblanchon/ArduinoJson@^7.0.4
; build for GitHub Actions CI
; the Web interface is built seperately
; the Web interface is built seperately, so is skipper in extra_scripts
[env:ci]
extends = espressi32_base_tasmota
extra_scripts = scripts/rename_fw.py
@@ -191,17 +197,9 @@ board_build.filesystem = littlefs
board_upload.flash_size = 16MB
board_build.partitions = esp32_partition_16M.csv
board_build.extra_flags = -DBOARD_HAS_PSRAM
build_flags =
${factory_settings.build_flags}
${common.my_build_flags}
-D ONEWIRE_CRC16=0
-D NO_GLOBAL_ARDUINOOTA
-D ARDUINOJSON_ENABLE_STD_STRING=1
-D ARDUINOJSON_USE_DOUBLE=0
-D ARDUINOTRACE_ENABLE=0
-D CONFIG_ETH_ENABLED
-D CONFIG_UART_ISR_IN_IRAM
-D CONFIG_ASYNC_TCP_STACK_SIZE=5120
build_flags =
${common.build_flags}
build_unflags = ${common.unbuild_flags}
; to build and run: pio run -e native -t exec
[env:native]