Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5af85ece7 | ||
|
|
f2d8962ba8 | ||
|
|
1f50d84d83 | ||
|
|
f4f1e318c6 | ||
|
|
6f15538ef3 | ||
|
|
33de614645 | ||
|
|
0ca698b23f | ||
|
|
dce1268d07 | ||
|
|
3f250a4d4c | ||
|
|
5442b8a739 | ||
|
|
a7d7c69fc4 | ||
|
|
b823374ce8 | ||
|
|
66ed1b55b1 | ||
|
|
bdbf0527f9 | ||
|
|
3fa9a3603a | ||
|
|
9567b33279 | ||
|
|
558a8f3ddf | ||
|
|
edccb0b90e | ||
|
|
318d3b6345 | ||
|
|
4cd2b373ec | ||
|
|
d77fa3a04c | ||
|
|
cf3dcfbb11 | ||
|
|
c8301e27b6 | ||
|
|
cd215057c8 | ||
|
|
6775abdc01 | ||
|
|
790896c1b6 | ||
|
|
5b5b5240f2 | ||
|
|
aa3b8cb2c8 | ||
|
|
174b9e6f6d | ||
|
|
26e31bd2ba | ||
|
|
c5be15b8ed | ||
|
|
eaded12e55 | ||
|
|
4aa51452df | ||
|
|
9824369d60 | ||
|
|
71a3290cee | ||
|
|
834b0a7a12 | ||
|
|
cd354b013e | ||
|
|
efb456bdf9 | ||
|
|
294a6a31a9 | ||
|
|
3754981f8a | ||
|
|
8ca65fbdf2 | ||
|
|
701890b023 | ||
|
|
6ec42d2db0 | ||
|
|
548dd5959f | ||
|
|
c8494f9ce3 | ||
|
|
7a73e8d418 | ||
|
|
8ee39955d8 | ||
|
|
a906eb1ebb | ||
|
|
627ea80970 | ||
|
|
04c3ff3027 | ||
|
|
d191a285e9 | ||
|
|
8cf9050560 | ||
|
|
92383a82a5 | ||
|
|
87c1d6a55c | ||
|
|
d0d67829b9 | ||
|
|
bc4a051753 | ||
|
|
d8da6b5a1c | ||
|
|
fd8300dcbe | ||
|
|
91543ec87b | ||
|
|
d6514ec699 | ||
|
|
cd2083b107 | ||
|
|
17e391514b | ||
|
|
ae6aea4226 | ||
|
|
2e0d83a9e4 | ||
|
|
756c3594a9 | ||
|
|
c4fd0e9644 | ||
|
|
01ce6fff39 | ||
|
|
497d00031d | ||
|
|
64699e1de7 | ||
|
|
9b8b0f0d95 | ||
|
|
013fcfe846 | ||
|
|
f46a8fb6c7 | ||
|
|
4abfdaab69 | ||
|
|
0f6eebcda7 | ||
|
|
c34d14bcbf | ||
|
|
299510ddfa | ||
|
|
887ce21018 | ||
|
|
acd31386d4 | ||
|
|
bfe5926589 | ||
|
|
517b259739 | ||
|
|
3a4e24f163 | ||
|
|
f79fbe5048 | ||
|
|
77e1d29bdc | ||
|
|
e9d4808336 | ||
|
|
7399c7ac49 | ||
|
|
f2c5b5aced | ||
|
|
dfe2bdadcd | ||
|
|
4cc4f0ffae | ||
|
|
bc81cedb32 | ||
|
|
51a043b95e | ||
|
|
3e91f8fd0d | ||
|
|
61e82decce | ||
|
|
e85aa8e820 | ||
|
|
109e0dbfaa | ||
|
|
174a80d242 | ||
|
|
f96a6abd1b | ||
|
|
33104b48d0 | ||
|
|
d90b46464c | ||
|
|
e98b2aa6ba | ||
|
|
5d26b0fa9f | ||
|
|
2ef6dfa2c2 | ||
|
|
581a6f87f1 | ||
|
|
d1e845a8a8 | ||
|
|
75bafa5ca6 | ||
|
|
fc73e026a1 | ||
|
|
c7ee89f53f | ||
|
|
f5ccb88c71 | ||
|
|
6cb57ad46c | ||
|
|
64876cfdc5 | ||
|
|
4873c50f5e | ||
|
|
4463cfa2cf | ||
|
|
1e5b7d13f2 | ||
|
|
8120a740a3 | ||
|
|
e24623c1fb | ||
|
|
30e793ce79 | ||
|
|
750afc7094 | ||
|
|
fae0205d00 | ||
|
|
f56453f269 | ||
|
|
78b89c9758 | ||
|
|
ee60dcb097 | ||
|
|
9a38d1a43b | ||
|
|
b7e9ff8b78 | ||
|
|
84f47c6db7 | ||
|
|
bfb2c0f2ba | ||
|
|
29c2ff5473 | ||
|
|
619f25f984 | ||
|
|
64de5a08ef | ||
|
|
1bc4e692f6 | ||
|
|
f777463c3b | ||
|
|
0fd9e6c768 | ||
|
|
8371a84e7e | ||
|
|
ce77cf9a8f | ||
|
|
fb8cb58097 | ||
|
|
db08d00e4b | ||
|
|
8533d036de | ||
|
|
438ef4fd3f | ||
|
|
7c3b582255 | ||
|
|
f1a6093607 | ||
|
|
91958d51b7 | ||
|
|
6647e35f33 | ||
|
|
9202f2abb4 | ||
|
|
0e0145e151 | ||
|
|
88e05ed73c | ||
|
|
1459b47399 | ||
|
|
94c5f7c381 | ||
|
|
8e86a555fb | ||
|
|
711bedba3e | ||
|
|
481fe3b421 | ||
|
|
c215acfbd8 | ||
|
|
eee0d4978f | ||
|
|
f3112eb5c4 | ||
|
|
44fdd79793 | ||
|
|
6cee545f4a | ||
|
|
0daf65e58e | ||
|
|
a32f0f969b | ||
|
|
c897816880 | ||
|
|
681a5b3c1a | ||
|
|
b01c28377d | ||
|
|
b2bb9d2c37 | ||
|
|
150063aeef | ||
|
|
5064038009 | ||
|
|
a3f72f37c6 | ||
|
|
0d27dcacc7 | ||
|
|
b5740f9609 | ||
|
|
968b43365c | ||
|
|
bf2d14b406 | ||
|
|
d4730dd6b2 | ||
|
|
d6f07ba327 | ||
|
|
7571b6015e | ||
|
|
81ffad5f17 | ||
|
|
1de42de6b4 | ||
|
|
8e7c16208c | ||
|
|
da704540bb | ||
|
|
d56d4f83fd | ||
|
|
ff8a24643b | ||
|
|
c7608cfe6c | ||
|
|
8e683bda81 | ||
|
|
b402159198 | ||
|
|
736b430427 | ||
|
|
db1896876d | ||
|
|
78e24ffd96 | ||
|
|
6b0d632564 | ||
|
|
b77b9c4674 | ||
|
|
196470f544 | ||
|
|
fc61a48283 | ||
|
|
cdf20e46da | ||
|
|
0c8f1354a5 | ||
|
|
b82717b404 | ||
|
|
0c8a0d1988 | ||
|
|
ab7dbcfe1e | ||
|
|
8712d2fd72 | ||
|
|
89cc954335 | ||
|
|
a755496fd5 | ||
|
|
0a39e66b3d | ||
|
|
16679237f1 | ||
|
|
2077ee9d5d | ||
|
|
951b1fb8c8 | ||
|
|
769ae8c849 | ||
|
|
704c39d147 | ||
|
|
a3fbe47db6 | ||
|
|
2f1b93258d | ||
|
|
1d08ca4264 | ||
|
|
a39aad952a | ||
|
|
2f43da5eff | ||
|
|
4c40206974 | ||
|
|
3c99051026 | ||
|
|
a7fad61e7d | ||
|
|
3730465ad1 | ||
|
|
3e8944ad96 | ||
|
|
59edcac7d9 | ||
|
|
a315237db3 | ||
|
|
c287a2cf91 | ||
|
|
c05dbd3343 | ||
|
|
0a697f986e | ||
|
|
04bd9b52bf | ||
|
|
8967740360 | ||
|
|
45415f6781 | ||
|
|
665aa3e164 | ||
|
|
170eb83fe5 | ||
|
|
bfd97ba182 | ||
|
|
6fe27c89b4 | ||
|
|
1caba3e2d5 | ||
|
|
15722e7626 | ||
|
|
f0c72a72b2 | ||
|
|
bcae42264d | ||
|
|
e015d1b9f6 | ||
|
|
67f0f70a25 | ||
|
|
77374107a3 | ||
|
|
5dc2defb52 | ||
|
|
5e677f713e | ||
|
|
4f45c0cd2b | ||
|
|
8841e2dfa8 | ||
|
|
f665a17071 | ||
|
|
f3a196daad | ||
|
|
a873019c4d | ||
|
|
19e86ff1ee | ||
|
|
d54e056178 | ||
|
|
5a38480932 | ||
|
|
7a0aa15c73 | ||
|
|
d274380a2b | ||
|
|
7c85873e2f | ||
|
|
2811f40f05 | ||
|
|
33ab59a063 | ||
|
|
98546624a3 | ||
|
|
2522e22355 | ||
|
|
860e8fd22f | ||
|
|
6f6ec09809 | ||
|
|
44371713f7 | ||
|
|
bd8ae1bbd1 | ||
|
|
64ca2ad03f | ||
|
|
09bfa9ec30 | ||
|
|
0d0dfdfd9b | ||
|
|
a95ad3bda1 | ||
|
|
40cafa3b60 | ||
|
|
aa2d6d9660 | ||
|
|
458a87657b | ||
|
|
22b3856e6d | ||
|
|
e1cfee6947 | ||
|
|
9a58bbbf1f | ||
|
|
77576896cc | ||
|
|
0782dd8041 | ||
|
|
1cc74cb427 | ||
|
|
02dadceaa4 | ||
|
|
cca51b33cb | ||
|
|
1a37a7a7b4 | ||
|
|
d2c62908c2 | ||
|
|
de64649bcc | ||
|
|
053fc9e5ed | ||
|
|
69184ffec8 | ||
|
|
353e8fc163 | ||
|
|
b0ccd9335b | ||
|
|
45b7130d43 | ||
|
|
3a7ad29848 | ||
|
|
5cc799ae31 | ||
|
|
072be688cb | ||
|
|
72b197aed0 | ||
|
|
61814e3122 | ||
|
|
1efa045f87 | ||
|
|
c4b075c54d | ||
|
|
ab1465187b | ||
|
|
44dbb2caaa | ||
|
|
fe361559b2 | ||
|
|
09648c5223 | ||
|
|
1afa7580c8 | ||
|
|
0175b50d43 | ||
|
|
17ff6c2ac9 | ||
|
|
079d0ccda7 | ||
|
|
6c482aff54 | ||
|
|
fbc1132c51 | ||
|
|
4fcb0c5d76 | ||
|
|
274b1e8d7e | ||
|
|
7700696517 | ||
|
|
686df16fa3 | ||
|
|
97bb276339 | ||
|
|
08e11440f9 | ||
|
|
85f0128081 | ||
|
|
f79c3c00e1 | ||
|
|
68a0578305 | ||
|
|
2c426d8c78 | ||
|
|
a34ad10169 | ||
|
|
d28c4bea50 | ||
|
|
ed90c1c708 | ||
|
|
8713131414 | ||
|
|
8a25de749d | ||
|
|
14294a783d | ||
|
|
ac6bd25ae6 | ||
|
|
886b25db79 | ||
|
|
d5606e3800 | ||
|
|
d4c6cb92c7 | ||
|
|
4e2cab0070 | ||
|
|
deb7cf34dc | ||
|
|
45d0b30f05 | ||
|
|
05d07f4aa7 | ||
|
|
93e42b2f5d | ||
|
|
a3ee42a21b | ||
|
|
6441ed8761 | ||
|
|
b979ef9695 | ||
|
|
9460992d94 | ||
|
|
f13190dda9 | ||
|
|
22be675a54 | ||
|
|
240737afb7 | ||
|
|
b9d9225d7d | ||
|
|
4f52f78080 | ||
|
|
9c302c4346 | ||
|
|
cda3a0638a | ||
|
|
38865542fb | ||
|
|
33006a7c54 | ||
|
|
0aa66dab3d | ||
|
|
839dccac59 | ||
|
|
dfd5f0fd57 | ||
|
|
d8e2391eff | ||
|
|
548ee1c926 | ||
|
|
225550cede | ||
|
|
fd3cc53d56 | ||
|
|
dfa4904340 | ||
|
|
4748caae63 | ||
|
|
c20079f960 | ||
|
|
02717039ae | ||
|
|
f091f1f70c | ||
|
|
49d420b1da | ||
|
|
e28cac32d6 | ||
|
|
20962f0822 | ||
|
|
ce73e4c316 | ||
|
|
edcae4db8c | ||
|
|
ea02bf259d | ||
|
|
8539527f36 | ||
|
|
25602e952f | ||
|
|
e96c2071d1 | ||
|
|
7f6d559720 | ||
|
|
875097fcba | ||
|
|
c57dcdca4f | ||
|
|
8112d06e80 | ||
|
|
e87671432b | ||
|
|
15dd104eb1 | ||
|
|
56d97c60f5 | ||
|
|
7efe1ab8e5 | ||
|
|
70b06798f1 | ||
|
|
f62038a41d | ||
|
|
028fc6c7bf | ||
|
|
0b950254ba | ||
|
|
1896c3c6ea | ||
|
|
e9f082ae31 | ||
|
|
f962f868eb | ||
|
|
62d2b3328c | ||
|
|
3ba43d9680 | ||
|
|
2a382cfa08 | ||
|
|
b56c969d4a | ||
|
|
afc3214ffe | ||
|
|
a6343c4177 | ||
|
|
bae2311e64 | ||
|
|
40762e4fab | ||
|
|
2e4ef9a557 | ||
|
|
7f2a4eddc6 | ||
|
|
967f940895 | ||
|
|
9756b8ae73 | ||
|
|
61a8a28588 | ||
|
|
ae3cbb9869 | ||
|
|
8c2f5a2c9b | ||
|
|
065efcd813 | ||
|
|
c6b96c5c74 | ||
|
|
c9ef1514ea | ||
|
|
7d37637668 | ||
|
|
99b8156ab3 | ||
|
|
600367b3bb | ||
|
|
89bf66c400 | ||
|
|
5a689b2a19 | ||
|
|
1ef66a487a | ||
|
|
ad5e2eaaad | ||
|
|
4ad08ac11d | ||
|
|
4c934d4657 | ||
|
|
197dc102c3 | ||
|
|
fb0f8ed1bf | ||
|
|
6b5e24941e | ||
|
|
db1d7d9b15 | ||
|
|
425aec46c5 | ||
|
|
bb5ac3e626 | ||
|
|
4060dad689 | ||
|
|
1413ae2c4b | ||
|
|
83f224c4a4 | ||
|
|
6a0b131867 | ||
|
|
4f5783a56c | ||
|
|
5fb0975fa2 | ||
|
|
16f7c9e26d | ||
|
|
9d0dd105fd | ||
|
|
2e498bed2d | ||
|
|
b3834186a0 | ||
|
|
19a619e09c | ||
|
|
6e3fd6269b | ||
|
|
eb12171385 | ||
|
|
f0d9f6a7c3 | ||
|
|
57505e862b | ||
|
|
83cda200ac | ||
|
|
60f4dd5461 | ||
|
|
296873795b | ||
|
|
280ad63a3f | ||
|
|
ca6669c72f | ||
|
|
e3f8adf83e | ||
|
|
fb853a4639 | ||
|
|
5b37962f62 | ||
|
|
3e41ad7a26 | ||
|
|
20a5668096 | ||
|
|
aef7909ffc | ||
|
|
d5d31a71c7 | ||
|
|
29f6357f75 | ||
|
|
5df32fdcaf | ||
|
|
bd1a6f5749 | ||
|
|
e6a44a330c | ||
|
|
73938e3aeb | ||
|
|
c287448f97 | ||
|
|
5063421862 | ||
|
|
18cfc866c5 | ||
|
|
ed0d0a155b | ||
|
|
2aba1bf0f1 | ||
|
|
b817f18508 | ||
|
|
0c99aaad3f | ||
|
|
05337a521f | ||
|
|
188f6f4c54 | ||
|
|
6df4649fed | ||
|
|
8ffc8da244 | ||
|
|
a4fdcaf38e | ||
|
|
e2ae659063 | ||
|
|
c8573b50c2 | ||
|
|
8da43626d1 | ||
|
|
a0ae909850 | ||
|
|
151cf5e2c0 | ||
|
|
073ad8798b | ||
|
|
61955c84aa | ||
|
|
a3bb6daf5f | ||
|
|
03ddf0e9da | ||
|
|
89c280ff4c | ||
|
|
537d35c656 | ||
|
|
57666f62c0 | ||
|
|
064912d738 | ||
|
|
5e68eec0da | ||
|
|
a270a250d1 | ||
|
|
b2358e07c7 | ||
|
|
8f81cf00bd | ||
|
|
ec611d1ca8 | ||
|
|
a2299f9b48 | ||
|
|
5530e94341 | ||
|
|
b20af2b950 | ||
|
|
7573e46ac6 | ||
|
|
e0b3250302 | ||
|
|
80a175ee3a | ||
|
|
47ef2b8829 | ||
|
|
a6292b7961 | ||
|
|
2c12f5a3e9 | ||
|
|
22e3ddd715 | ||
|
|
7a357d751e | ||
|
|
7c1c9a75f8 | ||
|
|
5455c280b3 | ||
|
|
471f65efbd | ||
|
|
a02754117c | ||
|
|
fee72ce3f9 | ||
|
|
ea65240389 | ||
|
|
07592e540f | ||
|
|
dc8ef704c7 | ||
|
|
986d53ac35 | ||
|
|
7fb2382aaf | ||
|
|
bb66f3428a | ||
|
|
547f57170b | ||
|
|
3bb189d2bf | ||
|
|
603e6a812b | ||
|
|
9f4c038ef5 | ||
|
|
7ed1cc858a | ||
|
|
86dc1f87fd | ||
|
|
94100585ab |
@@ -24,10 +24,10 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-docs-${{ hashFiles('docs/requirements.txt') }}
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
make html
|
||||
cd ..
|
||||
zip -r -qq ESPEasy_docs.zip docs/build/*
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Documentation
|
||||
path: ESPEasy_docs.zip
|
||||
@@ -49,7 +49,7 @@ jobs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- id: set-matrix
|
||||
@@ -64,19 +64,19 @@ jobs:
|
||||
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- uses: actions/cache@v3
|
||||
python-version: '3.x'
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-${{ hashFiles('requirements.txt') }}
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
if: ${{ contains(matrix.env, 'esp32') }}
|
||||
with:
|
||||
path: ~/.platformio
|
||||
key: ${{ runner.os }}-esp32-${{ hashFiles('platformio*.ini') }}
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
if: ${{ contains(matrix.env, 'esp8266') }}
|
||||
with:
|
||||
path: ~/.platformio
|
||||
@@ -89,6 +89,10 @@ jobs:
|
||||
pip install wheel
|
||||
pip install -r requirements.txt
|
||||
platformio update
|
||||
- name: Get current date
|
||||
id: date
|
||||
run: |
|
||||
echo "builddate=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
|
||||
- name: Build and archive
|
||||
id: build-and-archive
|
||||
env:
|
||||
@@ -96,23 +100,28 @@ jobs:
|
||||
ENV: ${{ matrix.env }}
|
||||
run: |
|
||||
python tools/ci/build-and-archive.py
|
||||
- uses: actions/upload-artifact@v3
|
||||
- id: string
|
||||
uses: Entepotenz/change-string-case-action-min-dependencies@v1
|
||||
with:
|
||||
name: Binaries
|
||||
string: ${{ matrix.chip }}
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# FIXME Workaround to (temporarily) not use # in the artifact name, see https://github.com/actions/upload-artifact/issues/473
|
||||
name: Bin-${{ steps.string.outputs.uppercase }}-${{ matrix.env }}-${{ steps.date.outputs.builddate }}_PR_${{ github.event.number }}_${{ github.run_id }} # Sort by ESP type
|
||||
path: |
|
||||
bin
|
||||
if-no-files-found: ignore
|
||||
|
||||
# Repackage separately for ESP82xx and ESP32
|
||||
repackage:
|
||||
# Package all ESP82xx and ESP32 into a single ESPEasy-all-Binaries-<date>_PR#<pr_nr>_<runnr>.zip
|
||||
combine_package:
|
||||
needs: build
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-docs-${{ hashFiles('docs/requirements.txt') }}
|
||||
@@ -120,92 +129,20 @@ jobs:
|
||||
id: date
|
||||
run: |
|
||||
echo "builddate=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
|
||||
- uses: actions/download-artifact@v3
|
||||
- name: Download all artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts/
|
||||
- name: Prepare artifacts
|
||||
path: artifacts/Binaries/bin/
|
||||
pattern: Bin-*
|
||||
merge-multiple: true
|
||||
- name: List all files in the package for single-archive upload
|
||||
run: |
|
||||
# ESP82xx
|
||||
mkdir ESPEasy_dist_ESP82xx
|
||||
cd dist
|
||||
find . -exec cp -r --parents {} ../ESPEasy_dist_ESP82xx/ \;
|
||||
rm ../ESPEasy_dist_ESP82xx/bin/blank_8MB.bin
|
||||
cd ../artifacts/Binaries
|
||||
find . -not -name '*ESP32*' -exec mv {} ../../ESPEasy_dist_ESP82xx/bin/ \;
|
||||
cd ../..
|
||||
# ESP32 and derived cpus, ESP32 (classic) _MUST_ be last in this list!
|
||||
for cpu in ESP32s2 ESP32c3 ESP32s3 ESP32c2 ESP32c6 ESP32h2 ESP32solo1 ESP32
|
||||
do
|
||||
mkdir ESPEasy_dist_${cpu}
|
||||
spec="*${cpu}*"
|
||||
_files=$(find ./artifacts/Binaries -name "$spec"|wc -l)
|
||||
if [[ $_files > 0 ]]; then
|
||||
cd dist
|
||||
find . -exec cp -r --parents {} ../ESPEasy_dist_${cpu}/ \;
|
||||
cd ../ESPEasy_dist_${cpu}
|
||||
rm bin/blank_1MB.bin bin/blank_2MB.bin bin/ESPEasy_2step_UploaderMega_1024.bin
|
||||
cd ../artifacts/Binaries
|
||||
find . -name "$spec" -exec mv {} ../../ESPEasy_dist_${cpu}/bin/ \;
|
||||
cd ../..
|
||||
fi
|
||||
done
|
||||
# Each supported cpu has to be listed separately, but empty folders are ignored
|
||||
- uses: actions/upload-artifact@v3
|
||||
cd artifacts/Binaries/
|
||||
ls -R
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
# FIXME Workaround to (temporarily) not use # in the artifact name, see https://github.com/actions/upload-artifact/issues/473
|
||||
name: ESPEasy-all-Binaries-${{ steps.date.outputs.builddate }}_PR_${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32/*
|
||||
artifacts/Binaries/
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32solo1_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32solo1/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s2_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32s2/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c3_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32c3/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s3_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32s3/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c2_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32c2/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c6_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32c6/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32h2_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP32h2/*
|
||||
if-no-files-found: ignore
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_PR#${{ github.event.number }}_${{ github.run_id }}
|
||||
path: |
|
||||
ESPEasy_dist_ESP82xx/*
|
||||
if-no-files-found: ignore
|
||||
# When successfully re-packaged, the original Binaries can be removed
|
||||
# comment below 3 lines to not remove the Binaries artifact after repackaging
|
||||
- uses: geekyeggo/delete-artifact@v2
|
||||
with:
|
||||
name: Binaries
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- id: set-matrix
|
||||
@@ -37,19 +37,19 @@ jobs:
|
||||
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-${{ hashFiles('requirements.txt') }}
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
if: ${{ contains(matrix.env, 'esp32') }}
|
||||
with:
|
||||
path: ~/.platformio
|
||||
key: ${{ runner.os }}-esp32-${{ hashFiles('platformio*.ini') }}
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
if: ${{ contains(matrix.env, 'esp8266') }}
|
||||
with:
|
||||
path: ~/.platformio
|
||||
@@ -66,9 +66,13 @@ jobs:
|
||||
ENV: ${{ matrix.env }}
|
||||
run: |
|
||||
python tools/ci/build-and-archive.py
|
||||
- uses: actions/upload-artifact@v3
|
||||
- id: string
|
||||
uses: Entepotenz/change-string-case-action-min-dependencies@v1
|
||||
with:
|
||||
name: Binaries
|
||||
string: ${{ matrix.chip }}
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Bin-${{ steps.string.outputs.uppercase }}-${{ matrix.env }}
|
||||
path: |
|
||||
bin
|
||||
if-no-files-found: ignore
|
||||
@@ -78,10 +82,10 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-docs-${{ hashFiles('docs/requirements.txt') }}
|
||||
@@ -98,7 +102,7 @@ jobs:
|
||||
cd dist
|
||||
zip -r -qq ../ESPEasy_dist.zip *
|
||||
cd ..
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Distribution
|
||||
path: |
|
||||
@@ -112,7 +116,7 @@ jobs:
|
||||
notes: ${{ steps.release-notes.outputs.result }}
|
||||
steps:
|
||||
- id: release-notes
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
@@ -134,48 +138,61 @@ jobs:
|
||||
needs: [build, prepare-dist, prepare-notes]
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/setup-python@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Get current date
|
||||
id: date
|
||||
run: |
|
||||
echo "builddate=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
|
||||
- uses: actions/download-artifact@v3
|
||||
- name: Download all successfully compiled artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts/
|
||||
path: artifacts/bin/
|
||||
pattern: Bin-*
|
||||
merge-multiple: true
|
||||
- name: Download dist and docs zip files
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: distribution/
|
||||
name: Distribution
|
||||
- name: Repackage for release upload
|
||||
run: |
|
||||
ls -R
|
||||
sudo apt install zipmerge zip
|
||||
cd artifacts/Binaries
|
||||
mkdir bin
|
||||
mv *.* bin
|
||||
find . -not -name '*ESP32*' -print | zip -@ ../../ESPEasy_ESP82xx.zip
|
||||
cd artifacts
|
||||
# ESP8266 and ESP8285
|
||||
find . -not -name '*ESP32*' -print | zip -@ ../ESPEasy_ESP82xx.zip
|
||||
# ESP32 and derived chips
|
||||
# TODO if/when available: ESP32c2 ESP32c6 ESP32h2
|
||||
find . -name '*ESP32s2*' -print | zip -@ ../../ESPEasy_ESP32s2.zip
|
||||
find . -name '*ESP32c3*' -print | zip -@ ../../ESPEasy_ESP32c3.zip
|
||||
find . -name '*ESP32s3*' -print | zip -@ ../../ESPEasy_ESP32s3.zip
|
||||
find . -name '*ESP32solo1*' -print | zip -@ ../../ESPEasy_ESP32solo1.zip
|
||||
find . -name '*ESP32_*' -print | zip -@ ../../ESPEasy_ESP32.zip
|
||||
cd ../..
|
||||
mv artifacts/Distribution/ESPEasy_dist* .
|
||||
cp ESPEasy_dist.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip
|
||||
# TODO if/when available: ESP32h2
|
||||
find . -name '*ESP32s2*' -print | zip -@ ../ESPEasy_ESP32s2.zip
|
||||
find . -name '*ESP32c3*' -print | zip -@ ../ESPEasy_ESP32c3.zip
|
||||
find . -name '*ESP32s3*' -print | zip -@ ../ESPEasy_ESP32s3.zip
|
||||
find . -name '*ESP32c2*' -print | zip -@ ../ESPEasy_ESP32c2.zip
|
||||
find . -name '*ESP32c6*' -print | zip -@ ../ESPEasy_ESP32c6.zip
|
||||
find . -name '*ESP32solo1*' -print | zip -@ ../ESPEasy_ESP32solo1.zip
|
||||
find . -name '*ESP32_*' -print | zip -@ ../ESPEasy_ESP32.zip
|
||||
cd ..
|
||||
# Add dist tools to each package, after removing some unneeded files
|
||||
# Copy dist zip for ESP82xx use
|
||||
cp distribution/ESPEasy_dist.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip
|
||||
zip -d ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip "bin/blank_8MB.bin"
|
||||
mv ESPEasy_dist.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip
|
||||
# Move dist zip for ESP32 use
|
||||
mv distribution/ESPEasy_dist.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip
|
||||
zip -d ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip "bin/blank_1MB.bin" "bin/blank_2MB.bin" "bin/ESPEasy_2step_UploaderMega_1024.bin"
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip ESPEasy_ESP82xx.zip
|
||||
# TODO if/when available: ESP32c2 ESP32c6 ESP32h2
|
||||
# TODO if/when available: ESP32h2
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s2_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32s2.zip
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c3_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32c3.zip
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s3_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32s3.zip
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c2_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32c2.zip
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c6_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32c6.zip
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32solo1_binaries.zip ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32solo1.zip
|
||||
zipmerge ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip ESPEasy_ESP32.zip
|
||||
- uses: ncipollo/release-action@v1
|
||||
with:
|
||||
# Include all separately supported CPU models
|
||||
# TODO if/when available: ESP32c2 ESP32c6 ESP32h2
|
||||
artifacts: "ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32solo1_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s2_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c3_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s3_binaries.zip,artifacts/Distribution/*.zip"
|
||||
# Upload all separately supported CPU models and the docs zip
|
||||
# TODO if/when available: ESP32h2
|
||||
artifacts: "ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP82xx_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32solo1_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s2_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c3_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32s3_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c2_binaries.zip,ESPEasy_mega_${{ steps.date.outputs.builddate }}_ESP32c6_binaries.zip,distribution/*.zip"
|
||||
body: ${{ needs.prepare-notes.outputs.notes }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -13,7 +13,7 @@ Introduction https://espeasy.readthedocs.io/en/latest/ (and, mostly outdated, wi
|
||||
This is the development branch of ESPEasy. All new features go into this branch, and it has become the current stable branch. If you want to do a bugfix, do it on this branch.
|
||||
|
||||
|
||||
Check here to learn how to use this branch and help us improving ESPEasy: http://www.letscontrolit.com/wiki/index.php/ESPEasy#Source_code_development
|
||||
Check here to learn how to use this branch and help us improving ESPEasy: [Starter guide for (local) development on ESPEasy](https://espeasy.readthedocs.io/en/latest/Participate/PlatformIO.html#starter-guide-for-local-development-on-espeasy)
|
||||
|
||||
## Web based flasher (experimental)
|
||||
|
||||
@@ -58,6 +58,7 @@ hard | hardware specific builds | Minimal
|
||||
minimal | minimal plugins for specific use-cases | Switch and Controller |
|
||||
spec_* | specialized technical builds | Not intended for regular use |
|
||||
IRext | Infra-red hardware specific | Sending and receiving IR cmd |
|
||||
safeboot | (Experimental) `safeboot` build to enable<br>most/all plugins on 4MB Flash boards | None |
|
||||
|
||||
|
||||
*[opt-arduino-library]* (optional) can be any of:
|
||||
@@ -81,6 +82,8 @@ ESP32solo1 | Espressif ESP32-Solo1 generic boards |
|
||||
ESP32s2 | Espressif ESP32-S2 generic boards |
|
||||
ESP32c3 | Espressif ESP32-C3 generic boards |
|
||||
ESP32s3 | Espressif ESP32-S3 generic boards |
|
||||
ESP32c2 | Espressif ESP32-C2 generic boards |
|
||||
ESP32c6 | Espressif ESP32-C6 generic boards |
|
||||
ESP32-wrover-kit | Espressif ESP32 wrover-kit boards |
|
||||
SONOFF | Sonoff hardware specific |
|
||||
other_POW | Switch with power measurement |
|
||||
@@ -98,6 +101,7 @@ Flash size | Description |
|
||||
1M | 1 MB with 128 kB filesystem |
|
||||
2M | 2 MB with 128 kB filesystem |
|
||||
2M256 | 2 MB with 256 kB filesystem |
|
||||
2M320k | 2 MB with 320 kB filesystem |
|
||||
4M1M | 4 MB with 1 MB filesystem |
|
||||
4M2M | 4 MB with 2 MB filesystem |
|
||||
16M | 16 MB with 14 MB filesystem |
|
||||
@@ -106,18 +110,21 @@ Flash size | Description |
|
||||
16M1M | 16 MB with 1 MB filesystem |
|
||||
16M8M | 16 MB with 8 MB filesystem |
|
||||
|
||||
N.B. Starting with release 2023/12/25, All ESP32 LittleFS builds use IDF 5.1, to support newer ESP32 chips like ESP32-C2 and ESP32-C6. Other SPIFFS based ESP32 builds will be migrated to LittleFS as SPIFFS is no longer available in IDF 5 and later. A migration plan will be made available in 2024.
|
||||
|
||||
*[opt-build-features]* can be any of:
|
||||
Build features | Description |
|
||||
----------------|----------------------------------------------------------------------------|
|
||||
LittleFS | Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable \> 2 MB) |
|
||||
VCC | Analog input configured to measure VCC voltage (ESP8266 only) |
|
||||
OTA | Arduino OTA (Over The Air) update feature enabled |
|
||||
Domoticz | Only Domoticz controllers (HTTP+MQTT) and plugins included |
|
||||
FHEM_HA | Only FHEM/OpenHAB/Home Assistant (MQTT) controllers and plugins included |
|
||||
ETH | Ethernet interface enabled (ESP32 only) |
|
||||
OPI_PSRAM | Specific configuration to enable PSRAM detection, ESP32-S3 only |
|
||||
CDC | Support USBCDC/HWCDC-serial console on ESP32-C3, ESP32-S2 and ESP32-S3 |
|
||||
Build features | Description |
|
||||
----------------|-----------------------------------------------------------------------------------------------------------|
|
||||
LittleFS | Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable \> 2 MB, and no longer supported in IDF \> 5) |
|
||||
VCC | Analog input configured to measure VCC voltage (ESP8266 only) |
|
||||
OTA | Arduino OTA (Over The Air) update feature enabled |
|
||||
Domoticz | Only Domoticz controllers (HTTP) and plugins included |
|
||||
Domoticz_MQTT | Only Domoticz controllers (MQTT) and plugins included |
|
||||
FHEM_HA | Only FHEM/OpenHAB/Home Assistant (MQTT) controllers and plugins included |
|
||||
ETH | Ethernet interface enabled (ESP32-classic only) |
|
||||
OPI_PSRAM | Specific configuration to enable PSRAM detection, ESP32-S3 only |
|
||||
CDC | Support USBCDC/HWCDC-serial console on ESP32-C3, ESP32-S2, ESP32-S3 and ESP32-C6 |
|
||||
noOTA/NO_OTA | Does not support OTA (Over The Air-updating of the firmware) Use [the flash page](https://td-er.nl/ESPEasy/) or ESPTool via USB Serial |
|
||||
|
||||
Some example firmware names:
|
||||
Firmware name | Hardware | Included plugins |
|
||||
@@ -133,7 +140,7 @@ ESPEasy_mega-20230822_max_ESP32s3_8M1M_LittleFS_OPI_PSRAM_CDC.bin | ESP32-S3 8MB
|
||||
ESPEasy_mega-20230822_max_ESP32_16M1M.bin | ESP32 with 16MB flash | All available plugins |
|
||||
ESPEasy_mega-20230822_max_ESP32_16M8M_LittleFS.bin | ESP32 with 16MB flash | All available plugins |
|
||||
|
||||
NB: Since 2023-05-10 the binary files for the different ESP32 variants (S2, C3, S3, 'Classic') are available in separate archives.
|
||||
The binary files for the different ESP32 variants (S2, C3, S3, C2, C6, 'Classic') are available in separate archives.
|
||||
|
||||
To see what plugins are included in which collection set, you can find that on the [ESPEasy Plugin overview page](https://espeasy.readthedocs.io/en/latest/Plugin/_Plugin.html)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_M5STACK_Core2 -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_M5STACK_Core2 -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ODROID_ESP32 -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ODROID_ESP32 -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_16M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DHAS_PSRAM_FIX -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_8M -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_8M -DESP32_CLASSIC",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_ESP32_DEV -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DCORE32SOLO1 -DESP32_CLASSIC",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_ESP32_DEV -DARDUINO_USB_CDC_ON_BOOT=0 -DESP32_4M -DCORE32SOLO1 -DESP32_CLASSIC",
|
||||
"f_cpu": "160000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "esp32c2_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DESP32_4M -DESP32C2",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP32_4M -DESP32C2",
|
||||
"f_cpu": "120000000L",
|
||||
"f_flash": "60000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "esp32c2_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DESP32_2M -DESP32C2",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP32_2M -DESP32C2",
|
||||
"f_cpu": "120000000L",
|
||||
"f_flash": "60000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "esp32c2_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DESP32_4M -DESP32C2",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP32_4M -DESP32C2",
|
||||
"f_cpu": "120000000L",
|
||||
"f_flash": "60000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "esp32c3_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_USB_MODE=1 -DESP32_4M -DESP32C3 -DUSE_USB_CDC_CONSOLE -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_USB_MODE=1 -DESP32_4M -DESP32C3 -DUSE_USB_CDC_CONSOLE -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "160000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"build": {
|
||||
"arduino":{
|
||||
"ldscript": "esp32c6_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_16M -DESP32C6 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "160000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
"mcu": "esp32c6",
|
||||
"variant": "esp32c6",
|
||||
"partitions": "boards/partitions/esp32_partition_app4096k_spiffs8124k.csv"
|
||||
},
|
||||
"connectivity": [
|
||||
"wifi",
|
||||
"bluetooth"
|
||||
],
|
||||
"debug": {
|
||||
"default_tool": "esp-builtin",
|
||||
"onboard_tools": [
|
||||
"esp-builtin"
|
||||
],
|
||||
"openocd_target": "esp32c6.cfg"
|
||||
},
|
||||
"frameworks": [
|
||||
"arduino",
|
||||
"espidf"
|
||||
],
|
||||
"name": "Espressif Generic ESP32-C6 16M Flash, ESPEasy 4096k Code/OTA 8M FS",
|
||||
"upload": {
|
||||
"flash_size": "16MB",
|
||||
"maximum_ram_size": 327680,
|
||||
"maximum_size": 16777216,
|
||||
"require_upload_port": true,
|
||||
"speed": 460800
|
||||
},
|
||||
"url": "https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitc-1/index.html",
|
||||
"vendor": "Espressif"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"build": {
|
||||
"arduino":{
|
||||
"ldscript": "esp32c6_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_8M -DESP32C6 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "160000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
"mcu": "esp32c6",
|
||||
"variant": "esp32c6",
|
||||
"partitions": "boards/partitions/esp32_partition_app3520k_spiffs1088k.csv"
|
||||
},
|
||||
"connectivity": [
|
||||
"wifi",
|
||||
"bluetooth"
|
||||
],
|
||||
"debug": {
|
||||
"default_tool": "esp-builtin",
|
||||
"onboard_tools": [
|
||||
"esp-builtin"
|
||||
],
|
||||
"openocd_target": "esp32c6.cfg"
|
||||
},
|
||||
"frameworks": [
|
||||
"arduino",
|
||||
"espidf"
|
||||
],
|
||||
"name": "Espressif Generic ESP32-C6 >= 8M Flash, ESPEasy 3520k Code/OTA 1088k FS",
|
||||
"upload": {
|
||||
"flash_size": "8MB",
|
||||
"maximum_ram_size": 327680,
|
||||
"maximum_size": 8388608,
|
||||
"require_upload_port": true,
|
||||
"speed": 460800
|
||||
},
|
||||
"url": "https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitc-1/index.html",
|
||||
"vendor": "Espressif"
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "esp32c6_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_4M -DESP32C6 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_4M -DESP32C6 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "160000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "dio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DESP32_4M -DESP32S2 -DCONFIG_IDF_TARGET_ESP32S2=1 -DUSE_USB_CDC_CONSOLE -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DESP32_4M -DESP32S2 -DCONFIG_IDF_TARGET_ESP32S2=1 -DUSE_USB_CDC_CONSOLE -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "dio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "qio_opi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_16M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_16M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "qio_opi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_8M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_8M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "qio_opi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_4M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_4M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "qio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_16M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_16M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "qio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_8M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_8M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"memory_type": "qio_qspi"
|
||||
},
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_4M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DUSE_USB_CDC_CONSOLE -DESP32_4M -DESP32S3 -DARDUINO_USB_CDC_ON_BOOT=1",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.16m14m.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_16M14M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_16M14M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.1m128.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.1m128.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.2m1m.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_2M -DESP8266_2M1M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_2M -DESP8266_2M1M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.2m256.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_2M -DESP8266_2M256",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_2M -DESP8266_2M256",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.4m1m.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_4M1M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_4M1M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.4m2m.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_4M2M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_4M2M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.4m3m.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_4M3M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_4M -DESP8266_4M3M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.2m256.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_2M -DESP8266_2M256",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_2M -DESP8266_2M256",
|
||||
"f_cpu": "160000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.1m128.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DESP8285 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DESP8285 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ldscript": "eagle.flash.1m128.ld"
|
||||
},
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DESP8266 -DESP8285 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP8266 -DESP8285 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01 -DESP8266_1M",
|
||||
"f_cpu": "80000000L",
|
||||
"f_flash": "40000000L",
|
||||
"flash_mode": "dout",
|
||||
|
||||
@@ -1,3 +1,355 @@
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20240401 (since mega-20240331)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Apr 1 12:13:54 AM CEST 2024
|
||||
|
||||
Ton Huisman (1):
|
||||
[Bugfix] Release script fixes and simplifications
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20240331 (since mega-20240229)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Mar 31 03:40:08 PM CEST 2024
|
||||
|
||||
Ernest (ErNis) (1):
|
||||
INA219 26V 8A range added
|
||||
|
||||
Jason2866 (1):
|
||||
small refactor
|
||||
|
||||
TD-er (13):
|
||||
[JL1101] Fix JL1101 Ethernet + update to latest ESP-IDF5.1 code
|
||||
[PlatformIO] Fix installing pygit2
|
||||
[ESP8266 WiFi] Initialize flags for AP capabilities
|
||||
[ESP8266] Get rid of several union structs which may cause weird issues
|
||||
[ESP8266] Remove use of union due to issues on ESP8266
|
||||
[ESP-IDF5.1] Revert to older SDK code due to issues with HWCDC
|
||||
[Build] Reduce build size regarding WiFi AP Candidate duplicate code
|
||||
[HWCDC] Test for ESP32-C3/C6/S3 HWCDC issues
|
||||
[CUL Reader] Cherry pick code from ESPEasy_NOW pull request
|
||||
[CUL Reader] Fix not being able to set flags
|
||||
[Save Settings] Fix issue where data may get corrupted saving task
|
||||
[Display] Reduce ESP8266 'display' build size
|
||||
[MQTT] Fix crash and disconnect sending to MQTT using formula
|
||||
|
||||
Ton Huisman (22):
|
||||
[P087] Add serialproxy_test command and Get the parsed data
|
||||
[P087] Fix typo
|
||||
[P087] Documentation clarification
|
||||
[P087] Apply log-string and code optimizations
|
||||
[P087] Always process Global Match so values can be retrieved
|
||||
[Bugfix] Release.yml shouldn't try to move a non-existing file
|
||||
[Build] Add ESP32-C6 MAX builds (preliminary)
|
||||
[Docs] Update ESP chip info
|
||||
[Docs] Update ESP chip info
|
||||
[P116] Add alternative model selections for ST7789
|
||||
[Bugfix] Remove duplicate define in Custom-sample.h
|
||||
[Build] Custom IR ESP32 configurations not using the pre_custom_esp32_IR.py Python script
|
||||
[P116] Add alternative model selection for ST7735
|
||||
[P029][C002] Add option Invert On/Off value
|
||||
[Docs] Update P029 documentation with new option
|
||||
[C002] Reduce .bin size (slightly)
|
||||
[P116] Fine-tuning the rotation column-offset for ST7735 135x240 display
|
||||
[P116] Documentation improvement.
|
||||
[P095] Documentation improvement.
|
||||
[P116] Update documentation for supported displays
|
||||
[Build] Disable Notifiers in full binaries
|
||||
[Build] Fix typo
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20240229 (since mega-20231225)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Feb 29 03:10:58 PM CET 2024
|
||||
|
||||
Fabio Ancona (1):
|
||||
Added missing P166
|
||||
|
||||
TD-er (104):
|
||||
[IPv6] Fix node with IPv6 not seen by other p2p nodes with only IPv4
|
||||
[PVS Studio] Fix "dangerous expression" macros.
|
||||
[PVS Studio] Fix missing 'break;' in switch statement
|
||||
[PVS Studio] Fix Not all members of a class are initialized inside the constructor
|
||||
[PluginStats] Add PluginStats chart data to /json
|
||||
[PluginStats] Fix pluginstats via JSON & improve speed
|
||||
[ESPEasy p2p] Fix Ethernet connected nodes not listed on other nodes
|
||||
[Build] Make ESP8266 Energy build fit again
|
||||
[Build] Fix duplicate extra_scripts declaration in some ESP8266 builds
|
||||
[HW CDC] Fix delay when no client connected to read serial logs
|
||||
[UDP] Only process UDP packets while connected
|
||||
[Factory Reset] Fix applying NVS stored settings only when these exist
|
||||
[ESP-IDF5.1] Add custom_ESP32s2_4M316k_LittleFS_CDC
|
||||
[Factory Reset] Add default flags for factory reset
|
||||
[ESP-IDF5.1] Fix starting DHCP on ESP AP during setup
|
||||
[Cleanup] Reduce bin size (NVS storage & P128 NeoPixelBus)
|
||||
[Cleanup] Reduce build size (P128 NeoPixelBus)
|
||||
[Cleanup] Reduce build size (P104/P128)
|
||||
[Cleanup] Reduce build size (P104 load/save functions)
|
||||
[Cleanup] Reduce build size
|
||||
[Cleanup] Reduce build size (AdaFruitGFX_Helper fonts)
|
||||
[ESP32] Disable PSRAM for ESP32 4M builds (WT32-ETH01 issues)
|
||||
[Docs] Add credits to origin of ESP32-S3 flash/PSRAM options
|
||||
[ESP-IDF5.1] Improve IPv6 for ESP32-xx
|
||||
[ESP-IDF5.1] Fix IPv6 for ESP32-S3
|
||||
[Build] Fix build due to typo in source code
|
||||
Fix "Enable SDK WiFi Auto Reconnect" state on sysinfo page (#4935)
|
||||
[build] Fix another build issue due to includes
|
||||
Revert "[Cleanup] Reduce build size (AdaFruitGFX_Helper fonts)"
|
||||
[Factory reset] Fix using factory reset defaults on new devices
|
||||
[ESP-IDF5.1] Update to latest ESP-IDF & Arduino fixes
|
||||
Fix crash in command arg parsing with nullptr string
|
||||
[IPv6] Allow `ip6` command from all command sources
|
||||
[P077] Add `cseclearpulses` command to reset CF pulses counter
|
||||
[Cleanup] Reduce build size by simplifying logs
|
||||
[Provisioning] Show error and event on failed firmware update (#4941)
|
||||
[Build] Fix build error on ESP8266
|
||||
[P077_CSE] Fix cseclearpulses command
|
||||
[P077 CSE7766] Call PLUGIN_READ right after `cseclearpulses`
|
||||
[P016 IR] Reduce stack usage executing commands
|
||||
[P016 IR] Fix some build mistakes reducing stack usage
|
||||
[P016 IR] Reduce stack usage execute command
|
||||
[P016 IR] Add debug code to reproduce crashes Uwe
|
||||
[Cleanup] Reduce stack usage P036 OLED Framed
|
||||
[P036 Framed OLED] Apply cleanup from Ton's TAR pull request
|
||||
[P036 OLED Framed] Add bound checks when drawing fonts
|
||||
[Commands] Allow commands from external source to be queued (stack)
|
||||
[Cleanup] Reduce stack usage P036 OLED Framed
|
||||
[P036 Framed OLED] Apply cleanup from Ton's TAR pull request
|
||||
[P036 OLED Framed] Add bound checks when drawing fonts
|
||||
[ESP32 IPv6] Fix getting IPv6 address on ESP32 classic
|
||||
[Build] Add ESP8266 custom IR 1M build + IPv6 to custom ESP32 IR build
|
||||
[IPv6] Move log to more logical place
|
||||
[SPI Ethernet] Add support for SPI Ethernet modules
|
||||
[SPI Ethernet] Fix build for pre ESP-IDF5.1
|
||||
[SPI Ethernet] Fix build
|
||||
[SPI Ethernet] Use user configurable SPI bus for SPI Ethernet
|
||||
[SPI Ethernet] Fix build pre-ESP-IDF5.1
|
||||
[SPI Ethernet] Fix detect Link Up/Down + cleanup code
|
||||
[SPI Ethernet] Fix build on ESP-IDF < 5.x
|
||||
[Build] Fix building on ESP8266
|
||||
[SPI Ethernet] Document SPI Ethernet + Eth config for available boards
|
||||
[SPI Ethernet] Fix typo in docs
|
||||
[Cleanup] Fix crashes on ESP32 sending log from ISR callback functions
|
||||
[SPI Ethernet] Add "- None -" Ethernet type option on Hardware Page
|
||||
[ESP-IDF5.1] Update to latest SDK/Arduino commits
|
||||
[IPv6] Fix IPv6 on ESP32-S3
|
||||
[Build] Fix missing #endif
|
||||
[SPI Ethernet] Allow selecting RMII pins for SPI Ethernet
|
||||
[SPI Ethernet] Fix concurrency issue with shared SPI bus for ETH/display
|
||||
[Build] Fix build on ESP32-C3
|
||||
[PWM] Fix ESP32 LittleFS build PWM GPIO : port#2 is out of range (#4962)
|
||||
[SPI Ethernet] Make default Ethernet parameters more neutral
|
||||
[PWM] Fix deadlock on ESP32-classic with PWM fade
|
||||
[ESP32 PWM] Fix calling ledcAttach for Servo and PWM on ESP32 IDF5.1
|
||||
[ESP-IDF5.1] Update to latest Arduino and ESP-IDF commits
|
||||
[Email] Fix sending multiple lines in body (#4967)
|
||||
[ESP-IDF5.1] Fix build ESP32-C2
|
||||
[Build] Test ESP32-solo1 build on CI
|
||||
[ESP-IDF5.1] Update to latest platform build
|
||||
[SPI Eth] Add ESP32-S3 ETH builds
|
||||
[ESP32 WiFi] Fix slow connect after WiFi scan
|
||||
[SPI Eth] Allow SPI Ethernet W5500 to have not connected INT pin
|
||||
[Build] Fix missing include
|
||||
[ESP-IDF5.1] Update to latest IDF and Arduino commits
|
||||
[ESP-IDF5.1] Update platform package for ESP32-solo1
|
||||
[ESP-IDF5.1] Fix renamed platform zip file
|
||||
[ESP32 WiFi] Fix crashing on wifi disconnect
|
||||
[WiFi] Fix crash when calling disconnect or wifimode,off from remote src
|
||||
[WiFi] Fix crash when WiFi was turned off while data is sent
|
||||
[Docs] Add warning changing ECO mode when using SPI Ethernet
|
||||
[GPIO] Add form note setting pull-up on Hardware tab (#4800)
|
||||
[Rules] Remove warning for max size on Rules edit page
|
||||
[Eth] Show Ethernet adapter used in JSON/Sysinfo
|
||||
[ESP-IDF5.x] Add fix to ESP-IDF/Arduino for W5500 without RST (AtomPoE)
|
||||
[HW info] Add checks for properly identify embedded flash/PSRAM
|
||||
[ESP8266] Reduce memory usage by actively flushing webpage buffers
|
||||
[IPv6] Fix slowdown restarting services on receiving IPv6 address
|
||||
[ESP32-C3/C6] Fix web slowdown by reverting Arduino/IDF code
|
||||
[Build] Fix build issue on ESP-IDF4.4
|
||||
[Build] Fix build on non-ESP32-S3
|
||||
[Build] Fix typo in ESP32-S2 code
|
||||
[ESP32-C3/C6] Fix stalling on concurrent connections
|
||||
[Build] Add flag to help not compile/download unused libs
|
||||
|
||||
Ton Huisman (116):
|
||||
[P044] Uncrustify format source
|
||||
[P044] Make Led pin configurable
|
||||
[P044] Correct auto-complete typo
|
||||
[Plugins] Call PLUGIN_WEBFORM_PRE_SERIAL_PARAMS before serial settings are displayed to allow settings conversion
|
||||
[Plugins] Call PLUGIN_WEBFORM_PRE_SERIAL_PARAMS before serial settings are displayed to allow settings conversion
|
||||
[P020] Merge [P044] code into [P020], so P020 van emulate P044
|
||||
[P020/P044] Migrate settings also on plugin start without prior save from UI
|
||||
[P020] Code improvement
|
||||
[P020/P044] Add option for including P1 data in #data event
|
||||
[UI] Add Separator character input selector
|
||||
[P020/P044] Add feature to replace spaces and newlines in received data
|
||||
[P020] Add plugin documentation
|
||||
[P037] Implement replacement character input selector, update documentation
|
||||
[UI] Fix unsupported feature compilation error, fix signed/unsigned warning
|
||||
[P044] Only show usable settings
|
||||
[P044] Update plugin documentation (based on P020)
|
||||
[Build] Adjust Custom ESP8266 as already planned to fix build failure
|
||||
[P020/P044] Adjustments to complete the merge
|
||||
[P020] Add extra check before sending P1 data
|
||||
[P020] Revert extra check before sending P1 data, minor improvements
|
||||
[StringConverter] Add parseHexTextString()
|
||||
[P020] Add command `serialsendmix`
|
||||
[StringConverter] Improvements to parseHexTextString()
|
||||
[P020] Add command documentation
|
||||
[P020] Correct some typos in documentation
|
||||
[StringConverter] Add parseHexTextData() to handle 0x00
|
||||
[P020] Use parseHextTextData() to handle 0x00 in data
|
||||
[P020] Update documentation for 0x00..0xFF hex data support in serialsendmix
|
||||
[P020] Update changelog
|
||||
[P020] Unification of Ser2Net log messages
|
||||
[Build] Manually apply WiFi build fixes (missing includes)
|
||||
[ESPEasySerial] Add shortName option to be used as eventname
|
||||
[Helpers] Implement ESPEasySerial shortName option to be used as eventname
|
||||
[P020] Increase max. buffer size [P020] Add options for using Serial Port name as event and/or append the task number [P020/P044] Fix plugin initialization when USB (HW)CDC or I2C Serial is selected
|
||||
[P020] Update documentation for new options
|
||||
[P020] Fix receiving P1 data
|
||||
[P020] Fix merge conflict
|
||||
[P020] Allow some extra time-out while receiving P1 data, add missing CR/LF
|
||||
[P044/P020] Improved defaults for P1 WiFigateway
|
||||
[P020][P044] Minor improvements, update with latest mega changes
|
||||
[Docs] Hardware page: Add missing documentation for new I2C Slow default
|
||||
[P043] Add support for %sunrise% and %sunset% based time-values
|
||||
[Docs] Add missing %syssec_d% variable
|
||||
[P151] Add missing PLUGIN_I2C_GET_ADDRESS function
|
||||
[Docs] Update in Plugin-template embedded documentation
|
||||
[Docs] Add Rules example for registering daily working time
|
||||
[TimeCalc] Fix parse errors
|
||||
[Text input] Add `datalist` support, manually cherry picked from P123 PR
|
||||
[Text input] Implement `datalist` support
|
||||
[P043] Add selection list (datalist) support for input time string
|
||||
[P043] Rework Day,Time inputs, add configurable Day,Time count
|
||||
[P043] Change Value input layout to be on same line as the Day,Time input, code optimization
|
||||
[Docs] Update Commands and Events references
|
||||
[P043] Add option for On/Off value input
|
||||
[P043] Add 'config' command support and get config value support
|
||||
[P043] Add documentation
|
||||
[Build] Disable some failing build envs
|
||||
[Docs] Add P043 to commands and events reference pages
|
||||
[P043] Fix simple Yes/No behavior like GPIO mode
|
||||
[P043] Update documentation
|
||||
[Build] Fix buildscripts for v4 Actions `upload-artifact`, `download-artifact` and `delete-artifact`
|
||||
[Build] GH Actions v4 use unique upload-id
|
||||
[Build] GH Actions use setup-python v5, improved glob for delete-artifact
|
||||
[Build] GH Actions v4 try fix artifact download permissions issue
|
||||
[Docs] Update `README.md` with new builds/ESPs/options
|
||||
[Build] GH Actions v4 Sort builds by ESP, remove repackage step
|
||||
[Build] GH Actions v4 Fix build names vs dependencies, add all-binaries artifact
|
||||
[Build] GH Actions v4 Rename `repackage` job to `combine_package`
|
||||
[Build] GH Actions v4 Apply also to `release.yml`, add ESP32-C2 and ESP32-C6 artifact uploads
|
||||
[Lib] NeoPixelBus_Wrapper: Allow fall-back to Adafruit_NeoPixel lib for ESP8266
|
||||
[Lib] NeoPixelBus_Wrapper: Fix compilation for IR builds
|
||||
[Lib] NeoPixelBus_Wrapper: Correct includes attribute
|
||||
[Docs] Add Rules example for measuring daily used power/energy
|
||||
[Adafruit_NeoPixel] Fix compiler warning
|
||||
[NeoPixelBus_wrapper] Update README.md
|
||||
[NeoPixelBus_wrapper] Correct class inheritance error
|
||||
[Adafruit_NeoPixel] Exclude from ESP32 builds (unused)
|
||||
[Adafruit_NeoPixel] Correct function signature issues causing compiler warnings
|
||||
[P131] Fix compiler warning -Wreorder
|
||||
[SuperTinyCron] Remove unused commandline tool
|
||||
[P020] Replace WiFiServer->available() by accept() (for IDF >= 5)
|
||||
[Build] Combine_package use separate downloads to reduce chance of failure
|
||||
[Build] Combine_package use wretry.action to try and succeed the downloads
|
||||
[Build] Remove RTTTL from `normal_IRext_no_rx` build for size, add some libs to lib_ignore for `custom_IR` builds
|
||||
[P043] Exclude some code that won't work for PLUGIN_BUILD_MINIMAL_OTA builds
|
||||
[Release] Add ESP32-C2 and ESP32-C6 downloads
|
||||
[Build/Release] Fix some issues, apply workarounds where needed
|
||||
[Docs] Update copyright year to 2024
|
||||
[Docs] Update copyright year to 2024
|
||||
[Docs] Update copyright year to 2024
|
||||
[Docs] Update Sphinx tools and configuration
|
||||
[IR] Enable all protocols for ESP32 IR builds
|
||||
[Bugfix] Update bootstrap version for Sphinx to fix documentation menus
|
||||
[P166] Add plugin GP8403 DAC Dual channel 0-10V
|
||||
[P166] Add isI2CEnabled check on PLUGIN_INIT
|
||||
[Build/Release] Update actions/cache to v4
|
||||
[P166] Send out datat for events/controllers when changing output values
|
||||
[Build/Release] Remove Wdalen/retry.action plugin for Node 20 compatibility
|
||||
[P166] Send out data by scheduling a timer
|
||||
[P166] Update changelog
|
||||
[P166] Set default I2C address to 0x5F, as that's how is delivered
|
||||
[UI] Add alternative 'default' selection to `addFormSelectorI2C()`
|
||||
[P166] Restore I2C address selector order, fix compiler warning 're-order'
|
||||
[UI] Add alternative 'default' selection to `addFormSelectorI2C()`, select by address
|
||||
[P166] Adjust I2C address selector default
|
||||
[UI] Update plugin I2C address selectors to normal order, with matching default
|
||||
[P166] Optionally restore last output value on warm boot (setting, default enabled)
|
||||
[P166] Fix bug that Initial values where not applied after settings save
|
||||
[P166] Add documentation
|
||||
[P166] Documentation improvements
|
||||
[Build] Allow FEATURE_SERVO for Custom builds with LIMIT_BUILD_SIZE set
|
||||
[Bugfix] `%vcc%` variable isn't recognized
|
||||
[MQTT] Add PublishR command: publish with will-retain
|
||||
[Docs] Documentation and EasyColorCode updates and fixes, Feb 2024
|
||||
[MQTT] Fix debug strformat message
|
||||
[EasyColorCode] Correction and var rename commonEvents
|
||||
|
||||
chromoxdor (30):
|
||||
Update Networking.cpp
|
||||
Update Networking.cpp
|
||||
Update Networking.cpp
|
||||
make thinkspeak event optional
|
||||
compare also the last part of the uri to generate an event
|
||||
add check if we got an answer otherwise we get -1 as a value
|
||||
Update Networking.cpp
|
||||
Update Networking.cpp
|
||||
Update define_plugin_sets.h
|
||||
Update define_plugin_sets.h
|
||||
Update Networking.cpp
|
||||
Add ThingspeakReply to wordlist
|
||||
Update Networking.cpp
|
||||
Update Networking.cpp
|
||||
added documentation
|
||||
Update Rules.rst
|
||||
single + multifield reply combined
|
||||
Update Rules.rst
|
||||
Update Rules.rst
|
||||
a little formatting
|
||||
Update espeasy.min.js
|
||||
Update Rules.rst
|
||||
add %sysec_d% and fix typo
|
||||
remove change since ton already did it :)
|
||||
Update StringGenerator_System.cpp
|
||||
initial changes
|
||||
Update _P102_PZEM004Tv3.ino
|
||||
Update _P102_PZEM004Tv3.ino
|
||||
Update Rules.rst
|
||||
Update codemirror to 5.65.16
|
||||
|
||||
flashmark (9):
|
||||
Initial plugin structure
|
||||
Rough, working version
|
||||
Added recovery from communication failures
|
||||
Rework after review, added documentation
|
||||
Fixed compiler issue after rebase
|
||||
Minor cleanup
|
||||
Some fixes after review
|
||||
Added to CLimate and Collection G plugin sets. Removed some leftovers.
|
||||
Merge
|
||||
|
||||
uwekaditz (11):
|
||||
[P016] Add protocol RAW to UI if 'Accept DecodeType UNKNOWN' is set
|
||||
uint64ToString() changed to ll2String()
|
||||
Check the vector size when checking for commands, and check that the command is really not empty
|
||||
Reduce code for debug message
|
||||
Revert "Merge branch 'P016]-PullRequest' of https://github.com/uwekaditz/ESPEasy into P016]-PullRequest"
|
||||
Revert "Reduce code for debug message"
|
||||
Reduce code for debug message
|
||||
Use the new property addToQueue in ExecuteCommand_all()
|
||||
Uncrustify
|
||||
Uncrustify #ifdef's
|
||||
[P016] BUG: Decode type UNKNOWN was not added to the web settings
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20231225 (since mega-20231130)
|
||||
-------------------------------------------------
|
||||
@@ -4526,7 +4878,7 @@ TD-er (106):
|
||||
[WiFi] Process Station event Auth Changed
|
||||
[Controller] Debug log on remove duplicate queued message
|
||||
[GPIO] Fix warning of unused variable
|
||||
[Build] Remove HWL8012 from "energy" build
|
||||
[Build] Remove HLW8012 from "energy" build
|
||||
[Energy build] Add P093 Mitsubishi Heat Pump
|
||||
[Cleanup] Remove ICACHE_RAM_ATTR on wifi event function
|
||||
[Build] LittleFS can only be built on 'beta' builds
|
||||
@@ -4534,7 +4886,7 @@ TD-er (106):
|
||||
[Cleanup] Reduce IRAM usage in Dallas bit read/write code
|
||||
[Build] Fix normal_beta_ESP8266_16M_LittleFS build
|
||||
[Cleanup] Remove unneeded ICACHE_RAM_ATTR on DHCP timeout callback
|
||||
[Build] Remove P076 HWL8012 from "testing" builds due to build size
|
||||
[Build] Remove P076 HLW8012 from "testing" builds due to build size
|
||||
[Build] Disable test_ESP8266_4M1M_VCC_MDNS_SD as it does not fit in IRAM
|
||||
[Build] Set normal_IRext_no_rx_ESP8266_4M2M to LIMIT_BUILD_SIZE
|
||||
[GPS] Fix running out of memory when no GPS data is received.
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
Sphinx==4.5.0
|
||||
Sphinx==7.*
|
||||
sphinx-autobuild==2021.3.14
|
||||
sphinx-bootstrap-theme==0.8.1
|
||||
recommonmark==0.7.1
|
||||
recommonmark==0.7.1
|
||||
sphinxcontrib-htmlhelp>=2.0.5
|
||||
sphinxcontrib-applehelp>=1.0.8
|
||||
@@ -10,8 +10,8 @@ ESPEasy does support a number of variants of the processors manufactured by Espr
|
||||
* **ESP32-S2** Has more GPIO pins than the ESP32, but only 1 CPU core. Initial support in ESPEasy added since 2021-09-19.
|
||||
* **ESP32-S3** Support added: 2023-05-03
|
||||
* **ESP32-C3 / ESP8685** Support added: 2023-05-03
|
||||
* **ESP32-C2 / ESP8684** Not yet supported
|
||||
* **ESP32-C6** Not yet supported
|
||||
* **ESP32-C2 / ESP8684** Support added: 2023-11-10
|
||||
* **ESP32-C6** Support added: 2023-11-10
|
||||
* **ESP32-H2** Not yet supported
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ ESPEasy does support a number of variants of the processors manufactured by Espr
|
||||
- 2022
|
||||
- 2021
|
||||
- 2021
|
||||
* - Status (2023/05)
|
||||
* - Status (2024/03)
|
||||
- NRND
|
||||
- Mass Production (solo1: NRND)
|
||||
- NRND
|
||||
@@ -91,7 +91,7 @@ ESPEasy does support a number of variants of the processors manufactured by Espr
|
||||
- Mass Production
|
||||
- Mass Production
|
||||
- Mass Production
|
||||
- Sample
|
||||
- Mass Production
|
||||
* - Wi-Fi
|
||||
- IEEE 802.11 b/g/n; 2.4 GHz; HT20; up to 72 Mbps
|
||||
- IEEE 802.11 b/g/n; 2.4 GHz; HT20/40; up to 150 Mbps
|
||||
@@ -328,12 +328,12 @@ ESPEasy does support a number of variants of the processors manufactured by Espr
|
||||
- 0
|
||||
* - Ethernet
|
||||
- 0
|
||||
- 1 (RMII)
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 0
|
||||
- 1 (RMII and SPI)
|
||||
- 1 (SPI)
|
||||
- 1 (SPI)
|
||||
- 1 (SPI)
|
||||
- 1 (SPI)
|
||||
- 1 (SPI)
|
||||
- 0
|
||||
* - TWAI (CAN)
|
||||
- 0
|
||||
@@ -651,6 +651,8 @@ To support all modes, we simply need to make several versions
|
||||
- 2 MB (Quad SPI)
|
||||
- ``qio_qspi``
|
||||
|
||||
`Table Source <https://api.riot-os.org/group__cpu__esp32__esp32s3.html>`_
|
||||
|
||||
|
||||
Build versions:
|
||||
|
||||
@@ -681,7 +683,7 @@ ESP32-C2/ESP8684
|
||||
|
||||
Added: 2023/11/10
|
||||
|
||||
The ESP32-C2 is only available with embedded flash and can only be found labelled as "ESP8684".
|
||||
The ESP32-C2 is only available with embedded flash and can also be found labeled as "ESP8684".
|
||||
|
||||
It looks like it is aimed to be used in single purpose devices, due to its low GPIO count and only requiring a bare minimum of external parts.
|
||||
|
||||
@@ -698,9 +700,9 @@ Added: 2023/11/10
|
||||
|
||||
The ESP32-C6 seems to be aimed at being used as a gateway for the new Thread protocol and Wi-Fi.
|
||||
|
||||
It is the more powerful version of the ESP32-H2 and also includes not only the traditional 2.4 GHz Wi-Fi, but also the new Wi-Fi6 standard on 2.4 GHz.
|
||||
It is the more powerful version of the ESP32-H2 and also includes not only the traditional 2.4 GHz Wi-Fi, but also the new Wi-Fi6 standard on 2.4 GHz and IEEE 802.15.4 (Zigbee/Thread). Zigbee/Thread not yet supported by ESPEasy (March 2024).
|
||||
|
||||
.. note:: Labelled as "unstable" by the Arduino team (as of Nov 2023), preliminary support in ESPEasy
|
||||
.. note:: Labeled as "unstable" by the Arduino team (as of Nov 2023), preliminary support in ESPEasy
|
||||
|
||||
ESP32-H2
|
||||
========
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
Hardware page
|
||||
*************
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
ESPEasy has some centralized hardware configuration settings, shown in this page, and divided in sections.
|
||||
|
||||
@@ -55,6 +53,9 @@ ESPEasy has a separate setting for Slow I2C devices, and per I2C device this slo
|
||||
|
||||
.. image:: Device_I2COptionsShort.png
|
||||
|
||||
Added: 2023-11-23
|
||||
|
||||
A device flag has been added for specific devices to have **Force Slow I2C speed** set by default. After adding the device this option will be checked, but can still be unchecked to use (try) Fast I2C speed (400 kHz).
|
||||
|
||||
---------------
|
||||
I2C Multiplexer
|
||||
@@ -200,13 +201,34 @@ To activate a new configuration, a reboot is needed.
|
||||
Ethernet PHY type
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Select the used PHY controller type:
|
||||
ESP boards can be equiped with Ethernet.
|
||||
This is more stable and reliable compared to WiFi and allows for better responsiveness.
|
||||
|
||||
* LAN8710 (LAN8720 is also supported, but none of the newer features are supported)
|
||||
* TLK110
|
||||
* RTL8201 (since ESP32 IDF 4.4)
|
||||
* DP83848 (since ESP32 IDF 4.4)
|
||||
* DM9051 (since ESP32 IDF 4.4)
|
||||
Actual transfer speed (at least when using RMII) is also higher than can be achieved via WiFi, but this is less of a concern for typical use cases where ESPEasy is used.
|
||||
|
||||
Ethernet chips/boards for ESP32-variant boards exist with 2 types of interfaces to the ESP.
|
||||
|
||||
* RMII interface - Faster actual transfer speeds possible, uses more GPIO pins, only supported on ESP32-classic (and upcoming ESP32-P4).
|
||||
* SPI interface - (Added: 2024/02) Supported on all ESP32-variants (not all tested) on builds based on ESP-IDF 5.1
|
||||
SPI Ethernet adapters do obviously require the SPI interface to be configured.
|
||||
|
||||
N.B. Only ESP32-variant builds with LittleFS support SPI Ethernet. (starting February 2024)
|
||||
|
||||
Supported Ethernet chips:
|
||||
|
||||
* RMII Interface:
|
||||
* LAN8710 (LAN8720 is also supported, but none of the newer features are supported)
|
||||
* TLK110
|
||||
* RTL8201 (since ESP32 IDF 4.4)
|
||||
* JL1101 (since ESP32 IDF 4.4)
|
||||
* DP83848 (since ESP32 IDF 4.4)
|
||||
* KSZ8041 (since ESP32 IDF 4.4)
|
||||
* KSZ8081 (since ESP32 IDF 4.4)
|
||||
|
||||
* SPI Interface: (since ESP32 IDF 5.1)
|
||||
* DM9051
|
||||
* W5500
|
||||
* KSZ8851
|
||||
|
||||
.. note:: The LAN8710 and LAN8720 are also available with an "A" suffix.
|
||||
These are the same chips, only produced after the brand SMSC was taken over by Microchip Technology.
|
||||
@@ -216,19 +238,22 @@ Ethernet PHY Address
|
||||
|
||||
The PHY address depends on the hardware and the PHY configuration.
|
||||
On some chips, like the LAN8720, the board designer may set this address by pulling some pins either high or low at power on.
|
||||
In theory, one could use multiple PHY adapters on the same RMII bus, but this is not supported by ESPEasy.
|
||||
In theory, one could use multiple PHY adapters on the same RMII/SPI bus, but this is (currently) not supported by ESPEasy.
|
||||
|
||||
* Espressif's Ethernet board with TLK110 PHY use PHY address 31.
|
||||
* Common Waveshare LAN8720 PHY breakout board (and clones) use PHY address 1.
|
||||
* Olimex ESP32 EVB REV B IoT LAN8710 PHY Board with CAN use PHY address 0.
|
||||
* Other LAN8720 breakouts often use PHY address 0.
|
||||
* ETH01-EVO (ESP32-C3 based board) uses PHY address 1.
|
||||
|
||||
If the PHY address is incorrect then the EMAC will initialise but all attempts to read/write configuration registers on the PHY will fail.
|
||||
|
||||
N.B. There is support for an auto detect of this PHY address, by setting it to -1, but at least on the LAN8720 this does not seem to work.
|
||||
|
||||
GPIO pins
|
||||
^^^^^^^^^
|
||||
RMII Ethernet
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
As mentioned above, the RMII interface is only present on ESP32-classic (and is mentioned on the announced ESP32-P4).
|
||||
|
||||
RMII PHY SMI Wiring
|
||||
"""""""""""""""""""
|
||||
@@ -278,7 +303,43 @@ Apart from these GPIO pins, there is a number of other pins reserved on the ESP3
|
||||
Since these GPIO pin assignments cannot be changed, it is also not needed to configure them.
|
||||
However, they also cannot be used when *RMII PHY* is used.
|
||||
|
||||
.. include:: ../Reference/Ethernet_PHY_ESP32.rst
|
||||
.. include:: ../Reference/RMII_Ethernet_PHY_ESP32.rst
|
||||
|
||||
RMII Ethernet ESP32 Boards
|
||||
""""""""""""""""""""""""""
|
||||
|
||||
.. include:: ../Reference/RMII_Ethernet_ESP32_boards.rst
|
||||
|
||||
|
||||
SPI Ethernet
|
||||
^^^^^^^^^^^^
|
||||
|
||||
(Added: 2024/02)
|
||||
|
||||
As mentioned above, these SPI based Ethernet interfaces require the SPI interface to be configured.
|
||||
|
||||
The SPI bus can be shared, but the SPI Ethernet chips are a bit specific about the used frequency.
|
||||
Currently the default SPI frequency of 20 MHz is used, so not all other SPI devices may work together with SPI Ethernet.
|
||||
|
||||
Some boards like the ETH01-EVO (ESP32-C3 based) do not even have the SPI bus pins made accesible.
|
||||
|
||||
.. note:: Switching to ECO mode can sometimes result in an unreachable node when using SPI Ethernet. After a reboot the node works just fine again (in ECO mode). This is currently being investigated.
|
||||
|
||||
|
||||
GPIO Configuration
|
||||
""""""""""""""""""
|
||||
|
||||
* CS pin: Just as any SPI device, it needs a CS pin to tell the device it is being addressed.
|
||||
* IRQ/INT pin: Allows the Ethernet chip to signal the ESP about new data. (Optional for W5500)
|
||||
* RST pin: ESP will try to reset the Ethernet adapter during boot. Not all boards may have this wired.
|
||||
|
||||
|
||||
SPI Ethernet ESP32 Boards
|
||||
"""""""""""""""""""""""""
|
||||
|
||||
.. include:: ../Reference/SPI_Ethernet_ESP32_boards.rst
|
||||
|
||||
|
||||
|
||||
Ethernet with PoE
|
||||
^^^^^^^^^^^^^^^^^
|
||||
@@ -288,13 +349,33 @@ Some ethernet boards support Power over Ethernet (PoE), so only a single (ethern
|
||||
For Olimex boards in the ESP32-POE range, the supplier has documented this warning:
|
||||
|
||||
.. warning::
|
||||
**Important notice**: Olimex ESP32-PoE has **no galvano isolation** from Ethernet's power supply, when you program the board via the micro USB connector the Ethernet cable should be disconnected (if you have power over the Ethernet cable)!
|
||||
**Important notice**: Olimex ESP32-PoE has **no galvanic isolation** from Ethernet's power supply, when you program the board via the micro USB connector the Ethernet cable should be disconnected (if you have power over the Ethernet cable)!
|
||||
|
||||
Consider using Olimex USB-ISO to protect your computer and board from accidental short circuit. Also consider instead using Olimex ESP32-PoE-ISO board, which *is* insulated.
|
||||
|
||||
Most likely, this warning is applicable to other brands as well.
|
||||
|
||||
|
||||
Ethernet Isolation
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Most Ethernet RJ45 phy (the connector on the PCB) have isolation transformers in them.
|
||||
This does isolate the TX/RX pins to make sure there is no direct connection between the long cables and the Ethernet controller chip.
|
||||
The isolation does protect the Ethernet chip from picked up high voltage spikes and ESD surges when inserting the Ethernet cable.
|
||||
However not all ESP boards with Ethernet have these installed.
|
||||
|
||||
Apart from the isolation of the TX/RX pins the metallic enclosure of the phy should also be isolated from the rest of the circuit of the ESP board.
|
||||
Typically this is done by connecting the metal enclosure of the phy via a capacitor to GND of the rest of the circuit.
|
||||
A lot of boards with Ethernet have these directly connected to GND, which may impose a problem when connecting the ESP board to your PC.
|
||||
|
||||
.. warning::
|
||||
**Important notice**: For ESP boards with Ethernet which need debugging, never use Ethernet cables with metal shielding on the Ethernet connector.
|
||||
|
||||
Using shielded Ethernet cable will connect the metal shield of the RJ45 phy to the ground of the switch and this may be connected to other appliances which may be badly grounded.
|
||||
This will add a significant voltage offset between the ESP board and your PC while debugging.
|
||||
Such a high voltage is very likely to destroy electronics.
|
||||
|
||||
|
||||
-------------------
|
||||
GPIO boot states
|
||||
-------------------
|
||||
|
||||
@@ -29,7 +29,7 @@ Below a list of the most important directories and files used in this project.
|
||||
* ``platformio.ini`` Configuration file for PlatformIO to define various build setups.
|
||||
* ``uncrustify.cfg`` Configuration file for Uncrustify, to format source code using some uniform formatting rules.
|
||||
* ``requirements.txt`` List of used Python libraries and their version (result of ``pip freeze`` with Virtual env active)
|
||||
* ``esp32_partition_app1810k_spiffs316k.csv`` Used partition layout in ESP32 builds.
|
||||
* ``boards/partitions/esp32_partition_app1810k_spiffs316k.csv`` Used partition layout in ESP32 4M builds.
|
||||
|
||||
|
||||
ESPEasy src dir
|
||||
@@ -90,11 +90,11 @@ The filename is quite descriptive:
|
||||
Build Type
|
||||
----------
|
||||
|
||||
Build type can be: (differ in included plugins)
|
||||
Build type can be: (differences in included plugins)
|
||||
|
||||
* normal => Only Stable plugins and controllers
|
||||
* test => Stable + Testing (split into multiple sets, A/B/C/D)
|
||||
* max => All available plugins
|
||||
* normal => Only Stable plugins and controllers
|
||||
* collection => Stable + Collection (split into multiple sets, A/B/C/D/E/F/G)
|
||||
* max => All available plugins and features
|
||||
|
||||
There is also a number of special builds:
|
||||
|
||||
@@ -111,8 +111,10 @@ ESP Chip Type
|
||||
* ``ESP8285`` Supported in ``ESP8266`` builds. Used in some Sonoff modules. This chip has embedded flash, so no extra flash chip.
|
||||
* ``ESP32`` Allows for more memory and more GPIO pins.
|
||||
* ``ESP32-S2`` Newer version of ESP32. Has even more GPIO pins, but some specific features of ESP32 were removed.
|
||||
* ``ESP32-S3`` Not yet available.
|
||||
* ``ESP32-C3`` Support will be added soon.
|
||||
* ``ESP32-S3`` Newer version of ESP32 and ESP32-S2. Has even more GPIO pins, some specific features of ESP32 were removed, and some design choices of ESP32-S2 are reverted and implemented differently.
|
||||
* ``ESP32-C2`` Preliminary supported. Cheaper variant of ESP32-C3, and also an ESP8266 replacement. Available as pin-compatible module for ESP8266. Single core, and max 120 MHz clock speed.
|
||||
* ``ESP32-C3`` Intended as a replacement for ESP8266, using ESP32 technology, though single-core and with limited clock speed (160 MHz, some models 120 MHz).
|
||||
* ``ESP32-C6`` Preliminary supported. Will allow connectivity with IEEE 802.15.4 (Thread/Zigbee) wireless protocol.
|
||||
|
||||
Memory Size and Partitioning
|
||||
----------------------------
|
||||
@@ -124,23 +126,27 @@ Memory Size and Partitioning
|
||||
* ``4M1M`` 4 MB flash modules with 1 MB filesystem (usually SPIFFS)
|
||||
* ``4M2M`` 4 MB flash modules with 2 MB filesystem (usually SPIFFS)
|
||||
* ``4M316k`` 4 MB flash modules using 1.8 MB sketch size, with 316 kB filesystem (usually SPIFFS) (for ESP32)
|
||||
* ``8M1M`` 8 MB flash modules using 3.5MB sketch size, with 1 MB filesystem (LittleFS) (ESP32 only a.t.m.)
|
||||
* ``16M1M`` 16 MB flash modules using 4MB sketch size, with 1 MB filesystem (usually SPIFFS) (ESP32 only a.t.m.)
|
||||
* ``16M2M`` 16 MB flash modules using 4MB sketch size, with 2 MB filesystem (LittleFS) (ESP32 only a.t.m.)
|
||||
* ``16M8M`` 16 MB flash modules using 4MB sketch size, with 8 MB filesystem (LittleFS) (ESP32 only a.t.m.)
|
||||
|
||||
Optional build options
|
||||
----------------------
|
||||
|
||||
* ``LittleFS`` Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable > 2 MB)
|
||||
* ``LittleFS`` Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable \> 2 MB and no longer available from IDF 5.x)
|
||||
* ``VCC`` Analog input configured to measure VCC voltage
|
||||
* ``OTA`` Arduino OTA (Over The Air) update feature enabled
|
||||
* ``Domoticz`` Only Domoticz controllers (HTTP+MQTT) and plugins included
|
||||
* ``FHEM_HA`` Only FHEM/OpenHAB/Home Assistant (MQTT) controllers and plugins included
|
||||
* ``lolin_d32_pro`` Specific Lolin hardware options enabled
|
||||
* ``PSRAM`` Additional PSRAM support (ESP32 only)
|
||||
* ``OPI`` Flash via OPI protocol support (ESP32 only)
|
||||
* ``QIO`` Flash via QIO protocol support (ESP32 only)
|
||||
* ``CDC`` CDC Serial (built-in USB) support (ESP32 only)
|
||||
* ``ETH`` Ethernet interface enabled (ESP32 only)
|
||||
|
||||
|
||||
Please note that the performance of 14MB SPIFFS (16M flash modules) is really slow.
|
||||
Please note that the performance of 14MB SPIFFS (16M flash ESP8266 modules) is really slow.
|
||||
All file access takes a lot longer and since the settings are also read from flash, the entire node will perform slower.
|
||||
See `Arduino issue - SPIFFS file access slow on 16/14M flash config <https://github.com/esp8266/Arduino/issues/5932>`_
|
||||
|
||||
@@ -150,7 +156,7 @@ Special memory partitioning:
|
||||
|
||||
* ``2M256`` 2 MB flash modules (e.g. Shelly1/WROOM02) with 256k SPIFFS (only core 2.5.0 or newer)
|
||||
* ``4M316k`` For ESP32 with 4MB flash, sketch size is set to 1.8 MByte (default: 1.4 MByte)
|
||||
* ``4M1M`` 4MB flash, 1 MB SPIFFS. Default layout for 4MB flash.
|
||||
* ``4M1M`` 4MB flash, 1 MB SPIFFS. Default layout for ESP8266 4MB flash.
|
||||
* ``4M2M`` 4MB flash, 2 MB SPIFFS. Introduced in October 2019. Only possible with core 2.5.2 or newer.
|
||||
|
||||
.. warning::
|
||||
@@ -165,7 +171,7 @@ Difference between .bin and .bin.gz
|
||||
|
||||
Starting on esp8266/Arduino core 2.7.0, it is possible to flash images that have been compressed using GZip.
|
||||
|
||||
Please note that this only can be used on installs already running a very recent build.
|
||||
Please note that this only can be used on installs already running a recent build.
|
||||
|
||||
This also means we still need to update the 2-step updater to support .bin.gz files.
|
||||
|
||||
@@ -182,17 +188,17 @@ There are several builds for ESP32:
|
||||
* ``normal_ESP32_4M316k`` Build using the "stable" set of plugins for ESP32
|
||||
* ``normal_ESP32_4M316k_ETH`` Build using the "stable" set of plugins for ESP32, with support for an on-board Ethernet controller
|
||||
* ``custom_ESP32_4M316k`` Build template using either the plugin set defined in ``Custom.h`` or ``tools/pio/pre_custom_esp32.py``
|
||||
* ``test_A_ESP32_4M316k`` Build using the "testing" set "A" of plugins for ESP32
|
||||
* ``test_B_ESP32_4M316k`` Build using the "testing" set "B" of plugins for ESP32
|
||||
* ``test_C_ESP32_4M316k`` Build using the "testing" set "C" of plugins for ESP32
|
||||
* ``test_D_ESP32_4M316k`` Build using the "testing" set "D" of plugins for ESP32
|
||||
* ``test_A_ESP32-wrover-kit_4M316k`` A build for ESP32 including build flags for the official WRover test kit.
|
||||
* ``collection_A_ESP32_4M316k`` Build using the "Collection" set "A" of plugins for ESP32
|
||||
* ``collection_B_ESP32_4M316k`` Build using the "Collection" set "B" of plugins for ESP32
|
||||
* ``collection_C_ESP32_4M316k`` Build using the "Collection" set "C" of plugins for ESP32
|
||||
* ``collection_D_ESP32_4M316k`` Build using the "Collection" set "D" of plugins for ESP32
|
||||
* ``collection_A_ESP32-wrover-kit_4M316k`` A build for ESP32 including build flags for the official WRover test kit.
|
||||
* ``max_ESP32_16M8M_LittleFS`` Build using all available plugins and controllers for ESP32 with 16 MB flash (some lolin_d32_pro boards)
|
||||
|
||||
Since ESP32 does have its flash partitioned in several blocks, we have 2 bin files of each ESP32 build, f.e.:
|
||||
|
||||
* ``test_D_ESP32_4M316k.bin`` Use for OTA upgrades.
|
||||
* ``test_D_ESP32_4M316k.factory.bin`` Use on clean nodes as initial inistall.
|
||||
* ``collection_D_ESP32_4M316k.bin`` Use for OTA upgrades.
|
||||
* ``collection_D_ESP32_4M316k.factory.bin`` Use on clean nodes as initial inistall.
|
||||
|
||||
The binary with ``.factory`` in the name must be flashed on a new node, via the serial interface of the board.
|
||||
This flash must be started at address 0.
|
||||
@@ -208,7 +214,8 @@ To help recover from a bad flash, there are also blank images included.
|
||||
* ``blank_1MB.bin``
|
||||
* ``blank_2MB.bin``
|
||||
* ``blank_4MB.bin``
|
||||
* ``blank_8MB.bin``
|
||||
* ``blank_16MB.bin``
|
||||
|
||||
When the wrong image is flashed, or the module behaves unstable, or is in a reboot loop,
|
||||
flash these images first and then the right image for the module.
|
||||
flash these images first to clear out any remaining or hidden settings (Arduino framework...) and then the right image for the module.
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
Some display types may limit or extend the maximum accepted size.
|
||||
"
|
||||
"
|
||||
``<trigger>,txtfull,<x>,<y>,<size=1>,<foreColor=current>,<backColor=foreColor>, <textPrintMode=current>,<maxTextWidthPixels=0>,<text>``
|
||||
``<trigger>,txtfull,<x>,<y>,<size=1>,<foreColor=current>,<backColor=foreColor>,`` ``<textPrintMode=current>,<maxTextWidthPixels=0>,<text>``
|
||||
","
|
||||
Write text at position X/Y with all options. Depending on the setting **Text Coordinates in col/row**, these coordinates are pixels (default) or column/rows.
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
The file will be read from SD-card, when available, and the bmp file is not found on the internal file storage.
|
||||
"
|
||||
"
|
||||
``<trigger>,btn,<state>,<mode>,<x>,<y>,<w>,<h>,<id>,<type>,<ONcolor=blue>,<OFFcolor=red>, <CaptionColor=white>,<fontsize>,<ONcaption>,<OFFcaption>,<BorderColor=white>, <DisabledColor=0x9410>,<DisabledCaptionColor=0x5A69>,<TaskIndex>,<Group>, <SelectGroup>,<objectname>``
|
||||
``<trigger>,btn,<state>,<mode>,<x>,<y>,<w>,<h>,<id>,<type>,<ONcolor=blue>,<OFFcolor=red>,`` ``<CaptionColor=white>,<fontsize>,<ONcaption>,<OFFcaption>,<BorderColor=white>,`` ``<DisabledColor=0x9410>,<DisabledCaptionColor=0x5A69>,<TaskIndex>,<Group>,`` ``<SelectGroup>,<objectname>``
|
||||
","
|
||||
As a companion to the ESPEasy_TouchHelper, the AdafruitGFX_helper takes care of drawing button objects via this subcommand.
|
||||
|
||||
|
||||
@@ -469,10 +469,16 @@
|
||||
"
|
||||
Publish","
|
||||
:green:`Rules`","
|
||||
Send command using MQTT broker service. Uses the first enabled MQTT Controller.
|
||||
Send command using MQTT broker service. The 'Will Retain' option as configured in the MQTT Controller settings is used. Uses the first enabled MQTT Controller.
|
||||
|
||||
``Publish,<topic>[,<payload>]``"
|
||||
"
|
||||
PublishR","
|
||||
:green:`Rules`","
|
||||
Send command using MQTT broker service, with the MQTT 'Will Retain' flag enabled. Uses the first enabled MQTT Controller.
|
||||
|
||||
``PublishR,<topic>[,<payload>]``"
|
||||
"
|
||||
PutToHTTP","
|
||||
:green:`Rules`","
|
||||
*Syntax format 1:*
|
||||
|
||||
@@ -26,23 +26,111 @@ Supported hardware
|
||||
|
||||
|P020_usedby|
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
.. image:: P020_DeviceConfiguration.png
|
||||
|
||||
* **Name** In the Name field a unique name should be entered.
|
||||
|
||||
* **Enabled** When unchecked the plugin is not enabled.
|
||||
|
||||
Sensor
|
||||
^^^^^^
|
||||
|
||||
See: :ref:`SerialHelper_page`
|
||||
|
||||
Device Settings
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
**TODO**: Complete this documentation...
|
||||
* **TCP Port**: The port for an external network client to read the data from, range 1..65535. The used port number must be unique within the device.
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
* **Baud Rate / Serial config**: See *Serial helper configuration*, above.
|
||||
|
||||
.. .. include:: P020_commands.repl
|
||||
* **Event Processing**: Select the type of data that is expected, to enable correct preprocessing. Available options:
|
||||
|
||||
.. Events
|
||||
.. ~~~~~~
|
||||
.. image:: P020_EventProcessingOptions.png
|
||||
|
||||
.. .. include:: P020_events.repl
|
||||
* *None*: No special processing, what is received is sent out to the network client, not generating an event.
|
||||
|
||||
* *Generic*: No special processing, received data is sent to the network client, and an event ``!Serial#<message>``, containing the message as is, is generated. Spaces and newlines are processed as configured below.
|
||||
|
||||
* *RFLink*: Specifically designed for receiving serial data from RFLink devices, it follows this process:
|
||||
|
||||
* Remove the regular RFLink ``20;xx;`` prefix
|
||||
* Check for prefix ``ESPEASY;``, if found, remove the prefix and generate event ``RFLink#<message>``. The ``<message>`` will contain commands to be handled by ESPEasy.
|
||||
* If previous prefix is not found, generate event ``!RFLink#<message>``, containing the entire received data. Spaces and newlines are processed as configured below.
|
||||
|
||||
*Also see the* **Multiple lines processing** *option, below.*
|
||||
|
||||
* *P1 WiFi Gateway*: Process the data, received from a P1 Energy meter, that does a checksum validation, as included in the message. No separate data values are available in ESPEasy, these are usually handled by Home automation systems that support the P1 protocol via TCP network communication. An event ``<TaskName>#Data`` is generated when a valid P1 packet is received.
|
||||
|
||||
Replacing spaces or newlines should be **disabled** for the P1 protocol data to be handled properly as these replacements will disturb the checksum calculation, and also, the **Multiple lines processing** should be disabled if the data is to be handled as P1 protocol data, as that does contain newlines.
|
||||
|
||||
.. spacer
|
||||
|
||||
* **P1 #data event with message**: When enabled, the *P1 WiFi Gateway* Event Processing option will include the received message. **WARNING** This may easily cause memory overflow exceptions, especially when running on ESP8266 or other low-memory situations!
|
||||
|
||||
When selecting the **Event processing** options *Generic* or *RFLink*, after submitting the page will show extra options for the events generated:
|
||||
|
||||
.. image:: P020_EventOptions.png
|
||||
|
||||
* **Use Serial Port as eventname**: Instead of the default ``!Serial#<data>`` event, the name of the configured serial port will be used: (**Only** available for *Generic* Event processing)
|
||||
|
||||
.. spacer
|
||||
|
||||
* *(Unchecked)* -> ``Serial``
|
||||
* *HW Serial0* -> ``serial0``
|
||||
* *HW Serial0 swap* -> ``serial0``
|
||||
* *HW Serial1* -> ``serial1``
|
||||
* *HW Serial2* -> ``serial2``
|
||||
* *SW Serial* -> ``serialsw``
|
||||
* *I2C Serial* -> ``seriali2c``
|
||||
* *USB HWCDC* -> ``serialhwcdc``
|
||||
* *USB CDC* -> ``serialcdc``
|
||||
|
||||
.. spacer
|
||||
|
||||
* **Append Task Number to eventname**: Will append the task number to the event name, f.e. ``Serial8`` or ``RFLink12`` when task 8 or 12 is in use for this plugin. Can be combined with **Use Serial Port as eventname** if that is option is shown, resulting f.e. in ``serial0swap6`` etc. (Only available for *Generic* and *RFLink* Event processing)
|
||||
|
||||
.. spacer
|
||||
|
||||
* **Replace spaces in event by**: Here a single character can be selected to replace all spaces during receiving the data.
|
||||
* **Replace newlines in event by**: Here a single character can be selected to replace all newlines during receiving the data. When enabled, all linefeeds are replaced, and all carriage returns (if any) are discarded.
|
||||
|
||||
.. image:: P020_ReplaceCharInEventOptions.png
|
||||
|
||||
The available set of replacement characters is ``, ; : . ! ^ | / \`` (comma, semicolon, colon, period, exclamation, caret, pipe, slash and backslash). When set to None, no replacement will be done.
|
||||
|
||||
* **Process events without client**: By default, if no network client is connected, no serial data will be received and processed either. Enabling this option enables receiving data and generating events without a TCP client connected.
|
||||
|
||||
* **Multiple lines processing**: When enabled, all received data will be split at a linefeed and sent out/event generated as separate messages.
|
||||
|
||||
* **RX Receive timeout (mSec)**: If parts of serial data packets are somewhat delayed, but should still be handled as a single message, then the delay to wait for the next part can be configured here. 0 disables the delay.
|
||||
|
||||
* **Reset target after init**: Select a GPIO pin that should be pulled low once during initialization of the plugin, used to synchronize the external serial data source with the plugin.
|
||||
|
||||
* **RX Buffer size (bytes)**: To not overburden the memory use of the plugin, the buffer size is set rather low. Some serial devices, like energy meters may require a larger buffer if the message exceeds this size. Range: 256..1024.
|
||||
|
||||
Led
|
||||
^^^
|
||||
|
||||
* **Led enabled**: To enable a *data is being processed* activity led.
|
||||
|
||||
* **Led pin**: The GPIO pin the Led is connected to.
|
||||
|
||||
* **Led inverted**: Iverts the on/off state for the Led.
|
||||
|
||||
Data Acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The Data Acquisition and Send to Controller settings are standard available configuration items. Send to Controller only when one or more Controllers are configured. *Single event with all values* option is not applicable for this plugin.
|
||||
|
||||
|
||||
Commands
|
||||
~~~~~~~~
|
||||
|
||||
.. include:: P020_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
@@ -50,6 +138,8 @@ Change log
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|changed| 2022-12-13: Merge of P020 and P044 to reduce code size and combine features, as P044 was initially started as a spin-off from P020, but not evolved with the P020 features.
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 42 KiB |
@@ -0,0 +1,37 @@
|
||||
.. csv-table::
|
||||
:header: "Command", "Extra information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``serialsend,<content to send>``
|
||||
|
||||
``<content to send>``: Text that will be sent (nearly) unprocessed. Only the regular variable replacements will be applied before sending the content to the serial port.
|
||||
","
|
||||
Using this command, either from rules, via http or mqtt, the text that is provided as content is completely sent to the serial port. No extra data is added, other than any (system) variables that are included, being replaced.
|
||||
"
|
||||
"
|
||||
``ser2netclientsend,<content to send>``
|
||||
|
||||
``<content to send>``: Text that will be sent (nearly) unprocessed. Only the regular variable replacements will be applied before sending the content to the network client.
|
||||
","
|
||||
This command will only send data to the network client, when there is an active connection.
|
||||
|
||||
Using this command, either from rules, via http or mqtt, the text that is provided as content is completely sent to the network client. No extra data is added, other than any (system) variables that are included, being replaced.
|
||||
"
|
||||
"
|
||||
``serialsendmix,'<content to send>'[,...]``
|
||||
|
||||
``<content to send>``: Text and/or hex byte(s) (having 0x prefix) that will be sent (nearly) unprocessed. Only the regular variable replacements will be applied before sending the content to the serial port.
|
||||
","
|
||||
|
||||
This command requires quotes to be used if spaces or commas are part of the content.
|
||||
|
||||
Any data can be sent, even if it can not be typed in a text content, by specifying that as a separate argument: ``serialsendmix,'text, optionally including spaces or commas',0xXX,'0xXXxx XX,xx-XX:xx'``
|
||||
|
||||
``'text, optionally including spaces or commas'``: Any text content to be sent to the serial port. Can contain variables. Quotes are only required if spaces or commas (separators) are used.
|
||||
|
||||
``0xXX``: A single character in hexadecimal notation (range: 0x00..0xFF), that is appended to the data to send.
|
||||
|
||||
``'0xXXxx XX,xx-XX:xx'``: A sequence of hexadecimal values (range: 0x00..0xFF), that *can* be separated by a space, comma, dash, colon, semicolon or period, or are just entered adjecent. Only the first 2 characters should be ``0x`` or ``0X``, the rest is interpreted as hex bytes, and appended to the string to send. Quotes are only required if space or comma separators are used.
|
||||
Using this command, either from rules, via http or mqtt, the text that is provided as content is completely sent to the serial port. No extra data is added, other than any (system) variables that are included, being replaced.
|
||||
"
|
||||
@@ -113,6 +113,7 @@ Relevant Settings:
|
||||
* Plugin: Output - Domoticz MQTT Helper
|
||||
* 1st GPIO: 12 (the relay)
|
||||
* IDX: 475
|
||||
* Invert On/Off value: To ease the use of this plugin, without the need for rules, an Invert option has been added. This will cause the GPIO pin (and ``Output`` value) to be set to 1 when the Domoticz device is in Off state, and 0 for the On state.
|
||||
|
||||
|
||||
Rules
|
||||
@@ -184,6 +185,8 @@ Change log
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added| 2024-03: Add Invert On/Off value option.
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 21 KiB |
@@ -190,11 +190,17 @@ Option: Limit events being generated
|
||||
|
||||
* **Max. # events in event queue**: As a protection against event-overflow this configures a check for the queue-length, so if more than the selected number of events is still in the queue, new events will be discarded until some events are processed, and the remaining is less than this count. When set to 0 this check is disabled.
|
||||
|
||||
Option: Modify separater character in events
|
||||
Option: Modify separator character in events
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* **To replace by comma in event**: Select a character that is to be replaced by a comma, before it is put into the event-queue. There is a limited set of characters that can be replaced, to avoid ending up with malformed events.
|
||||
|
||||
Available options:
|
||||
|
||||
.. image:: P037_ReplaceByCommaOptions.png
|
||||
|
||||
The available set of replacement characters is ``! @ $ % ^ & * ; : . | / \`` (exclamation, at, dollar, percent, caret, ampersand, semicolon, colon, period, pipe, slash and backslash). When set to None, no replacement will be done.
|
||||
|
||||
This can be used to 'transform' the content of a JSON message so the used separator is a comma, for easier use in rules.
|
||||
|
||||
Topic Subscriptions
|
||||
|
||||
|
After Width: | Height: | Size: 36 KiB |
@@ -1,4 +1,4 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p04x.repl
|
||||
.. include:: ../Plugin/_plugin_substitutions_p04x.repl
|
||||
.. _P043_page:
|
||||
|
||||
|P043_typename|
|
||||
@@ -21,20 +21,77 @@ Maintainer: |P043_maintainer|
|
||||
|
||||
Used libraries: |P043_usedlibraries|
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P043_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
Description
|
||||
-----------
|
||||
|
||||
.. .. include:: P043_commands.repl
|
||||
Every minute the set schedule will be checked for a match, and if a value for a scheduled time is set, the GPIO will be set to that state (On/Off) when configured, or when no GPIO is configured and the value is not 0 or empty, an event is generated with the field number that caused the trigger, and another event with the set value if the Number Output Values is set to Dual or higher.
|
||||
|
||||
.. Events
|
||||
.. ~~~~~~
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
.. .. include:: P043_events.repl
|
||||
.. image:: P043_DeviceConfiguration.png
|
||||
|
||||
* **Name**: Required by ESPEasy, must be unique among the list of available devices/tasks.
|
||||
|
||||
* **Enabled**: The device can be disabled or enabled. When not enabled the device should not use any resources.
|
||||
|
||||
Sensor
|
||||
^^^^^^
|
||||
|
||||
* **GPIO -> Clock event** Select a GPIO that will get the stated as configured for the Day,Time. When a GPIO is configured, the allowed valies for a scheduled time will be empty, Off and On only.
|
||||
|
||||
Device Settings
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
* **Nr. of Day,Time fields**: Select a number between 1 and 16 for the number of Day,Time fields to be available. Will be applied after the page is submitted. (Default: 8)
|
||||
|
||||
* **Value input On/Off only**: When checked, the selection for Value will be for On/Off (or empty) only, to avoid misconfiguration for less experienced users, and the Output variable response the same as if a GPIO was selected. The default is unchecked.
|
||||
|
||||
.. image:: P043_GPIO_Enabled.png
|
||||
|
||||
* **Day,Time X**: Select the Day and Time that should be checked. For Limited builds the day and time have to be entered manually, for other builds, the Day can be selected from a combobox, and the time can be selected from a predefined list and set to a desired time.
|
||||
|
||||
For Day, the available options are All, Sun, Mon, Tue, Wed, Thu, Fri, Sat, Wrk (workday), Wkd (weekend).
|
||||
|
||||
.. image:: P043_DayOptions.png
|
||||
|
||||
For time, besides the 24h HH:MM notation, there can also be chosen to use ``%sunrise%`` or ``%sunset%``, optionally with an offset in hours, minutes or seconds like ``%sunrise-1h%`` or ``%sunset+30m%``.
|
||||
|
||||
.. image:: P043_TimeOptions.png
|
||||
|
||||
Output Configuration
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
* **Number Output Values**: Select Single (default), Dual, Triple or Quad. The Triple and Quad options aren't actually used in this plugin.
|
||||
|
||||
Data Acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This group of settings, **Single event with all values** and **Send to Controller** settings are standard available configuration items. Send to Controller is only visible when one or more Controllers are configured.
|
||||
|
||||
Values
|
||||
^^^^^^
|
||||
|
||||
The default names for the values are named ``Output``, and get a numeric suffix for the Dual, Triple and Quad configuration.
|
||||
|
||||
Commands available
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. include:: P043_commands.repl
|
||||
|
||||
Events
|
||||
~~~~~~
|
||||
|
||||
.. include:: P043_events.repl
|
||||
|
||||
Get Config Values
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Get Config Values retrieves values or settings from the sensor or plugin, and can be used in Rules, Display plugins, Formula's etc. The square brackets **are** part of the variable. Replace ``<taskname>`` by the **Name** of the task.
|
||||
|
||||
.. include:: P043_config_values.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
@@ -42,6 +99,9 @@ Change log
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added| 2023-12-16:
|
||||
Selectors for Day and Time, ``%sunrise%`` and ``%sunset%`` support, ``config`` command and get config values.
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,33 @@
|
||||
.. csv-table::
|
||||
:header: "Command Syntax", "Extra information"
|
||||
:widths: 30, 20
|
||||
|
||||
"
|
||||
| ``config,task,<taskName>,SetTime,<timeIndex>,<timeString>[,<value>]``
|
||||
|
||||
Change the configuration of the plugin for the timeIndex provided:
|
||||
|
||||
``config,task``: The Config command to change a setting for a task. Not case-sensitive.
|
||||
|
||||
``<taskName>``: The name of the task to be changed.
|
||||
|
||||
``SetTime``: Literal command-text recognized by the plugin to set the time and optional value. Not case-sensitive.
|
||||
|
||||
``<timeIndex>``: The Day,Time fields *number* as shown in the UI. Has to be within the allowed range 1..Nr. of Day,Time field setting.
|
||||
|
||||
``<timeString>``: A time string as can be entered in the UI, a day (All,Sun, Mon,Tue,Wed,Thu,Fri,Sat,Wrk (workday),Wkd (weekend)) and a time (HH:MM or %Sunrise%/%Sunset%). When configuring for sunrise of sunset, an offset in hours, minutes or seconds can be provided by using ``%sunrise-1h%`` or ``%sunset+30m%`` etc. To avoid the sunrise or sunset time of today to be inserted, instead of ``%`` a ``$`` must be used! If an invalid ``<timeString>`` is provided, ``All,00:00`` will be stored!
|
||||
|
||||
``<value>``: The value to be set. If a GPIO is configured or the setting 'Value input On/Off only' is enabled, a 0 will configure Off and 1 will configure On. When not using a GPIO or the 'Value input On/Off only' setting is unchecked, the value will be stored as provided. When having value 0 set, **no event will be generated** when this time is triggered!
|
||||
","
|
||||
This (generic) command allows to update the configuration.
|
||||
|
||||
.. warning:: Every time this command is used, the configuration is saved to flash storage. When changing this often, the flash memory may wear out quickly!
|
||||
|
||||
|
||||
|
||||
Example command to use, when using ``%Sunrise%``/``%Sunset%``:
|
||||
|
||||
- ``config,task,Clock,settime,1,Wrk,$sunrise-1h$,1``
|
||||
|
||||
Will be stored like ``Wrk,%sunrise-1h%`` in Day,Time field 1, and Value set to 1, or ``On`` when having a GPIO configured or **Value input On/Off only** enabled.
|
||||
"
|
||||
@@ -0,0 +1,23 @@
|
||||
.. csv-table::
|
||||
:header: "Config value", "Information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``[<taskname>#GetTimeX]``
|
||||
","
|
||||
Returns the configured Day,Time string for line X (Range: 1..Nr. of Day,Time fields), as shown in the UI.
|
||||
|
||||
Examples:
|
||||
|
||||
- ``All,06:00``
|
||||
- ``Wrk,%sunset-1h%``
|
||||
"
|
||||
"
|
||||
``[<taskname>#GetValueX]``
|
||||
","
|
||||
Returns the configured value for line X (Range: 1..Nr. of Day,Time fields), with a twist:
|
||||
|
||||
If a GPIO is configured, or the setting 'Value input On/Off only' is checked, a 0 is returned for Off and 1 for On (the stored value is actualy 1 higher)
|
||||
|
||||
When no GPIO is configured and the setting 'Value input On/Off only' is unchecked, the shown value is returned.
|
||||
"
|
||||
@@ -0,0 +1,14 @@
|
||||
.. csv-table::
|
||||
:header: "Event", "Example"
|
||||
:widths: 30, 20
|
||||
|
||||
"
|
||||
``clock#Output`` The value provided with this event is the field (1..Nr. of Day,Time fields) that was triggered.
|
||||
|
||||
``clock#Output2`` When the 'Number Output Values' is set to Dual, Triple or Quad, and a GPIO is configured or 'Value input On/Off only' is checked the On (1) or Off (0) value is included as an event argument (``%eventvalue1%``).
|
||||
|
||||
If no GPIO is configured and 'Value input On/Off only' is unchecked, the configured value is provided as ``%eventvalue1%``.
|
||||
|
||||
Events are only generated if the value is not set to 0 or empty.
|
||||
","
|
||||
"
|
||||
@@ -26,23 +26,46 @@ Supported hardware
|
||||
|
||||
|P044_usedby|
|
||||
|
||||
.. note:: This plugin is now merged (back) into :ref:`P020_page` where it initially was forked off from, with using some predefined settings.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
.. image:: P044_DeviceConfiguration.png
|
||||
|
||||
* **Name** In the Name field a unique name should be entered.
|
||||
|
||||
* **Enabled** When unchecked the plugin is not enabled.
|
||||
|
||||
Sensor
|
||||
^^^^^^
|
||||
|
||||
See: :ref:`SerialHelper_page`
|
||||
|
||||
Device Settings
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
**TODO**: Complete this documentation...
|
||||
* **TCP Port**: The port for an external network client to read the data from, range 1..65535. The used port number must be unique within the device.
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
* **Baud Rate / Serial config**: See *Serial helper configuration*, above.
|
||||
|
||||
.. .. include:: P044_commands.repl
|
||||
* **P1 #data event with message**: When enabled, the *P1 WiFi Gateway* Event Processing option will include the received message. **WARNING** This may easily cause memory overflow exceptions, especially when running on ESP8266 or other low-memory situations!
|
||||
|
||||
.. Events
|
||||
.. ~~~~~~
|
||||
* **Process events without client**: By default, if no network client is connected, no serial data will be received and processed either. Enabling this option enables receiving data and generating events without a TCP client connected.
|
||||
|
||||
* **RX Receive timeout (mSec)**: If parts of serial data packets are somewhat delayed, but should still be handled as a single message, then the delay to wait for the next part can be configured here. 0 disables the delay.
|
||||
|
||||
* **Reset target after init**: Select a GPIO pin that should be pulled low once during initialization of the plugin, used to synchronize the external serial data source with the plugin.
|
||||
|
||||
Led
|
||||
^^^
|
||||
|
||||
* **Led enabled**: To enable a *data is being processed* activity led.
|
||||
|
||||
* **Led pin**: The GPIO pin the Led is connected to.
|
||||
|
||||
* **Led inverted**: Iverts the on/off state for the Led.
|
||||
|
||||
.. .. include:: P044_events.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
@@ -50,6 +73,8 @@ Change log
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|changed| 2022-10-08: Merge of P020 and P044 to reduce code size and combine features, as P044 was initially started as a spin-off from P020, but not evolved with the P020 features.
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 48 KiB |
@@ -24,3 +24,11 @@
|
||||
","
|
||||
Will reset the calibration values to the default values, causing auto-calibration.
|
||||
"
|
||||
"
|
||||
``cseclearpulses``
|
||||
|
||||
","
|
||||
(Added: 2024-01-16)
|
||||
Will reset the CF-pulse counter.
|
||||
N.B. this also clears the kWh counter as it is derived from the CF-pulse counter.
|
||||
"
|
||||
|
||||
@@ -48,7 +48,7 @@ This section only shows settings when the plugin is configured and enabled.
|
||||
|
||||
.. image:: P087_FilteringConfiguration.png
|
||||
|
||||
* **RegEx**: Specify a regular expression to apply to the received data before it is accepted as acceptable data.
|
||||
* **RegEx**: Specify a regular expression to apply to the received data before it is accepted as acceptable data. This regular expression is based on the Lua script language, and is documented here: http://www.lua.org/manual/5.2/manual.html#6.4.1
|
||||
|
||||
* **Nr Chars use in RegEx**: Limit the length of the data to be checked using the **RegEx** regular expression filter. When set to 0 all data is checked.
|
||||
|
||||
@@ -109,6 +109,13 @@ Commands available
|
||||
.. include:: P087_commands.repl
|
||||
|
||||
|
||||
Get Config Values
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Get Config Values retrieves values or settings from the sensor or plugin, and can be used in Rules, Display plugins, Formula's etc. The square brackets **are** part of the variable. Replace ``<taskname>`` by the **Name** of the task.
|
||||
|
||||
.. include:: P087_config_values.repl
|
||||
|
||||
|
||||
Change log
|
||||
----------
|
||||
@@ -116,6 +123,8 @@ Change log
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added| 2024-02-25 Add support for ``serialproxy_test`` command and retrieving the separate groups from parsed regex.
|
||||
|
||||
|added| 2023-03-22 Add support for writing any binary data out via the serial port.
|
||||
|
||||
|added| 2020-02-22
|
||||
|
||||
@@ -26,3 +26,12 @@
|
||||
``'0xXXxx XX,xx-XX:xx'``: A sequence of hexadecimal values (range: 0x00..0xFF), that *can* be separated by a space, comma, dash, colon, semicolon or period, or are just entered adjecent. Only the first 2 characters should be ``0x`` or ``0X``, the rest is interpreted as hex bytes, and appended to the data to send. Quotes are only required if space or comma separators are used.
|
||||
Using this command, either from rules, via http or mqtt, the text that is provided as content is completely sent to the serial port. No extra data is added, other than any (system) variables that are included, being replaced.
|
||||
"
|
||||
"
|
||||
``serialproxy_test,'<content to process>[,...]'``
|
||||
|
||||
``<content to process>``: Some text to be processed as if it was received via the serial port.
|
||||
","
|
||||
This command is intended for testing the regular expression and filtering.
|
||||
|
||||
The sentence provided with this command is handed over for processing as if it was received via the serial port, so it will be processed and filtered, and an event will be generated if it's matched.
|
||||
"
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.. csv-table::
|
||||
:header: "Config value", "Information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``[<taskname>#group,<groupnr>]``
|
||||
","
|
||||
Get the contents from groupnr after processing received data.
|
||||
|
||||
NB: The regular expression parsen uses 0-based group numbers (where most other regex parsers use 1-based group numbers!)
|
||||
"
|
||||
"
|
||||
``[<taskname>#next,<groupvalue>]``
|
||||
","
|
||||
Get the value of the next group that holds ``<groupvalue>``.
|
||||
|
||||
Example:
|
||||
|
||||
Regular expression: ``((node)=(%d+);?)((weight)=(%d+);?)((temp%d?)=(%-?%d+);?)((rssi)=(%-?%d+);?)``
|
||||
|
||||
Received data: ``node=1;weight=40;temp1=20;rssi=-30``
|
||||
|
||||
This will result in these groups:
|
||||
|
||||
.. list-table::
|
||||
:widths: 20, 50, 200
|
||||
:header-rows: 1
|
||||
|
||||
* - Group
|
||||
- Data
|
||||
-
|
||||
* - 0
|
||||
- node=1
|
||||
-
|
||||
* - 1
|
||||
- node
|
||||
-
|
||||
* - 2
|
||||
- 1
|
||||
-
|
||||
* - 3
|
||||
- weight=40
|
||||
-
|
||||
* - 4
|
||||
- weight
|
||||
-
|
||||
* - 5
|
||||
- 40
|
||||
-
|
||||
* - 6
|
||||
- temp1=20
|
||||
-
|
||||
* - 7
|
||||
- temp1
|
||||
-
|
||||
* - 8
|
||||
- 20
|
||||
-
|
||||
* - 9
|
||||
- rssi=-30
|
||||
-
|
||||
* - 10
|
||||
- rssi
|
||||
-
|
||||
* - 11
|
||||
- -30
|
||||
-
|
||||
|
||||
Requesting ``[SerialProxy#next,weight]`` will return the value ``40``.
|
||||
"
|
||||
@@ -31,7 +31,7 @@
|
||||
"
|
||||
| ``tftcmd,clear``
|
||||
","
|
||||
| Clear the display, using the default background color.
|
||||
| Clear the display, using the **default** background color. For clearing with a custom background color see the ``<trigger>,clear[,<color>]`` command.
|
||||
"
|
||||
"
|
||||
| ``tftcmd,backlight,<percentage>``
|
||||
|
||||
@@ -28,7 +28,7 @@ The ST7735, ST7789 and ST7796 chip families drive color TFT displays in various
|
||||
|
||||
This plugin supports these display models:
|
||||
|
||||
* **ST7735** with resolutions 128 x 128, 128 x 160 and 80 x 160 pixels
|
||||
* **ST7735** with resolutions 128 x 128, 128 x 160, 80 x 160 and 135 x 240 pixels
|
||||
* **ST7789** with resolutions 240 x 320, 240 x 240, 240 x 280 and 135 x 240 pixels
|
||||
* **ST7796** with resolution of 320 x 480 pixels.
|
||||
|
||||
@@ -140,6 +140,7 @@ Available options:
|
||||
* *ST7735 128 x 160px* Allows 16 lines of text in the smallest font scaling setting.
|
||||
* *ST7735 80 x 160px* Allows 16 lines of text in the smallest font scaling setting.
|
||||
* *ST7735 80 x 160px (Color inverted)* Special color inverted configuration as used in f.e. M5Stack StickC.
|
||||
* *ST7735 135 x 240px* Added to support a revision of the TTGO T-Display 16MB Flash module, that won't work with the ST7789 driver, the seller is claiming to use, but does work with this specially crafted ST7735 driver.
|
||||
* *ST7789 240 x 320px* Allows 32 lines of text in the smallest font scaling setting. Predefined text only goes to 24, extra lines can be displayed from rules or external commands.
|
||||
* *ST7789 240 x 240px* Allows 24 lines of text in the smallest font scaling setting.
|
||||
* *ST7789 240 x 280px* Allows 28 lines of text in the smallest font scaling setting. Predefined text only goes to 24, extra lines can be displayed from rules or external commands.
|
||||
@@ -260,6 +261,10 @@ Change log
|
||||
.. versionadded:: 2.0
|
||||
...
|
||||
|
||||
|added| 2024-03-26 Add support for ST7735, 135x240 resolution
|
||||
|
||||
|added| 2022-07-06 Add support for ST7735 (Color inverted), for M5StickC support
|
||||
|
||||
|added| 2021-11-06 Add support for ST7796 displays
|
||||
|
||||
|added| 2021-08 Moved from an external forum to ESPEasy.
|
||||
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 44 KiB |
@@ -28,7 +28,7 @@
|
||||
"
|
||||
| ``st77xxcmd,clear``
|
||||
","
|
||||
| Clear the display, using the default background color.
|
||||
| Clear the display, using the **default** background color. For clearing with a custom background color see the ``<trigger>,clear[,<color>]`` command.
|
||||
"
|
||||
"
|
||||
| ``st77xxcmd,backlight,<percentage>``
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p16x.repl
|
||||
.. _P164_page:
|
||||
|
||||
|P164_typename|
|
||||
==================================================
|
||||
|
||||
|P164_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P164_type|
|
||||
|
||||
Name: |P164_name|
|
||||
|
||||
Status: |P164_status|
|
||||
|
||||
GitHub: |P164_github|_
|
||||
|
||||
Maintainer: |P164_maintainer|
|
||||
|
||||
Used libraries: |P164_usedlibraries|
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
Sciosense ENS160 and its successor ENS161 are multi-gas sensors based on metal oxide (MOX) technology. They can detect multiple VOCs including ethanol, toluene, hydrogen and oxidizing gases.
|
||||
The sensors are connected to the I2C bus and provide preprocessed data as TVOC and eCO2 values. See https://www.sciosense.com/ens16x-digital-metal-oxide-multi-gas-sensor-family/ for details about the device.
|
||||
|
||||
Hardware
|
||||
--------
|
||||
|
||||
Various boards with the ENS160 are available through electronics market places like Aliexpress. A popular board contains both ENS160 and AHT21 on a single PCB. The AHT21 can be used for temperature compensation as provided by this plugin.
|
||||
|
||||
.. image:: P164_board.jpg
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
.. image:: P164_DeviceConfiguration.png
|
||||
|
||||
* **Name**: Required by ESPEasy, must be unique among the list of available devices/tasks.
|
||||
|
||||
* **Enabled**: The device can be disabled or enabled. When not enabled the device should not use any resources.
|
||||
|
||||
I2C options
|
||||
^^^^^^^^^^^
|
||||
|
||||
* **I2C Address**: The sensor supports two addresses. The actual address depends on the voltage on the ADDR pin of the device.
|
||||
|
||||
.. csv-table::
|
||||
:header: "Address", "Remark"
|
||||
:widths: 10, 50
|
||||
|
||||
"0x52", "Connect ADDR GND"
|
||||
"0x53", "Connect ADDR to VDD (default on most boards)"
|
||||
|
||||
The available I2C settings here depend on the build used. At least the **Force Slow I2C speed** option is available, but selections for the I2C Multiplexer can also be shown. For details see the :ref:`Hardware_page`
|
||||
|
||||
The chip supports both SPI and I2C. The plugin only support I2C using the following pins:
|
||||
|
||||
* 1 SDA: Data [MOSI/SDA]
|
||||
* 2 SCL: Serial Clock [SCLK/SCL]
|
||||
* 3 ADDR: Address [MISO/ADDR]
|
||||
* 6 INTn: Interrupt [INTn]
|
||||
* 7 CSn: SPI interface select, low-> SPI, high->I2C [CSn]
|
||||
|
||||
For this plugin the CSn must be wired to VDD to enable the I2C protocol.
|
||||
|
||||
On boards sold online, SDO and SDI are often already pulled-up, setting the default I2C address to 0x53.
|
||||
|
||||
|
||||
Device Settings
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
* **Detected Sensor Type**: Shows either ``ENS160`` or ``ENS161`` or a number if no sensor or an unknown sensor ID is detected. It will also show the firmware version read from the device if the data is available.
|
||||
* **Temperature Task**: Task (plugin) providing the temperature compensation
|
||||
* **Temperature Value**: Value for the temperature compensation
|
||||
* **Humidity Task**: Task (plugin) providing the humidity compensation
|
||||
* **Humidity Value**: Value for the humidity compensation
|
||||
|
||||
The ENS16x provides temperature and humidity compensation. The plugin must provide the actual temperature and humidity to the device to enable this compensation. For this the plugin needs to read these values from other tasks.
|
||||
|
||||
Using the **Temperature Task** and **Temperature Value** the task and value for the Temperature compensation can be selected. Compensation can be switched off by selecting **Not Set**.
|
||||
|
||||
Using the **Humidity Task** and **Humidity Value** the task and value for the Humidity compensation can be selected. Compensation can be switched off by selecting **Not Set**.
|
||||
|
||||
Note that if either one of the tasks is set to **Not Set** compensation is switched off and a default value is used.
|
||||
|
||||
The ENS160 is sold on popular websites on a board including the AHT21 temperature and humidity sensor. This sensor can be used for the compensation algorithm of the ENS160.
|
||||
|
||||
Data Acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This group of settings, **Single event with all values** and **Send to Controller** settings are standard available configuration items. Send to Controller is only visible when one or more Controllers are configured.
|
||||
|
||||
* **Interval** By default, Interval will be set to 60 sec. The data will be collected and optionally sent to any configured controllers using this interval. If the Interval is set lower or equal than the required 10 * Heater time, the plugin will not start!
|
||||
|
||||
Values
|
||||
^^^^^^
|
||||
|
||||
The plugin provides the ``TVOC`` and ``eCO2`` values. A formula can be set to recalculate. The number of decimals can be set as desired, and defaults to 2.
|
||||
|
||||
In selected builds, per Value is a **Stats** checkbox available, that when checked, gathers the data and presents recent data in a graph, as described here: :ref:`Task Value Statistics: <Task Value Statistics>`
|
||||
|
||||
Currently the extra features offered by the sensor are not configurable in this plugin.
|
||||
These may be added later.
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
2023-12-27 Initial release version.
|
||||
|
||||
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 93 KiB |
@@ -0,0 +1,117 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p16x.repl
|
||||
.. _P166_page:
|
||||
|
||||
|P166_typename|
|
||||
==================================================
|
||||
|
||||
|P166_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P166_type|
|
||||
|
||||
Name: |P166_name|
|
||||
|
||||
Status: |P166_status|
|
||||
|
||||
GitHub: |P166_github|_
|
||||
|
||||
Maintainer: |P166_maintainer|
|
||||
|
||||
Used libraries: |P166_usedlibraries|
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The GP8403 DAC (Digital Analog Converter) has 2 output channels, can be configured for an output voltage range of 0-10V or 0-5V, has a 12 bit resolution (4096 steps) and works from a single 3.3V or 5V power source. When powering the module with 5V, a level converter should be used on the I2C lines, to protect the ESP and other I2C devices on the same bus. The outputs can supply up to 20 mA.
|
||||
|
||||
.. image:: P166_DFRobot_GP8403_board.png
|
||||
|
||||
(Image (c) DFRobot)
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
.. image:: P166_DeviceConfiguration.png
|
||||
|
||||
* **Name**: Required by ESPEasy, must be unique among the list of available devices/tasks.
|
||||
|
||||
* **Enabled**: The device can be disabled or enabled. When not enabled the device should not use any resources.
|
||||
|
||||
I2C options
|
||||
^^^^^^^^^^^
|
||||
|
||||
* **I2C Address**: The device supports 8 addresses, and by default comes configured for address ``0x5F``, as reflected in the available options:
|
||||
|
||||
.. image:: P166_I2CAddressOptions.png
|
||||
|
||||
Available addresses are in the range ``0x58`` to ``0x5F``.
|
||||
|
||||
The available I2C settings here depend on the build used. At least the **Force Slow I2C speed** option is available, but selections for the I2C Multiplexer can also be shown. For details see the :ref:`Hardware_page`
|
||||
|
||||
Device Settings
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
* **Output range**: Select the desired output voltage range:
|
||||
|
||||
.. image:: P166_OutputRangeOptions.png
|
||||
|
||||
Available options:
|
||||
|
||||
* *0-5V*: The maximum available voltage is 5V. When not using a voltage > 5V, this would be the apropriate settings, both for accuracy, and to avoid the risk of applying up to 10V to an input that might not be able to handle that.
|
||||
|
||||
* *0-10V*: (Preconfigured default) The maximum available voltage is 10V.
|
||||
|
||||
The DAC does not support a different output range setting per output.
|
||||
|
||||
The DAC can supply up to 20 mA per output, so the input or device that is connected to this output should be configured to not overload the output.
|
||||
|
||||
* **Restore output on warm boot**: (Enabled by default) When the outputs are set to a specific value and the ESP unit is restarted, f.e. when updating the ESPEasy firmware, the output values will be restored. On cold boot, or after saving the settings, the configured Initial value per output will be set.
|
||||
|
||||
* **Initial value output 0**:
|
||||
|
||||
* **Initial value output 1**: The output value at startup, or after power-loss, can be configured here per output. The allowed range is 0-10V. Although the resolution is in milli Volt, the resolution of the DAC is limited to 12 bit (4096 steps). If a voltage is set here that exceeds the Output range (f.e. when set to 0-5V, and 7V is configured), the setting will **not** be applied!
|
||||
|
||||
Preset values
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
* **Preset value 1..25**: This table allows to configure up to 25 named presets, where the name can be up to 16 characters long, and the voltage in range 0-10V. When all available inputs are filled, Submitting the page will add more inputs until the limit of 25 is reached.
|
||||
|
||||
When leaving the *Name* field empty, that preset will not be saved, thus effectively deleted from the list.
|
||||
|
||||
Data Acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This group of settings, **Single event with all values** and **Send to Controller** settings are standard available configuration items. Send to Controller is only visible when one or more Controllers are configured.
|
||||
|
||||
* **Interval** By default, Interval will be set to 0 sec. The data will be collected and optionally sent to any configured controllers using this interval. When an output value is changed, the data will be sent to any configured controller, and an event will also be generated when the Rules are enabled (Tools/Advanced).
|
||||
|
||||
Values
|
||||
^^^^^^
|
||||
|
||||
The plugin provides the ``Output0`` and ``Output1`` values, analogue to the availabe output connections. A formula can be set to recalculate the displayed, and sent, value. The number of decimals can be set as desired, and defaults to 2.
|
||||
|
||||
In selected builds, per Value is a **Stats** checkbox available, that when checked, gathers the data and presents recent data in a graph, as described here: :ref:`Task Value Statistics: <Task Value Statistics>`
|
||||
|
||||
Commands available
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. include:: P166_commands.repl
|
||||
|
||||
Get Config Values
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Get Config Values retrieves values or settings from the plugin, and can be used in Rules, Display plugins, Formula's etc. The square brackets **are** part of the variable. Replace ``<taskname>`` by the **Name** of the task.
|
||||
|
||||
.. include:: P166_config_values.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
2024-01-30 Initial release version.
|
||||
|
||||
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,40 @@
|
||||
.. csv-table::
|
||||
:header: "Command Syntax", "Extra information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``<ch>`` = Output channel, 0, 1 or 2 (both channels)
|
||||
","
|
||||
When successfully changing an output value, the data will be sent to any configured Controller, and an event will also be generated when the Rules are enabled (Tools/Advanced).
|
||||
"
|
||||
"
|
||||
``gp8403,volt,<ch>,<value>``
|
||||
","
|
||||
Set the output value for the channel(s) in volt. The range is determined by the configured Output range setting.
|
||||
"
|
||||
"
|
||||
``gp8403,mvolt,<ch>,<value>``
|
||||
","
|
||||
Set the output value for the channel(s) in milli volt. The range is determined by the configured Output range setting.
|
||||
"
|
||||
"
|
||||
``gp8403,range,<5|10>``
|
||||
","
|
||||
Set the output range to either 5 (0-5V) or 10 (0-10V). Is also set to the Device configuration, but not saved.
|
||||
|
||||
The range is applied to both channels, no separate configuration per channel supported by the chip.
|
||||
"
|
||||
"
|
||||
``gp8403,preset,<ch>,<name>``
|
||||
","
|
||||
Set the output value for the channel(s) to the value configured for the preset stored with ``<name>``.
|
||||
|
||||
The value is range-checked before it is applied, so when configured for Output range 0-5V, a preset of 7V will be ignored.
|
||||
|
||||
When using duplicate names, the first matched preset will be used.
|
||||
"
|
||||
"
|
||||
``gp8403,init,<ch>``
|
||||
","
|
||||
Set the output value for the channel(s) to the configured initial value(s). When both channels are addressed (2), each will get its own configured value.
|
||||
"
|
||||
@@ -0,0 +1,24 @@
|
||||
.. csv-table::
|
||||
:header: "Config value", "Information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``[<taskname>#preset<X>]``
|
||||
","
|
||||
Returns the numbered preset value ``<X>``, range ``preset1``..``preset25``, as shown in the configuration. Only configured values, having a name, can be retrieved.
|
||||
"
|
||||
"
|
||||
``[<taskname>#initial0]``
|
||||
","
|
||||
Returns the configured initial voltage for output 0.
|
||||
"
|
||||
"
|
||||
``[<taskname>#initial1]``
|
||||
","
|
||||
Returns the configured initial voltage for output 1.
|
||||
"
|
||||
"
|
||||
``[<taskname>#range]``
|
||||
","
|
||||
Returns the configured Output range value 5 (0-5V) or 10 (0-10V)
|
||||
"
|
||||
@@ -386,6 +386,8 @@ There are different released versions of ESP Easy:
|
||||
":ref:`P153_page`","|P153_status|","P153"
|
||||
":ref:`P154_page`","|P154_status|","P154"
|
||||
":ref:`P159_page`","|P159_status|","P159"
|
||||
":ref:`P164_page`","|P164_status|","P164"
|
||||
":ref:`P166_page`","|P166_status|","P166"
|
||||
|
||||
|
||||
Internal GPIO handling
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
.. |Plugin_Energy_Heat| replace:: :ref:`P088_page`, :ref:`P093_page`
|
||||
.. |Plugin_Environment| replace:: :ref:`P004_page`, :ref:`P005_page`, :ref:`P006_page`, :ref:`P014_page`, :ref:`P024_page`, :ref:`P028_page`, :ref:`P030_page`, :ref:`P031_page`, :ref:`P032_page`, :ref:`P034_page`, :ref:`P039_page`, :ref:`P047_page`, :ref:`P051_page`, :ref:`P068_page`, :ref:`P069_page`, :ref:`P072_page`, :ref:`P103_page`, :ref:`P105_page`, :ref:`P106_page`, :ref:`P122_page`, :ref:`P150_page`, :ref:`P151_page`, :ref:`P153_page`, :ref:`P154_page`
|
||||
.. |Plugin_Extra_IO| replace:: :ref:`P011_page`, :ref:`P022_page`
|
||||
.. |Plugin_Gases| replace:: :ref:`P049_page`, :ref:`P052_page`, :ref:`P083_page`, :ref:`P090_page`, :ref:`P117_page`, :ref:`P127_page`, :ref:`P135_page`, :ref:`P145_page`, :ref:`P147_page`
|
||||
.. |Plugin_Gases| replace:: :ref:`P049_page`, :ref:`P052_page`, :ref:`P083_page`, :ref:`P090_page`, :ref:`P117_page`, :ref:`P127_page`, :ref:`P135_page`, :ref:`P145_page`, :ref:`P147_page`, :ref:`P164_page`
|
||||
.. |Plugin_Generic| replace:: :ref:`P003_page`, :ref:`P026_page`, :ref:`P033_page`, :ref:`P037_page`, :ref:`P081_page`, :ref:`P100_page`, :ref:`P146_page`
|
||||
.. |Plugin_Gesture| replace:: :ref:`P064_page`
|
||||
.. |Plugin_Gyro| replace:: :ref:`P045_page`, :ref:`P119_page`
|
||||
@@ -22,7 +22,7 @@
|
||||
.. |Plugin_Light_Lux| replace:: :ref:`P010_page`, :ref:`P015_page`, :ref:`P074_page`
|
||||
.. |Plugin_Motor| replace:: :ref:`P048_page`, :ref:`P079_page`, :ref:`P098_page`
|
||||
.. |Plugin_Notify| replace:: :ref:`P055_page`, :ref:`P065_page`
|
||||
.. |Plugin_Output| replace:: :ref:`P029_page`, :ref:`P038_page`, :ref:`P041_page`, :ref:`P042_page`, :ref:`P043_page`, :ref:`P070_page`, :ref:`P124_page`, :ref:`P126_page`, :ref:`P128_page`, :ref:`P152_page`
|
||||
.. |Plugin_Output| replace:: :ref:`P029_page`, :ref:`P038_page`, :ref:`P041_page`, :ref:`P042_page`, :ref:`P043_page`, :ref:`P070_page`, :ref:`P124_page`, :ref:`P126_page`, :ref:`P128_page`, :ref:`P152_page`, :ref:`P166_page`
|
||||
.. |Plugin_Position| replace:: :ref:`P082_page`, :ref:`P121_page`
|
||||
.. |Plugin_PowerMgt| replace:: :ref:`P137_page`, :ref:`P138_page`
|
||||
.. |Plugin_Presence| replace:: :ref:`P159_page`
|
||||
|
||||
@@ -14,3 +14,4 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p13x.repl
|
||||
.. include:: ../Plugin/_plugin_substitutions_p14x.repl
|
||||
.. include:: ../Plugin/_plugin_substitutions_p15x.repl
|
||||
.. include:: ../Plugin/_plugin_substitutions_p16x.repl
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
.. |P164_name| replace:: :cyan:`ENS16x TVOC/eCO2`
|
||||
.. |P164_type| replace:: :cyan:`Gases`
|
||||
.. |P164_typename| replace:: :cyan:`Gases - ENS16x TVOC/eCO2`
|
||||
.. |P164_porttype| replace:: `.`
|
||||
.. |P164_status| replace:: :yellow:`COLLECTION G` :yellow:`CLIMATE`
|
||||
.. |P164_github| replace:: P164_gases_ens160.ino
|
||||
.. _P164_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P164_gases_ens160.ino
|
||||
.. |P164_usedby| replace:: `.`
|
||||
.. |P164_shortinfo| replace:: `ENS16x TVOC/eCO2 sensors`
|
||||
.. |P164_maintainer| replace:: `flashmark`
|
||||
.. |P164_compileinfo| replace:: `.`
|
||||
.. |P164_usedlibraries| replace:: `I2C`
|
||||
|
||||
.. |P166_name| replace:: :cyan:`GP8403 Dual channel DAC 0-10V`
|
||||
.. |P166_type| replace:: :cyan:`Output`
|
||||
.. |P166_typename| replace:: :cyan:`Output - GP8403 Dual channel DAC 0-10V`
|
||||
.. |P166_porttype| replace:: `.`
|
||||
.. |P166_status| replace:: :yellow:`COLLECTION G`
|
||||
.. |P166_github| replace:: P166_GP8403.ino
|
||||
.. _P166_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P166_GP8403.ino
|
||||
.. |P166_usedby| replace:: `.`
|
||||
.. |P166_shortinfo| replace:: `GP8403 Dual channel DAC 0-10V`
|
||||
.. |P166_maintainer| replace:: `tonhuisman`
|
||||
.. |P166_compileinfo| replace:: `.`
|
||||
.. |P166_usedlibraries| replace:: `modified version of DFRobot_GP8403`
|
||||
@@ -249,10 +249,10 @@ P019 :ref:`P019_page`
|
||||
.. include:: ../Plugin/P019_commands.repl
|
||||
|
||||
|
||||
.. P020 :ref:`P020_page`
|
||||
.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
P020 :ref:`P020_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. .. include:: ../Plugin/P020_commands.repl
|
||||
.. include:: ../Plugin/P020_commands.repl
|
||||
|
||||
|
||||
P021 :ref:`P021_page`
|
||||
@@ -387,10 +387,10 @@ P038 :ref:`P038_page`
|
||||
.. .. include:: ../Plugin/P042_commands.repl
|
||||
|
||||
|
||||
.. P043 :ref:`P043_page`
|
||||
.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
P043 :ref:`P043_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. .. include:: ../Plugin/P043_commands.repl
|
||||
.. include:: ../Plugin/P043_commands.repl
|
||||
|
||||
|
||||
.. P044 :ref:`P044_page`
|
||||
@@ -597,10 +597,10 @@ P077 :ref:`P077_page`
|
||||
.. include:: ../Plugin/P077_commands.repl
|
||||
|
||||
|
||||
.. P078 :ref:`P078_page`
|
||||
.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
P078 :ref:`P078_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. .. include:: ../Plugin/P078_commands.repl
|
||||
.. include:: ../Plugin/P078_commands.repl
|
||||
|
||||
|
||||
P079 :ref:`P079_page`
|
||||
@@ -637,6 +637,12 @@ P088 :ref:`P088_page`
|
||||
.. include:: ../Plugin/P088_commands.repl
|
||||
|
||||
|
||||
P089 :ref:`P089_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. include:: ../Plugin/P089_commands.repl
|
||||
|
||||
|
||||
P091 :ref:`P091_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -784,6 +790,16 @@ P153 :ref:`P153_page`
|
||||
|
||||
.. include:: ../Plugin/P153_commands.repl
|
||||
|
||||
P159 :ref:`P159_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. include:: ../Plugin/P159_commands.repl
|
||||
|
||||
P166 :ref:`P166_page`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. include:: ../Plugin/P166_commands.repl
|
||||
|
||||
.. .. *** Insert regular plugin commands above this remark! ***
|
||||
|
||||
.. _AdafruitGFX Helper commands:
|
||||
|
||||
@@ -236,10 +236,10 @@ P036 :ref:`P036_page`
|
||||
.. include:: ../Plugin/P036_events.repl
|
||||
|
||||
|
||||
.. P037 :ref:`P037_page`
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
P037 :ref:`P037_page`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: ../Plugin/P037_events.repl
|
||||
.. include:: ../Plugin/P037_events.repl
|
||||
|
||||
|
||||
.. P038 :ref:`P038_page`
|
||||
@@ -272,10 +272,10 @@ P036 :ref:`P036_page`
|
||||
.. .. include:: ../Plugin/P042_events.repl
|
||||
|
||||
|
||||
.. P043 :ref:`P043_page`
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
P043 :ref:`P043_page`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: ../Plugin/P043_events.repl
|
||||
.. include:: ../Plugin/P043_events.repl
|
||||
|
||||
|
||||
.. P044 :ref:`P044_page`
|
||||
@@ -544,6 +544,7 @@ P138 :ref:`P138_page`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. include:: ../Plugin/P138_events.repl
|
||||
|
||||
P143 :ref:`P143_page`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@@ -325,7 +325,7 @@ Typical uses in ESPEasy where an interrupt of a GPIO pin is used are:
|
||||
Pins used for RMII Ethernet PHY
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. include:: ../Reference/Ethernet_PHY_ESP32.rst
|
||||
.. include:: ../Reference/RMII_Ethernet_PHY_ESP32.rst
|
||||
|
||||
|
||||
Best pins to use on ESP32-C3
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
|
||||
|
||||
There is a number of ESP32 boards available with Ethernet connected via RMII.
|
||||
|
||||
However it is not always clear which configuration should be used.
|
||||
|
||||
|
||||
.. warning::
|
||||
**Important notice**: It is possible to actually damage the Ethernet chip when a wrong configuration is used.
|
||||
|
||||
.. list-table:: RMII PHY Boards
|
||||
:widths: 30 15 10 10 10 20 30
|
||||
:header-rows: 1
|
||||
|
||||
* - Board
|
||||
- Ethernet Chip
|
||||
- Addr
|
||||
- MDC
|
||||
- MDIO
|
||||
- Power/RST
|
||||
- Clock
|
||||
* - Olimex ESP32 PoE
|
||||
- LAN8720
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- 12
|
||||
- 50MHz Inv Output GPIO17
|
||||
* - Olimex ESP32 EVB
|
||||
- LAN8720
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- (no power pin)
|
||||
- External clock
|
||||
* - Olimex ESP32 Gateway
|
||||
- LAN8720
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- 5
|
||||
- 50MHz Inv Output GPIO17
|
||||
* - wESP32
|
||||
- LAN8720
|
||||
- 0
|
||||
- 16
|
||||
- 17
|
||||
- (no power pin)
|
||||
- External clock
|
||||
* - WT32 ETH01
|
||||
- LAN8720
|
||||
- 1
|
||||
- 23
|
||||
- 18
|
||||
- ?
|
||||
- External clock
|
||||
* - TTGO T-Internet-POE ESP32
|
||||
- LAN8720
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- 5 (RST)
|
||||
- 50MHz Inv Output GPIO17
|
||||
* - TTGO T-ETH-POE-PRO
|
||||
- LAN8720
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- 5 (RST)
|
||||
- 50MHz Output GPIO0
|
||||
* - TTGO T-INTER_COM
|
||||
- LAN8720
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- 4 (RST)
|
||||
- 50MHz Output GPIO0
|
||||
* - TTGO T-EH-Lite-ESP32
|
||||
- RTL8201
|
||||
- 0
|
||||
- 23
|
||||
- 18
|
||||
- 12
|
||||
- External clock
|
||||
|
||||
See:
|
||||
|
||||
* `ESP32 datasheet <https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf>`_
|
||||
* `TTGO/LilyGO Ethernet boards <https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/blob/dda7a2ad4ab33d550c8dbaff5db1e61a0eda5aad/examples/ETHOTA/utilities.h#L12>`_
|
||||
* `Olimex ESP32-PoE <https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-source-hardware>`_
|
||||
* `Olimex ESP32-POE-ISO <https://www.olimex.com/Products/IoT/ESP32/ESP32-POE-ISO/open-source-hardware>`_
|
||||
* `Olimex ESP32-EVB <https://www.olimex.com/Products/IoT/ESP32/ESP32-EVB/open-source-hardware>`_
|
||||
* `Olimex ESP32-GATEWAY <https://www.olimex.com/Products/IoT/ESP32/ESP32-GATEWAY/open-source-hardware>`_
|
||||
@@ -10,10 +10,18 @@ The following PHY connections are required for RMII PHY data connections:
|
||||
- RMII Signal
|
||||
- ESP32 EMAC Function
|
||||
- Notes
|
||||
* - 0
|
||||
* - 0 / 16 / 17
|
||||
- REF_CLK
|
||||
- EMAC_TX_CLK
|
||||
- See desciption about the clock
|
||||
* - 18
|
||||
- MDIO
|
||||
- EMAC_MDIO
|
||||
- In theory user configurable, but almost always used as MDIO pin
|
||||
* - 23
|
||||
- MDC
|
||||
- EMAC_MDC
|
||||
- In theory user configurable, but almost always used as MDC pin
|
||||
* - 21
|
||||
- TX_EN
|
||||
- EMAC_TX_EN
|
||||
@@ -0,0 +1,149 @@
|
||||
|
||||
There is a number of ESP32 boards available with Ethernet connected via SPI
|
||||
|
||||
However it is not always clear which configuration should be used.
|
||||
|
||||
.. note:: SPI Ethernet is only supported on builds based on ESP-IDF 5.1 or newer. Thus only on ESP32-builds with LittleFS support made after 2024/02.
|
||||
|
||||
|
||||
N.B. As there is not yet support in ESPEasy for multiple SPI busses, it cannot be configured.
|
||||
When later versions of ESPEasy will support multiple SPI busses, the SPI bus information may be needed for the configuration.
|
||||
Therefore it is included in the table below.
|
||||
|
||||
.. list-table:: SPI Ethernet Boards
|
||||
:widths: 30 15 15 10 10 10 10 10 10 10 15
|
||||
:header-rows: 1
|
||||
|
||||
* - Board
|
||||
- ESP chip
|
||||
- Ethernet Chip
|
||||
- Addr
|
||||
- CS
|
||||
- IRQ/INT
|
||||
- RST
|
||||
- SPI Clock
|
||||
- SPI MISO
|
||||
- SPI MOSI
|
||||
- SPI bus
|
||||
* - ETH01-EVO
|
||||
- ESP32-C3
|
||||
- DM9051
|
||||
- 1
|
||||
- 9
|
||||
- 8
|
||||
- 6
|
||||
- 7
|
||||
- 3
|
||||
- 10
|
||||
- SPI2_HOST
|
||||
* - M5Stack PoECAM
|
||||
- ESP32-classic
|
||||
- W5500
|
||||
-
|
||||
- 4
|
||||
-
|
||||
-
|
||||
- 23
|
||||
- 38
|
||||
- 13
|
||||
- SPI2_HOST
|
||||
* - M5Stack Atom PoE Kit (ATOM LITE)
|
||||
- ESP32-classic
|
||||
- W5500
|
||||
-
|
||||
- 19
|
||||
-
|
||||
-
|
||||
- 22
|
||||
- 23
|
||||
- 33
|
||||
- SPI2_HOST
|
||||
* - M5Stack Atom PoE Kit (AtomS3)
|
||||
- ESP32-S3
|
||||
- W5500
|
||||
-
|
||||
- 6
|
||||
-
|
||||
-
|
||||
- 5
|
||||
- 7
|
||||
- 8
|
||||
- SPI2_HOST
|
||||
* - M5Stack Base LAN (End-of-life)
|
||||
- M5Core
|
||||
- W5500
|
||||
-
|
||||
- 26
|
||||
- 34
|
||||
- 13
|
||||
- 18
|
||||
- 19
|
||||
- 23
|
||||
- SPI2_HOST
|
||||
* - M5Stack LAN (PoE) BASE V12
|
||||
- M5Core
|
||||
- W5500
|
||||
-
|
||||
- 26
|
||||
- 34
|
||||
- 13
|
||||
- 18
|
||||
- 19
|
||||
- 23
|
||||
- SPI2_HOST
|
||||
* - M5Stack LAN Module 13.2
|
||||
- M5Core
|
||||
- W5500
|
||||
-
|
||||
- 5/15
|
||||
- 35/34
|
||||
- 0/13
|
||||
- 18
|
||||
- 19
|
||||
- 23
|
||||
- SPI2_HOST
|
||||
* - M5Stack LAN Module 13.2
|
||||
- M5Core2
|
||||
- W5500
|
||||
-
|
||||
- 33/2
|
||||
- 35/34
|
||||
- 0/19
|
||||
- 18
|
||||
- 38
|
||||
- 23
|
||||
- SPI2_HOST
|
||||
* - M5Stack LAN Module 13.2
|
||||
- M5CoreS3
|
||||
- W5500
|
||||
-
|
||||
- 1/13
|
||||
- 10/14
|
||||
- 0/7
|
||||
- 36
|
||||
- 35
|
||||
- 37
|
||||
- SPI2_HOST
|
||||
* - T-ETH-Lite-ESP32S3
|
||||
- ESP32-S3
|
||||
- W5500
|
||||
- 1
|
||||
- 9
|
||||
- 13
|
||||
- 14
|
||||
- 10
|
||||
- 11
|
||||
- 12
|
||||
- SPI2_HOST
|
||||
|
||||
|
||||
See:
|
||||
|
||||
* `M5 Stack Base LAN <https://docs.m5stack.com/en/base/lan_base>`_
|
||||
* `M5 Stack LAN Base V12 <https://docs.m5stack.com/en/base/lan_v12>`_
|
||||
* `M5 Stack PoECAM <https://docs.m5stack.com/en/unit/poe_cam>`_
|
||||
* `M5 Stack LAN PoE Base V12 <https://docs.m5stack.com/en/base/lan_poe_v12>`_
|
||||
* `M5 Stack LAN Module V13.2 <https://docs.m5stack.com/en/module/LAN%20Module%2013.2>`_
|
||||
* `M5 Stack ATOM PoE <https://docs.m5stack.com/en/atom/atom_poe>`_ `ATOM Lite <https://docs.m5stack.com/en/core/ATOM%20Lite>`_ `AtomS3 <https://docs.m5stack.com/en/core/AtomS3>`_
|
||||
* `M5 Stack Base PoE <https://docs.m5stack.com/en/base/w5500PoE>`_
|
||||
* `TTGO/LilyGO Ethernet boards <https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/blob/dda7a2ad4ab33d550c8dbaff5db1e61a0eda5aad/examples/ETHOTA/utilities.h#L12>`_
|
||||
@@ -23,12 +23,12 @@ So these have the same hole on the side used on the TH10/16 to connect sensors.
|
||||
This hole may seem like an invitation to connect some external sensor to these devices, but don't be tempted to do so.
|
||||
|
||||
|
||||
HWL8012 & CSE7766
|
||||
HLW8012 & CSE7766
|
||||
=================
|
||||
|
||||
Some ESP8266 and ESP32 powered devices have an energy monitoring sensor on board.
|
||||
Well known examples are the Sonoff POW, POW r2, POW R3xx(D) and Shelly PLUG S, but there are many others.
|
||||
Almost all use either the HWL8012 or CSE7766 chip.
|
||||
Almost all use either the HLW8012 or CSE7766 chip.
|
||||
|
||||
These chips are not isolated from mains power, which means all electronics connected
|
||||
to them does also have a direct connection to mains power lines.
|
||||
|
||||
@@ -139,6 +139,10 @@ More uses of these system variables can be seen in the rules section and formula
|
||||
- 5 (05)
|
||||
- Current second (ss). ``%syssec%`` omits leading zeros.
|
||||
- Yes
|
||||
* - ``%syssec_d%``
|
||||
- 83682
|
||||
- Seconds since midnight.
|
||||
-
|
||||
* - ``%sysday%`` (``%sysday_0%``)
|
||||
- 7 (07)
|
||||
- Current day of month (DD). ``%sysday%`` omits leading zeros.
|
||||
|
||||
@@ -1969,6 +1969,65 @@ Added: 2022/07/23
|
||||
* Host name can contain user credentials. For example: ``http://username:pass@hostname:portnr/foo.html``
|
||||
* HTTP user credentials now can handle Basic Auth and Digest Auth.
|
||||
|
||||
Added: 2023/10/26
|
||||
|
||||
* ``SendToHTTP`` now generates an event with the response of a thingspeak request (https://de.mathworks.com/help/thingspeak/readlastfieldentry.html & // https://de.mathworks.com/help/thingspeak/readdata.html)
|
||||
* There are two options:
|
||||
|
||||
1. Get the value of a single field:
|
||||
|
||||
- Example command:
|
||||
``SendToHTTP,api.thingspeak.com,80,/channels/143789/fields/5/last.csv``
|
||||
- Example of the resulting event:
|
||||
``"EVENT: ThingspeakReply=143789,5,9.65"``
|
||||
|
||||
| channel number = ``%eventvalue1%``
|
||||
| field number = ``%eventvalue2%``
|
||||
| value = ``%eventvalue3%``
|
||||
|
||||
2. Get the values of all fields:
|
||||
|
||||
- Example command:
|
||||
``SendToHTTP,api.thingspeak.com,80,/channels/143789/feeds/last.csv``
|
||||
- Example of the resulting event:
|
||||
``"EVENT: ThingspeakReply=143789,11.12,9.46,9.55,16.32,9.65,8.81,-1.23,14.76"``
|
||||
|
||||
| channel number = ``%eventvalue1%``
|
||||
| values = ``%eventvalue2%`` to ``%eventvalue9%``
|
||||
|
||||
.. note::
|
||||
``last.csv`` is mandatory!
|
||||
|
||||
.. warning:: When using the command for all fields, the reply can become extremely big and can lead to memory issues which results in instabilities of your device (especially when all eight fields are filled with very big numbers)
|
||||
|
||||
* Rules example:
|
||||
|
||||
.. code:: none
|
||||
|
||||
On System#Boot Do
|
||||
SendToHTTP,api.thingspeak.com,80,/channels/143789/feeds/last.csv
|
||||
Endon
|
||||
|
||||
On ThinkspeakReply Do
|
||||
LogEntry,'The channel number is: %eventvalue1%'
|
||||
LogEntry,'%eventvalue6%°C in Berlin'
|
||||
LogEntry,'%eventvalue7%°C in Paris'
|
||||
Endon
|
||||
|
||||
Added 2024/02/05
|
||||
|
||||
* Added the option to get a single value of a field or all values of a channel at a certain time (not only the last entry)
|
||||
|
||||
* Examples:
|
||||
|
||||
Single channel: ``SendToHTTP,api.thingspeak.com,80,channels/143789/fields/1.csv?end=2024-01-01%2023:59:00&results=1``
|
||||
=> gets the value of field 1 at (or the last entry before) 23:59:00 of the channel 143789
|
||||
|
||||
All channels: ``SendToHTTP,api.thingspeak.com,80,channels/143789/feeds.csv?end=2024-01-01%2023:59:00&results=1``
|
||||
=> gets the value of each field of the channel 143789 at (or the last entry before) 23:59:00
|
||||
|
||||
.. note::
|
||||
``csv`` and ``results=1`` are mandatory!
|
||||
|
||||
Convert curl POST command to PostToHTTP
|
||||
---------------------------------------
|
||||
@@ -2404,3 +2463,113 @@ This rule can be used to calculate the moving average for, f.e., a temperature s
|
||||
|
||||
This assumes that a Controller has been configured, and the Dummy task is configured to send out its values via the controller.
|
||||
|
||||
Register daily working time
|
||||
---------------------------
|
||||
|
||||
To register the daily time in seconds that a device is active, these rules have been developed (from the forum).
|
||||
|
||||
Required device tasks:
|
||||
|
||||
* Sensor (temperature in the example)
|
||||
* Dummy device (named ``Dummy`` in this example, minimal 2 values, ``LoggingON`` and ``LoggingOFF``), Interval can be set to 0
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
On System#Boot Do
|
||||
TaskValueSet,Dummy,LoggingON,1 // Make sure timer is started and Heater ON message is sent
|
||||
Endon
|
||||
|
||||
On DS1#Temperature Do // Check tmeperature
|
||||
If %eventvalue1% < 40
|
||||
GPIO,5,0
|
||||
AsyncEvent,HeaterON=%eventvalue1%
|
||||
Endif
|
||||
If %eventvalue1% > 55
|
||||
GPIO,5,1
|
||||
AsyncEvent,HeaterOFF=%eventvalue1%
|
||||
Endif
|
||||
Endon
|
||||
|
||||
On HeaterON Do // Optional 1st argument is the temperature, defaults to the value of DS1#Temperature if not provided
|
||||
If [Dummy#LoggingON] = 1
|
||||
Let,1,%syssec_d% // Store current nr of seconds of today in var#1
|
||||
PostToHTTP,192.168.1.20,8080,/receiver.php,'','%lcltime% !!! Temp = %eventvalue1|[DS1#Temperature]% -> Heater ON'
|
||||
TaskValueSet,Dummy,LoggingON,0
|
||||
TaskValueSet,Dummy,LoggingOFF,1
|
||||
TaskRun,Dummy
|
||||
Endif
|
||||
Endon
|
||||
|
||||
On HeaterOFF Do // Optional 1st argument is the temperature, defaults to the value of DS1#Temperature if not provided
|
||||
If [Dummy#LoggingOFF] = 1
|
||||
Let,2,[int#2]+%syssec_d%-[int#1] // Add run time to var#2
|
||||
PostToHTTP,192.168.1.20,8080,/receiver.php,'','%lcltime% !!! Temp = %eventvalue1|[DS1#Temperature]% -> Heater OFF'
|
||||
TaskValueSet,Dummy,LoggingON,1
|
||||
TaskValueSet,Dummy,LoggingOFF,0
|
||||
TaskRun,Dummy
|
||||
Endif
|
||||
Endon
|
||||
|
||||
On Clock#Time=All,00:00 Do // At midnight
|
||||
// Send value of [int#2] to wherever you need it
|
||||
PostToHTTP,192.168.1.20,8080,/receiver.php,'','%lcltime% !!! Total RunningTime = [int#2] Seconds'
|
||||
Let,1,0 // Reset start time
|
||||
Let,2,0 // Reset total counter
|
||||
Endon
|
||||
|
||||
|
||||
Register power used for a heater
|
||||
--------------------------------
|
||||
|
||||
As a variation on the running time, we can also measure the time and calculate the total power used, as long as the used device-power is known. Parts from the above example have been re-used.
|
||||
|
||||
This example uses a ``Generic - Dummy Device``, so the values can also be viewed on the Devices page. This has name: Power, output data type: Dual (or Triple or Quad, must be able to store decimals!), value names: Seconds (0 decimmals) and PowerUsed (4 decimals).
|
||||
|
||||
The time is counted while GPIO-14 (D5 on a Wemos or NodeMCU ESP8266) has a low state, and power is calculated once the power goes off. The not-On state will need a pull-up resistor to pull the level to 3V3!
|
||||
|
||||
After loading this code, either reboot the ESP, or run the command ``event,system#boot`` to set up the GPIO monitoring and wattage of the device.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
// Used variables: 1,3,4,5
|
||||
|
||||
On GPIO#14 Do // GPIO-14 = D5 on Wemos/NodeMCU ESP8266 boards
|
||||
If %eventvalue1%=0 // On state
|
||||
Let,1,%syssec_d% // Store current nr of seconds of today in var#1
|
||||
Else // Off state
|
||||
Event,CalcPower // Don't queue
|
||||
Event,TransmitPower // Send out to receiver
|
||||
Endif
|
||||
Let,5,!%eventvalue1% // 0 = On, to invert on/off state change to: Let,5,%eventvalue1%
|
||||
LogEntry,"Power [int#5#O#C], measured: [Power#Seconds] sec. [Power#PowerUsed#d.4] kWh"
|
||||
Endon
|
||||
|
||||
On CalcPower Do
|
||||
TaskValueSet,Power,Seconds,[Power#Seconds]+%syssec_d%-[int#1] // Add run time to Power#Seconds
|
||||
Let,4,[Power#Seconds]*[var#3] // Wattseconds
|
||||
If [var#4]>0
|
||||
TaskValueSet,Power,PowerUsed,[var#4]/3600000 // Wattseconds to kWh
|
||||
Endif
|
||||
TaskRun,Power
|
||||
Endon
|
||||
|
||||
On TransmitPower Do
|
||||
// Send value of [Power#Seconds] and [Power#PowerUsed] to wherever you need it, adjust as needed
|
||||
PostToHTTP,192.168.1.20,8080,/receiver.php,'','%lcltime% !!! Total RunningTime = [Power#Seconds] Seconds, PowerUsed = [Power#PowerUsed] kWh'
|
||||
Endon
|
||||
|
||||
On Clock#Time=All,00:00 Do // At midnight
|
||||
// Include power used until midnight
|
||||
If [Plugin#GPIO#PinState#14]=0 // Still on?
|
||||
Event,CalcPower // Don't queue
|
||||
Endif
|
||||
Let,1,0 // Reset start time
|
||||
Event,TransmitPower // Send out remainder of the day
|
||||
TaskValueSet,Power,Seconds,0 // Reset total counter
|
||||
TaskValueSet,Power,PowerUsed,0 // Reset total power
|
||||
Endon
|
||||
|
||||
On System#Boot Do
|
||||
Monitor,gpio,14 // Generate an event when the GPIO state changes
|
||||
Let,3,250 // Wattage of the load, adjust as needed
|
||||
Endon
|
||||
|
||||
@@ -21,7 +21,7 @@ import sphinx_bootstrap_theme
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = u'ESP Easy'
|
||||
copyright = u'2018-2023, ESP Easy'
|
||||
copyright = u'2018-2024, ESP Easy'
|
||||
author = u'Grovkillen, TD-er & Friends'
|
||||
|
||||
# The short X.Y version
|
||||
@@ -69,7 +69,7 @@ master_doc = 'index'
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
language = 'en'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
@@ -179,7 +179,7 @@ html_theme_options = {
|
||||
|
||||
# Choose Bootstrap version.
|
||||
# Values: "3" (default) or "2" (in quotes)
|
||||
'bootstrap_version': "3",
|
||||
'bootstrap_version': "5",
|
||||
}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
@@ -278,7 +278,7 @@ epub_exclude_files = ['search.html']
|
||||
# -- Options for intersphinx extension ---------------------------------------
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {'https://docs.python.org/3/': None}
|
||||
intersphinx_mapping = { 'ESPEasy': ('https://docs.python.org/3/', None) }
|
||||
|
||||
# -- Options for todo extension ----------------------------------------------
|
||||
|
||||
|
||||
@@ -150,56 +150,56 @@ static const uint8_t PROGMEM
|
||||
mono_bmp[][8] =
|
||||
{
|
||||
{ // 0: checkered 1
|
||||
B10101010,
|
||||
B01010101,
|
||||
B10101010,
|
||||
B01010101,
|
||||
B10101010,
|
||||
B01010101,
|
||||
B10101010,
|
||||
B01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
},
|
||||
|
||||
{ // 1: checkered 2
|
||||
B01010101,
|
||||
B10101010,
|
||||
B01010101,
|
||||
B10101010,
|
||||
B01010101,
|
||||
B10101010,
|
||||
B01010101,
|
||||
B10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
0b01010101,
|
||||
0b10101010,
|
||||
},
|
||||
|
||||
{ // 2: smiley
|
||||
B00111100,
|
||||
B01000010,
|
||||
B10100101,
|
||||
B10000001,
|
||||
B10100101,
|
||||
B10011001,
|
||||
B01000010,
|
||||
B00111100 },
|
||||
0b00111100,
|
||||
0b01000010,
|
||||
0b10100101,
|
||||
0b10000001,
|
||||
0b10100101,
|
||||
0b10011001,
|
||||
0b01000010,
|
||||
0b00111100 },
|
||||
|
||||
{ // 3: neutral
|
||||
B00111100,
|
||||
B01000010,
|
||||
B10100101,
|
||||
B10000001,
|
||||
B10111101,
|
||||
B10000001,
|
||||
B01000010,
|
||||
B00111100 },
|
||||
0b00111100,
|
||||
0b01000010,
|
||||
0b10100101,
|
||||
0b10000001,
|
||||
0b10111101,
|
||||
0b10000001,
|
||||
0b01000010,
|
||||
0b00111100 },
|
||||
|
||||
{ // 4; frowny
|
||||
B00111100,
|
||||
B01000010,
|
||||
B10100101,
|
||||
B10000001,
|
||||
B10011001,
|
||||
B10100101,
|
||||
B01000010,
|
||||
B00111100 },
|
||||
0b00111100,
|
||||
0b01000010,
|
||||
0b10100101,
|
||||
0b10000001,
|
||||
0b10011001,
|
||||
0b10100101,
|
||||
0b01000010,
|
||||
0b00111100 },
|
||||
};
|
||||
|
||||
static const uint16_t PROGMEM
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# Our handy .gitignore for automation ease
|
||||
Doxyfile*
|
||||
doxygen_sqlite3.db
|
||||
html
|
||||