Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8ae031be7 | ||
|
|
a516892ce6 | ||
|
|
caa7e12eb7 | ||
|
|
9b1151baa6 | ||
|
|
40009a49f9 | ||
|
|
0a4f7cf174 | ||
|
|
b13541cf58 | ||
|
|
c8094bbecd | ||
|
|
98c4905827 | ||
|
|
c298c5a457 | ||
|
|
3bcfb5b0f5 | ||
|
|
7824466685 | ||
|
|
f30530d470 | ||
|
|
02ef853e1e | ||
|
|
ed50071953 | ||
|
|
122c1932e8 | ||
|
|
59b5adfeee | ||
|
|
4de68afc7a | ||
|
|
5a768fb094 | ||
|
|
fd272367f2 | ||
|
|
20635e91c8 | ||
|
|
9b71379687 | ||
|
|
4476bd1016 | ||
|
|
3b49dca5f5 | ||
|
|
3c1c84b288 | ||
|
|
1d005250c5 | ||
|
|
8c0ded31be | ||
|
|
63d6b3944f | ||
|
|
e6f24edd32 | ||
|
|
827ef08f50 | ||
|
|
f4e84ea4c6 | ||
|
|
520cee5d0d | ||
|
|
5b80edb943 | ||
|
|
6256cb5255 | ||
|
|
2fbe1a2655 | ||
|
|
d9028a732c | ||
|
|
09a79a5892 | ||
|
|
8ed77ffb01 | ||
|
|
a7142f4a3c | ||
|
|
9d7750b881 | ||
|
|
89da79bbdc | ||
|
|
2add0fcae2 | ||
|
|
e1495f9520 | ||
|
|
e52f85e893 | ||
|
|
e26cf54e47 | ||
|
|
af9d4d925e | ||
|
|
fc950b141f | ||
|
|
331462877f | ||
|
|
50635d8024 | ||
|
|
108bdb4b01 | ||
|
|
0c0db4f401 | ||
|
|
77b283197d | ||
|
|
021374bf09 | ||
|
|
8db694bde6 | ||
|
|
c304efb1b4 | ||
|
|
60edd5208e | ||
|
|
b6e96a0086 | ||
|
|
72862e7169 | ||
|
|
25c2f55219 | ||
|
|
65d072dcf7 | ||
|
|
89b30dcd88 | ||
|
|
7948efb6fe | ||
|
|
05723163cc | ||
|
|
79123392a9 | ||
|
|
ccf2929e69 | ||
|
|
8ae51cda1c | ||
|
|
ebe11246a1 | ||
|
|
43dfa03f2f | ||
|
|
ce1ab3e718 | ||
|
|
c9fa53914a | ||
|
|
4acedced42 | ||
|
|
dd8a67adcd | ||
|
|
ab893a7d14 | ||
|
|
aaae79c8d9 | ||
|
|
6ae627b32a | ||
|
|
8369c330de | ||
|
|
2290de3c98 | ||
|
|
3f00ef5dde | ||
|
|
afeed445ca | ||
|
|
b76e8b4e8b | ||
|
|
dab8c16e05 | ||
|
|
84a31c0af9 | ||
|
|
bdfa4b7eec | ||
|
|
99a77ad343 | ||
|
|
0b4c605f43 | ||
|
|
eabf79be54 | ||
|
|
b14fe5de32 | ||
|
|
ed3d8f5371 | ||
|
|
459e103a73 | ||
|
|
c62fab5eec | ||
|
|
ecba3c79e2 | ||
|
|
5146803833 | ||
|
|
2b5a822cd5 | ||
|
|
5ee53a49f5 | ||
|
|
b49921eb9a | ||
|
|
b9f999d79f | ||
|
|
776277b179 | ||
|
|
56fb47b6a8 | ||
|
|
6d9ea14d6c | ||
|
|
f74ea5f8c8 | ||
|
|
ee1a9f7cef | ||
|
|
c3b1247f9d | ||
|
|
742aec9598 | ||
|
|
496e9443b0 | ||
|
|
d708a62efe | ||
|
|
3f1deeef96 | ||
|
|
385bb23484 | ||
|
|
f30977f6f3 | ||
|
|
a3aa944988 | ||
|
|
52c1e1243e | ||
|
|
12852c39d6 | ||
|
|
35b7f586d1 | ||
|
|
4f08ebbf1a | ||
|
|
45e302c4ee | ||
|
|
fd6ba18c36 | ||
|
|
f008accd4e | ||
|
|
24f661f80a | ||
|
|
98c2c1e6eb | ||
|
|
f9c9557384 | ||
|
|
5b5c1f224b | ||
|
|
3e367c020f | ||
|
|
80b8b03869 | ||
|
|
d3f1dbd934 | ||
|
|
defdc8215b | ||
|
|
8e1f89035e | ||
|
|
c7b2052298 | ||
|
|
0e7c8e4fa0 | ||
|
|
fd228119a3 | ||
|
|
d3cf913ece | ||
|
|
57232e819c | ||
|
|
5630bf83da | ||
|
|
125bc51ac2 | ||
|
|
3984823de6 | ||
|
|
f8e2e34f6f | ||
|
|
f1b41d903e | ||
|
|
592e6afd60 | ||
|
|
937fce0fe5 | ||
|
|
30bee983b0 | ||
|
|
9579cb45b7 | ||
|
|
1cc3889127 | ||
|
|
376104a8b4 | ||
|
|
44a23fb574 | ||
|
|
2f50cfe26b | ||
|
|
d8e4f9d850 | ||
|
|
222397ea7a | ||
|
|
73b69d0ca2 | ||
|
|
78cc4a3d52 | ||
|
|
bbbbecab56 | ||
|
|
a451a876e4 | ||
|
|
8ebf6a3c88 | ||
|
|
a99ff721d8 | ||
|
|
5058d326c7 | ||
|
|
9d4c4b5ea4 | ||
|
|
54c0acf80d | ||
|
|
915a7beaea | ||
|
|
0ed9f204ab | ||
|
|
601eeb529e | ||
|
|
541c0bba41 | ||
|
|
49a95d06e7 | ||
|
|
153267b8c5 | ||
|
|
8a2c35d15d | ||
|
|
5ed2ebf7f7 | ||
|
|
05245ac0da | ||
|
|
c0c95deb30 | ||
|
|
0fcd810074 | ||
|
|
12f7c559b5 | ||
|
|
49271bebf5 | ||
|
|
05963c0f22 | ||
|
|
417b62e064 | ||
|
|
686b9ead85 | ||
|
|
28706197b9 | ||
|
|
b772c34911 | ||
|
|
5ce7abbe56 | ||
|
|
0decde6fd0 | ||
|
|
2664dae375 | ||
|
|
f65fd64c84 | ||
|
|
5e65f18235 | ||
|
|
8f350fcd0c | ||
|
|
24a7330e5d | ||
|
|
a8e8c39fa3 | ||
|
|
e986c8a8e1 | ||
|
|
63f01e7d9b | ||
|
|
a5f50fda5a | ||
|
|
0a2f8f9ccf | ||
|
|
28f321d5c7 | ||
|
|
af237c3e42 | ||
|
|
84caa6939c | ||
|
|
c8c9aab308 | ||
|
|
a06ade4979 | ||
|
|
691977c1dd | ||
|
|
fda673ce9d | ||
|
|
cec00400f2 | ||
|
|
125155a9b9 | ||
|
|
6d45860aa0 | ||
|
|
fbb1f2c9c6 | ||
|
|
d4206d37f9 | ||
|
|
375274b208 | ||
|
|
addbcb29d0 | ||
|
|
818a64b74e | ||
|
|
31178ef206 | ||
|
|
6398aefa63 | ||
|
|
88df0a3417 | ||
|
|
a90b9af463 | ||
|
|
cef698ad36 | ||
|
|
432655d50b | ||
|
|
23005543ef | ||
|
|
26defa8700 | ||
|
|
34e839477d | ||
|
|
bbb3275bd1 | ||
|
|
797c1a235e | ||
|
|
c88b04cd98 | ||
|
|
07c0509dee | ||
|
|
a42017157f | ||
|
|
25b3e93ddc | ||
|
|
4c862c0747 | ||
|
|
d97335e289 | ||
|
|
05d79ce854 | ||
|
|
89d65c6dd2 | ||
|
|
cbe9a6de50 | ||
|
|
7864863df8 | ||
|
|
b6f8085170 | ||
|
|
564eb040ac | ||
|
|
c3e5ece07e | ||
|
|
3163c589d2 | ||
|
|
9f027d14cb | ||
|
|
a33e4b55d0 | ||
|
|
bf28625eca | ||
|
|
3f6e90229b | ||
|
|
616115d7e3 | ||
|
|
7735ea1cf9 | ||
|
|
c04ffaa1f4 | ||
|
|
bb208c34bd | ||
|
|
8c344593b9 | ||
|
|
b54311db2e | ||
|
|
b23a9245da | ||
|
|
936b729b46 | ||
|
|
c2d9a03a54 | ||
|
|
2dec3a367d | ||
|
|
f53a9533a4 | ||
|
|
27a4f081e8 | ||
|
|
26d7c95b6f | ||
|
|
72637da44c | ||
|
|
ca0a16fb9c | ||
|
|
6f895c2e2e | ||
|
|
8912ef845c | ||
|
|
1231c6a9c2 | ||
|
|
6313d4344d | ||
|
|
6dcfc9e2a1 | ||
|
|
2e9e1e480f | ||
|
|
d7dcd9cff0 | ||
|
|
bdf0e6e05c | ||
|
|
75e411f458 | ||
|
|
bc9a697792 | ||
|
|
dfe90363b7 | ||
|
|
d8dd25593e | ||
|
|
4cbd8a7ec7 | ||
|
|
cf7faba90a | ||
|
|
38d08d6902 | ||
|
|
11bc5a716d | ||
|
|
b430adeefa | ||
|
|
a7b32273ae | ||
|
|
c5d0296bad | ||
|
|
798b31fc2e | ||
|
|
23fa1854a8 | ||
|
|
ba14acfb37 | ||
|
|
5ccbdfff11 | ||
|
|
4ff3de5482 | ||
|
|
d52435264d | ||
|
|
cd76c88860 | ||
|
|
429fa31ee5 | ||
|
|
6b33cee8ea | ||
|
|
a182ca8097 | ||
|
|
f7feeff9b4 | ||
|
|
a5cfa1713d | ||
|
|
04edfae8de | ||
|
|
1e9debf67c | ||
|
|
250d8aca59 | ||
|
|
19ec7a90cf | ||
|
|
74e591ac81 | ||
|
|
29fb32225a | ||
|
|
f90f97e3d0 | ||
|
|
fd634a12a1 | ||
|
|
19b59359e0 | ||
|
|
0fe9566d14 | ||
|
|
9e49f6f7b1 | ||
|
|
660377ea02 | ||
|
|
4e171993ff | ||
|
|
dfdaa831d5 | ||
|
|
946c1a8390 | ||
|
|
f7c7d176f1 | ||
|
|
0a72b711f9 | ||
|
|
2f8962ec52 | ||
|
|
b68d91fc58 | ||
|
|
a8c565ee5f | ||
|
|
6f06b57d14 | ||
|
|
cf949ab167 | ||
|
|
21cc1faf25 | ||
|
|
99030621b7 | ||
|
|
33199ceb12 | ||
|
|
6175adddd1 | ||
|
|
35461643ff | ||
|
|
9397f560dc | ||
|
|
6de76f8817 | ||
|
|
ae9deeb702 | ||
|
|
1bdbc97d33 | ||
|
|
bec97768f4 | ||
|
|
abdc9a0454 | ||
|
|
c9bb2750a3 | ||
|
|
eda3326615 | ||
|
|
d2644b2da7 | ||
|
|
8650bc6aa3 | ||
|
|
dee5f6df1a | ||
|
|
0085986701 | ||
|
|
7a72836d0f | ||
|
|
cec830fe83 | ||
|
|
894a59e10b | ||
|
|
e28f46697a | ||
|
|
14ced058b5 | ||
|
|
fabc514f8e | ||
|
|
4ae5e2ce7b | ||
|
|
0585d48ffa | ||
|
|
be9a5d622a | ||
|
|
821fcb9e54 | ||
|
|
1a9584134a | ||
|
|
d2e9337d76 | ||
|
|
6c5c12a6f2 | ||
|
|
9eb2ebe210 | ||
|
|
1d5fbd926e | ||
|
|
4d3ac95e5a | ||
|
|
1f1e47530a | ||
|
|
3b1d26b541 | ||
|
|
8a86ee9b89 | ||
|
|
ed592a3a0a | ||
|
|
f2b330424c | ||
|
|
542a758fde | ||
|
|
11e4addb41 | ||
|
|
8921ebbcaa | ||
|
|
d05d669284 | ||
|
|
71a6b344e7 | ||
|
|
c67becac0c | ||
|
|
0ec06161c5 | ||
|
|
a2b2cd857a | ||
|
|
0e581f0288 | ||
|
|
fffcd0f2a4 | ||
|
|
1d923a527f | ||
|
|
356ebbc875 | ||
|
|
25fadfc1ed | ||
|
|
54d892e162 | ||
|
|
007ef78f2b | ||
|
|
d16daeca56 | ||
|
|
90fdb8f809 | ||
|
|
383206b149 | ||
|
|
ac20349854 | ||
|
|
1a972d61a6 | ||
|
|
d6cf2e141b | ||
|
|
7a2e9ba203 | ||
|
|
e3591aceb2 | ||
|
|
ad3514e765 | ||
|
|
f543995d86 | ||
|
|
97ccb8eca1 | ||
|
|
f291c9d25a | ||
|
|
bd9ead3851 | ||
|
|
43ea0039fd | ||
|
|
74eb638bcb | ||
|
|
c87b035908 | ||
|
|
0f450eaa3d | ||
|
|
02df033fc6 | ||
|
|
74d05e58f0 | ||
|
|
3d88537677 | ||
|
|
95b0a7bed9 | ||
|
|
bc3434532e | ||
|
|
1f7639cb42 | ||
|
|
923642bb27 | ||
|
|
a09cb906eb | ||
|
|
72b0a32839 | ||
|
|
e279e5504b | ||
|
|
6d5ddf06ce | ||
|
|
7f544b7a10 | ||
|
|
fc407e86e1 | ||
|
|
a35c3051df | ||
|
|
f8f2ddd33b | ||
|
|
6592b57615 | ||
|
|
6e8e8214b2 | ||
|
|
24b6611c54 | ||
|
|
8135defa6f | ||
|
|
d5e9cfb081 | ||
|
|
ffc8e1fb97 | ||
|
|
0255f41897 | ||
|
|
e88973861f | ||
|
|
d6ec7aa736 | ||
|
|
8aa5866dd9 | ||
|
|
0c384c332e | ||
|
|
7a4f3b15b3 | ||
|
|
c38e532e67 | ||
|
|
f983dd924d | ||
|
|
f0ff52b76b | ||
|
|
3c0e5d1965 | ||
|
|
14489a2e98 | ||
|
|
a920b95cfb | ||
|
|
a111175a8f | ||
|
|
4fd2166b5e | ||
|
|
db76aeb959 | ||
|
|
b313957311 | ||
|
|
9d0f741e84 | ||
|
|
7c0f1551b8 | ||
|
|
8a59811392 | ||
|
|
e2e715d7de | ||
|
|
ccb4cf6a7a | ||
|
|
1b4a217bc9 | ||
|
|
19ecf36358 | ||
|
|
bdea34a583 | ||
|
|
b7b5028c0c | ||
|
|
c519d887db | ||
|
|
29c8b850ba | ||
|
|
d01cb9b9a2 | ||
|
|
9d894d7c83 | ||
|
|
a418cb2bd0 | ||
|
|
907a672fa0 | ||
|
|
2f10274da2 | ||
|
|
399b344779 | ||
|
|
2e06ed14c0 | ||
|
|
b0032bebdb | ||
|
|
a525ec34b0 | ||
|
|
024ec7b727 | ||
|
|
1ff0141e38 | ||
|
|
125db8046b | ||
|
|
720317c829 | ||
|
|
bbe9005a32 | ||
|
|
afa16e80b6 | ||
|
|
37f5c92aa7 | ||
|
|
684b89ae4c | ||
|
|
8c4612c300 | ||
|
|
0afab53659 | ||
|
|
e6e98345fe | ||
|
|
2394e4a75f | ||
|
|
e1c4691325 | ||
|
|
3f84c35014 | ||
|
|
bc0bafa96b | ||
|
|
4e7e66822d | ||
|
|
6f226e6d65 | ||
|
|
a50a035238 | ||
|
|
d560c635f5 | ||
|
|
f8db0c0a05 | ||
|
|
79616022df | ||
|
|
559d294607 | ||
|
|
d2588c5e01 | ||
|
|
ba45a51576 | ||
|
|
8321caaeed | ||
|
|
b35ed7d809 | ||
|
|
a4583d150e | ||
|
|
cadc0a885d | ||
|
|
061eb20ae5 | ||
|
|
9a9799eee7 | ||
|
|
f4615bb76b | ||
|
|
ecc498c359 | ||
|
|
e0e10fa6c8 | ||
|
|
228f09f394 | ||
|
|
19ac19778b | ||
|
|
5e2d517ba2 | ||
|
|
7a4b17983e | ||
|
|
6eba74ccc1 | ||
|
|
27a05b674c | ||
|
|
4a66bbf081 | ||
|
|
109bddb5c3 | ||
|
|
8158a919d8 | ||
|
|
706b91168b | ||
|
|
d047999c5e | ||
|
|
42f361aacd | ||
|
|
3dd076cf25 | ||
|
|
c0d155dd99 | ||
|
|
c433174d71 | ||
|
|
b805b59baf | ||
|
|
9fae0477d8 | ||
|
|
f7ac04dc96 | ||
|
|
d50e661efb | ||
|
|
57b5338af6 | ||
|
|
bd035c8f81 | ||
|
|
ac63d93e1a | ||
|
|
4cff0d0e02 | ||
|
|
ca83983fd2 | ||
|
|
d808f7e79b | ||
|
|
e469350ad9 | ||
|
|
60536b1a93 | ||
|
|
b9e45bd515 | ||
|
|
a0992b8383 | ||
|
|
9315581858 | ||
|
|
9a763303ca | ||
|
|
7df9379f47 | ||
|
|
c32fe50521 | ||
|
|
e4569b26f7 | ||
|
|
48998886fe | ||
|
|
36f97d7909 | ||
|
|
0e3b9c9e47 | ||
|
|
acecff4108 | ||
|
|
3322b954a7 | ||
|
|
4c4b844a4d | ||
|
|
cf4d28eb4f | ||
|
|
555b5386ae | ||
|
|
1903fdc7f2 | ||
|
|
918353461e | ||
|
|
e648a20fd0 | ||
|
|
1d7ea5e129 | ||
|
|
6ce5240dd7 | ||
|
|
692fb248ce | ||
|
|
5a87397ee0 | ||
|
|
99ba09b024 | ||
|
|
3dea091d21 | ||
|
|
ca13317cbd | ||
|
|
f68516d5bb | ||
|
|
8102a0096d | ||
|
|
73cec59bd5 | ||
|
|
96ecf9bf29 | ||
|
|
ef1e371514 | ||
|
|
45d67292a3 | ||
|
|
b5662baad4 | ||
|
|
12c3e5f81f | ||
|
|
dececf24ee | ||
|
|
3fb6dec382 | ||
|
|
cef962c5f1 | ||
|
|
cca2335070 | ||
|
|
ffd0d26ed3 | ||
|
|
9b457ed77b | ||
|
|
f787a9a9a6 | ||
|
|
a0ae104794 | ||
|
|
2b78810457 | ||
|
|
43081c3ac8 | ||
|
|
d3c86b9824 | ||
|
|
9621a91d90 | ||
|
|
0b9c550fd7 | ||
|
|
4ec2af24a3 | ||
|
|
3fee6794f2 | ||
|
|
019e33331b | ||
|
|
8a751a0922 | ||
|
|
450eca8dc5 | ||
|
|
ce0bfbf717 | ||
|
|
bb316bbd30 | ||
|
|
9bdfab3fa2 | ||
|
|
9d446745cc | ||
|
|
d2ab946d17 | ||
|
|
fcc71a56b6 | ||
|
|
60925778c6 | ||
|
|
15233bf100 |
@@ -1,3 +1,25 @@
|
||||
### Checklist
|
||||
- [ ] The title of this issue is "to the point" and descriptive.
|
||||
- [ ] This issue describes what is happening.
|
||||
- [ ] This issue describes what components are affected (e.g. name of plugin/controller)
|
||||
- [ ] This issue describes how to reproduce it.
|
||||
- [ ] This issue describes when it was introduced (when known) and what version is now showing the problem.
|
||||
|
||||
### I have...
|
||||
- [ ] searched the [issue tracker](https://github.com/letscontrolit/ESPEasy/issues) or the [forum](https://www.letscontrolit.com/forum/viewforum.php?f=1) for a similar issue. (include links when applicable)
|
||||
- [ ] entered a system description using "Copy info to clipboard" on the sysinfo page. (when possible)
|
||||
- [ ] entered the full filename of the used version (e.g. `ESP_Easy_mega-20181001_test_ESP8266_4096_VCC.bin` )
|
||||
- [ ] given a list of active plugins or controllers when applicable.
|
||||
- [ ] filled out all applicable fields below.
|
||||
|
||||
### Steps already tried...
|
||||
- [ ] Tried a clean install (empty `.bin` files are included in the ZIP)
|
||||
- [ ] Tested previous/other build (mention which one already tested)
|
||||
- [ ] Tested on other node to make sure hardware isn't defective.
|
||||
- [ ] Verified if the problem is limited to a single plugin/controller
|
||||
|
||||
|
||||
|
||||
### If you self compile, please state this and PLEASE try to ONLY REPORT ISSUES WITH OFFICIAL BUILDS! ###
|
||||
<!--- If you self compile, please state this and PLEASE try to ONLY REPORT ISSUES WITH OFFICIAL BUILDS! --->
|
||||
<!--- NOTE: This is not a support forum! For questions and support go here: --->
|
||||
@@ -5,6 +27,7 @@
|
||||
<!--- Remove topics that are not applicable to your feature request of issue --->
|
||||
<!--- Remember to have a "to the point" TITLE --->
|
||||
|
||||
|
||||
### Summarize of the problem/feature request
|
||||
<!--- Describe the problem or feature request --->
|
||||
YOUR TEXT GOES HERE
|
||||
|
||||
@@ -22,3 +22,5 @@ test/output_export.cpp
|
||||
.vscode/.browse.c_cpp.db*
|
||||
.vscode/c_cpp_properties.json
|
||||
.vscode/launch.json
|
||||
|
||||
docs/build/
|
||||
|
||||
@@ -22,19 +22,18 @@ addons:
|
||||
|
||||
|
||||
install:
|
||||
- pip install -U platformio
|
||||
- pip install -U platformio sphinx recommonmark sphinx_bootstrap_theme
|
||||
|
||||
script:
|
||||
# - cppcheck --enable=warning src/*.ino -q --force -I src --include=src/ESPEasy.ino --error-exitcode=1
|
||||
# - ./memanalyzer.py ~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-objdump
|
||||
- PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run
|
||||
- PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run
|
||||
|
||||
- platformio update
|
||||
# patch platformio core libs for PUYA bug (https://github.com/letscontrolit/ESPEasy/issues/650)
|
||||
- cd patches; ./check_puya_patch; cd ..
|
||||
- PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -s --environment dev_ESP8266PUYA_1024
|
||||
- PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run -s --environment dev_ESP8266PUYA_1024
|
||||
|
||||
# - bash ./preflight.sh # make sure input files are OK before wasting time with prereqs
|
||||
# - cppcheck --enable=warning src/*.ino -q --force -I src --include=src/ESPEasy.ino --error-exitcode=1
|
||||
# - ./memanalyzer.py ~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-objdump
|
||||
- PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run --target clean
|
||||
- PLATFORMIO_BUILD_FLAGS="-D CONTINUOUS_INTEGRATION" platformio run
|
||||
|
||||
before_deploy:
|
||||
- ./before_deploy
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|Latest Nightly | Build Status | Patreon | Ko-Fi | PayPal |
|
||||
|-------|-------|-------|-------|-------|
|
||||
| [](https://github.com/letscontrolit/ESPEasy/releases/latest) | [](https://travis-ci.org/letscontrolit/ESPEasy) | [](https://www.patreon.com/GrovkillenTDer) | [](https://ko-fi.com/grovkillentder) | [](https://www.paypal.me/espeasy) |
|
||||
|Latest Nightly | Build Status | Docs | Patreon | Ko-Fi | PayPal |
|
||||
|-------|-------|-------|-------|-------|-------|
|
||||
| [](https://github.com/letscontrolit/ESPEasy/releases/latest) | [](https://travis-ci.org/letscontrolit/ESPEasy) | [](https://espeasy.readthedocs.io/en/latest/?badge=latest) | [](https://www.patreon.com/GrovkillenTDer) | [](https://ko-fi.com/grovkillentder) | [](https://www.paypal.me/espeasy) |
|
||||
|
||||
For ways to *support* us, see [this announcement on the forum](https://www.letscontrolit.com/forum/viewtopic.php?f=14&t=5787), or have a look at the [Patreon](https://www.patreon.com/GrovkillenTDer), [Ko-Fi](https://ko-fi.com/grovkillentder) or [PayPal](https://www.paypal.me/espeasy) links above.
|
||||
|
||||
@@ -41,4 +41,4 @@ ESPEasy_mega-20180102_dev_ESP8285_1024.bin | ESP8285 with 1Mb flash | Stabl
|
||||
|
||||
Details and discussion are on the Experimental forum: https://www.letscontrolit.com/forum/viewforum.php?f=18
|
||||
|
||||
We're also on IRC: #ESPEasy @freenode
|
||||
Automated builds of the (new) documentation can be found at [ESPEasy.readthedocs.io](https://espeasy.readthedocs.io/en/latest/)
|
||||
|
||||
@@ -1,48 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
VERSION=$(git describe)
|
||||
TMP_DIST=`mktemp -d`
|
||||
CURPATH=`pwd`
|
||||
|
||||
while getopts d: option
|
||||
do
|
||||
case "${option}"
|
||||
in
|
||||
d) VERSION=${OPTARG};;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [ ! -d ${TMP_DIST} ]; then
|
||||
# Could not create temp dir, so exit
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Naming convention:
|
||||
# ESP_Easy_[github version]_[plugin set]_[chip type]_[flash memory].bin
|
||||
|
||||
mkdir -p ${TMP_DIST}
|
||||
cp -r dist/* ${TMP_DIST}/
|
||||
|
||||
if [ -d "docs/build" ]; then
|
||||
# Docs have been created
|
||||
mkdir -p ${TMP_DIST}/docs
|
||||
cp -r docs/build/* ${TMP_DIST}/docs/
|
||||
fi
|
||||
|
||||
|
||||
for ENV in \
|
||||
normal_ESP8266_1024 \
|
||||
normal_ESP8266_4096 \
|
||||
normal_ESP8285_1024 \
|
||||
normal_IR_ESP8266_4096 \
|
||||
test_ESP8266_1024\
|
||||
dev_ESP8266_4096\
|
||||
esp-wrover-kit_test_1M8_partition\
|
||||
esp32dev\
|
||||
esp32test_1M8_partition\
|
||||
hard_SONOFF_POW_4M\
|
||||
hard_core_250_beta_SONOFF_POW_4M\
|
||||
hard_core_250_beta_Shelly_1_2M128\
|
||||
minimal_ESP8266_1024_OTA\
|
||||
minimal_ESP8285_1024_OTA\
|
||||
normal_ESP8266_1024\
|
||||
normal_ESP8266_1024_VCC\
|
||||
normal_ESP8266_4096\
|
||||
normal_ESP8285_1024\
|
||||
normal_IR_ESP8266_4096\
|
||||
normal_WROOM02_2048\
|
||||
normal_core_241_ESP8266_1024\
|
||||
normal_core_241_ESP8266_4096\
|
||||
normal_core_250_beta_ESP8266_1024\
|
||||
normal_core_250_beta_ESP8266_4096\
|
||||
normal_core_250_beta_IR_ESP8266_4096\
|
||||
normal_core_250_beta_WROOM02_2M128\
|
||||
test_ESP8266_4096\
|
||||
test_ESP8266_4096_VCC\
|
||||
test_ESP8285_1024\
|
||||
dev_ESP8266_1024\
|
||||
dev_ESP8266_4096\
|
||||
dev_ESP8285_1024\
|
||||
dev_ESP8266PUYA_1024\
|
||||
dev_ESP8266PUYA_1024_VCC\
|
||||
hard_SONOFF_POW\
|
||||
hard_Shelly_1\
|
||||
esp32dev\
|
||||
esp32test_1M8_partition;\
|
||||
test_core_250_beta_ESP8266_4096\
|
||||
test_core_250_beta_ESP8266_4096_VCC;\
|
||||
do
|
||||
echo
|
||||
echo "### Deploying environment $ENV for version $VERSION"
|
||||
BIN=.pioenvs/${ENV}/ESP_Easy_${VERSION}_${ENV}.bin
|
||||
cp .pioenvs/${ENV}/firmware.bin $BIN
|
||||
python2 crc2.py $BIN
|
||||
mv $BIN "dist/ESP_Easy_${VERSION}_${ENV}.bin"
|
||||
MAX_FILESIZE=1044464
|
||||
if [[ ${ENV} == *"1024"* ]]; then
|
||||
# max 602 kiB
|
||||
MAX_FILESIZE=892912
|
||||
fi
|
||||
if [[ ${ENV} == *"1024_OTA"* ]]; then
|
||||
# max 602 kiB
|
||||
MAX_FILESIZE=616448
|
||||
fi
|
||||
if [[ ${ENV} == *"esp32"* ]]; then
|
||||
MAX_FILESIZE=1310720
|
||||
fi
|
||||
if [[ ${ENV} == *"1M8_partition"* ]]; then
|
||||
MAX_FILESIZE=1900544
|
||||
fi
|
||||
|
||||
FILESIZE=$(stat -c%s .pioenvs/${ENV}/firmware.bin )
|
||||
if (( FILESIZE < MAX_FILESIZE )); then
|
||||
echo
|
||||
echo "### Deploying environment $ENV for version $VERSION"
|
||||
BIN=.pioenvs/${ENV}/ESP_Easy_${VERSION}_${ENV}.bin
|
||||
cp .pioenvs/${ENV}/firmware.bin $BIN
|
||||
python2 crc2.py $BIN
|
||||
mv $BIN "${TMP_DIST}/bin/ESP_Easy_${VERSION}_${ENV}.bin"
|
||||
else
|
||||
echo "Build too large for $ENV $FILESIZE > $MAX_FILESIZE "
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
#create a source structure that is the same as the original ESPEasy project (and works with the howto on the wiki)
|
||||
rm -rf dist/Source 2>/dev/null
|
||||
mkdir dist/Source
|
||||
cp -r lib dist/Source/
|
||||
cp -r src dist/Source/
|
||||
cp platformio.ini dist/Source/
|
||||
#rm -rf dist/Source 2>/dev/null
|
||||
|
||||
cd dist
|
||||
mkdir -p ${TMP_DIST}/source
|
||||
cp -r lib ${TMP_DIST}/source/
|
||||
cp -r src ${TMP_DIST}/source/
|
||||
cp platformio.ini ${TMP_DIST}/source/
|
||||
|
||||
cd ${TMP_DIST}
|
||||
|
||||
echo
|
||||
echo "### Creating zip archive"
|
||||
zip ../ESPEasy_$VERSION.zip -r .
|
||||
zip ${CURPATH}/ESPEasy_$VERSION.zip -r .
|
||||
|
||||
rm -Rf ${TMP_DIST}/* 2>/dev/null
|
||||
rmdir ${TMP_DIST}
|
||||
|
||||
@@ -22,16 +22,13 @@ Build type can be: (differ in included plugins)
|
||||
There is also a number of special builds:
|
||||
- normal_IR => "Normal" + IR receiver/transmitter plugins and library
|
||||
- hard_xxxxx => Special builds for some off-the-shelf hardware.
|
||||
- normal_core_241 => "Normal" using core 2.4.1, since 2.4.2 has issues with PWM
|
||||
- minimal_ESP82xx_1024_OTA => Minimum number of plugins and a limited set of controllers included to be able to perform a 2-step OTA on 1 MB flash nodes.
|
||||
|
||||
Chip can be:
|
||||
- ESP8266 => Most likely option
|
||||
- ESP8285 => Used in some Sonoff modules
|
||||
- ESP32 => Experimental support at this moment
|
||||
- ESP8266PUYA => For ESP modules with a flash chip labeled "PUYA" (often 1 MB)
|
||||
|
||||
The "PUYA" version deserves a bit more attention.
|
||||
If you cannot save settings, better try to see if the flash chip has "PUYA" written on it.
|
||||
If so, try the "PUYA" build.
|
||||
|
||||
MemorySize can be:
|
||||
- 1024 => 1 MB flash modules (e.g. almost all Sonoff modules)
|
||||
@@ -54,8 +51,17 @@ To help recover from a bad flash, there are also blank images included.
|
||||
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.
|
||||
|
||||
Another great flash tool can be found here: (Windows only)
|
||||
https://github.com/Grovkillen/ESP_Easy_Flasher
|
||||
ESP.Easy.Flasher.exe...
|
||||
... is the new flashing tool for ESP Easy. You need to run it in elevated mode (as admin)
|
||||
for it to fetch the COM ports correctly. If you want you may save YOUR settings using the
|
||||
"Save as default settings" button in the lower left corner. If the window is too big or
|
||||
too small you can experiment with the "Pixels Per Inch" variable in the
|
||||
..\Settings\Default.ini file. Setting it to =96 is working for most users but the
|
||||
application will try to find the most optimal value by default. Sometimes it fails to
|
||||
do that. More information about the tool is found here:
|
||||
https://github.com/Grovkillen/ESP_Easy_Flasher
|
||||
You can also have custom serial commands entered in a txt file. One command per line.
|
||||
|
||||
Further reading:
|
||||
For more information, see: https://github.com/letscontrolit/ESPEasy
|
||||
Or our forum: https://www.letscontrolit.com/forum/
|
||||
|
||||
@@ -1,3 +1,880 @@
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181216 (since mega-20181214)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Dec 16 04:00:10 CET 2018
|
||||
|
||||
TD-er (1):
|
||||
[#2162] Restore PlatformIO config for WROOM02 + new 2M128 flash layout
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181214 (since mega-20181208)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Fri Dec 14 04:00:19 CET 2018
|
||||
|
||||
Gijs Noorlander (18):
|
||||
[core 2.5.0-beta1] Test build using platformIO
|
||||
[core 2.5.0-beta1] Allow building against core 2.5.0
|
||||
[Tools] Set executable bits to scripts
|
||||
[build] Add option to give a PR number at command line.
|
||||
[core 2.5.0-beta1] Add core number and disable some 1MB builds
|
||||
Revert "[GPIO] Move all GPIO commands out of Switch plugin"
|
||||
Revert "[GPIO] Move "inputswitchstate" back to Switch plugin"
|
||||
Revert "[GPIO] Add some checks to what GPIO pin can be used."
|
||||
Revert "[GPIO] GPIO commands with long duration will be stopped async."
|
||||
Revert GPIO, prepare for easier merge later GPIO fixes
|
||||
[Rules] Modulo operator '%' only works on int
|
||||
[core 2.5.0-beta1] Clean up PlatformIO.ini & add some 2.5.0 beta builds
|
||||
[core 2.5.0-beta1] Update build names in deploy script
|
||||
Revert "[GPIO] Move all GPIO commands out of Switch plugin"
|
||||
Revert "[GPIO] Move "inputswitchstate" back to Switch plugin"
|
||||
Revert "[GPIO] Add some checks to what GPIO pin can be used."
|
||||
Revert "[GPIO] GPIO commands with long duration will be stopped async."
|
||||
Revert GPIO, prepare for easier merge later GPIO fixes
|
||||
|
||||
Grovkillen (5):
|
||||
[docs] Up to date with the info before the merge fix on 181207
|
||||
[docs] fixed the command reference list (looks better on small screens)
|
||||
[flasher] 0.03.001 new window layout for long file names in dropdown
|
||||
[flasher] 0.03.002 forgot to add pixel per inch settings (defaulted 144)
|
||||
[docs] added hardware Ventus W266 (P046)
|
||||
|
||||
TD-er (2):
|
||||
[GPIO] Track output value in plugin overview
|
||||
[core 2.5.0-beta1] Add core 2.5.0 IR build and normal 1M VCC
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181208 (since mega-20181207)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Dec 8 04:00:13 CET 2018
|
||||
|
||||
Gijs Noorlander (3):
|
||||
[#2144] Only include OTA images that fit (<600 k)
|
||||
[#2144] Extend check for file size of ESP32 images
|
||||
Max OTA filesize on 1MB = 616448 bytes.
|
||||
|
||||
Grovkillen (4):
|
||||
[docs] added commented references to commands list
|
||||
[flasher] 0.03.000 added custom serial commands.
|
||||
Revert "[docs] added commented references to commands list"
|
||||
[docs] added hardware tSense
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181207 (since mega-20181204)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Fri Dec 7 04:00:13 CET 2018
|
||||
|
||||
Gijs Noorlander (5):
|
||||
[GPIO] Move all GPIO commands out of Switch plugin
|
||||
[GPIO] Move "inputswitchstate" back to Switch plugin
|
||||
[GPIO] Add GPIO pin description page
|
||||
[GPIO] Add some checks to what GPIO pin can be used.
|
||||
[GPIO] GPIO commands with long duration will be stopped async.
|
||||
|
||||
Grovkillen (6):
|
||||
[docs] added phantomJS script to streamline the screenshots
|
||||
[docs] updated headlines (css) + added P001 hardware
|
||||
[docs] syntax error fixed.
|
||||
[docs] P052 sensair S8 hardware page updated
|
||||
[docs] Test if arrows (unicode) work with RTD
|
||||
[docs] fixed "ESP Easy" logo margin bug
|
||||
|
||||
chunter1 (1):
|
||||
HX711 load cell plugin now supports dual channel support
|
||||
|
||||
wdonker (1):
|
||||
Update _C002.ino
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181204 (since mega-20181203)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Dec 4 04:00:08 CET 2018
|
||||
|
||||
Grovkillen (1):
|
||||
[docs] Added P001 (hardware)
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181203 (since mega-20181201)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Dec 3 04:00:11 CET 2018
|
||||
|
||||
Gijs Noorlander (13):
|
||||
[Rules engine] Set UseOldRulesEngine as default
|
||||
[Stack] Reduce allocations on stack
|
||||
[Stack] Make IP-address formatting simpler
|
||||
[Stack] Optimize GetArgv to only allocate what is needed.
|
||||
[Stack] P035_IRTX reduction of memory usage & speed improvement
|
||||
[Uncrustify] Make rules source code files better readable
|
||||
[Memory] Pass String as reference or const reference, not deepcopy
|
||||
[Rules] GetArgv should clear the return string before filling it
|
||||
[ESP32] Disable RTOS Multitasking option (multi_heap_poisoning)
|
||||
[PWM] #2117 PWM stops after about 80 msec in core 2.4.1
|
||||
[webserver CORS] #2119 Allow commands to be scripted
|
||||
[HLW8012] Update library to 1.1.1
|
||||
[HLW8012] Make reading Sonoff POW non blocking ( #2097 )
|
||||
|
||||
Saverio Cisternino (7):
|
||||
Moved the rules related functions from Misc.ino to ESPEasyRules.ino
|
||||
implement matching of rule file
|
||||
Added addButton, addFormTextBox overload and addSaveButton, AddDeleteButton functions
|
||||
Redefine Rules WebUi
|
||||
Change menu url from relative to absolute
|
||||
Fixed ESP32 build
|
||||
Adding flag to settings for switch from old to new rules engine (Default engine old).
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181201 (since mega-20181130)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Dec 1 04:00:09 CET 2018
|
||||
|
||||
Gijs Noorlander (2):
|
||||
[Docs] Update to Sphinx 1.8.2
|
||||
[#1970] Fix: HTTP Header broken in 'Generic HTTP Advanced' controller
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181130 (since mega-20181129)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Fri Nov 30 04:00:11 CET 2018
|
||||
|
||||
Gijs Noorlander (4):
|
||||
[Readme] Add badge for ReadTheDocs build status
|
||||
[Docs] Document ESPeasy p2p controller
|
||||
[Docs] Move Sphinx substitutions to separate file to speed-up build
|
||||
[Docs] Split Sphinx plugin substitutions to speed-up build
|
||||
|
||||
Plebs (12):
|
||||
new data structures
|
||||
added monitor support
|
||||
Added SafeButton feature
|
||||
fixing Safebutton
|
||||
added P019 PCF support
|
||||
Fixed write function in PCF8574
|
||||
Added support for P011, P022, P059, P063
|
||||
Update _P009_MCP.ino
|
||||
fixed pcf8574 to avoid #702
|
||||
bugfixing
|
||||
more bugfixing
|
||||
final cleanup
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181129 (since mega-20181128)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Nov 29 04:00:15 CET 2018
|
||||
|
||||
Grovkillen (1):
|
||||
[docs] Small update, fixed some typos
|
||||
|
||||
Saverio Cisternino (3):
|
||||
[Embed Files] Add exit code 1 when minify failed
|
||||
[Embed Files] Append zero termination
|
||||
[Embed Files] Avoid redirect http to https of minify_html_css
|
||||
|
||||
clumsy-stefan (1):
|
||||
Allow for duplicate task names again
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181128 (since mega-20181127)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Wed Nov 28 04:00:07 CET 2018
|
||||
|
||||
Gijs Noorlander (7):
|
||||
[Serial] Redirect all Serial.print/println to a buffer
|
||||
[Serial] Replace serial port activity marker with unprintable marker
|
||||
[Serial] Forgot the Serial.printf
|
||||
[Commands] No longer run commands from scheduler
|
||||
[Serial] Remove code to detect if serial port is read
|
||||
[Sonoff POW] Merge POW r1/r2 in the same build
|
||||
[MQTT] change client-id at reconnect - #1918
|
||||
|
||||
Grovkillen (2):
|
||||
[flasher] Warning if baud rate too high + info post-flash
|
||||
[docs] Added servo motor and plugin sections
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181127 (since mega-20181125)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Nov 27 04:00:10 CET 2018
|
||||
|
||||
Gijs Noorlander (3):
|
||||
[PlatformIO] Change to LWIP2_LOW_MEMORY
|
||||
[PlatformIO] Lower upload_speed to 115200
|
||||
[Travis] make clean + build only once
|
||||
|
||||
Grovkillen (3):
|
||||
[docs] Added GPIO handling pages (tones, relay etc.)
|
||||
[docs] command list updated with internal commands
|
||||
[docs] Fix relative path for command list
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181125 (since mega-20181124)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Nov 25 04:00:07 CET 2018
|
||||
|
||||
Gijs Noorlander (3):
|
||||
LCD P012_LCD Plugin German Umlaute #2081
|
||||
P012_LCD Remove duplicate lines
|
||||
Add -mtarget-align to common build_flags
|
||||
|
||||
Unknown (8):
|
||||
[HTML Footer] Change to "Powered by LetsControlIt community"
|
||||
[Factory Reset] Add initial structure to set defaults for a device model
|
||||
[Factory Reset] Add Factory reset page and allow to keep some settings
|
||||
[Factory Reset] Add more categories not to clear
|
||||
[Factory Reset] Show page again after saving.
|
||||
[Sysinfo] Add init to P026_sysinfo to set initial config only 1 active.
|
||||
[Factory Reset] Add some documentation
|
||||
[Documentation] Add link to RTD for plugins
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181124 (since mega-20181123)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Nov 24 04:00:07 CET 2018
|
||||
|
||||
Grovkillen (5):
|
||||
[docs] fixed the TOC + added changelogs to all plugins + core
|
||||
[docs] Added plugin names to plugin pages + fixed "site map"
|
||||
[docs] Added donation links in footer
|
||||
[docs] Added hardware pages
|
||||
[docs] Fixed some syntax error
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181123 (since mega-20181122)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Fri Nov 23 04:00:08 CET 2018
|
||||
|
||||
Grovkillen (3):
|
||||
[docs] Fixed error in image path
|
||||
[docs] Global variables for plugins + added raw plugin files
|
||||
[docs] added all plugins to global + generated generic pages for them
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181122 (since mega-20181121)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Nov 22 04:00:12 CET 2018
|
||||
|
||||
Grovkillen (2):
|
||||
[docs] Plugins (added real name)
|
||||
[docs] added a first device page
|
||||
|
||||
TD-er (2):
|
||||
[P073_7DGT] Removed old (duplicate) content
|
||||
[P073_7DGT] Fix uninitialized p073_dispdigit
|
||||
|
||||
papperone (2):
|
||||
Update _P073_7DGT.ino
|
||||
Update _P073_7DGT.ino
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181121 (since mega-20181120)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Wed Nov 21 04:00:13 CET 2018
|
||||
|
||||
Unknown (2):
|
||||
[SSDP] Disable SSDP checkbox
|
||||
[HTML] Made HTML layout more uniform and optimize CSS
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181120 (since mega-20181117)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Nov 20 04:00:07 CET 2018
|
||||
|
||||
Gijs Noorlander (1):
|
||||
Update build_ESPeasy.sh
|
||||
|
||||
Unknown (6):
|
||||
[issue 2063] Incorrect saving settings on LCD2004
|
||||
[OLED framed] Do not keep display lines allocated on stack
|
||||
[P075 Nextion] Do not keep display lines allocated on stack
|
||||
[Timing stats] Add LoadCustomTaskSettings() to the timing stats
|
||||
[Build scripts] Add build script for Linux and include docs
|
||||
[Build] Add test_ESP8266_1024_VCC to deploy script
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181117 (since mega-20181112)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Nov 17 04:00:10 CET 2018
|
||||
|
||||
Gijs Noorlander (2):
|
||||
Update Sphinx to 1.8.1
|
||||
[PlatformIO] Use 2.4.2 platform for Sonoff builds
|
||||
|
||||
Grovkillen (11):
|
||||
[docs] Rules converted from wiki
|
||||
[docs] History converted to rst
|
||||
[docs] Spelling + syntax fix
|
||||
[docs] More spelling
|
||||
[docs] Rules, fixed compile error
|
||||
[docs] About us, month as XX
|
||||
[docs] Plugins list
|
||||
[docs] Plugin list + update to config.py + some CSS
|
||||
[docs] Removed some test code
|
||||
[fix] reverted test code
|
||||
[docs] Inverted icon for easy to navigate browser tabs
|
||||
|
||||
Stephen Houser (4):
|
||||
initial 12/24 hour config
|
||||
Add 12/24 hour time to clock
|
||||
Remove update every second
|
||||
add comments for new clock functions
|
||||
|
||||
TD-er (4):
|
||||
[1024 VCC] Add test_ESP8266_1024_VCC
|
||||
[Input check] Add check when copying input texts
|
||||
[Statistics] Add timing statistics on connect and DNS lookup
|
||||
[Travis] ESP32 does not support timeout on DNS lookups
|
||||
|
||||
jimmys01 (7):
|
||||
Ir Remote lib enchantments
|
||||
Make max IR command to be 200 chars long
|
||||
extra dot fix
|
||||
Put a PLUGIN_EXIT in place
|
||||
syntax fix
|
||||
Add appropriate check to irReceiver before disabling it
|
||||
further improvments
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181112 (since mega-20181111)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Nov 12 04:00:07 CET 2018
|
||||
|
||||
Bartlomiej Zimon (1):
|
||||
Eastron fix for model selection issue #1684
|
||||
|
||||
TD-er (6):
|
||||
[Cleanup] Uniform labels for GPIO pins (existing labels)
|
||||
[Cleanup] Uniform labels for GPIO pins
|
||||
[Cleanup] Change label for P035_IRTX
|
||||
[SPIFFS] perform delay during save per page break
|
||||
Improve comments
|
||||
[WiFi] Make sure unhandled WiFi events will be processed
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181111 (since mega-20181110)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Nov 11 04:00:06 CET 2018
|
||||
|
||||
Bartlomiej Zimon (2):
|
||||
Webserver /control proper Content type it sets printToWebJSON during PLUGIN_WRITE/SendStatus fix for #2018
|
||||
Webserver optimize /control early handled commands
|
||||
|
||||
TD-er (1):
|
||||
[JavaScript] Append zero termination to embedded progmem data
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181110 (since mega-20181109)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Nov 10 04:00:08 CET 2018
|
||||
|
||||
Bartlomiej Zimon (4):
|
||||
HTTP responses have duplicate Content-Types fix for #2018
|
||||
remove double strings for contenttype
|
||||
remove old duplication
|
||||
properly send content-type header fix for #2022
|
||||
|
||||
TD-er (2):
|
||||
[ESP32] Upgrade core lib to espressif32@1.5.0
|
||||
[WiFi] Improve disconnect detection and run delay(1) when not connected
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181109 (since mega-20181108)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Fri Nov 9 04:00:10 CET 2018
|
||||
|
||||
Bartlomiej Zimon (1):
|
||||
add p078_dev_id to form save
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181108 (since mega-20181107)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Nov 8 04:00:09 CET 2018
|
||||
|
||||
Bartlomiej Zimon (2):
|
||||
Add optional DE PIN configuration Add gpio names to form fix for #1684
|
||||
Sysinfo update to 4 values
|
||||
|
||||
Plebs (4):
|
||||
bug fixes
|
||||
cleaned if from addLog as per uzi18 comment
|
||||
final cleanup
|
||||
BUG fix
|
||||
|
||||
TD-er (6):
|
||||
[PUYA] Apply generic patch on all builds checking for PUYA flash
|
||||
[Travis] Update platformIO packages before build
|
||||
[PUYA] Add PUYA patch v3 to check if patch is applied
|
||||
[PUYA] Fix patch v3 for PUYA support
|
||||
[PUYA] share static flash_chip_id among functions
|
||||
[PUYA] Fix typo in patch
|
||||
|
||||
stefan (2):
|
||||
Amend nosleep command to accept awake time
|
||||
Add System#NoSleep=<time> event
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181107 (since mega-20181106)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Wed Nov 7 04:00:08 CET 2018
|
||||
|
||||
TD-er (14):
|
||||
[Cleanup] Reduce build image size by 2k by wrapping flash strings
|
||||
[Cleanup] Reduce length HTML form data IDs to reduce sketch size
|
||||
[Cleanup] Minify JavaScript and CSS to reduce sketch size
|
||||
[1MB OTA] Add small build to allow for 1MB OTA
|
||||
[Cleanup] Make single definition for pin description
|
||||
[OTA] Add ESP8285 1M OTA minimal build
|
||||
[Cleanup] Strip HTML templates into sections to remove duplicate strings
|
||||
[Cleanup] Increase load speed and lower memory usage rendering web page
|
||||
[Cleanup] Do not use F-macro for short strings
|
||||
[timing stats] Add http://<ip>/stat/timing/json to view timing stats
|
||||
[timingstats] Implement HTML table of timing stats
|
||||
[timingstats] Disable timing stats in log
|
||||
[timingstats] Improve table layout of timing stats
|
||||
[timingstats] Show stats in msec instead of usec.
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181106 (since mega-20181105)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Nov 6 04:00:10 CET 2018
|
||||
|
||||
Grovkillen (1):
|
||||
[Flasher] fixed ip bug fixed
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181105 (since mega-20181101)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Nov 5 04:00:10 CET 2018
|
||||
|
||||
Bartlomiej Zimon (2):
|
||||
fix for #1986
|
||||
Eastron - save modbus id and enable SDM630 model partial fix for #1684
|
||||
|
||||
Grovkillen (1):
|
||||
[Memanalyzer] cmd args are back (un-commented)
|
||||
|
||||
Jimmy Westberg (2):
|
||||
Revert "[Flasher] updated flasher (some minor error)"
|
||||
[Memanalyzer] try to fix the memanalyzer not analyzing all plugins
|
||||
|
||||
kpalczewski (1):
|
||||
bump lib IRremoteESP8266 to 2.5.2 and add send Pioneer support for 035 IR plugin.
|
||||
|
||||
stefan (2):
|
||||
Add sent/return value check to client.print()
|
||||
Add comment why we check for %256
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181101 (since mega-20181031)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Nov 1 04:00:08 CET 2018
|
||||
|
||||
Bartłomiej Zimoń (1):
|
||||
BlynkGet add timeout 1,5s.
|
||||
|
||||
Grovkillen (4):
|
||||
[README] added more info about ESP.Easy.Flasher
|
||||
[README] fixed some \r\n
|
||||
[Deploy] "source" folder was named "Source"
|
||||
[README] removed IRC link... we're not there.
|
||||
|
||||
Jimmy Westberg (1):
|
||||
[Flasher] updated flasher (some minor error)
|
||||
|
||||
Plebs (2):
|
||||
Update src/Misc.ino
|
||||
Update src/Misc.ino
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181031 (since mega-20181030)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Wed Oct 31 04:00:10 CET 2018
|
||||
|
||||
Bartłomiej Zimoń (1):
|
||||
BlynkGet fix loop #1951
|
||||
|
||||
Jimmy Westberg (7):
|
||||
[Flasher] Added ESP.Easy.Flasher.exe
|
||||
[Deploy] Added sub folder for BIN files
|
||||
[Flasher] Updated to 0.02.001
|
||||
[Deploy] small letters are the standard
|
||||
[Flasher] Updated to 0.02.002
|
||||
[Path] folder rename 1
|
||||
[Path] folder rename 2
|
||||
|
||||
TD-er (1):
|
||||
[OTA] Add OTA info and disable when not enough space
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181030 (since mega-20181029)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Oct 30 04:00:07 CET 2018
|
||||
|
||||
James Tutton (2):
|
||||
Added Special Case to allow Servo to be disabled
|
||||
Fixed missing ;
|
||||
|
||||
TD-er (1):
|
||||
[Core 2.4.2] Set core 2.4.2 as default platform
|
||||
|
||||
svmac (1):
|
||||
P022_PCA9685 Enhancements
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181029 (since mega-20181028)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Oct 29 04:00:08 CET 2018
|
||||
|
||||
Bartlomiej Zimon (2):
|
||||
Dallas: add ScratchPad to debug log - OK suffix means data integrity ok (no communication problems)
|
||||
Dallas: use reset timming from OneWire lib
|
||||
|
||||
TD-er (2):
|
||||
[NTP] Improve NTP accuracy
|
||||
[NTP] Change log level for NTP success to INFO
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181028 (since mega-20181027)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Oct 28 04:00:09 CET 2018
|
||||
|
||||
Saverio Cisternino (5):
|
||||
[CRON] Replace timeStruct with standard tm
|
||||
[CRON] Plugin
|
||||
[CRON] Add event PLUGIN_TIME_CHANGE
|
||||
[CRON] Intercept event PLUGIN_TIME_CHANGE
|
||||
[CRON] Fixed Daily flash write rate exceeded!
|
||||
|
||||
TD-er (2):
|
||||
[Cron] Rename plugin name to match naming convention
|
||||
[Eastron] Make configurable and allow for multiple values read (#1684)
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181027 (since mega-20181026)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Oct 27 04:00:12 CEST 2018
|
||||
|
||||
Bartlomiej Zimon (1):
|
||||
CSE7766 - fix stats plus add buffer fill level
|
||||
|
||||
Gilad (7):
|
||||
Add IR RAW2 Reading / Transmitting.
|
||||
Add IR RAW2 Reading / Transmitting.
|
||||
Add IR RAW2 Reading / Transmitting - fixed ambiguity.
|
||||
Add IR RAW2 Reading / Transmitting - added a safety check.
|
||||
Improved IR RAW2 format to support RLE.
|
||||
Fixed warnings...
|
||||
Fixed warnings...
|
||||
|
||||
Gilad Raz (1):
|
||||
Increased buffer size. Added constants.
|
||||
|
||||
Plebs (4):
|
||||
doubleclick and longpress for PCF and MCP
|
||||
fixed a display bug
|
||||
final fixes
|
||||
fixed as requested
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181026 (since mega-20181025)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Fri Oct 26 04:00:22 CEST 2018
|
||||
|
||||
Bartlomiej Zimon (7):
|
||||
CSE7766 uses 8E1 serial connection
|
||||
Ser2Net catch serial data only if plugin used
|
||||
CSE7766 add online checksumming, autosyncing without data loos
|
||||
move to PLUGIN_TEN_PER_SECOND update comments
|
||||
move to PLUGIN_SERIAL_IN from PLUGIN_TEN_PER_SECOND - serial commandline uses our data
|
||||
optimization - remove double checksum check
|
||||
CSE7766 - add some stats to debug log
|
||||
|
||||
Saverio Cisternino (1):
|
||||
Fixed plugin timer processing do not start, when call setPluginTaskTimer in PLUGIN_TIMER_IN
|
||||
|
||||
TD-er (1):
|
||||
[C009] Reduce memory usage for C009 controller.
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181025 (since mega-20181023)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Oct 25 04:00:13 CEST 2018
|
||||
|
||||
Saverio Cisternino (1):
|
||||
Added auto redirect to home after run reboot command from web page.
|
||||
|
||||
TD-er (5):
|
||||
[WDT] Change yield() to delay(0)
|
||||
[Build] Add Sonoff POW R2 (4MB)
|
||||
[Sonoff] Add pre-defined switch and relay + rules on factory reset
|
||||
[Info] Remove MD5 check fail on self-built images
|
||||
[Travis] Use variables even when no predefined plugins are added.
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181023 (since mega-20181022)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Oct 23 04:00:14 CEST 2018
|
||||
|
||||
Kurairaito (2):
|
||||
Update _P067_HX711_Load_Cell.ino
|
||||
Update _P067_HX711_Load_Cell.ino
|
||||
|
||||
TD-er (6):
|
||||
[#1486] Allow multiple instances of rotary encoder
|
||||
[JavaScript] Fix update values on Devices tab
|
||||
[JavaScript] Cleanup some code duplication
|
||||
[PubSubClient] Add delay when waiting for data and flush on disconnect
|
||||
[WiFi timeout] Set default to 1000 msec again
|
||||
[Docs] Add some WiFi related information to docs
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181022 (since mega-20181021)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Oct 22 04:00:15 CEST 2018
|
||||
|
||||
TD-er (2):
|
||||
[Webserver] Generate copyText id names
|
||||
[Webserver] Uniform row labels to reduce flash string size
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181021 (since mega-20181020)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Oct 21 04:00:16 CEST 2018
|
||||
|
||||
Bartlomiej Zimon (2):
|
||||
fix for #1920 fix for out of sync, check both header bytes proper check for abnormal state
|
||||
Revert "fix for #1920"
|
||||
|
||||
TD-er (6):
|
||||
[stack usage] Allocate temp char array on heap for parsing arguments
|
||||
Proper look for connection.
|
||||
[Rules] Early exit on rules processing when rules not enabled
|
||||
[#1910] Notification settings extra strings on stack
|
||||
[#1891] Send all values for Generic UDP controller
|
||||
[#1870] Feature request build date as system info
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181020 (since mega-20181017)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sat Oct 20 04:00:16 CEST 2018
|
||||
|
||||
Plebs (22):
|
||||
Added [plugin#pcfgpio#pinstate#xx]
|
||||
added [plugin#mcpgpio#pinstate#xx]
|
||||
code optimization
|
||||
some code optimizations
|
||||
Update src/_P001_Switch.ino
|
||||
Update src/_P001_Switch.ino
|
||||
small fixes
|
||||
few changes
|
||||
Update src/_P001_Switch.ino
|
||||
Update src/_P001_Switch.ino
|
||||
some fixes
|
||||
added global variables for rules
|
||||
some fixes
|
||||
fixes
|
||||
fixed length check
|
||||
some optimizations
|
||||
modified command and variable name
|
||||
Update src/_P001_Switch.ino
|
||||
Update src/_P001_Switch.ino
|
||||
optimizations
|
||||
Update src/StringConverter.ino
|
||||
added 4 variables to verify the system status
|
||||
|
||||
kpalczewski (1):
|
||||
add support for 64bit IR codes.
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181017 (since mega-20181016)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Wed Oct 17 04:00:18 CEST 2018
|
||||
|
||||
Gijs Noorlander (1):
|
||||
Added checklist to the Issue_template
|
||||
|
||||
TD-er (3):
|
||||
[#1906] Allocate NotificationSettings on the heap
|
||||
[#1906] Allocate ControllerSettings on the heap
|
||||
[Stack] Add Free Stack to System Info plugin
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181016 (since mega-20181015)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Oct 16 04:00:06 CEST 2018
|
||||
|
||||
Plebs (1):
|
||||
Fix for togglegpio without gpio initialization
|
||||
|
||||
TD-er (1):
|
||||
[Revert] Safe_strncpy cannot be used as generic strncpy replacement
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181015 (since mega-20181014)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Oct 15 04:00:10 CEST 2018
|
||||
|
||||
Plebs (2):
|
||||
fix for bug #1864
|
||||
Update src/_P023_OLED.ino
|
||||
|
||||
TD-er (1):
|
||||
[safe strncpy] Add warning when entered string is too large
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181014 (since mega-20181011)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Oct 14 04:00:13 CEST 2018
|
||||
|
||||
Gijs Noorlander (1):
|
||||
[#1799] Add SSID to main page
|
||||
|
||||
TD-er (5):
|
||||
[#1891] Generic UPD controller - send only first value from sensor
|
||||
[Controller] Fix send only first value
|
||||
Time#Initialized event in rules before %syshour% is set
|
||||
[UX] Warn user for incomplete network IP settings
|
||||
[#1895] Incorrect number bytes read I2C_read32_reg
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181011 (since mega-20181010)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Thu Oct 11 04:00:24 CEST 2018
|
||||
|
||||
TD-er (5):
|
||||
[C009] Reduce memory usage of FHEM HTTP delay queue
|
||||
[Controller] Set default timeout to 300 msec (was 100 msec)
|
||||
Make sure to load ExtraTaskSettings when needed
|
||||
[Travis Doc] Remove building documentation by Travis
|
||||
[WebLog] Disable weblog when it is not being read
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181010 (since mega-20181009)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Wed Oct 10 04:00:09 CEST 2018
|
||||
|
||||
Plebs (1):
|
||||
Update src/_P019_PCF8574.ino
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181009 (since mega-20181008)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Tue Oct 9 04:00:18 CEST 2018
|
||||
|
||||
TD-er (7):
|
||||
[Docs] Add favicon to documentation
|
||||
[Docs] Add Travis check for documentation and stop build for docs only
|
||||
[Docs] Run Travic documentation check before compiling project
|
||||
[Docs] Disable travis_terminate for now
|
||||
[JSON] Replace \n and \r in text fields
|
||||
[LWIP1.4] Move back to LWIP1.4
|
||||
[StringConverter] Some optimisations to reduce memory allocation
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181008 (since mega-20181007)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Mon Oct 8 04:00:09 CEST 2018
|
||||
|
||||
Gijs Noorlander (1):
|
||||
Added link to ReadTheDocs
|
||||
|
||||
Grovkillen (1):
|
||||
[Sphinx] added extension "sphinx.ext.imgconverter"
|
||||
|
||||
TD-er (3):
|
||||
[Sphinx] Initial setup for Sphinx documentation
|
||||
[Docs] First ESPEasy documentation (Controllers)
|
||||
[Docs] Added some directory structure and template
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20181007 (since mega-20181006)
|
||||
-------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Minimal makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
SOURCEDIR = source
|
||||
BUILDDIR = build
|
||||
|
||||
# Put it first so that "make" without argument is like "make help".
|
||||
help:
|
||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
.PHONY: help Makefile
|
||||
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
@@ -0,0 +1,35 @@
|
||||
@ECHO OFF
|
||||
|
||||
pushd %~dp0
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set SOURCEDIR=source
|
||||
set BUILDDIR=build
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
%SPHINXBUILD% >NUL 2>NUL
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
|
||||
goto end
|
||||
|
||||
:help
|
||||
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
|
||||
|
||||
:end
|
||||
popd
|
||||
@@ -0,0 +1,3 @@
|
||||
recommonmark==0.4.0
|
||||
Sphinx==1.8.2
|
||||
sphinx-bootstrap-theme==0.6.5
|
||||
@@ -0,0 +1,22 @@
|
||||
These scripts are used to render screenshots of the GUI.
|
||||
We use phantomJS (available on Win/Mac/Linux http://phantomjs.org/quick-start.html)
|
||||
and you control the script by passing arguments to the JavaScript files:
|
||||
|
||||
########## rasterize.js ##########
|
||||
argument1: url (ampersand & need to be closed with "&")
|
||||
argument2: output file name (you can use .png or .pdf as output format)
|
||||
argument3: horisontalXvertical size (OPTIONAL)
|
||||
argument4: zoom ("entire page" or "window" or <value> OPTIONAL)
|
||||
....Example CLI....
|
||||
|
||||
phantomjs rasterize.js http://95.143.204.227/devices?index=1"&"page=1 P001_Setup_Switch_1.png
|
||||
|
||||
or
|
||||
|
||||
phantomjs rasterize.js http://95.143.204.227/devices?index=1"&"page=1 P001_Setup_Switch_1.png 1200px 2
|
||||
|
||||
WE USE THE SECOND EXAMPLE by default (you might need to change zoomFactor if the page is too big).
|
||||
|
||||
If the rendering is not working you can use this CLI (arg --debug=true):
|
||||
|
||||
phantomjs --debug=true rasterize.js http://95.143.204.227/devices?index=1"&"page=1 P001_Setup_Switch_1.png 1200px 2
|
||||
@@ -0,0 +1,52 @@
|
||||
//removed use strict GROVKILLEN
|
||||
var page = require('webpage').create(),
|
||||
system = require('system'),
|
||||
address, output, size;
|
||||
|
||||
if (system.args.length < 3 || system.args.length > 5) {
|
||||
console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
|
||||
console.log(' image (png/jpg output) examples: "1920px" entire page, window width 1920px');
|
||||
console.log(' "800px*600px" window, clipped to 800x600');
|
||||
phantom.exit(1);
|
||||
} else {
|
||||
address = system.args[1];
|
||||
output = system.args[2];
|
||||
page.viewportSize = { width: 600, height: 600 };
|
||||
if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
|
||||
size = system.args[3].split('*');
|
||||
page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
|
||||
: { format: system.args[3], orientation: 'portrait', margin: '1cm' };
|
||||
} else if (system.args.length > 3 && system.args[3].substr(-2) === "px") {
|
||||
size = system.args[3].split('*');
|
||||
if (size.length === 2) {
|
||||
pageWidth = parseInt(size[0], 10);
|
||||
pageHeight = parseInt(size[1], 10);
|
||||
page.viewportSize = { width: pageWidth, height: pageHeight };
|
||||
page.clipRect = { top: 0, left: 0, width: pageWidth, height: pageHeight };
|
||||
} else {
|
||||
console.log("size:", system.args[3]);
|
||||
pageWidth = parseInt(system.args[3], 10);
|
||||
pageHeight = parseInt(pageWidth * 3/4, 10); // it's as good an assumption as any
|
||||
console.log ("pageHeight:",pageHeight);
|
||||
page.viewportSize = { width: pageWidth, height: pageHeight };
|
||||
}
|
||||
}
|
||||
if (system.args.length > 4) {
|
||||
page.zoomFactor = system.args[4];
|
||||
}
|
||||
page.open(address, function (status) {
|
||||
if (status !== 'success') {
|
||||
console.log('Unable to load the address!');
|
||||
phantom.exit(1);
|
||||
} else {
|
||||
window.setTimeout(function () {
|
||||
//This is injected because of bug in phantomjs (rendering black background: http://phantomjs.org/tips-and-tricks.html) GROVKILLEN
|
||||
page.evaluate(function() {
|
||||
document.body.bgColor = 'white';
|
||||
});
|
||||
page.render(output);
|
||||
phantom.exit();
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C001_page:
|
||||
|
||||
|C001_typename|
|
||||
==================================================
|
||||
|
||||
|C001_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C001_type|
|
||||
|
||||
Name: |C001_name|
|
||||
|
||||
Status: |C001_status|
|
||||
|
||||
GitHub: |C001_github|_
|
||||
|
||||
Maintainer: |C001_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C002_page:
|
||||
|
||||
|C002_typename|
|
||||
==================================================
|
||||
|
||||
|C002_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C002_type|
|
||||
|
||||
Name: |C002_name|
|
||||
|
||||
Status: |C002_status|
|
||||
|
||||
GitHub: |C002_github|_
|
||||
|
||||
Maintainer: |C002_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C003_page:
|
||||
|
||||
|C003_typename|
|
||||
==================================================
|
||||
|
||||
|C003_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C003_type|
|
||||
|
||||
Name: |C003_name|
|
||||
|
||||
Status: |C003_status|
|
||||
|
||||
GitHub: |C003_github|_
|
||||
|
||||
Maintainer: |C003_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C004_page:
|
||||
|
||||
|C004_typename|
|
||||
==================================================
|
||||
|
||||
|C004_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C004_type|
|
||||
|
||||
Name: |C004_name|
|
||||
|
||||
Status: |C004_status|
|
||||
|
||||
GitHub: |C004_github|_
|
||||
|
||||
Maintainer: |C004_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C005_page:
|
||||
|
||||
|C005_typename|
|
||||
==================================================
|
||||
|
||||
|C005_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C005_type|
|
||||
|
||||
Name: |C005_name|
|
||||
|
||||
Status: |C005_status|
|
||||
|
||||
GitHub: |C005_github|_
|
||||
|
||||
Maintainer: |C005_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C006_page:
|
||||
|
||||
|C006_typename|
|
||||
==================================================
|
||||
|
||||
|C006_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C006_type|
|
||||
|
||||
Name: |C006_name|
|
||||
|
||||
Status: |C006_status|
|
||||
|
||||
GitHub: |C006_github|_
|
||||
|
||||
Maintainer: |C006_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C007_page:
|
||||
|
||||
|C007_typename|
|
||||
==================================================
|
||||
|
||||
|C007_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C007_type|
|
||||
|
||||
Name: |C007_name|
|
||||
|
||||
Status: |C007_status|
|
||||
|
||||
GitHub: |C007_github|_
|
||||
|
||||
Maintainer: |C007_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C008_page:
|
||||
|
||||
|C008_typename|
|
||||
==================================================
|
||||
|
||||
|C008_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C008_type|
|
||||
|
||||
Name: |C008_name|
|
||||
|
||||
Status: |C008_status|
|
||||
|
||||
GitHub: |C008_github|_
|
||||
|
||||
Maintainer: |C008_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C009_page:
|
||||
|
||||
|C009_typename|
|
||||
==================================================
|
||||
|
||||
|C009_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C009_type|
|
||||
|
||||
Name: |C009_name|
|
||||
|
||||
Status: |C009_status|
|
||||
|
||||
GitHub: |C009_github|_
|
||||
|
||||
Maintainer: |C009_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C010_page:
|
||||
|
||||
|C010_typename|
|
||||
==================================================
|
||||
|
||||
|C010_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C010_type|
|
||||
|
||||
Name: |C010_name|
|
||||
|
||||
Status: |C010_status|
|
||||
|
||||
GitHub: |C010_github|_
|
||||
|
||||
Maintainer: |C010_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C011_page:
|
||||
|
||||
|C011_typename|
|
||||
==================================================
|
||||
|
||||
|C011_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C011_type|
|
||||
|
||||
Name: |C011_name|
|
||||
|
||||
Status: |C011_status|
|
||||
|
||||
GitHub: |C011_github|_
|
||||
|
||||
Maintainer: |C011_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C012_page:
|
||||
|
||||
|C012_typename|
|
||||
==================================================
|
||||
|
||||
|C012_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C012_type|
|
||||
|
||||
Name: |C012_name|
|
||||
|
||||
Status: |C012_status|
|
||||
|
||||
GitHub: |C012_github|_
|
||||
|
||||
Maintainer: |C012_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
@@ -0,0 +1,263 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
.. _C013_page:
|
||||
|
||||
|C013_typename|
|
||||
==================================================
|
||||
|
||||
|C013_shortinfo|
|
||||
|
||||
Controller details
|
||||
------------------
|
||||
|
||||
Type: |C013_type|
|
||||
|
||||
Name: |C013_name|
|
||||
|
||||
Status: |C013_status|
|
||||
|
||||
GitHub: |C013_github|_
|
||||
|
||||
Maintainer: |C013_maintainer|
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|improved|
|
||||
Implementation of secure communication and check for valid data.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
ESPEasy is able to communicate between nodes itself.
|
||||
It is an IANA registered service: `espeasy-p2p <https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8266#ESPeasy>`_
|
||||
|
||||
* Service Name: espeasy-p2p
|
||||
* Port Number: 8266
|
||||
* Transport Protocol: UDP
|
||||
* Description: ESPeasy peer-2-peer communication
|
||||
* Registration date: 2018-11-28
|
||||
|
||||
This protocol is targeted specific for use by ESPeasy to let ESPeasy nodes
|
||||
communicate with each other to create a big swarm of nodes working together
|
||||
without the need for a hosted service like MQTT, which needs a central broker.
|
||||
|
||||
It is currently used for:
|
||||
|
||||
* Discovery of nodes
|
||||
* Sharing sensor data among nodes
|
||||
|
||||
Later updates may add:
|
||||
|
||||
* Distribution of settings
|
||||
* Sending commands
|
||||
|
||||
Sending & Known Nodes
|
||||
---------------------
|
||||
|
||||
ESPEasy keeps track of all nodes advertising themselves via Sysinfo messages.
|
||||
|
||||
This knowledge is kept in a ``NodeStruct`` for at least 10 minutes.
|
||||
If a node is not sending a Sysinfo message in this period, it will be removed from the list.
|
||||
|
||||
Data Format Versions
|
||||
--------------------
|
||||
|
||||
During the IANA port assignment assessment, a number of issues were pointed out by their experts.
|
||||
|
||||
* Versioning
|
||||
* Security
|
||||
* Data validation
|
||||
* Traffic limiting and congestion handling
|
||||
|
||||
There are now 2 versions available:
|
||||
|
||||
* Version "0" - No security, no data validation.
|
||||
* Version "1" - Introduced in ESPeasy build <???>
|
||||
|
||||
Data Format Version 0
|
||||
---------------------
|
||||
|
||||
Sending and receiving is causing issues when the swarm of nodes increases.
|
||||
|
||||
* All nodes with this service enabled will advertise their presence every 30 seconds via broadcast
|
||||
* Nodes can not subscribe to receiving sensor data updates
|
||||
* Non broadcast messages are sent to each individual known node, regardless if the receiving node will use the data
|
||||
* Sensor Data messages are sent to each individual known node
|
||||
* Sensor Info updates are sent to each individual known node when a plugin coupled to this plugin is saved.
|
||||
|
||||
Of each known node the following data is kept:
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
struct NodeStruct
|
||||
{
|
||||
String nodeName;
|
||||
byte ip[4];
|
||||
uint16_t build;
|
||||
byte age;
|
||||
byte nodeType;
|
||||
};
|
||||
|
||||
The key to index this ``NodeStruct`` is the nodes unit number.
|
||||
|
||||
ASCII Data
|
||||
~~~~~~~~~~
|
||||
|
||||
Command Message
|
||||
***************
|
||||
|
||||
First byte is not 0xFF.
|
||||
|
||||
The entire message processed as a command like this:
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
packetBuffer[len] = 0;
|
||||
String request = &packetBuffer[0];
|
||||
struct EventStruct TempEvent;
|
||||
parseCommandString(&TempEvent, request);
|
||||
TempEvent.Source = VALUE_SOURCE_SYSTEM;
|
||||
if (!PluginCall(PLUGIN_WRITE, &TempEvent, request)) {
|
||||
ExecuteCommand(VALUE_SOURCE_SYSTEM, &packetBuffer[0]);
|
||||
}
|
||||
|
||||
As can be seen, no checks for size, and it is just expected to be a valid ESPeasy command.
|
||||
Also no check to see if the command is supported by the receiving end and no feedback to the sender.
|
||||
|
||||
Binary Data
|
||||
~~~~~~~~~~~
|
||||
|
||||
Binary data is marked with the first byte 0xFF.
|
||||
|
||||
On the receiving end, it is packed in an event in the ``Data`` field and processed like this:
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
struct EventStruct TempEvent;
|
||||
TempEvent.Data = reinterpret_cast<byte*>(&packetBuffer[0]);
|
||||
TempEvent.Par1 = remoteIP[3];
|
||||
TempEvent.Par2 = len;
|
||||
PluginCall(PLUGIN_UDP_IN, &TempEvent, dummyString);
|
||||
CPluginCall(CPLUGIN_UDP_IN, &TempEvent);
|
||||
|
||||
N.B. only the controller C013 implements code for handling UDP data.
|
||||
|
||||
Message types supported, determined by the 2nd byte:
|
||||
|
||||
* 1: Sysinfo message
|
||||
* 2: Sensor info pull request (not implemented)
|
||||
* 3: Sensor info
|
||||
* 4: Sensor data pull request (not implemented)
|
||||
* 5: Sensor data
|
||||
|
||||
Sysinfo Message
|
||||
***************
|
||||
|
||||
There are 2 types of Sysinfo messages, a standard and an extended message.
|
||||
The extended message starts with the same information as the standard one.
|
||||
|
||||
Standard Sysinfo message (13 bytes):
|
||||
|
||||
* 2 bytes marker (255 , 1)
|
||||
* 6 byte MAC address
|
||||
* 4 byte IP address
|
||||
* 1 byte unit number
|
||||
|
||||
Extended Sysinfo message (13 + 28 = 41 bytes):
|
||||
|
||||
* 2 bytes ESPeasy data version number (LSB, MSB)
|
||||
* 25 bytes node name
|
||||
* 1 byte node type
|
||||
|
||||
The node type is defined as:
|
||||
|
||||
* 1 = "ESP Easy"
|
||||
* 17 = "ESP Easy Mega"
|
||||
* 33 = "ESP Easy 32"
|
||||
* 65 = "Arduino Easy"
|
||||
* 81 = "Nano Easy"
|
||||
|
||||
Sensor Info message
|
||||
*******************
|
||||
|
||||
Sensor Info messages are just a description of a shared sensor.
|
||||
It contains some information to setup a new sensor on the receiving end.
|
||||
|
||||
These messages are just a serialized byte stream of ``struct C013_SensorInfoStruct`` .
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
struct C013_SensorInfoStruct
|
||||
{
|
||||
byte header = 255;
|
||||
byte ID = 3;
|
||||
byte sourcelUnit;
|
||||
byte destUnit;
|
||||
byte sourceTaskIndex;
|
||||
byte destTaskIndex;
|
||||
byte deviceNumber;
|
||||
char taskName[26];
|
||||
char ValueNames[VARS_PER_TASK][26];
|
||||
};
|
||||
|
||||
|
||||
Sensor Data message
|
||||
*******************
|
||||
|
||||
|
||||
These messages are just a serialized byte stream of ``struct C013_SensorDataStruct`` .
|
||||
|
||||
.. code-block:: C++
|
||||
|
||||
struct C013_SensorDataStruct
|
||||
{
|
||||
byte header = 255;
|
||||
byte ID = 5;
|
||||
byte sourcelUnit;
|
||||
byte destUnit;
|
||||
byte sourceTaskIndex;
|
||||
byte destTaskIndex;
|
||||
float Values[VARS_PER_TASK];
|
||||
};
|
||||
|
||||
|
||||
Data Format Version 1
|
||||
---------------------
|
||||
|
||||
This version remains compatible with version 0 for backwards compatibility.
|
||||
It is using the "next" unused marker.
|
||||
|
||||
All messages will have a standard packet data format:
|
||||
|
||||
* 2 bytes Marker (255 , 6)
|
||||
* 2 bytes Version => also determines data offset (header length)
|
||||
* 2 bytes Message type
|
||||
* 2 bytes Size of data block in "N" blocks of 16 bytes
|
||||
* 2 bytes Key/group selector
|
||||
* 2 bytes Sequence number
|
||||
* (16 x N) bytes Data block AES encrypted data (including 2 bytes checksum)
|
||||
* 2 bytes Packet checksum
|
||||
|
||||
This allows to:
|
||||
|
||||
* Distinguish data format versions
|
||||
* Filter on message type before allocating large buffers
|
||||
* Use multiple (pre-shared) encryption keys to have several levels of security or just several groups.
|
||||
* Validate correct transmission of packet (last 2 checksum bytes) before decrypting data.
|
||||
* Allow for larger messages to be sent in sequences. (e.g. firmware upgrades?)
|
||||
* Validate sender and content of data block, since it contains a checksum too, which is part of the encrypted data block.
|
||||
|
||||
Since AES has a block size of 16 bytes (128 bit), the size of the data block is defined as a block of 16 bytes.
|
||||
This allows up-to 1 MB of messages. (2^16 * 2^4 = 2^20)
|
||||
An UDP datagram sent over IPv4 cannot exceed 65,507 bytes (65,535 − 8 byte UDP header − 20 byte IP header).
|
||||
In IPv6 jumbograms it is possible to have UDP packets of size greater than 65,535 bytes.
|
||||
@@ -0,0 +1,90 @@
|
||||
.. include:: _controller_substitutions.repl
|
||||
|
||||
Controller
|
||||
**********
|
||||
|
||||
A controller is a component to enable a plugin to send data elsewhere.
|
||||
|
||||
- Up-to 3 controllers can be active in ESPEasy.
|
||||
- Per plugin up-to 3 active controllers can be selected.
|
||||
- For some controllers an additional parameter can be given.
|
||||
|
||||
For example, Domoticz needs an 'IDX' value to identify the configured entry in
|
||||
Domoticz for which new data is sent.
|
||||
|
||||
Controller Plugins
|
||||
==================
|
||||
|
||||
.. csv-table::
|
||||
:header: "Plugin name", "Plugin status", "Plugin number"
|
||||
:widths: 10, 8, 5
|
||||
|
||||
":ref:`C001_page`","|C001_status|","C001"
|
||||
":ref:`C002_page`","|C002_status|","C002"
|
||||
":ref:`C003_page`","|C003_status|","C003"
|
||||
":ref:`C004_page`","|C004_status|","C004"
|
||||
":ref:`C005_page`","|C005_status|","C005"
|
||||
":ref:`C006_page`","|C006_status|","C006"
|
||||
":ref:`C007_page`","|C007_status|","C007"
|
||||
":ref:`C008_page`","|C008_status|","C008"
|
||||
":ref:`C009_page`","|C009_status|","C009"
|
||||
":ref:`C010_page`","|C010_status|","C010"
|
||||
":ref:`C011_page`","|C011_status|","C011"
|
||||
":ref:`C012_page`","|C012_status|","C012"
|
||||
":ref:`C013_page`","|C013_status|","C013"
|
||||
|
||||
|
||||
Controller Parameters
|
||||
=====================
|
||||
|
||||
Generic fields
|
||||
--------------
|
||||
|
||||
- **Protocol** - The type of controller (e.g. ThingSpeak/OpenHAB MQTT/etc.)
|
||||
- **Locate Controller** - Selection between hostname/IP
|
||||
- **Controller Hostname/IP** - The address to reach the selected service
|
||||
- **Controller Port** - TCP/UDP Port number (0...65536)
|
||||
- **Enabled** - Whether or not the controller is active.
|
||||
|
||||
Send queue parameters
|
||||
---------------------
|
||||
|
||||
Controllers have a queue to keep unsent messages.
|
||||
This queue is used to handle message bursts and also store messages which are recorded
|
||||
before WiFi connection is made or during lost connection.
|
||||
|
||||
- **Minimum Send Interval** - Minimum time between two messages in msec.
|
||||
- **Max Queue Depth** - Maximum length of the buffer queue to keep unsent messages.
|
||||
- **Max Retries** - Maximum number of retries to send a message.
|
||||
- **Full Queue Action** - How to handle when queue is full, ignore new or delete oldest message.
|
||||
- **Client Timeout** - Timeout in msec for an network connection used by the controller.
|
||||
- **Check Reply** - When set to false, a sent message is considered always successful.
|
||||
|
||||
|
||||
Sample ThingSpeak configuration
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Some controllers, like ThingSpeak, need a specific configuration.
|
||||
ThingSpeak only allows a message every 15 seconds for the free accounts.
|
||||
|
||||
- **Minimum Send Interval** - 15000 msec
|
||||
- **Max Queue Depth** - 1 (only report the last value)
|
||||
- **Max Retries** - 2
|
||||
- **Full Queue Action** - Delete Oldest
|
||||
- **Client Timeout** - 500 msec (server is online, so timeout must be a bit longer)
|
||||
|
||||
|
||||
Controller user credentials
|
||||
---------------------------
|
||||
|
||||
- **Controller User** - User name (optional)
|
||||
- **Controller Password** - Password (optional)
|
||||
|
||||
MQTT related settings
|
||||
---------------------
|
||||
|
||||
- **Controller Subscribe** - Subscribe to the given topic.
|
||||
- **Controller Publish** - Publish to the given topic.
|
||||
- **Controller lwl topic** - Topic to which LWT (Last Will Testament) messages should be sent.
|
||||
- **LWT Connect Message** - Connection established message.
|
||||
- **LWT Disconnect Message** - Connection lost message (sent to broker during connect and published by broker when connection is lost)
|
||||
@@ -0,0 +1,145 @@
|
||||
|
||||
|
||||
|
||||
.. |C001_name| replace:: :cyan:`Domoticz HTTP`
|
||||
.. |C001_type| replace:: :cyan:`Controller`
|
||||
.. |C001_typename| replace:: :cyan:`Controller - Domoticz HTTP`
|
||||
.. |C001_status| replace:: :green:`NORMAL`
|
||||
.. |C001_github| replace:: C001.ino
|
||||
.. _C001_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C001.ino
|
||||
.. |C001_usedby| replace:: `.`
|
||||
.. |C001_shortinfo| replace:: `.`
|
||||
.. |C001_maintainer| replace:: `.`
|
||||
.. |C001_compileinfo| replace:: `.`
|
||||
|
||||
.. |C002_name| replace:: :cyan:`Domoticz MQTT`
|
||||
.. |C002_type| replace:: :cyan:`Controller`
|
||||
.. |C002_typename| replace:: :cyan:`Controller - Domoticz MQTT`
|
||||
.. |C002_status| replace:: :green:`NORMAL`
|
||||
.. |C002_github| replace:: C002.ino
|
||||
.. _C002_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C002.ino
|
||||
.. |C002_usedby| replace:: `.`
|
||||
.. |C002_shortinfo| replace:: `.`
|
||||
.. |C002_maintainer| replace:: `.`
|
||||
.. |C002_compileinfo| replace:: `.`
|
||||
|
||||
.. |C003_name| replace:: :cyan:`Nodo Telnet`
|
||||
.. |C003_type| replace:: :cyan:`Controller`
|
||||
.. |C003_typename| replace:: :cyan:`Controller - Nodo Telnet`
|
||||
.. |C003_status| replace:: :green:`NORMAL`
|
||||
.. |C003_github| replace:: C003.ino
|
||||
.. _C003_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C003.ino
|
||||
.. |C003_usedby| replace:: `.`
|
||||
.. |C003_shortinfo| replace:: `.`
|
||||
.. |C003_maintainer| replace:: `.`
|
||||
.. |C003_compileinfo| replace:: `.`
|
||||
|
||||
.. |C004_name| replace:: :cyan:`ThingSpeak`
|
||||
.. |C004_type| replace:: :cyan:`Controller`
|
||||
.. |C004_typename| replace:: :cyan:`Controller - ThingSpeak`
|
||||
.. |C004_status| replace:: :green:`NORMAL`
|
||||
.. |C004_github| replace:: C004.ino
|
||||
.. _C004_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C004.ino
|
||||
.. |C004_usedby| replace:: `.`
|
||||
.. |C004_shortinfo| replace:: `.`
|
||||
.. |C004_maintainer| replace:: `.`
|
||||
.. |C004_compileinfo| replace:: `.`
|
||||
|
||||
.. |C005_name| replace:: :cyan:`OpenHAB MQTT`
|
||||
.. |C005_type| replace:: :cyan:`Controller`
|
||||
.. |C005_typename| replace:: :cyan:`Controller - OpenHAB MQTT`
|
||||
.. |C005_status| replace:: :green:`NORMAL`
|
||||
.. |C005_github| replace:: C005.ino
|
||||
.. _C005_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C005.ino
|
||||
.. |C005_usedby| replace:: `.`
|
||||
.. |C005_shortinfo| replace:: `.`
|
||||
.. |C005_maintainer| replace:: `.`
|
||||
.. |C005_compileinfo| replace:: `.`
|
||||
|
||||
.. |C006_name| replace:: :cyan:`PiDome MQTT`
|
||||
.. |C006_type| replace:: :cyan:`Controller`
|
||||
.. |C006_typename| replace:: :cyan:`Controller - PiDome MQTT`
|
||||
.. |C006_status| replace:: :green:`NORMAL`
|
||||
.. |C006_github| replace:: C006.ino
|
||||
.. _C006_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C006.ino
|
||||
.. |C006_usedby| replace:: `.`
|
||||
.. |C006_shortinfo| replace:: `.`
|
||||
.. |C006_maintainer| replace:: `.`
|
||||
.. |C006_compileinfo| replace:: `.`
|
||||
|
||||
.. |C007_name| replace:: :cyan:`Emoncms`
|
||||
.. |C007_type| replace:: :cyan:`Controller`
|
||||
.. |C007_typename| replace:: :cyan:`Controller - Emoncms`
|
||||
.. |C007_status| replace:: :green:`NORMAL`
|
||||
.. |C007_github| replace:: C007.ino
|
||||
.. _C007_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C007.ino
|
||||
.. |C007_usedby| replace:: `.`
|
||||
.. |C007_shortinfo| replace:: `.`
|
||||
.. |C007_maintainer| replace:: `.`
|
||||
.. |C007_compileinfo| replace:: `.`
|
||||
|
||||
.. |C008_name| replace:: :cyan:`Generic HTTP`
|
||||
.. |C008_type| replace:: :cyan:`Controller`
|
||||
.. |C008_typename| replace:: :cyan:`Controller - Generic HTTP`
|
||||
.. |C008_status| replace:: :green:`NORMAL`
|
||||
.. |C008_github| replace:: C008.ino
|
||||
.. _C008_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C008.ino
|
||||
.. |C008_usedby| replace:: `.`
|
||||
.. |C008_shortinfo| replace:: `.`
|
||||
.. |C008_maintainer| replace:: `.`
|
||||
.. |C008_compileinfo| replace:: `.`
|
||||
|
||||
.. |C009_name| replace:: :cyan:`FHEM HTTP`
|
||||
.. |C009_type| replace:: :cyan:`Controller`
|
||||
.. |C009_typename| replace:: :cyan:`Controller - FHEM HTTP`
|
||||
.. |C009_status| replace:: :green:`NORMAL`
|
||||
.. |C009_github| replace:: C009.ino
|
||||
.. _C009_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C009.ino
|
||||
.. |C009_usedby| replace:: `.`
|
||||
.. |C009_shortinfo| replace:: `.`
|
||||
.. |C009_maintainer| replace:: `.`
|
||||
.. |C009_compileinfo| replace:: `.`
|
||||
|
||||
.. |C010_name| replace:: :cyan:`Generic UDP`
|
||||
.. |C010_type| replace:: :cyan:`Controller`
|
||||
.. |C010_typename| replace:: :cyan:`Controller - Generic UDP`
|
||||
.. |C010_status| replace:: :green:`NORMAL`
|
||||
.. |C010_github| replace:: C010.ino
|
||||
.. _C010_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C010.ino
|
||||
.. |C010_usedby| replace:: `.`
|
||||
.. |C010_shortinfo| replace:: `.`
|
||||
.. |C010_maintainer| replace:: `.`
|
||||
.. |C010_compileinfo| replace:: `.`
|
||||
|
||||
.. |C011_name| replace:: :cyan:`Generic HTTP`
|
||||
.. |C011_type| replace:: :cyan:`Controller`
|
||||
.. |C011_typename| replace:: :cyan:`Controller - Generic HTTP`
|
||||
.. |C011_status| replace:: :yellow:`TESTING`
|
||||
.. |C011_github| replace:: C011.ino
|
||||
.. _C011_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C011.ino
|
||||
.. |C011_usedby| replace:: `.`
|
||||
.. |C011_shortinfo| replace:: `.`
|
||||
.. |C011_maintainer| replace:: `.`
|
||||
.. |C011_compileinfo| replace:: `.`
|
||||
|
||||
.. |C012_name| replace:: :cyan:`Blynk`
|
||||
.. |C012_type| replace:: :cyan:`Controller`
|
||||
.. |C012_typename| replace:: :cyan:`Controller - Blynk`
|
||||
.. |C012_status| replace:: :yellow:`TESTING`
|
||||
.. |C012_github| replace:: C012.ino
|
||||
.. _C012_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C012.ino
|
||||
.. |C012_usedby| replace:: `.`
|
||||
.. |C012_shortinfo| replace:: `.`
|
||||
.. |C012_maintainer| replace:: `.`
|
||||
.. |C012_compileinfo| replace:: `.`
|
||||
|
||||
.. |C013_name| replace:: :cyan:`ESPEasy P2P Networking`
|
||||
.. |C013_type| replace:: :cyan:`Controller`
|
||||
.. |C013_typename| replace:: :cyan:`Controller - ESPEasy P2P Networking`
|
||||
.. |C013_status| replace:: :green:`NORMAL`
|
||||
.. |C013_github| replace:: C013.ino
|
||||
.. _C013_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C013.ino
|
||||
.. |C013_usedby| replace:: `.`
|
||||
.. |C013_shortinfo| replace:: `.`
|
||||
.. |C013_maintainer| replace:: `.`
|
||||
.. |C013_compileinfo| replace:: `.`
|
||||
@@ -0,0 +1,138 @@
|
||||
About Us
|
||||
********
|
||||
The ESP Easy project is being handled by the core team of TD-er and Grovkillen.
|
||||
TD-er being the head of backend and Grovkillen being head of the frontend.
|
||||
We both dig down into each others areas of responsible on a daily basis though.
|
||||
|
||||
Other than us we have around 100 volunteers that helping us maintain
|
||||
and improve the source code.
|
||||
|
||||
History
|
||||
=======
|
||||
ESP Easy has gone through a lot of changes over the last years and here's some
|
||||
of the major milestones.
|
||||
|
||||
Early days (Nodo Uno)
|
||||
---------------------
|
||||
It's somewhat unknown how it all started but Paul Tonkes (part of the Nodo team)
|
||||
built a IR (infrared) to Kaku controller because he was not happy with the
|
||||
commercial version. That unit came to the world named as Nodo (Uno).
|
||||
|
||||
04/2010 (Nodo Due)
|
||||
------------------
|
||||
Taken from the old Nodo website at the time that the Nodo update was introduced
|
||||
(named Nodo Due). During this time, a nice production class Arduino Shield was
|
||||
also built.
|
||||
|
||||
10/2011 (Joining the Nodo community)
|
||||
------------------------------------
|
||||
The founder of the ESP Easy project, Mvb, read about the Nodo project and
|
||||
ordered his first Nodo Arduino board from the Nodo shop. He was using it to
|
||||
control Kaku lights around his house.
|
||||
|
||||
03/2012 (Nodo Mega)
|
||||
--------------------
|
||||
Beta Nodo Mega was released, based on Arduino Mega 2560 board with Ethernet
|
||||
Shield. Using a hosted web application.
|
||||
|
||||
05/2013 (Nodo NES Shield)
|
||||
-------------------------
|
||||
The hardware guys from the Nodo team released a shield for Arduino Mega 2560
|
||||
that contains everything needed to run Nodo Mega with the web application.
|
||||
|
||||
01/2014 (Exploring new wireless capabilities)
|
||||
---------------------------------------------
|
||||
Nodo got its first 2.4GHz communication plugin, using the well known NRF24L01.
|
||||
This had solved limitations of the 433MHz OOK modules and at the same time it
|
||||
reduced the load on that frequency so Kaku became more reliable.
|
||||
|
||||
Mvb decided to run a setup with two Nodo Mega units in the house. First unit
|
||||
runs the NES board for 433MHz communication, second board was dedicated for
|
||||
NRF24L01 communications. Both Mega's could communicate through I2C or Ethernet.
|
||||
|
||||
02/2015 (Entering the Wi-Fi solution)
|
||||
-------------------------------------
|
||||
Nodo got its first ESP Wi-Fi plugin, using it as a serial to Wi-Fi bridge.
|
||||
At that time we were using the stock firmware that came with the module.
|
||||
|
||||
04/2015 (ESP Connexio)
|
||||
----------------------
|
||||
The ESP Connexio project was initiated as the first effort to port the original
|
||||
Nodo code to the ESP platform using early version of the ESP8266 Arduino Core.
|
||||
The team had to workaround a lot of issues but got it working reasonably.
|
||||
|
||||
05/2015 (ESP Easy initiative)
|
||||
-----------------------------
|
||||
ESP Easy was initiated, mainly because the Nodo Connexio concept was a bit
|
||||
over complicated. It had the same event list as the original Nodo project.
|
||||
Quite powerful but also complicated to end users. So the idea was to have
|
||||
something plug and play to hook up sensors to Domoticz. That decision of
|
||||
targeting Domoticz is still present in current source code since many plugins
|
||||
from the early days have the values setup in such a way that Domoticz can
|
||||
import them with little effort.
|
||||
|
||||
09/2015 (ESP Easy R020)
|
||||
-----------------------
|
||||
As of R017 the Nodo Plugin mechanism was also implemented within ESP Easy.
|
||||
Some other inconvenient bugs were fixed, help buttons added and it was decided
|
||||
that R020 could be the first production edition.
|
||||
|
||||
ESP Easy was launched on Sourceforge as the very first production edition.
|
||||
No programming required.
|
||||
|
||||
02/2016 (ESP Easy R078)
|
||||
-----------------------
|
||||
To make things even more easy, edition R078 was provided as binary images
|
||||
with a simple installer. No need for a complicated Arduino IDE setup.
|
||||
And it also introduced OTA, so subsequent updates could be done without
|
||||
connecting the module to a serial port.
|
||||
|
||||
08/2016 (ESP Easy R120)
|
||||
-----------------------
|
||||
Lots of fixes and additional features:
|
||||
|
||||
* Rules engine
|
||||
* Custom dummy device
|
||||
* GlobalSync
|
||||
* More commands
|
||||
* More controllers
|
||||
* More devices
|
||||
|
||||
Estimated user count was at this time around 7 000.
|
||||
|
||||
11/2016 (ESP Easy Mega)
|
||||
-----------------------
|
||||
ESP Easy Mega was initiated (only for ESP Modules with at least 1MB flash
|
||||
memory). We had to many limitations in ESP Easy, due to the code size that
|
||||
exceeded the 512kB modules flash size. Decided to drop support for these
|
||||
classic modules and went forward with this version.
|
||||
|
||||
02/2017 (Change of roles)
|
||||
-------------------------
|
||||
Psy0rz took over lead development of ESP Easy Mega (2.0.0), he moved the
|
||||
source code onto the GitHub page and started to modularize the code. He also
|
||||
made ESP Easy support multiple controllers and fallback Wi-Fi. During this time
|
||||
nightly releases was introduced and user counts had grown to around 20 000.
|
||||
|
||||
08/2018 (New core team)
|
||||
-----------------------
|
||||
With both Mvb and Psy0rz having little time to spend on the project two of the
|
||||
most eager contributors Grovkillen (mainly wiki documentation and help tools
|
||||
at that time) and TD-er (had already implemented the event based Wi-Fi and
|
||||
scheduler for better timing) stepped in. The aim for the core team is to
|
||||
make the ESP Easy OS as great as can be by dedicating full time commitment to
|
||||
the project.
|
||||
|
||||
User count was at this point approximately around 32 000 and 24 hour download
|
||||
count around 280.
|
||||
|
||||
.. 11/2018 (First stable 2+ version)
|
||||
----------------------------------
|
||||
The first stable release of the new 2.0.0 version was finally released. Much
|
||||
of the features added had been in the nightly releases for more than a year
|
||||
but in the process of modularizing the source code a lot of bugs were fixed,
|
||||
much better timing added, but also some new bugs came into the light. The
|
||||
team wanted to have the official stable release to be just that, stable.
|
||||
|
||||
Estimated user count was at this point around 40 000 and 24 hour download count
|
||||
around 540.
|
||||
@@ -0,0 +1,2 @@
|
||||
ESP Easy Function Blocks
|
||||
************************
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 61 KiB |
@@ -0,0 +1,35 @@
|
||||
Documentation
|
||||
*************
|
||||
|
||||
For documentation we use Sphinx and this will be read by ReadTheDocs.
|
||||
We use the `Sphinx Bootstrap Theme <https://github.com/ryan-roemer/sphinx-bootstrap-theme>`_
|
||||
|
||||
This documentation is included in the GitHub repository.
|
||||
It allows us to create documentation per version of ESPEasy.
|
||||
|
||||
See also the `ESPEasy wiki <https://www.letscontrolit.com/wiki/index.php/ESPEasy>`_
|
||||
for more documentation which has not been moved here.
|
||||
|
||||
Needed Python packages::
|
||||
|
||||
pip install sphinx recommonmark sphinx_bootstrap_theme
|
||||
|
||||
PlatformIO with Atom
|
||||
====================
|
||||
|
||||
With the ESPEasy project open in Atom, open the PIO terminal in Atom.
|
||||
|
||||
Install dependencies::
|
||||
|
||||
cd docs
|
||||
pip install ... (see needed Python packages above)
|
||||
|
||||
Build on Windows::
|
||||
|
||||
cd docs
|
||||
.\make.bat html
|
||||
|
||||
Build on Linux/Mac::
|
||||
|
||||
cd docs
|
||||
./make html
|
||||
@@ -0,0 +1,47 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_page:
|
||||
|
||||
|P000_typename|
|
||||
==================================================
|
||||
|
||||
|P000_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P000_type|
|
||||
|
||||
Name: |P000_name|
|
||||
|
||||
Status: |P000_status|
|
||||
|
||||
GitHub: |P000_github|_
|
||||
|
||||
Maintainer: |P000_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P000_usedby_GPIO|, |P000_usedby_RTTTL|
|
||||
|
||||
Commands available
|
||||
------------------
|
||||
|
||||
.. include:: P001_commands_GPIO.repl
|
||||
.. include:: P001_commands_RTTTL.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
@@ -0,0 +1,106 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_Buzzer_page:
|
||||
|
||||
Buzzer (RTTTL)
|
||||
==============
|
||||
|
||||
|P000_typename|
|
||||
|P000_status|
|
||||
|
||||
.. image:: P000_Buzzer_RTTTL_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
RTTTL (Ring Tone [Text] Transfer Language) was developed by Nokia to play more "easy on the ear" melodies as ringtones for mobile phones. The tunes over all characteristics are created by using three different commands:
|
||||
|
||||
**d** - duration
|
||||
|
||||
**o** - octave
|
||||
|
||||
**b** - tempo (beat)
|
||||
|
||||
After that the actual tune is then created using standard notes (a, b, c, d, e, f, and g), before the note the duration is set, after the note the octave is set:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<duration><note><octave>
|
||||
|
||||
To compose a jingle you separate the notes with a comma.
|
||||
|
||||
Specifications:
|
||||
* Output sound
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Buzzer
|
||||
GPIO <--> I/O
|
||||
|
||||
Power
|
||||
3.3V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
No device is needed, generally you use rules to activate different notifications, or you send commands to activate them. Below you find more information on how to do this.
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
From ESP Easy v2.0.0 its possible to play melodies via `RTTTL <https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language#Technical_specification>`_ (don't forget to remove the spaces and replace # with -, this might be fixed in future releases):
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
http://<ESP IP address>/control?cmd=rtttl,14:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
|
||||
|
||||
This plays a melody on pin 14.
|
||||
|
||||
You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker.
|
||||
|
||||
To make a boot-sound on startup, create a rule like this:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
On System#Boot do
|
||||
rtttl,14:d=10,o=6,b=180,c,e,g
|
||||
endon
|
||||
|
||||
`A place to find more tunes <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_, all saved as txt files.
|
||||
|
||||
Besides RTTTL it's also possible to play a single tone on a pin, via a buzzer, speaker or piezo element:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
http://<ESP IP address>/control?cmd=tone,14,1300,200
|
||||
|
||||
Plays a 1300 Hz tone for 200 ms on GPIO-14.
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
No device is needed.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
.. include:: P001_commands_RTTTL.repl
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cMvVWYS4>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -0,0 +1,125 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_Level_converter_page:
|
||||
|
||||
Level converter
|
||||
===============
|
||||
|
||||
.. image:: P000_Level_converter_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Level-converters, aka level-shifters, aka voltage dividers, are used to adapt between a 3.3V device like the ESP8266 and devices using 5V or more internally.
|
||||
The ESP8266 runs with 3.3V - many devices need 5V or more, for example a LCD display or a Wiegand card reader. It is said that the ESP8266 can
|
||||
take 5V at its inputs. Basically this is correct and confirmand by Espressif, the manufacturer. Anyways this as always has some limitations.
|
||||
|
||||
**First**, overcurrent. If you use a GPIO as input and the output of the connected device has 5V it should work. But if the internal resistance
|
||||
of the device is low the current might exceed the limits of the ESP8266. With some specific settings of the ESP8266 the GPIO can not take 5V,
|
||||
who checks every plugin or never made a setting mistake? So for making sure no GPIO is blown accidentally or by a bug some measurements should be taken.
|
||||
|
||||
**Second**, some devices need higher voltage if GPIO used as output. For example the PCF8574 or the MCP23017, port multiplexer. This chips use
|
||||
3.3V or 5V as you choose. For some purpose higher voltage is useful. If using 5V there is a point you have to take care for:
|
||||
|
||||
The High and Low levels depend on the voltage!
|
||||
|
||||
With the PCF8574 the minimum "High" level Vih = 0.7 × Vdd, with 5V as Vdd it is 3.5V. With the MCP23017 the Vih = 0.8 × Vdd, with 5V as Vdd it is 4V.
|
||||
(Vdd is the supplied voltage) So with 3.3V max from the ESP we are too low. It might work, it might fail. Worse, it might work with one chip
|
||||
and fail with another one due to tolerances. In this case a level-converter is needed.
|
||||
|
||||
Specifications:
|
||||
* Level shifter, aka logic converter. Used to turn logics of higher voltage (5V) down to ESP friendly voltage (3.3V).
|
||||
|
||||
.. note::
|
||||
**Troubleshooting**:
|
||||
If your level converter does not work, please check cabling first. As said cabling mistakes and slack joints with the usual cheap breadboard cables are the most likely reason.
|
||||
If you use breakout board type level converters have a second one at hand. We've seen some "dead on arrival", other died by electrostatic discharge.
|
||||
And again, breadboards are somewhat unreliable. Use a digital multi-meter to check contacts and wires.
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. warning::
|
||||
Be careful with wiring. A wrong connection from 5V to the 3.3V rail can cause damages of the ESP and/or the power supply.
|
||||
A direct connection by mistake from 5V to a GPIO may fry your ESP! Handle level-shifters with some care.
|
||||
The used FET transistors are somewhat sensible against electrostatic discharge. Use a anti-static mat.
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Level converter Connected hardware
|
||||
GPIO (X) <--> 3A, LV1, A1 etc. <--> 5A, HV1, B2 etc.
|
||||
GPIO (Y) <--> 3B, LV2, A2 etc. <--> 5B, HV2, B2 etc.
|
||||
|
||||
Power
|
||||
3.3V <--> 3V3, LV, VA, 3V etc.
|
||||
5.0V <--> VIN, HV, VB, +5V etc.
|
||||
GND <--> GND
|
||||
|
||||
Different ways of level converting
|
||||
----------------------------------
|
||||
|
||||
Other than using a level converter it is possible to do it "manually" through resistors.
|
||||
|
||||
Just Input - simple unidirectional
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As an example we will use a HC-SR04 ultrasonic distance metering module. The HC-SR04 needs 5V, it will not work with 3.3V.
|
||||
It works like bat ears, sending ultrasonic pulses and waiting for the echo. It has an input "Trigger" for sending ultrasonic pulses and an output "Echo" for the received signals.
|
||||
The "trigger" input is no problem as it can take 3.3V for "High". Just connect it to the desired GPIO. But the "Echo" pin sends back 5V signals!
|
||||
As this signaling is working just in one direction ("unidirectional") from the HC-SR04 to the ESP8266, a simple voltage divider does the job. Look at the schematic:
|
||||
|
||||
.. image:: P000_Level_converter_2.jpg
|
||||
|
||||
Note the two resistors R1 and R2, configured as a voltage divider. The divider gives 2.2/(1.2+2.2) = 0.65 so with 5V you get 5V × 0.65 = 3.25V at the GPIO pin.
|
||||
|
||||
Just Input - precise unidirectional
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The simple circuit with two resistors has one disadvantage. It is calculated for 5V. For other voltages you have to calculate another pair of resistor values. And worse,
|
||||
spikes, short spikes of high voltage from unstable power supply or other reasons) pass through the divider. A better and more precise way is using a Zener diode.
|
||||
A Zener diode simplified is a semiconductor that gets conductive at a specific voltage.
|
||||
|
||||
.. image:: P000_Level_converter_3.jpg
|
||||
|
||||
Here a Zener diode is used as voltage limiter. The resistor must not be omitted, it is necessary to limit the current. If a 5V signal comes the diode gets conductive - it would
|
||||
short circuit the device output without the resistor. This circuit is dimensioned for input voltages from 5V to 9V (resistor should have 0.25W!). It can be used nicely for Wiegand
|
||||
card readers for example. You may use even higher voltages, for example if you want to check a 24V pump. You need an adapted resistor value for that.
|
||||
|
||||
Input and Output - Bidirectional Level Converter
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For devices that use one wire for input and output ("bidirectional") or devices that need higher voltage on an input an active level converter is necessary.
|
||||
This applies mainly to I²C devices as SCL (the clock signal) comes with 3.3V from the ESP and the SDA (data signal) goes in both directions. There are
|
||||
specialized chips for this purpose. Most of them have 8 channels - bit of an overkill for an ESP. There is a much simpler way you can buy as a cheap
|
||||
breakout board or solder together yourself.
|
||||
|
||||
.. image:: P000_Level_converter_4.jpg
|
||||
|
||||
A little FET and two resistors do the job. This is the circuit most level shifters you can buy at the market use.
|
||||
|
||||
How does it work? Lets have a simplified look in a nutshell. A FET gets conductive if the voltage at the gate (pin 1) is higher then the voltage at
|
||||
the source (pin 2). So if the ESP gives 3.3V (High), gate and source have same voltage - the FET isolates both sides (pin 2 & 3) from each other.
|
||||
If the ESP goes to 0.3V (Low), the gate still has 3.3V - now the FET gets conductive pulling the 5V-side down. If the 5V-side goes to zero (low)
|
||||
because your device sends data, the diode inside the FET gets conductive and pulls the 3.3V side down to nearly zero (Low).
|
||||
|
||||
Use of a dedicated level converter
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Quite an easy job. The pins on a level shifter are usually divided in a LV (Low Voltage) and a HV (High Voltage) side. Sometimes it is just called 3V and 5V.
|
||||
Connect the 3V pin to 3.3V from ESP and the 5V pin to 5V from your device, for example a LCD display. Don't forget ground, some breakouts have some additional
|
||||
capacitors which need it. Then connect the GPIOs from the ESP to the LV side, the equivalent pins from your 5V device to the HV side. That's all.
|
||||
|
||||
.. image:: P000_Level_converter_5.jpg
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/c5dMH05S>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 802 KiB |
|
After Width: | Height: | Size: 308 KiB |
|
After Width: | Height: | Size: 298 KiB |
|
After Width: | Height: | Size: 354 KiB |
|
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,104 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_Piezo_element_page:
|
||||
|
||||
Piezo element
|
||||
=============
|
||||
|
||||
|P000_typename|
|
||||
|P000_status|
|
||||
|
||||
.. image:: P000_Piezo_element_RTTTL_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
RTTTL (Ring Tone [Text] Transfer Language) was developed by Nokia to play more "easy on the ear" melodies as ringtones for mobile phones. The tunes over all characteristics are created by using three different commands:
|
||||
|
||||
**d** - duration
|
||||
|
||||
**o** - octave
|
||||
|
||||
**b** - tempo (beat)
|
||||
|
||||
After that the actual tune is then created using standard notes (a, b, c, d, e, f, and g), before the note the duration is set, after the note the octave is set:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<duration><note><octave>
|
||||
|
||||
To compose a jingle you separate the notes with a comma.
|
||||
|
||||
Specifications:
|
||||
* Output sound
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Piezo
|
||||
GPIO <--> Positive (red)
|
||||
GND <--> Negative (black)
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
No device is needed, generally you use rules to activate different notifications, or you send commands to activate them. Below you find more information on how to do this.
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
From ESP Easy v2.0.0 its possible to play melodies via `RTTTL <https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language#Technical_specification>`_ (don't forget to remove the spaces and replace # with -, this might be fixed in future releases):
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
http://<ESP IP address>/control?cmd=rtttl,14:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
|
||||
|
||||
This plays a melody on pin 14.
|
||||
|
||||
You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker.
|
||||
|
||||
To make a boot-sound on startup, create a rule like this:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
On System#Boot do
|
||||
rtttl,14:d=10,o=6,b=180,c,e,g
|
||||
endon
|
||||
|
||||
`A place to find more tunes <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_, all saved as txt files.
|
||||
|
||||
Besides RTTTL it's also possible to play a single tone on a pin, via a buzzer, speaker or piezo element:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
http://<ESP IP address>/control?cmd=tone,14,1300,200
|
||||
|
||||
Plays a 1300 Hz tone for 200 ms on GPIO-14.
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
No device is needed.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
.. include:: P001_commands_RTTTL.repl
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/CG00mPI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 433 KiB |
@@ -0,0 +1,340 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_Relay_page:
|
||||
|
||||
Relay
|
||||
=====
|
||||
|
||||
|P000_typename|
|
||||
|P000_status|
|
||||
|
||||
.. image:: P000_Relay_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
The ESP8266 can't switch high currents or voltages and no AC at all. But it can switch a relay that can switch high load, isolating high
|
||||
voltage from the ESP circuit. There are several relay types in the wild.
|
||||
|
||||
The ESP can control a relay using one of it's GPIO pins. All relay boards that work with Arduino should also work with the ESP module.
|
||||
Note this is only a possible application of the ESPs ability to send a logic 1/0 (TTL at 3.3V) on a GPIO. These relay are usually available
|
||||
as 1,2,4,8,16 Relay modules and work electromagnetically. They can switch both AC/DC(or imitate a button press of a remote for example)
|
||||
as they are "power operated mechanical switches". Each relay has the screw terminal. The middle one is usually "always connected" terminal.
|
||||
The NC contact will be connected to the middle terminal when the relay is not powered. The NO is connected when the relay is powered
|
||||
and activated. Note that there are "active high" and "active low" versions of these relays.
|
||||
|
||||
There are mainly two relay types in the wild: The good old mechanical relay with the nice "click-clack" sound and the electronic relays, so called
|
||||
"Solid State Relays" (SSR) which are completely silent.
|
||||
|
||||
Specifications:
|
||||
* Opto coupler (mechanical)
|
||||
* Solid state (SSR)
|
||||
|
||||
Relays are the most used actuators in home automation. Most people use breakout boards with a relay on it. Sadly there is no "standard" relay board.
|
||||
It seems every small manufacturing garage in china has it's own layout and schematic. Some use 5V, some use 12V, some do with opto couplers, some without...
|
||||
the perfect chaos. Several problems result from this chaos. Relays keeping switched on no mater what your ESP says. Relays not switching at all.
|
||||
And last but not least - sometimes they work. Let's get some order into that chaos.
|
||||
|
||||
.. note::
|
||||
You have just got your brand new relay board and it does not work. What to do?
|
||||
At first you should check the switching level. Is it switching on with "high" or with "low"?
|
||||
|
||||
* Connect the board to power only (5V or 12V usually).
|
||||
* Plug a jumper cable to one of the inputs.
|
||||
* With the other end of the cable touch GND and +Vcc (5V or 12V).
|
||||
|
||||
On one of these touches the relay should switch. If it switches when connecting to GND the board uses "low" as active (relay on) signal.
|
||||
In this case diodes or a transistor / FET as described above might help.
|
||||
|
||||
Connect the board to the ESP carefully. Check voltages, the power supply should be able to deliver enough current for the relays!
|
||||
Check the connection cables. Jumper cables are well known for slack joints.
|
||||
|
||||
Mechanical relay
|
||||
----------------
|
||||
|
||||
The mechanical relay is a simple construction.
|
||||
It consist of a coil, one or more contacts and a spring. The spring keeps the contact in the "open" position. If the coil gets current, the magnetic
|
||||
field pulls the contact into the second position, the contact closes. As soon as the current is switched off the spring pulls the contact back.
|
||||
Mechanical relays may just have one contact switching to closed if the coil works (Normally open or NO). The contact might be a changeover contact which
|
||||
has a "common" connector and a NO (open without coil current, "normally open") and a NC (closed without coil current, "normally closed") connection.
|
||||
There might even be several contacts in one relay.
|
||||
|
||||
There are several special types of mechanical relay
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Latching relay:
|
||||
|
||||
.. image:: P000_Relay_2.jpg
|
||||
|
||||
One current pulse switches on and keeps on when current goes off, a second pulse switches off.
|
||||
|
||||
|
||||
Polarized relay:
|
||||
|
||||
.. image:: P000_Relay_3.jpg
|
||||
|
||||
These relays have a defined + and - pin for the coil that must be followed.
|
||||
|
||||
.. warning:: These micro relays can not switch mains voltage! Use them for low voltage door openers or similar.
|
||||
|
||||
Pros and cons of mechanical relays
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:green:`+` Several contacts in one relay available.
|
||||
|
||||
:green:`+` NO/NC available.
|
||||
|
||||
:green:`+` Limited resistance to overload and overvoltage.
|
||||
|
||||
:red:`-` Noisy, might disturb in a living room or bedroom.
|
||||
|
||||
:red:`-` Mechanical, moving parts that might wear out over time.
|
||||
|
||||
:red:`-` Contact bumping when switching.
|
||||
|
||||
:red:`-` High current for the coil, needs a transistor or FET for driving and generates peaks on power supply.
|
||||
|
||||
:red:`-` The coil induces high voltage when switching off.
|
||||
|
||||
Solid state relay
|
||||
-----------------
|
||||
|
||||
The solid state relay, SSR for short, is a complex electronic circuit. It uses an opto coupler for input, this isolating the driving circuit from the load voltage.
|
||||
Isolation voltage is usually 2000V, 4000V or more. The switching element usually is a triac for AC switching types. For DC there are types with a MOSFET as switching element.
|
||||
|
||||
There are several special types of SSR relay
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: P000_Relay_4.jpg
|
||||
|
||||
As with the mechanical relays there are specialized types of SSR's.
|
||||
|
||||
**AC Type** : Can only (!!) switch AC. AC with zero crossing circuit. This type switches on and off if the AC voltage is at the zero point. **Expensive** and necessary only for special applications.
|
||||
|
||||
**DC Type** : Can only (!!) switch DC! And a lot more that are reserved for special cases.
|
||||
|
||||
Pros and cons of SSR relays
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:green:`+` Completely noiseless
|
||||
|
||||
:green:`+` Low driving current and voltage available. Some types can be driven directly from the ESP.
|
||||
|
||||
:green:`+` No mechanical parts, no wearing out.
|
||||
|
||||
:green:`+` No contact bumping.
|
||||
|
||||
:green:`+` No voltage peaks on the low voltage side.
|
||||
|
||||
:green:`+` Available for very high current for an affordable price.
|
||||
|
||||
:red:`-` Very sensitive to overvoltage and overcurrent.
|
||||
|
||||
:red:`-` No NC available usually.
|
||||
|
||||
:red:`-` Usually with only one or sometimes three "normally open" circuits.
|
||||
|
||||
:red:`-` Needs cooling! Smaller relays up to 5A must be mounted with at least 1cm distance to other parts.
|
||||
|
||||
:red:`-` Bigger relays usually need a heat sink. Watch out: Heat sink may carry mains voltage with some types!
|
||||
|
||||
:red:`-` Leak current! These relays leak some current even if switched off.
|
||||
|
||||
Leak currents
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Leak Current from SSR's might lead into problems under certain circumstances.
|
||||
The both types shown above ("Hoymk D3805KH" and "Mager GJ-6-L", 5A AC) were tested here.
|
||||
The Mager GJ-5-L showed a low leaking current and is useable for most purposes.
|
||||
The D3805HK showed a really high leaking current, enough for a 10W LED to glow and a small solenoid valve to keep open!
|
||||
This is not recommended for normal use.
|
||||
|
||||
Meanwhile a third sample arrived: The SSR-D32A380/5 sold by Pollin.
|
||||
Similar to the D3805HK it shows a leaking current, as the test LED is slightly glowing in the dark when off.
|
||||
It seems to be a lower leaking then with the D3805HK, this is subject to some further investigation.
|
||||
The advantage of the Pollin SSR: It contains a small LED on the top indicating if the relay is on.
|
||||
This SSR is a bit bigger then the other two types tested, it just fits the case. So holes for the LEDs
|
||||
can be drilled on the top side of the case.
|
||||
|
||||
.. danger::
|
||||
Always remember that a switched-off SSR is not completely switched off!
|
||||
Even a small leaking current is enough to give a shock. Nice surprise if you're on the ladder changing bulbs....
|
||||
|
||||
Choosing your relay
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Which relay should be used?
|
||||
|
||||
Well, this depends on what you want to switch. If you control a heavy motor or pump, I'd always prefer a mechanical relay.
|
||||
The resistance against short overcurrent is a good point here.
|
||||
For experimenting we prefer mechanical relays too - we just love the "click" sound, i.e. we don't have to connect a load to see if it works.
|
||||
If noise counts or if you place the relay in a dusty or humid environment a SSR is the better choice. It's completely encapsulated so dust
|
||||
and humidity can't damage it. As it has no mechanical parts it is completely noise-free. So it's the perfect choice to switch lighting in a living room or sleeping room.
|
||||
Of course you have to chose a relay that fits your parameters.
|
||||
|
||||
Which voltage you want to switch? AC or DC? Which current?
|
||||
|
||||
If you want to use a SSR for high current you have to calculate the space for a heat sink and you have to use a vented case. All these parameters
|
||||
have to be figured into your project. It is also possible to use a small SSR to drive a really heavy external relay for a heavy machine for example.
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Relay (board)
|
||||
GPIO (X) <--> IN1
|
||||
GPIO (Y) <--> IN2
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
No device is needed, generally you use rules to activate relays, or you send commands to activate them. Below you
|
||||
find more information on how to do this.
|
||||
|
||||
.. note::
|
||||
If you want to monitor and have the GPIO state published you do this by adding as a |P001_typename| ,
|
||||
it will not be a switch per say but you will get the state published automatically.
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
On Switch#State Do
|
||||
if [Switch#State]=1
|
||||
GPIO,12,1
|
||||
else
|
||||
GPIO,12,0
|
||||
endif
|
||||
EndOn
|
||||
|
||||
This rule will turn the relay ON when the button is pressed, and OFF when released.
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
No device is needed.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
.. include:: P001_commands_GPIO.repl
|
||||
|
||||
How to connect your relay
|
||||
-------------------------
|
||||
|
||||
You can connect the relay in multiple ways, we explain them all below.
|
||||
|
||||
Basic ESP circuit: mechanical relays
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The basic circuit is simple.
|
||||
As the relay usually consumes more current as the ESP can handle it needs a transistor or FET to drive the relay.
|
||||
To suppress the voltage peak when switching off the coil a free-wheeling diode is needed. This can be a standard silicium diode, a 1N4148 for example.
|
||||
|
||||
.. image:: P000_Relay_5.jpg
|
||||
|
||||
Well, there is another way to switch the relay. In the above example we used a NPN transistor or a N-channel FET. A PNP transistor or P-Channel FET can be used too.
|
||||
Some board manufacturers do this and now we run into problems promptly. The relays usually need some higher voltage then the ESP, 5V or 12 V in most cases.
|
||||
The PNP transistor in the example is connected to +5V. It will switch the relay to "on" if the voltage at the input is at least 0.7V below the Vcc of 5V.
|
||||
The ESP delivers a maximum of 3.3V if the GPIO is "high", around 0.5V if it is "low". Both voltages are far below the 5V-0.7V = 4.3V threshhold of the relay board.
|
||||
The relay is permanently on, no matter what your ESP says. We can get this to work in a simple way with a 5V relay board. A standard diode has a loss of around 0.7V.
|
||||
We can use this to get a higher output level from the ESP. We simply use two diodes in the connection between relay board and ESP. This raises the voltage from the
|
||||
ESP up to 3.3v + 1.4V = 4.7V. This is above the threshhold of 4.3V. If the board uses a FET it might be necessary to use three diodes. That usually will work.
|
||||
On top: This circuit switches the relay off if the GPIO is "high", this leading to irritations sometimes.
|
||||
The picture shows the basic circuit with a PNP transistor, and the " 2 Diodes " solution:
|
||||
|
||||
.. image:: P000_Relay_6.jpg
|
||||
|
||||
More complex: using an opto coupler
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Many widespread relay boards use opto couplers. Honestly we don't know the reason besides it looks good in advertising.
|
||||
In theory the opto coupler isolates the relay coil from the ESP circuit. Well, that's nice theory. In real world we use the same power supply for relays and ESP.
|
||||
This bridges the opto coupler as the circuits are connected via power supply making the opto coupler completely useless. Anyways the relay isolates the load from
|
||||
the ESP anyways. It might be useful only if relay switching interferes with the ESP. In this case you might try a separate power supply for relay coils.
|
||||
This isolates the ESP completely from the coil circuits. Note that a jumper has to be set for that on some boards.
|
||||
Again there are two possible ways to use this circuit. The opto coupler input has one pin to the ESP and one to ground - this works without any problem but it is not widespread.
|
||||
|
||||
.. image:: P000_Relay_7.jpg
|
||||
|
||||
Most boards we've seen connect the opto coupler to 5V or 12V and the other input pin to the ESP.
|
||||
|
||||
.. image:: P000_Relay_8.jpg
|
||||
|
||||
This runs into same issues as with the PNP transistor above. The high voltage of 3.3V from ESP is far below 5V, this keeping the relay permanently active.
|
||||
The solution is same as with the transistor board above. Use some diodes between ESP and relay board usually does the job with relay boards using 5V.
|
||||
Depending on the circuit you will have to experiment how many diodes are necessary.
|
||||
|
||||
Boards with 12V
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
If your relay board uses 12V and needs "Low" to switch the relay on it gets somewhat more complex. Basically it is possible to use a lot of diodes but
|
||||
it's not very handy. You may try a Zener diode of around 8.5.. 8.7 V. Honestly we don't recommend it. In this case it is better to use an additional
|
||||
transistor or FET to get it to work. This has one advantage: It inverts the switching signal so a "low" output says the relay is off.
|
||||
|
||||
.. image:: P000_Relay_9.jpg
|
||||
|
||||
Special designed boards
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
There are some boards in the wild which can be configured if "low" or "high" should switch the relay on.
|
||||
With this boards you will have to experiment a bit with your ESP and the board, there should be a combination that works.
|
||||
|
||||
.. image:: P000_Relay_10.jpg
|
||||
|
||||
Note the jumpers down left - that's the configuration for switching on high or low level.
|
||||
|
||||
Basic ESP circuit: SSR
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This is more simple. If you got a SSR that has an input of "3...12V" or "3...30V" it usually can be driven directly from the ESP.
|
||||
The only thing you should keep in mind: Do not omit the varistor (RVx in the schematics). It protects the SSR from voltage peaks that
|
||||
may kill it within some milliseconds. Instead of the varistor a TVS diode can be used, for example a P6K400CA.
|
||||
Be careful, you have to use a bidirectional type!
|
||||
|
||||
.. image:: P000_Relay_11.jpg
|
||||
|
||||
It is possible to direct drive a SSR from the ESP but we won't recommend this. We prefer the same circuit as with the mechanical relay.
|
||||
It makes the relay circuit more universal and reduces load on the ESP.
|
||||
|
||||
.. image:: P000_Relay_12.jpg
|
||||
|
||||
Instead of the 2N2222/BC547 you may use a small FET, a BSS138 or 2N7000 / 7002. Omit the 22K resistor if useing a FET.
|
||||
R2 is needed if your relay can't take the Vcc directly. If you use a "3...30V" input SSR it's not necessary.
|
||||
|
||||
Any opto coupler is completely needless if you use a SSR. The SSR has an opto coupler built in to isolate the load from the ESP.
|
||||
At this time there are not that much relay boards with SSR in the market, this will change over time as they get more popular.
|
||||
From what is on the market be careful what you buy. Most boards we've seen nowadays on AliExpress and Ebay have a DC relay installed - they can switch DC only! They can't switch mains voltage.
|
||||
|
||||
Some words about DIY relay boards
|
||||
---------------------------------
|
||||
All in all it's no problem to build your own relay board fitting your needs exactly. But watch out if you want to switch
|
||||
mains voltage. There is a reason why in some countries the policies specify a minimum distance between the parts with high
|
||||
voltage and the low voltage circuits. Do not use experimental PCB's with copper pads or stripes!
|
||||
Good breakout boards are milled out, there is a gap in the PCB for isolating mains from low voltage.
|
||||
Prefer these boards over others without milling.
|
||||
|
||||
.. danger::
|
||||
Be very careful - mains voltage can burn your home or kill you. In case of doubt ask an expert!
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cM59HXVq>`_ `Link 2 ($) <http://s.click.aliexpress.com/e/cerop6s0>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 626 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 340 KiB |
|
After Width: | Height: | Size: 3.7 MiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 389 KiB |
|
After Width: | Height: | Size: 388 KiB |
|
After Width: | Height: | Size: 498 KiB |
@@ -0,0 +1,88 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_Servo_motor_page:
|
||||
|
||||
Servo motor
|
||||
===========
|
||||
|
||||
|P000_typename|
|
||||
|P000_status|
|
||||
|
||||
.. image:: P000_Servo_motor_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Usual servos can turn about 180° (90° in both directions from zero point).
|
||||
There are some rare servos with 270° turn. If you use a 180° type you may turn it 90° to the left or to the right.
|
||||
|
||||
.. danger::
|
||||
Trying to turn a servo more then what it can handle will run the servo against a stopper inside the gear.
|
||||
As ESP Easy tries to go further the servo starts humming and gets hot, it will die over time.
|
||||
|
||||
The third type "continuous turn servo" is not supported at this time.
|
||||
|
||||
Specifications:
|
||||
* Controlling servo motors using PWM
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Servo
|
||||
GPIO (X) <--> S (signal)
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
No device is needed, generally you use rules to activate servos, or you send commands to activate them. Below you
|
||||
find more information on how to do this.
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
On Switch#State Do
|
||||
if [Switch#State]=1
|
||||
Servo,12,1,-45
|
||||
Servo,14,2,45
|
||||
else
|
||||
Servo,12,1,0
|
||||
Servo,14,2,0
|
||||
endif
|
||||
EndOn
|
||||
|
||||
This rule will tilt the servos 45° when the button is pressed, and it'll go back to 0 once released.
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
No device is needed.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
.. include:: P001_commands_GPIO.repl
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/c5RaXUgu>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 864 KiB |
@@ -0,0 +1,104 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P000_Speaker_page:
|
||||
|
||||
Speaker
|
||||
=======
|
||||
|
||||
|P000_typename|
|
||||
|P000_status|
|
||||
|
||||
.. image:: P000_Speaker_RTTTL_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
RTTTL (Ring Tone [Text] Transfer Language) was developed by Nokia to play more "easy on the ear" melodies as ringtones for mobile phones. The tunes over all characteristics are created by using three different commands:
|
||||
|
||||
**d** - duration
|
||||
|
||||
**o** - octave
|
||||
|
||||
**b** - tempo (beat)
|
||||
|
||||
After that the actual tune is then created using standard notes (a, b, c, d, e, f, and g), before the note the duration is set, after the note the octave is set:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<duration><note><octave>
|
||||
|
||||
To compose a jingle you separate the notes with a comma.
|
||||
|
||||
Specifications:
|
||||
* Output sound
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Speaker
|
||||
GPIO <--> Positive (red)
|
||||
GND <--> Negative (black)
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
No device is needed, generally you use rules to activate different notifications, or you send commands to activate them. Below you find more information on how to do this.
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
From ESP Easy v2.0.0 its possible to play melodies via `RTTTL <https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language#Technical_specification>`_ (don't forget to remove the spaces and replace # with -, this might be fixed in future releases):
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
http://<ESP IP address>/control?cmd=rtttl,14:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6
|
||||
|
||||
This plays a melody on pin 14.
|
||||
|
||||
You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker.
|
||||
|
||||
To make a boot-sound on startup, create a rule like this:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
On System#Boot do
|
||||
rtttl,14:d=10,o=6,b=180,c,e,g
|
||||
endon
|
||||
|
||||
`A place to find more tunes <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_, all saved as txt files.
|
||||
|
||||
Besides RTTTL it's also possible to play a single tone on a pin, via a buzzer, speaker or piezo element:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
http://<ESP IP address>/control?cmd=tone,14,1300,200
|
||||
|
||||
Plays a 1300 Hz tone for 200 ms on GPIO-14.
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
No device is needed.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
.. include:: P001_commands_RTTTL.repl
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cPcaaQXI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 434 KiB |
@@ -0,0 +1,250 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
|
||||
.. csv-table::
|
||||
:header: "Command", "Class", "Purpose / Syntax"
|
||||
:widths: 8, 5, 30
|
||||
|
||||
"Debug","
|
||||
:red:`Internal`","
|
||||
Change Serial port debug level
|
||||
|
||||
``Debug,<1-4>``"
|
||||
"
|
||||
IP","
|
||||
:red:`Internal`","
|
||||
Change IP address
|
||||
|
||||
``IP,<IP address>``"
|
||||
"
|
||||
Name","
|
||||
:red:`Internal`","
|
||||
Set the name of the unit
|
||||
|
||||
``Name,<new name>``"
|
||||
"
|
||||
Password","
|
||||
:red:`Internal`","
|
||||
Set the password of the unit
|
||||
|
||||
``Password,<new password>``"
|
||||
"
|
||||
Reboot","
|
||||
:red:`Internal`","
|
||||
Reboot the ESP
|
||||
|
||||
``Reboot``"
|
||||
"
|
||||
Reset","
|
||||
:red:`Internal`","
|
||||
Reset config to factory default. Caution, all settings will be lost!
|
||||
|
||||
``Reset``"
|
||||
"
|
||||
Reset Flash Write Counter","
|
||||
:red:`Internal`","
|
||||
Reset flash write to zero.
|
||||
|
||||
``ResetFlashWriteCounter``"
|
||||
"
|
||||
Rules","
|
||||
:red:`Internal`","
|
||||
Rules enabled (1) or rules disabled (0)
|
||||
|
||||
``Rules,<1/0>``"
|
||||
"
|
||||
Save","
|
||||
:red:`Internal`","
|
||||
Save config to persistent flash memory
|
||||
|
||||
``Save``"
|
||||
"
|
||||
Settings","
|
||||
:red:`Internal`","
|
||||
Show settings on serial terminal
|
||||
|
||||
``Settings``"
|
||||
"
|
||||
TaskClear","
|
||||
:red:`Internal`","
|
||||
Delete the given task/device
|
||||
|
||||
``TaskClear,<task/device nr>``"
|
||||
"
|
||||
TaskClearAll","
|
||||
:red:`Internal`","
|
||||
Delete ALL task/device
|
||||
|
||||
``TaskClearAll``"
|
||||
"
|
||||
TaskRun","
|
||||
:red:`Internal`","
|
||||
Run/excecute the given task/device, use to manually force an update/read of the task.
|
||||
|
||||
``TaskRun,<task/device nr>``"
|
||||
"
|
||||
Unit","
|
||||
:red:`Internal`","
|
||||
Set the unit number
|
||||
|
||||
``Unit,<unit number>``"
|
||||
"
|
||||
WifiAPKey","
|
||||
:red:`Internal`","
|
||||
Change AP WPA key
|
||||
|
||||
``WifiAPKey,<WPA key>``"
|
||||
"
|
||||
WifiAPMode","
|
||||
:red:`Internal`","
|
||||
Force the unit into AP mode.
|
||||
|
||||
``WifiAPMode``"
|
||||
"
|
||||
WifiConnect","
|
||||
:red:`Internal`","
|
||||
Connect to configured wireless network
|
||||
|
||||
``WifiConnect``"
|
||||
"
|
||||
WifiDisconnect","
|
||||
:red:`Internal`","
|
||||
Disconnect from wireless network
|
||||
|
||||
``WifiDisconnect``"
|
||||
"
|
||||
WifiKey","
|
||||
:red:`Internal`","
|
||||
Change WPA key for primary WiFi
|
||||
|
||||
``WifiKey,<Wifi WPA key>``"
|
||||
"
|
||||
WifiKey2","
|
||||
:red:`Internal`","
|
||||
Change WPA key for secondary WiFi
|
||||
|
||||
``WifiKey2,<Wifi WPA key>``"
|
||||
"
|
||||
WifiScan","
|
||||
:red:`Internal`","
|
||||
Scan Wireless networks
|
||||
|
||||
``WifiScan``"
|
||||
"
|
||||
WifiSSID","
|
||||
:red:`Internal`","
|
||||
Change SSID to connect as primary WiFi
|
||||
|
||||
``WifiSSID,<SSID>``"
|
||||
"
|
||||
WifiSSID2","
|
||||
:red:`Internal`","
|
||||
Change SSID to connect as secondry WiFi
|
||||
|
||||
``WifiSSID2,<SSID>``"
|
||||
"
|
||||
Delay","
|
||||
:green:`Rules`","
|
||||
Delay rule processing
|
||||
|
||||
``Delay,<delay in milliSeconds>``"
|
||||
"
|
||||
Publish","
|
||||
:green:`Rules`","
|
||||
Send command using MQTT broker service
|
||||
|
||||
``Publish,<topic>,<value>``"
|
||||
"
|
||||
SendTo","
|
||||
:green:`Rules`","
|
||||
Send command to other ESP (using UDP)
|
||||
|
||||
``SendTo,<unit nr>,<command>``"
|
||||
"
|
||||
SendToHTTP","
|
||||
:green:`Rules`","
|
||||
Send command to other network device using HTTP
|
||||
|
||||
``SendToHTTP,<IP address>,<Portnumber>,<command>``
|
||||
|
||||
``SendToHTTP,<domain>,<Portnumber>,</url>``"
|
||||
"
|
||||
SendToUDP","
|
||||
:green:`Rules`","
|
||||
Send command to other network device using UDP (non-ESP Easy units)
|
||||
|
||||
``SendToUDP,<IP address>,<Portnumber>,<command>``"
|
||||
"
|
||||
TaskValueSet","
|
||||
:green:`Rules`","
|
||||
Set values on a **Dummy Task** (device)
|
||||
|
||||
``TaskValueSet,<task/device nr>,<value nr>,<value/formula>``"
|
||||
"
|
||||
TimerSet","
|
||||
:green:`Rules`","
|
||||
Start a timed event
|
||||
|
||||
``TimerSet,<timernr>,<timeInSeconds>``
|
||||
|
||||
``TimerSet,<timernr>,0`` disables the timer"
|
||||
"
|
||||
Event","
|
||||
:blue:`Special`","
|
||||
Create an event, it's possible to send a float value along as well.
|
||||
|
||||
See event syntax below..."
|
||||
|
||||
|
||||
Event command
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The event command is a special command used to trigger an event. This event can then be acted upon from the rules.
|
||||
You can send 0..4 event values along with the event.
|
||||
|
||||
|
||||
.. csv-table::
|
||||
:header: "Event / Info", "Rule example"
|
||||
:widths: 10, 10
|
||||
|
||||
"
|
||||
``Event,SingleEvent``
|
||||
|
||||
The event (triggered by any of the launch ways) will make the unit publish a message.
|
||||
","
|
||||
.. code-block:: html
|
||||
|
||||
on SingleEvent do
|
||||
Publish,%sysname%/Info,A single event has been triggered!
|
||||
endon
|
||||
"
|
||||
"
|
||||
``Event,SingleValue=123``
|
||||
|
||||
The event value ``123`` is intercepted and published.
|
||||
","
|
||||
.. code-block:: html
|
||||
|
||||
on SingleValue do
|
||||
Publish,%sysname%/Info,An event has been sent (%eventvalue%)!
|
||||
endon
|
||||
|
||||
TEST
|
||||
"
|
||||
"
|
||||
``Event,Multi=1,2,3,99``
|
||||
|
||||
The event value ``99`` (4) is intercepted and the rule ``Publish, ... %eventvalue1% + %eventvalue2% = [Dummy#V1]`` is
|
||||
triggered, output payload to MQTT would then be ``Lets compute 1 + 2 = 3``
|
||||
","
|
||||
.. code-block:: html
|
||||
|
||||
on Multi do
|
||||
if %eventvalue4%=99
|
||||
TaskValueSet,12,1,[%eventvalue1%+%eventvalue2%]
|
||||
Publish,%sysname%/Info,Lets compute %eventvalue1% + %eventvalue2% = [Dummy#V1]
|
||||
else
|
||||
TaskValueSet,12,1,[%eventvalue3%-%eventvalue2%]
|
||||
Publish,%sysname%/Info,Lets compute %eventvalue3% - %eventvalue2% = [Dummy#V1]
|
||||
endif
|
||||
endon
|
||||
"
|
||||
@@ -0,0 +1,47 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P001_page:
|
||||
|
||||
|P001_typename|
|
||||
==================================================
|
||||
|
||||
|P001_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P001_type|
|
||||
|
||||
Name: |P001_name|
|
||||
|
||||
Status: |P001_status|
|
||||
|
||||
GitHub: |P001_github|_
|
||||
|
||||
Maintainer: |P001_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P001_usedby|
|
||||
|
||||
Commands available
|
||||
------------------
|
||||
|
||||
.. include:: P001_commands_GPIO.repl
|
||||
.. include:: P001_commands_RTTTL.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
@@ -0,0 +1,143 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P001_Door_switch_page:
|
||||
|
||||
Door switch
|
||||
===========
|
||||
|
||||
|P001_typename|
|
||||
|P001_status|
|
||||
|
||||
.. image:: P001_Door_switch_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Any door switch module can be used as an digital input. Most none contact door switches use a technology called
|
||||
reed switch. By using a magnet (the part with no wires) the reed inside the other part (with wires) will connect
|
||||
the two parts of the reed and making a signal go low or high depending on how you have connected the switch.
|
||||
You may use it by simply connect it to either a GPIO that is normally high (pull-up) or normally low (pull-down).
|
||||
|
||||
Specifications:
|
||||
* Give a high or low signal to a GPIO
|
||||
* Power needed: 3.3V (typically)
|
||||
* Output voltage: same as input (typically)
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Door switch
|
||||
GPIO (X) <--> Signal
|
||||
|
||||
Power
|
||||
3.3V <--> Signal
|
||||
or
|
||||
GND <--> Signal
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
.. image:: P001_Setup_Door_switch_1.png
|
||||
|
||||
Task settings
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* **Device**: Name of plugin
|
||||
* **Name**: Name of the task (example name **Door**)
|
||||
* **Enable**: Should the task be enabled or not
|
||||
|
||||
Sensor
|
||||
^^^^^^
|
||||
|
||||
* **Internal pull-up**: Check if you want to use the internal pull-up of the ESP (not all GPIO pins have this internal pull-up.)
|
||||
* **Inverse logic**: Sometimes you may want the physical high value to be published as a low value. For example if the button is
|
||||
triggering a high (1) value when you push it you maybe use it to turn of a LED so the :code:`Switch#State` would then logically be
|
||||
preferred to be set as 0 and thus used as a variable for controlling that LED. See rules example below.
|
||||
|
||||
* **GPIO**: Which GPIO should be used, recommended to not use a latching switch that may set the ESP into flash mode if left
|
||||
to high/low.
|
||||
|
||||
* **Switch type**: Set the switch type to either "Switch" or "Dimmer". Door (reed) switch is a "Switch".
|
||||
|
||||
* Switch: The default way of handling a switch is by a on/off button. It's either on (:code:`1`) or off (:code:`0`).
|
||||
|
||||
* Dimmer: Not used by door (reed) switches, if you still want to use it you can have a look at the
|
||||
:ref:`P001_Switch_page` page.
|
||||
|
||||
* **Switch button type**: Set the type of switch, "Normal switch", "Push button active low", or "Push button active high".
|
||||
* Normal switch: This is the general setting to use for a PIR switch.
|
||||
|
||||
* Push button active low: Not used by door (reed) switches (in general), if you still want to use it you can have a look at the
|
||||
:ref:`P001_Switch_page` page.
|
||||
|
||||
* **Send boot state**: If checked the unit will publish the switch state when booting. If not checked you may find yourself
|
||||
with a latching switch caught in limbo. This means that the unit is registering a low/high value but the physical state of
|
||||
the switch might be the opposite. If you use a mechanical switch that may be physically set to a state you should check this
|
||||
option.
|
||||
|
||||
Advanced event management
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
* **De-bounce (ms)**: How long should the pulse (the time you press the button) be, if set to high you need to have it published
|
||||
for a longer time before the unit will register it as an state change. You could experiment with this setting to find a good
|
||||
behavior of the button if you feel that it's not responding according to your preferences.
|
||||
|
||||
* **Double click event**: Not used by door (reed) switches (in general), if you still want to use it you can have a look at the
|
||||
:ref:`P001_Switch_page` page.
|
||||
|
||||
* **Double click max interval (ms)**: Same as above..
|
||||
* **Long press event**: Same as above..
|
||||
* **Long press min interval (ms)**: Same as above..
|
||||
* **Use safe button (slower)**: Same as above..
|
||||
|
||||
Data acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used.
|
||||
* **Interval**: How often should the task publish its value (optional for switch plugins).
|
||||
|
||||
Indicators/values (recommended settings)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"State", "State", "0", "N/A", "Usually you just want the state being published when door is actually being opened/closed. If you want a continuous publishing of the state you may use the interval setting to do so."
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
on Door#State=1 do
|
||||
timerSet,1,1
|
||||
endon
|
||||
|
||||
on rules#timer=1 do
|
||||
if [Door#State]=0
|
||||
//Action if door is closed
|
||||
else
|
||||
//Action if door is opened
|
||||
endif
|
||||
endon
|
||||
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Type", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"Door switch","`AliExpress 1 ($) <http://s.click.aliexpress.com/e/ccCdXCVi>`_ `Banggood 1 ($) <https://www.banggood.com/search/reed-door.html?p=V3270422659778201806&custlinkid=76099>`_ `eBay 1 ($) <http://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&pub=5575404073&toolid=10001&campid=5338336929&customid=&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_odkw%3Ddoor%2Bswitch%26_osacat%3D0%26_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3Dreed%2Bdoor%26_sacat%3D0>`_"
|
||||
"Reed switch","`AliExpress 2 ($) <http://s.click.aliexpress.com/e/0gMmOoY>`_ `Banggood 2 ($) <https://www.banggood.com/search/reed-switch.html?p=V3270422659778201806&custlinkid=76096>`_ `eBay 2 ($) <http://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&pub=5575404073&toolid=10001&campid=5338336929&customid=&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_odkw%3Dreed%2Bdoor%26_osacat%3D0%26_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3Dreed%2Bswitch%26_sacat%3D0>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 522 KiB |
@@ -0,0 +1,150 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P001_PIR_sensor_page:
|
||||
|
||||
PIR sensor
|
||||
==========
|
||||
|
||||
|P001_typename|
|
||||
|P001_status|
|
||||
|
||||
.. image:: P001_PIR_sensor_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
A big difference from the regular tactile buttons and a PIR is that a PIR will output a high or low Signal
|
||||
without someone actually pushing a physical button. The PIR uses a pyro detector which will detect change
|
||||
in radiated heat. A person or an animal is always radiating some level of heat and when someone enters
|
||||
the vision of the PIR the amount of heat will change and the PIR will trigger a signal.
|
||||
|
||||
Specifications:
|
||||
* Motion (change in heat)
|
||||
* Power needed: 5V (typically)
|
||||
* Output voltage: 3.3V (typically)
|
||||
|
||||
.. note::
|
||||
Some PIR sensor boards have a jumper which will allow you to have the unit send a single pulse when
|
||||
the motion is detected or send a single repeatedly as long as motion is detected. Good boards also
|
||||
have a sensitivity adjustment and time delay setting which lets you tweak the way the unit is behaving,
|
||||
that could be really helpful if the default settings are triggering too much or not enough.
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP PIR
|
||||
GPIO (X) <--> I/O or OUT
|
||||
|
||||
Power
|
||||
5V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
.. image:: P001_Setup_PIR_sensor_1.png
|
||||
|
||||
Task settings
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* **Device**: Name of plugin
|
||||
* **Name**: Name of the task (example name **Motion**)
|
||||
* **Enable**: Should the task be enabled or not
|
||||
|
||||
Sensor
|
||||
^^^^^^
|
||||
|
||||
* **Internal pull-up**: Check if you want to use the internal pull-up of the ESP (not all GPIO pins have this internal pull-up.)
|
||||
* **Inverse logic**: Sometimes you may want the physical high value to be published as a low value. For example if the button is
|
||||
triggering a high (1) value when you push it you maybe use it to turn of a LED so the :code:`Switch#State` would then logically be
|
||||
preferred to be set as 0 and thus used as a variable for controlling that LED. See rules example below.
|
||||
|
||||
* **GPIO**: Which GPIO should be used, recommended to not use a latching switch that may set the ESP into flash mode if left
|
||||
to high/low.
|
||||
|
||||
* **Switch type**: Set the switch type to either "Switch" or "Dimmer". PIR is a "Switch".
|
||||
|
||||
* Switch: The default way of handling a switch is by a on/off button. It's either on (:code:`1`) or off (:code:`0`).
|
||||
|
||||
* Dimmer: Not used by PIR switches, if you still want to use it you can have a look at the
|
||||
:ref:`P001_Switch_page` page.
|
||||
|
||||
|
||||
* **Switch button type**: Set the type of switch, "Normal switch", "Push button active low", or "Push button active high".
|
||||
* Normal switch: This is the general setting to use for a door (reed) switch.
|
||||
|
||||
* Push button active low: Not used by PIR switches (in general), if you still want to use it you can have a look at the
|
||||
:ref:`P001_Switch_page` page.
|
||||
|
||||
* **Send boot state**: If checked the unit will publish the switch state when booting. If not checked you may find yourself
|
||||
with a latching switch caught in limbo. This means that the unit is registering a low/high value but the physical state of
|
||||
the switch might be the opposite. If you use a mechanical switch that may be physically set to a state you should check this
|
||||
option.
|
||||
|
||||
Advanced event management
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
* **De-bounce (ms)**: How long should the pulse (the time you press the button) be, if set to high you need to have it published
|
||||
for a longer time before the unit will register it as an state change. You could experiment with this setting to find a good
|
||||
behavior of the button if you feel that it's not responding according to your preferences.
|
||||
|
||||
* **Double click event**: Not used by PIR switches (in general), if you still want to use it you can have a look at the
|
||||
:ref:`P001_Switch_page` page.
|
||||
|
||||
* **Double click max interval (ms)**: Same as above..
|
||||
* **Long press event**: Same as above..
|
||||
* **Long press min interval (ms)**: Same as above..
|
||||
* **Use safe button (slower)**: Same as above..
|
||||
|
||||
Data acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used.
|
||||
* **Interval**: How often should the task publish its value (optional for switch plugins).
|
||||
|
||||
Indicators/values (recommended settings)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"State", "Detection", "0", "N/A", "Usually you just want the state being published when door is actually being opened/closed. If you want a continuous publishing of the state you may use the interval setting to do so."
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
on Motion#Detection=1 do
|
||||
timerSet,1,1
|
||||
endon
|
||||
|
||||
on rules#timer=1 do
|
||||
if [Motion#Detection]=0
|
||||
//Action if NO motion is detected
|
||||
else
|
||||
//Action if motion is detected
|
||||
endif
|
||||
endon
|
||||
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/j0xC1UU>`_"
|
||||
"Banggood","`Link 2 ($) <https://www.banggood.com/RobotDyn-5V-PIR-Motion-Sensor-Adjustable-Time-Delay-Sensitive-Module-For-Arduino-p-1244536.html?p=V3270422659778201806>`_"
|
||||
"eBay","`Link 3 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fitm%2FNew-HC-SR501-Infrared-PIR-Motion-Sensor-Module-for-Arduino-Raspberry-pi%2F132113984394%3Fepid%3D14013121702%26hash%3Ditem1ec29b6b8a%3Ag%3AkusAAOSwT5xZTInL>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 129 KiB |
@@ -0,0 +1,161 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P001_Switch_page:
|
||||
|
||||
Switch
|
||||
======
|
||||
|
||||
|P001_typename|
|
||||
|P001_status|
|
||||
|
||||
.. image:: P001_Switch_1.jpg
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Any switch module can be used as an digital input. In everyday language the switch is often referred to as a "button".
|
||||
You may use it by simply connect it to either a GPIO that is normally high (pull-up) or normally low (pull-down). Other
|
||||
types of switches are door switches (reed switch), sound activated switches and pulse activated switches.
|
||||
|
||||
Specifications:
|
||||
* Give a high or low signal to a GPIO
|
||||
* Power needed: 3.3V (typically)
|
||||
* Output voltage: same as input (typically)
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP Switch/button
|
||||
GPIO (X) <--> Signal
|
||||
|
||||
Power
|
||||
3.3V <--> Signal
|
||||
or
|
||||
GND <--> Signal
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
.. image:: P001_Setup_Switch_1.png
|
||||
|
||||
Task settings
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* **Device**: Name of plugin
|
||||
* **Name**: Name of the task (recommended name **SwitchN**, where N is a number)
|
||||
* **Enable**: Should the task be enabled or not
|
||||
|
||||
Sensor
|
||||
^^^^^^
|
||||
|
||||
* **Internal pull-up**: Check if you want to use the internal pull-up of the ESP (not all GPIO pins have this internal pull-up.)
|
||||
* **Inverse logic**: Sometimes you may want the physical high value to be published as a low value. For example if the button is
|
||||
triggering a high (1) value when you push it you maybe use it to turn of a LED so the :code:`Switch#State` would then logically be
|
||||
preferred to be set as 0 and thus used as a variable for controlling that LED. See rules example below.
|
||||
|
||||
* **GPIO**: Which GPIO should be used, recommended to not use a latching switch that may set the ESP into flash mode if left
|
||||
to high/low.
|
||||
|
||||
* **Switch type**: Set the switch type to either "Switch" or "Dimmer". Dimmer is used if you have a knob that can be turned and
|
||||
thus give multiple switch trigger signals.
|
||||
|
||||
* Switch: The default way of handling a switch is by a on/off button. It's either on (:code:`1`) or off (:code:`0`).
|
||||
* Dimmer: If you use the dimmer option you will be able to control the device using a dimmer (knob that can be turned).
|
||||
The value allowed for dimmers are :code:`0..255` and a new setting is added to the web form (Dim value).
|
||||
|
||||
|
||||
* **Switch button type**: Set the type of switch, "Normal switch", "Push button active low", or "Push button active high".
|
||||
* Normal switch: If you use a normal switch you should use this (you can always start with this setting).
|
||||
|
||||
* Push button active low: If you use a momentary switch you may want the state to be activated when you have it published
|
||||
and not wait for it to be released. Depending on your setup you can then experiment with the active low / active high
|
||||
to make it behave as you want.
|
||||
|
||||
* Push button active high: See bullet point above.
|
||||
|
||||
* **Send boot state**: If checked the unit will publish the switch state when booting. If not checked you may find yourself
|
||||
with a latching switch caught in limbo. This means that the unit is registering a low/high value but the physical state of
|
||||
the switch might be the opposite. If you use a mechanical switch that may be physically set to a state you should check this
|
||||
option.
|
||||
|
||||
Advanced event management
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
* **De-bounce (ms)**: How long should the pulse (the time you press the button) be, if set to high you need to have it published
|
||||
for a longer time before the unit will register it as an state change. You could experiment with this setting to find a good
|
||||
behavior of the button if you feel that it's not responding according to your preferences.
|
||||
|
||||
* **Double click event**: If enabled the unit will detect double clicks which are within the set interval (see below). The double
|
||||
click event is identified as :code:`Switch#State=3`. There's three options for the double click:
|
||||
* Active only on low: the double clicks will be counted by how many low signals that is triggered within the set time.
|
||||
* Active only on high: the double clicks will be counted by how many high signals that is triggered within the set time.
|
||||
|
||||
* Active on high & low: the double clicks will be counted by how many high and low signals that is triggered within the set time.
|
||||
This means that a double click could be registered as a press and release of a button. So not actually double click.
|
||||
|
||||
* **Double click max interval (ms)**: This is the interval that you need to perform the double click within.
|
||||
|
||||
* **Long press event**: If enabled the unit will detect a long press of a button. There's three different behaviors of the long press:
|
||||
|
||||
* Active only on low: this means that the unit will only be triggering the long press event if the signal is low. Two different event
|
||||
values are used, :code:`10` if the state goes from 0 to 1 (:code:`Switch#State=10`), and :code:`11` if the state goes
|
||||
from 1 to 0 (:code:`Switch#State=11`).
|
||||
|
||||
* Active only on high: same as above but only triggered on high signal.
|
||||
* Active on high & low: the long press will be triggered both on high and low signals.
|
||||
|
||||
* **Long press min interval (ms)**: This is the interval that you need to press the button before the long press event is triggered.
|
||||
|
||||
* **Use safe button (slower)**:
|
||||
|
||||
Data acquisition
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used.
|
||||
* **Interval**: How often should the task publish its value (optional for switch plugins).
|
||||
|
||||
Indicators/values (recommended settings)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"State", "State", "0", "N/A", "Usually you just want the state being published when an actual push has been happening. If you want a continuous publishing of the state you may use the interval setting to do so."
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
on Switch#State do
|
||||
if [Switch#State]=3
|
||||
//double click triggered!
|
||||
GPIO,12,0
|
||||
else
|
||||
GPIO,2,[Switch#State]
|
||||
GPIO,12,1
|
||||
endif
|
||||
endon
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"Toggle switch","`AliExpress 1 ($) <http://s.click.aliexpress.com/e/fY7OgXO>`_ `Banggood 1 ($) <https://www.banggood.com/5pcs-12V-Round-Rocker-Toggle-ONOFF-Switch-3-Pins-p-1046835.html?p=V3270422659778201806>`_ `Banggood 2 ($) <https://www.banggood.com/Red-3-Pin-ON-ON-SPDT-Mini-Toggle-Switch-AC-6A125V-3A250V-p-967014.html?p=V3270422659778201806>`_ `eBay 1 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3Dtoggle%2Bswitch%26_sacat%3D0%26LH_TitleDesc%3D0%26_osacat%3D0%26_odkw%3DMomentary%2Bswitch>`_"
|
||||
"Float switch","`AliExpress 2 ($) <http://s.click.aliexpress.com/e/clw6aFEY>`_ `Banggood 3 ($) <https://www.banggood.com/10W-Black-Side-Mount-Water-Level-Sensor-Controller-Liquid-Float-Switch-p-961256.html?p=V3270422659778201806>`_ `Banggood 4 ($) <https://www.banggood.com/Side-mounted-Liquid-Water-Level-Sensor-Right-Angle-Float-Switch-p-945298.html?p=V3270422659778201806>`_ `eBay 2 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3DFloat%2Bswitch%26_sacat%3D0%26LH_TitleDesc%3D0%26_osacat%3D0%26_odkw%3DMembrane%2Bswitch>`_"
|
||||
"Membrane switch","`AliExpress 3 ($) <http://s.click.aliexpress.com/e/ZkI1ov6>`_ `Banggood 5 ($) <https://www.banggood.com/4-x-3-Matrix-12-Key-Array-Membrane-Switch-Keypad-Keyboard-For-Arduino-p-87370.html?p=V3270422659778201806>`_ `Banggood 6 ($) <https://www.banggood.com/5Pcs-DC-4-Key-Matrix-Membrane-Switch-Control-Keypad-Keyboard-With-LED-p-965091.html?p=V3270422659778201806>`_ `eBay 3 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3DMembrane%2Bswitch%26_sacat%3D0%26LH_TitleDesc%3D0%26_osacat%3D0%26_odkw%3DCapacitive%2Btouch%2Bswitch>`_"
|
||||
"Capacitive (touch) switch","`AliExpress 4 ($) <http://s.click.aliexpress.com/e/cMIem1Nq>`_ `Banggood 7 ($) <https://www.banggood.com/TTP223B-Digital-Touch-Sensor-Capacitive-Touch-Switch-Module-For-Arduino-p-1158322.html?p=V3270422659778201806>`_ `Banggood 8 ($) <https://www.banggood.com/Jog-Type-Touch-Sensor-Module-Capacitive-Touch-Switch-Module-p-916212.html?p=V3270422659778201806>`_ `Banggood 9 ($) <https://www.banggood.com/2_7V-6V-HTTM-Series-Capacitive-Touch-Switch-Button-Module-p-1245166.html?p=V3270422659778201806>`_ `eBay 4 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3DCapacitive%2Btouch%2Bswitch%26_sacat%3D0>`_"
|
||||
"Limit switch","`AliExpress 5 ($) <http://s.click.aliexpress.com/e/bWOekFqo>`_ `Banggood 10 ($) <https://www.banggood.com/10Pcs-Micro-Limit-Switch-Roller-Lever-5A-125V-Open-Close-Switch-p-945733.html?p=V3270422659778201806>`_ `Banggood 11 ($) <https://www.banggood.com/10-Types-250VAC-Limit-Switch-IP65-Adjustable-Actuator-Roller-Arm-Rod-Spring-Coil-Endstop-Switch-p-1297617.html?p=V3270422659778201806>`_ `eBay 5 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3DLimit%2Bswitch%26_sacat%3D0%26LH_TitleDesc%3D0%26_osacat%3D0%26_odkw%3DMagnetic%2Breed%2Bswitch>`_"
|
||||
"Momentary switch","`AliExpress 6 ($) <http://s.click.aliexpress.com/e/bPEYQDfw>`_ `Banggood 12 ($) <https://www.banggood.com/420pcs-14-Types-Momentary-Tact-Tactile-Push-Button-Switch-SMD-Assortment-Kit-Set-p-1154674.html?p=V3270422659778201806>`_ `Banggood 13 ($) <https://www.banggood.com/100-Pcs-Micro-Switch-Tact-Cap-Slim-Cap-Tactile-Push-Button-Switch-Momentary-Tact-p-1277707.html?p=V3270422659778201806>`_ `Banggood 14 ($) <https://www.banggood.com/36V-2A-12mm-Momentary-Push-Button-Switch-LED-Switch-Waterproof-Switch-p-994547.html?p=V3270422659778201806>`_ `eBay 6 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3DMomentary%2Bswitch%26_sacat%3D0%26LH_TitleDesc%3D0%26_osacat%3D0%26_odkw%3DLimit%2Bswitch>`_"
|
||||
|
||||
|
||||
|affiliate|
|
||||
|
||||
.. More pictures
|
||||
.. -------------
|
||||
|
After Width: | Height: | Size: 942 KiB |
@@ -0,0 +1,118 @@
|
||||
.. These P001 commands should be moved to core (P000)...
|
||||
|
||||
:ref:`P000_page` |P000_status|
|
||||
|
||||
Supported hardware: |P000_usedby_GPIO|
|
||||
|
||||
.. csv-table::
|
||||
:header: "Command (GPIO/Value)", "Extra information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``GPIO,<GPIO>,<state>``
|
||||
|
||||
GPIO: 0 ... 16
|
||||
|
||||
State:
|
||||
|
||||
**2** (HIGH-Z, input)
|
||||
|
||||
**1** (HIGH, output)
|
||||
|
||||
**0** (LOW, output)
|
||||
","
|
||||
**Basic on/off.**.
|
||||
We can control a pin with simple http URL commands. To change the pin to high or low steady output. Setting GPIO to **2** means
|
||||
that it will be able to detect low level relays (with high impedance, Z).
|
||||
"
|
||||
"
|
||||
``GPIOtoggle,<GPIO>``
|
||||
|
||||
GPIO: 0 ... 16
|
||||
|
||||
","
|
||||
**Toggle on/off.**.
|
||||
Toggle the current (output) state of the given GPIO pin.
|
||||
This will only be executed on pins set to be in output mode.
|
||||
"
|
||||
"
|
||||
``LongPulse,<GPIO>,<state>,<duration>``
|
||||
|
||||
GPIO: 0 ... 16
|
||||
|
||||
State: 1/0
|
||||
|
||||
Duration: 1 ... 999 S
|
||||
","
|
||||
**To send a *long* pulse to a certain pin.**.
|
||||
A long pulse is basically the same as the plain pulse. Duration is defined in seconds, which makes it more suitable for longer duration.
|
||||
This command is not blocking, but will send 2 events to start and stop the pulse. This may have some variation depending on the system load of the module.
|
||||
Variation is typically up-to 10 msec, but may be up-to a second, depending on active plugins and controllers performing blocking operations.
|
||||
"
|
||||
"
|
||||
``LongPulse_mS,<GPIO>,<state>,<duration>``
|
||||
|
||||
GPIO: 0 ... 16
|
||||
|
||||
State: 1/0
|
||||
|
||||
Duration: 10 ... 15000 msec
|
||||
","
|
||||
**To send a *long* pulse to a certain pin.**
|
||||
A ``LongPulse_mS`` is the same as the regular ``LongPulse``. The only difference is the time base in milliseconds rather than in seconds.
|
||||
"
|
||||
"
|
||||
``Pulse,<GPIO>,<state>,<duration>``
|
||||
|
||||
GPIO: 0 ... 16
|
||||
|
||||
State: 1/0
|
||||
|
||||
Duration: 0 ... 1000 msec
|
||||
","
|
||||
**To send a *short* pulse to a certain pin.**
|
||||
Example to send an active high (1) pulse on GPIO 14 for 500 mSeconds. Pulse duration is in milliseconds. State is 1 or 0.
|
||||
N.B. this is a blocking call, meaning no other actions will be performed during the pulse.
|
||||
"
|
||||
"
|
||||
``PWM,<GPIO>,<duty>``
|
||||
|
||||
``PWM,<GPIO>,<duty>,<duration>``
|
||||
|
||||
``PWM,<GPIO>,<duty>,<duration>,<frequency>``
|
||||
|
||||
GPIO: 0 ... **15**
|
||||
|
||||
Duty: 0 ... 1023
|
||||
|
||||
Duration: 100 ... 15000 msec (optional)
|
||||
|
||||
Frequency: 100 ... 40000 Hz (optional)
|
||||
","
|
||||
**To set a certain PWM level.**
|
||||
If you have set a certain GPIO to a PWM level and want to use it as a regular HIGH/LOW pin you need to reset by setting the PWM level to 0.
|
||||
|
||||
Duration (in msec) parameter will create a fading.
|
||||
Value of 0 will not set a duration.
|
||||
|
||||
Frequency (in Hz) will be set to 1000 Hz when not given.
|
||||
Frequencies above 30 kHz are not stable and will likely crash the ESP.
|
||||
"
|
||||
"
|
||||
``Servo,<servo>,<GPIO>,<position>``
|
||||
|
||||
GPIO: 0 ... **15**
|
||||
|
||||
Servo: 1/2
|
||||
|
||||
Position: -180 ... 180 (see warning below)
|
||||
","
|
||||
**To control a servo motor.**
|
||||
We currently support a maximum of two servo motors so you can build a pan & tilt device if you like.
|
||||
|
||||
.. warning::
|
||||
Most servos are not able to turn full 360°! Normally the servos are able to go from **-90°** to **90°**, some rare servos do allow for -135° to 135°.
|
||||
|
||||
A position value of 9000 will stop the PWM signal.
|
||||
This can be useful to save energy on servos which do not need power to remain at the same position.
|
||||
"
|
||||
@@ -0,0 +1,46 @@
|
||||
.. These P001 commands should be moved to core (P000)...
|
||||
|
||||
:ref:`P000_page` |P000_status|
|
||||
|
||||
Supported hardware: |P000_usedby_RTTTL| (Ringtones etc.)
|
||||
|
||||
.. csv-table::
|
||||
:header: "Command (GPIO/Value)", "Extra information"
|
||||
:widths: 20, 30
|
||||
|
||||
"
|
||||
``tone,<gpio>,<tone>,<duration>``
|
||||
|
||||
GPIO: 12 ... 16
|
||||
|
||||
Tone: 20 ... 13000 Hz
|
||||
|
||||
Duration: 100 ... 15000 msec
|
||||
","
|
||||
You should try to use GPIO 12...16 since these generally aren't used.
|
||||
The recommended tone range is 20 Hz ... 13 kHz.
|
||||
Up-to 40 kHz should be possible to generate, but will be inaudible for humans.
|
||||
Frequencies above 30 kHz are not stable and will likely crash the ESP.
|
||||
|
||||
Duration is set in ms.
|
||||
|
||||
N.B. tones with a duration less than 50 msec will be blocking.
|
||||
Longer duration will use the scheduler, which may cause some fluctuations in the duration.
|
||||
"
|
||||
"
|
||||
``rtttl,<gpio>,<value>``
|
||||
|
||||
GPIO: 12 ... 16
|
||||
|
||||
Value: d=<duration>,o=<octave>,b=<tempo>,<notes...>
|
||||
","
|
||||
You should try to use GPIO 12...16 since these generally aren't used by ESP internal functions.
|
||||
N.B. Playing a tune is blocking for as long as the tune is playing.
|
||||
|
||||
Value can be defined like <name_of_melody:duration,octave,beat,notes....>
|
||||
|
||||
For example:
|
||||
``rtttl,14,test:d=8,o=5,b=180,c6,b,c6,p,g,g-``
|
||||
|
||||
`More RTTTL Ringtone Downloads <http://www.picaxe.com/RTTTL-Ringtones-for-Tune-Command/>`_
|
||||
"
|
||||
@@ -0,0 +1,47 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P002_page:
|
||||
|
||||
|P002_typename|
|
||||
==================================================
|
||||
|
||||
|P002_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P002_type|
|
||||
|
||||
Name: |P002_name|
|
||||
|
||||
Status: |P002_status|
|
||||
|
||||
GitHub: |P002_github|_
|
||||
|
||||
Maintainer: |P002_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P002_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P002_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
|
||||
.. _P002_ESP82XX_internal_page:
|
||||
|
||||
ESP82XX internal
|
||||
================
|
||||
|
||||
|P002_typename|
|
||||
|P002_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Analog signal (0-1V)
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P002_PCF8591_page:
|
||||
|
||||
PCF8591
|
||||
=======
|
||||
|
||||
|P002_typename|
|
||||
|P002_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Analog signal (0-5V)
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,71 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P002_Photosensitive_resistor_page:
|
||||
|
||||
Photosensitive resistor
|
||||
=======================
|
||||
|
||||
|P002_typename|
|
||||
|P002_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Light intensity
|
||||
* Analog 1-100% or Binary above/below trigger value
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P003_page:
|
||||
|
||||
|P003_typename|
|
||||
==================================================
|
||||
|
||||
|P003_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P003_type|
|
||||
|
||||
Name: |P003_name|
|
||||
|
||||
Status: |P003_status|
|
||||
|
||||
GitHub: |P003_github|_
|
||||
|
||||
Maintainer: |P003_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P003_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P003_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P003_LJ12A3_page:
|
||||
|
||||
LJ12A3
|
||||
======
|
||||
|
||||
|P003_typename|
|
||||
|P003_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Inductive proximity sensor
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P003_Pulse_logic_input_page:
|
||||
|
||||
Pulse logic input
|
||||
=================
|
||||
|
||||
|P003_typename|
|
||||
|P003_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* General, output as pulse
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,71 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P003_TCR5000_page:
|
||||
|
||||
TCR5000
|
||||
=======
|
||||
|
||||
|P003_typename|
|
||||
|P003_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* IR emitter + phototransistor (for ex. water/electricity meters)
|
||||
* Distance
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P004_page:
|
||||
|
||||
|P004_typename|
|
||||
==================================================
|
||||
|
||||
|P004_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P004_type|
|
||||
|
||||
Name: |P004_name|
|
||||
|
||||
Status: |P004_status|
|
||||
|
||||
GitHub: |P004_github|_
|
||||
|
||||
Maintainer: |P004_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P004_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P004_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P004_DS18b20_page:
|
||||
|
||||
DS18b20
|
||||
=======
|
||||
|
||||
|P004_typename|
|
||||
|P004_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Temperature (-55 to +125C)
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P005_page:
|
||||
|
||||
|P005_typename|
|
||||
==================================================
|
||||
|
||||
|P005_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P005_type|
|
||||
|
||||
Name: |P005_name|
|
||||
|
||||
Status: |P005_status|
|
||||
|
||||
GitHub: |P005_github|_
|
||||
|
||||
Maintainer: |P005_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P005_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P005_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P005_DHT11_DHT22_page:
|
||||
|
||||
DHT11/DHT22
|
||||
===========
|
||||
|
||||
|P005_typename|
|
||||
|P005_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Temperature (-40 to +85C)
|
||||
* Humidity (0-100 % rel. humidity)
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P006_page:
|
||||
|
||||
|P006_typename|
|
||||
==================================================
|
||||
|
||||
|P006_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P006_type|
|
||||
|
||||
Name: |P006_name|
|
||||
|
||||
Status: |P006_status|
|
||||
|
||||
GitHub: |P006_github|_
|
||||
|
||||
Maintainer: |P006_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P006_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P006_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P006_BMP085_BMP180_page:
|
||||
|
||||
BMP085/BMP180
|
||||
=============
|
||||
|
||||
|P006_typename|
|
||||
|P006_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Temperature (-40 to +85C)
|
||||
* Barometric pressure (300-1100 hPa)
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P007_page:
|
||||
|
||||
|P007_typename|
|
||||
==================================================
|
||||
|
||||
|P007_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P007_type|
|
||||
|
||||
Name: |P007_name|
|
||||
|
||||
Status: |P007_status|
|
||||
|
||||
GitHub: |P007_github|_
|
||||
|
||||
Maintainer: |P007_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P007_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P007_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P008_page:
|
||||
|
||||
|P008_typename|
|
||||
==================================================
|
||||
|
||||
|P008_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P008_type|
|
||||
|
||||
Name: |P008_name|
|
||||
|
||||
Status: |P008_status|
|
||||
|
||||
GitHub: |P008_github|_
|
||||
|
||||
Maintainer: |P008_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P008_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P008_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P008_Wiegand-26_page:
|
||||
|
||||
Wiegand-26
|
||||
==========
|
||||
|
||||
|P008_typename|
|
||||
|P008_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* RFID
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P009_page:
|
||||
|
||||
|P009_typename|
|
||||
==================================================
|
||||
|
||||
|P009_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P009_type|
|
||||
|
||||
Name: |P009_name|
|
||||
|
||||
Status: |P009_status|
|
||||
|
||||
GitHub: |P009_github|_
|
||||
|
||||
Maintainer: |P009_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P009_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P009_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
||||
.. _P009_MCP23017_page:
|
||||
|
||||
MCP23017
|
||||
========
|
||||
|
||||
|P009_typename|
|
||||
|P009_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Input / output
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p01x.repl
|
||||
.. _P010_page:
|
||||
|
||||
|P010_typename|
|
||||
==================================================
|
||||
|
||||
|P010_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P010_type|
|
||||
|
||||
Name: |P010_name|
|
||||
|
||||
Status: |P010_status|
|
||||
|
||||
GitHub: |P010_github|_
|
||||
|
||||
Maintainer: |P010_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P010_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P010_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p01x.repl
|
||||
.. _P010_BH1750_page:
|
||||
|
||||
BH1750
|
||||
======
|
||||
|
||||
|P010_typename|
|
||||
|P010_status|
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
|
||||
Specifications:
|
||||
* Illuminance, lux
|
||||
|
||||
|
||||
Wiring
|
||||
------
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
ESP S8
|
||||
GPIO (X) <--> TX
|
||||
GPIO (X) <--> RX
|
||||
|
||||
|
||||
Power
|
||||
5.0V <--> VCC
|
||||
GND <--> GND
|
||||
|
||||
|
||||
Setup
|
||||
-----
|
||||
|
||||
|
||||
|
||||
Rules examples
|
||||
--------------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
//Code below...
|
||||
|
||||
|
||||
Indicators (recommended settings)
|
||||
---------------------------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
||||
:widths: 8, 5, 5, 5, 40
|
||||
|
||||
"XXXXXX", "N/A", "", "", ""
|
||||
|
||||
Where to buy
|
||||
------------
|
||||
|
||||
.. csv-table::
|
||||
:header: "Store", "Link"
|
||||
:widths: 5, 40
|
||||
|
||||
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/cg1fhDDI>`_"
|
||||
|
||||
|affiliate|
|
||||
|
||||
|
||||
More pictures
|
||||
-------------
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p01x.repl
|
||||
.. _P011_page:
|
||||
|
||||
|P011_typename|
|
||||
==================================================
|
||||
|
||||
|P011_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P011_type|
|
||||
|
||||
Name: |P011_name|
|
||||
|
||||
Status: |P011_status|
|
||||
|
||||
GitHub: |P011_github|_
|
||||
|
||||
Maintainer: |P011_maintainer|
|
||||
|
||||
|
||||
Supported hardware
|
||||
------------------
|
||||
|
||||
|P011_usedby|
|
||||
|
||||
.. Commands available
|
||||
.. ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. .. include:: P011_commands.repl
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Major overhaul for 2.0 release.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
...
|
||||
|
||||
|added|
|
||||
Initial release version.
|
||||
|
||||
|
||||
|
||||