Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into feature/P095-add-extra-display-types

This commit is contained in:
Ton Huisman
2022-07-28 22:35:19 +02:00
284 changed files with 3700 additions and 2855 deletions
+43 -42
View File
@@ -10,7 +10,7 @@ For ways to *support* us, see [this announcement on the forum](https://www.letsc
Introduction and wiki: https://www.letscontrolit.com/wiki/index.php/ESPEasy#Introduction
**MEGA**
:warning:This is the development branch of ESPEasy. All new untested features go into this branch. If you want to do a bugfix, do it on the stable branch, we will merge the fix to the development branch as well.:warning:
This is the development branch of ESPEasy. All new features go into this branch, and it has become the current stable branch. If you want to do a bugfix, do it on this branch.
Check here to learn how to use this branch and help us improving ESPEasy: http://www.letscontrolit.com/wiki/index.php/ESPEasy#Source_code_development
@@ -29,60 +29,64 @@ The web flasher is using [ESP Web Tools](https://esphome.github.io/esp-web-tools
On demand, controlled by the repo owner, our build-bot will build a new binary release: https://github.com/letscontrolit/ESPEasy/releases
The releases are named something like 'mega-20210501' (last number is the build date)
The releases are named something like 'mega-20220626' (last number is the build date)
Depending on your needs, we release different types of files:
The name is built up from a few key parts:
ESPEasy_mega\__[releasedate]_\__[build-type]_\__[opt-arduino-library]_\__[hardware-type]_\__[flash-size]__[filesystem-size]_\__[opt-build-features]_.bin
ESPEasy_mega\_*[releasedate]*\_*[build-type]*\_*[opt-arduino-library]*\_*[hardware-type]*\_*[flash-size][filesystem-size]*\_*[opt-build-features]*.bin
_[build-type]_ can be any of:
Build type | Description | included plugins |
------------|-------------------------------------------|--------------------------------|
custom | Custom predefined set/Defined in Custom.h | Specific |
normal | Standard plugins | Stable |
test_A | Normal + test set A | Stable + Testing base + set A |
test_B | Normal + test set B | Stable + Testing base + set B |
test_C | Normal + test set C | Stable + Testing base + set C |
test_D | Normal + test set D | Stable + Testing base + set D |
test_E | Normal + test set E | Stable + Testing base + set E |
max | All available plugins | All available |
energy | All plugins related to energy measurement | Stable + Energy measurement |
display | All plugins related to displays | Stable + Displays |
hard | hardware specific builds | Minimal |
minimal | minimal plugins for specific use-cases | Switch and Controller |
spec_* | specialized technical builds | Not intended for regular use |
IRext | Infra-red hardware specific | Sending and receiving IR cmd |
*[build-type]* can be any of:
Build type | Description | included plugins |
-------------|-------------------------------------------|----------------------------------|
custom | Custom predefined set/Defined in Custom.h | Specific |
normal | Standard plugins | Stable |
collection_A | Normal + plugin collection A | Stable + Collection base + set A |
collection_B | Normal + plugin collection B | Stable + Collection base + set B |
collection_C | Normal + plugin collection C | Stable + Collection base + set C |
collection_D | Normal + plugin collection D | Stable + Collection base + set D |
collection_E | Normal + plugin collection E | Stable + Collection base + set E |
max | All available plugins | All available |
energy | All plugins related to energy measurement | Stable + Energy measurement |
display | All plugins related to displays | Stable + Displays |
neopixel | All plugins related to neopixel | Stable + Neopixel |
hard | hardware specific builds | Minimal |
minimal | minimal plugins for specific use-cases | Switch and Controller |
spec_* | specialized technical builds | Not intended for regular use |
IRext | Infra-red hardware specific | Sending and receiving IR cmd |
_[opt-arduino-library]_ (optional) can be any of:
*[opt-arduino-library]* (optional) can be any of:
Arduino library | Description |
----------------|------------------------------------|
alt_wifi | Alternative WiFi configuration |
beta | Arduino Beta release |
sdk3 | Arduino SDK v.3 |
core_274 | Arduino Core 2.7.4 release |
core_302 | Arduino Core 3.0.2 release |
core_274_sdk3 | Arduino Core 2.7.4 SDK v.3 release |
_[hardware-type]_ cn be any of:
*[hardware-type]* can be any of:
Hardware type | Description |
-----------------|---------------------------------------------|
ESP8266 | Espressif ESP8266 generic boards |
ESP8285 | Espressif ESP8285 generic boards 1MB Flash |
ESP8266 | Espressif ESP8266/ESP8285 generic boards |
WROOM02 | Espressif ESP8266 WRoom02 boards |
ESP32 | Espressif ESP32 generic boards |
ESP32s2 | Espressif ESP32-S2 generic boards |
ESP32-wrover-kit | Espressif ESP32 wrover-kit boards |
SONOFF | Sonoff hardware specific |
other_POW | Switch with power measurement |
Shelly_1 | Shelly 1 switch |
Shelly_PLUG_S | Shelly plug S switch with power measurement |
Ventus | Ventus W266 weather station |
LCtech | LC-tech serial switch |
LCtech_relay | LC-tech serial switch |
N.B. Starting 2022/07/23, 1M ESP8266 builds can also be used on ESP8285 units and thus there is no longer a specific ESP8285 build anymore.
_[flash-size]_ can be any of:
*[flash-size]* can be any of:
Flash size | Description |
-----------|-----------------------------|
1M | 1 MB with 128 kB filesystem |
@@ -93,11 +97,10 @@ Flash size | Description |
16M | 16 MB with 14 MB filesystem |
4M316k | 4 MB with 316 kB filesystem |
16M1M | 16 MB with 1 MB filesystem |
16M2M | 16 MB with 2 MB filesystem |
16M8M | 16 MB with 8 MB filesystem |
_[opt-build-features]_ can be any of:
*[opt-build-features]* can be any of:
Build features | Description |
----------------|--------------------------------------------------------------------------|
LittleFS | Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable \> 2 MB) |
@@ -105,27 +108,25 @@ VCC | Analog input configured to measure VCC voltage
OTA | Arduino OTA (Over The Air) update feature enabled |
Domoticz | Only Domoticz controllers (HTTP+MQTT) and plugins included |
FHEM_HA | Only FHEM/OpenHAB/Home Assistant (MQTT) controllers and plugins included |
lolin_d32_pro | Specific Lolin hardware options enabled |
ETH | Ethernet interface enabled (ESP32 only) |
Some example firmware names:
Firmware name | Hardware | Included plugins |
---------------------------------------------------|-------------------------|-------------------------------|
ESPEasy_mega-20210501_normal_ESP8266_1M.bin | ESP8266 with 1MB flash | Stable |
ESPEasy_mega-20210501_normal_ESP8285_1M.bin | ESP8285 with 1MB flash | Stable |
ESPEasy_mega-20210501_normal_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable |
ESPEasy_mega-20210501_test_A_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable + Testing base + set A |
ESPEasy_mega-20210501_normal_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable |
ESPEasy_mega-20210501_test_A_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Testing base + set A |
ESPEasy_mega-20210501_test_B_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Testing base + set B |
ESPEasy_mega-20210501_max_ESP32_16M1M.bin | ESP32 with 16MB flash | All available plugins |
ESPEasy_mega-20210501_max_ESP32_16M8M_LittleFS.bin | ESP32 with 16MB flash | All available plugins |
Firmware name | Hardware | Included plugins |
----------------------------------------------------|--------------------------------|----------------------------------|
ESPEasy_mega-20220626_normal_ESP8266_1M.bin | ESP8266/ESP8285 with 1MB flash | Stable |
ESPEasy_mega-20220626_normal_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable |
ESPEasy_mega-20220626_collection_A_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable + Collection base + set A |
ESPEasy_mega-20220626_normal_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable |
ESPEasy_mega-20220626_collection_A_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Collection base + set A |
ESPEasy_mega-20220626_collection_B_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Collection base + set B |
ESPEasy_mega-20220626_max_ESP32_16M1M.bin | ESP32 with 16MB flash | All available plugins |
ESPEasy_mega-20220626_max_ESP32_16M8M_LittleFS.bin | ESP32 with 16MB flash | All available plugins |
To see what plugins are included in which testing set, you can find that on the [ESPEasy Plugin overview page](https://espeasy.readthedocs.io/en/latest/Plugin/_Plugin.html)
To see what plugins are included in which collection set, you can find that on the [ESPEasy Plugin overview page](https://espeasy.readthedocs.io/en/latest/Plugin/_Plugin.html)
## Documentation & more info
Our new, in-depth documentation can be found at [ESPEasy.readthedocs.io](https://espeasy.readthedocs.io/en/latest/). Automatically built, so always up-to-date according to the contributed contents. The old Wiki documention can be found at [letscontrolit.com/wiki](https://www.letscontrolit.com/wiki/index.php?title=ESPEasy).
Our new, in-depth documentation can be found at [ESPEasy.readthedocs.io](https://espeasy.readthedocs.io/en/latest/). Automatically built, so always up-to-date according to the contributed contents. The old Wiki documentation can be found at [letscontrolit.com/wiki](https://www.letscontrolit.com/wiki/index.php?title=ESPEasy).
Additional details and discussion are on the "Experimental" section of the forum: https://www.letscontrolit.com/forum/viewforum.php?f=18
+4 -2
View File
@@ -27,9 +27,11 @@ There is also a number of special builds:
- normal_beta => "Normal" using the staged (beta) branch of the esp8266/Arduino repository.
Chip can be:
- ESP8266 => Most likely option
- ESP8285 => Used in some Sonoff modules
- ESP8266 => Most likely option (use also for ESP8285 chips)
- ESP32 => Showing up in commercial products, but mainly seen on NodeMCU like boards.
- ESP32-S2 => Newer version of ESP32, with more GPIO pins, but lacking some features of ESP32.
- ESP32-S3 => Not yet supported in ESPEasy. (hardly available to buy)
- ESP32-C3 => Support in ESPEasy will be added soon.
MemorySize can be:
- 1M => 1 MB flash modules (e.g. almost all Sonoff modules)
@@ -114,7 +114,7 @@
.. |C011_name| replace:: :cyan:`Generic HTTP Advanced`
.. |C011_type| replace:: :cyan:`Controller`
.. |C011_typename| replace:: :cyan:`Controller - Generic HTTP Advanced`
.. |C011_status| replace:: :yellow:`TESTING`
.. |C011_status| replace:: :yellow:`COLLECTION`
.. |C011_github| replace:: C011.cpp
.. _C011_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C011.cpp
.. |C011_usedby| replace:: `.`
@@ -125,7 +125,7 @@
.. |C012_name| replace:: :cyan:`Blynk`
.. |C012_type| replace:: :cyan:`Controller`
.. |C012_typename| replace:: :cyan:`Controller - Blynk`
.. |C012_status| replace:: :yellow:`TESTING`
.. |C012_status| replace:: :yellow:`COLLECTION`
.. |C012_github| replace:: C012.cpp
.. _C012_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C012.cpp
.. |C012_usedby| replace:: `.`
@@ -147,7 +147,7 @@
.. |C014_name| replace:: :cyan:`Homie MQTT (Version 3.0.1 & 4.0.0dev)`
.. |C014_type| replace:: :cyan:`Controller`
.. |C014_typename| replace:: :cyan:`Controller - Homie MQTT convention`
.. |C014_status| replace:: :yellow:`TESTING`
.. |C014_status| replace:: :yellow:`COLLECTION`
.. |C014_github| replace:: C014.cpp
.. _C014_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C014.cpp
.. |C014_usedby| replace:: `.`
@@ -169,7 +169,7 @@
.. |C017_name| replace:: :cyan:`Zabbix`
.. |C017_type| replace:: :cyan:`Controller`
.. |C017_typename| replace:: :cyan:`Controller - Zabbix`
.. |C017_status| replace:: :yellow:`TESTING`
.. |C017_status| replace:: :yellow:`COLLECTION`
.. |C017_github| replace:: C017.cpp
.. _C017_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C017.cpp
.. |C017_usedby| replace:: `.`
@@ -180,7 +180,7 @@
.. |C018_name| replace:: :cyan:`LoRa TTN - RN2483/RN2903`
.. |C018_type| replace:: :cyan:`Controller`
.. |C018_typename| replace:: :cyan:`Controller - LoRa TTN - RN2483/RN2903`
.. |C018_status| replace:: :yellow:`TESTING`
.. |C018_status| replace:: :yellow:`COLLECTION`
.. |C018_github| replace:: C018.cpp
.. _C018_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_C018.cpp
.. |C018_usedby| replace:: `.`
+1 -1
View File
@@ -132,7 +132,7 @@ The environment definitions all have at least the used micro controller in the n
For example:
* ..._ESP8266_4Mnn -> ESP8266 has external flash, which can vary in size from 512 kB to 16 MB, with nn configured as filesystem.
* ..._ESP8285_1M -> ESP8285 has the flash internal, it is always 1 MB.
* ..._ESP8266_1M -> ESP8285 has the flash internal, which is almost always 1 MB. ESP8266 does have an external flash chip, which allows for exchanging it for a larger flash chip (recommended).
* ..._ESP32_4M316k -> ESP32 with 4 MB flash and a 1.8 MB partition for the sketch. (316k SPIFFS)
* ..._ESP32s2_4M316k -> ESP32s2 with 4 MB flash and a 1.8 MB partition for the sketch. (316k SPIFFS)
* ..._ESP32_16M2M_LittleFS -> ESP32 with 16 MB flash and a 4 MB partition for the sketch. (2MB LittleFS)
+5 -2
View File
@@ -108,8 +108,11 @@ ESP Chip Type
-------------
* ``ESP8266`` Most likely option.
* ``ESP8285`` Used in some Sonoff modules. This chip has embedded flash, so no extra flash chip.
* ``ESP32`` Experimental support at this moment.
* ``ESP8285`` Supported in ``ESP8266`` builds. Used in some Sonoff modules. This chip has embedded flash, so no extra flash chip.
* ``ESP32`` Allows for more memory and more GPIO pins.
* ``ESP32-S2`` Newer version of ESP32. Has even more GPIO pins, but some specific features of ESP32 were removed.
* ``ESP32-S3`` Not yet available.
* ``ESP32-C3`` Support will be added soon.
Memory Size and Partitioning
----------------------------
+19
View File
@@ -127,6 +127,25 @@
GPIO,2,0
endon
"
"
``http#hostname=404``
Added: 2022/07/23
Triggered as a 'return value' when performing a HTTP call to some host.
The event value is the HTTP return code.
The ``hostname`` is replaced by the hostname used in the HTTP call.
","
.. code-block:: none
on http#192.168.1.2 do
if %eventvalue1%!=200
// %eventvalue1% is HTTP Code
// %eventpar% is the part of the event after the #, thus here it is the hostname
LogEntry,'HTTP error: %eventvalue1% to: %eventpar%:'
endif
endon
"
"
``MQTT#Connected``
+134 -30
View File
@@ -86,47 +86,39 @@ N.B. The initial chart on the setup page of an Analog Input task will only show
With ``Apply Factory Calibration`` checked, the Analog Input plugin in ESPEasy will perform the reading in mV.
.. note:: Even though the various attenuation settings seem to have their own calibration, there is still some difference in reported measured voltage in mV per attentuation setting.
Oversampling
------------
The "Oversampling" mode has 3 options:
* Use Current Sample
* Oversampling
* Binning
"Use Current Sample" only takes a sample when the task is run.
With ``Oversampling`` selected, the task will take a sample 10x per second.
These are averaged over the period set by the ``Interval`` timer. (or shorter interval when the task is executed via the ``TaskRun`` command)
This mode also takes out the highest and lowest sample values to make sure a single fluke measurement is not affecting the output value too much.
Binning
-------
Added: 2022/07/11
For some use cases, a strict classification of data is needed.
A typical use case is the wind vane of a very popular set, the DS-15901.
.. image:: P002_DS-15901_wind_vane_schematics.png
This wind vane uses a magnet to trigger a number of reed switches which will then activate a resistor.
What makes this setup rather complex is that for some angles 2 resistors will be active and thus effectively lower the seen resistance between 2 other wind directions.
Plot of voltage measured over the wind vane when using a 10k resistor in series with the wind vane:
.. image:: P002_voltage_vs_wind_dir.png
The returned value is the average of recorded samples over the ``Interval`` persiod, minus the minimum and maximum sample value in that period.
Thus at 1 second interval, the average is typically taken over 8 samples.
For this use case, it is not possible to use oversampling as this may result in very unstable readings.
We need to map a range of values to a single output value.
"Binning" can be compared to "sort and count" like those bank teller machines sorting coins.
Only difference is that we're not interested in the total value of all the coins, but want to know which coin we had the most.
Plotting the resistance range from the wind vane datasheet:
So we're doing a classification of the most frequently occuring coin.
.. image:: P002_range_resistance_per_bin.png
As can be seen, the ranges are quite small for some and quite large for others.
But also the wind direction is not increasing when the resistance increases.
Therefore we need a look-up table. (see Multipoint Processing below)
What binning does is it tries to match each sample to a specific bin (an entry in the Multipoint Processing table) and simply counts each occurence per bin.
After a measurement period (the time between 2 calls to "run" the task, typically the "interval") the bin with the highest count is picked and the output value of this bin will be returned as output.
Binning data processing differs from the other two.
See also the section "Binning Processing" below.
Two Point Calibration
@@ -152,6 +144,27 @@ The values below the chart only taking the Two Point Calibration into account.
* The minimum and maximum values are based on the maximum range which can be measured with the set attenuation.
* The step size is the minimal step size of the output value.
.. note:: It is possible to enter a floating point value as "ADC" input for the 2-point calibration.
Since this value is stored as an integer value, the calibrated values will be adjusted accordingly to still represent the same calibration curve.
It is best to turn off the 2-point calibration and let the ESP run for a while with a stable voltage applied.
The measured value (either in raw ADC or in mV on ESP32 with Factory Calibration enabled) can then be averaged over a longer period to get the most accurate value.
For example the system is measuring the voltage over a 10k resistor (with another 330k resistor in series) and a diode.
This means there is some voltage drop over de diode and thus we need 2 calibration sets.
The attenuation is set to 0dB on an ESP32.
Measured with 9.00V applied and 20.00V applied:
* 240.88 mV => 9
* 565.4957 mV => 20
When entered in the 2-point calibration fields, the page will reload with these converted values:
* 241 mV => 9.0041
* 565 mV => 19.9832
Multipoint Processing
---------------------
@@ -167,16 +180,99 @@ Often such curves will be modeled first in a spreadsheet program.
To simply copy/paste 2 columns of data from a spreadsheet into the task settings, one has to check "Split-Paste Multipoint Fields" first and then paste these columns into the first field.
By checking this checkbox, some JavaScript will be set active to decode the values and place them in separate fields.
Example of some curve generated in a spreadsheet and paste into the fields:
.. image:: P002_multipoint_processing.png
To see the effect of all selected settings, a chart will be generated with simulated data using the input range of the ADC.
Thus taking into account the set attenuation (on ESP32).
.. image:: P002_multipoint_processing_simulated_curve1.png
By default, only the curve matching the actual settings is displayed.
But the others can be enabled by simply clicking their labels in the chart legend.
For example, enabling the "2 Point Calibration only" curve too:
.. image:: P002_multipoint_processing_simulated_curve2.png
The purple line shows the mapping of input to output when only enabling the 2-point calibration.
The blue line shows the mapping when using both 2-point calibration and the multipoint curve.
The example multipoint curve used here was deliberately constructed to map an input of 16 to an output of 16 to show what happens "outside" the defined range of the multipoint curve.
Those inputs (of the multipoint curve) higher than 16 will be extrapolated continuing the last 2 given points of the Multipoint curve.
Binning Processing
------------------
Added: 2022/07/11
For some use cases, a strict classification of data is needed.
A typical use case is the wind vane of a very popular set to build your own weather station, the DS-15901.
.. image:: P002_DS-15901_wind_vane_schematics.png
This wind vane uses a magnet to trigger a number of reed switches which will then activate a resistor.
What makes this setup rather complex is that for some angles 2 resistors will be active and thus effectively lower the seen resistance inbetween 2 other wind directions.
The example setup measures the voltage over the wind vane, with a 10k resistor set as pull-up resistor to 3.3V.
Here the plot of the measured voltage over the wind vane per direction:
.. image:: P002_voltage_vs_wind_dir.png
For this use case, it is not possible to use oversampling as this may result in very unstable readings.
We need to map a range of values to a single output value.
Plotting the resistance range from the wind vane datasheet:
.. image:: P002_range_resistance_per_bin.png
As can be seen, the ranges are quite small for some and quite large for others.
But also the wind direction is not increasing when the resistance increases.
Therefore we need a look-up table.
What binning does is it tries to match each sample to a specific bin (similar to an entry in the Multipoint Processing table) and simply counts each occurence per bin.
After a measurement period (the time between 2 calls to "run" the task, typically the "interval") the bin with the highest count is picked and the output value of this bin will be returned as output.
When using "Binning", it can be useful to also have some formula to process the data first before mapping the data to the correct bin.
For example the wind vane with a 10k in series, connected to 3.3V.
To convert the measured voltage into a resistance, one can use this formula: ``(-10000*%value%)/(%value%-3.3)``
With the values converted into a resistance, one can simply use the stated values in the sensor datasheet.
The 2-point calibration can be used to simply convert mVolt to Volt by entering just a single calibration point to convert ``1000`` -> ``1``.
Or change the Binning Formula accordingly to handle mVolt instead of Volt: ``(-10000*%value%)/(%value%-3300)``
.. note:: The Binning Formula will be processed before matching bins. The regular Formula field which is present on nearly all tasks at the bottom of the page is processing only the values sent to the "output" of a task.
With the sampled values converted into a resistance, one can simply use the stated values in the sensor datasheet.
.. image:: P002_multipoint_binning.png
On each sample taken between two run calls of the task, the sample value will be processed by all set steps (Factory Calibration, 2-point calibration, Binning formula) and the resulting value will be matched against the range of each bin.
The count for the matching bin will be incremented by 1.
At the end of such a period of the task:
* The bin with the highest count "wins".
* The assigned value of the winning bin will be put as task value output and send to any connected controllers.
* The counts in all bins will then also be cleared to be ready for the next run.
.. note:: The values set to define a bin represent the center of the bin. The bin range is upto halfway the center of the next bin.
Processing Order
----------------
@@ -186,7 +282,7 @@ All steps between ADC and output of the task are processed in the order they app
* Attenuation (ESP32 only)
* Factory Calibration (ESP32 only)
* Two Point Calibration
* Multipoint Processing ("Binning formula" first when set to Binning)
* Multipoint Processing or Binning Processing ("Binning formula" first when set to Binning)
* Formula at the bottom, when set.
@@ -213,6 +309,7 @@ ESP32 has 2 ADCs present.
Since the ``ADC2`` is shared with the WIFI module, which has higher priority, reading operation of ``adc2_get_raw()`` may fail between ``esp_wifi_start()`` and ``esp_wifi_stop()``.
Use of Formula
--------------
@@ -227,6 +324,7 @@ However this makes the measured voltage no longer linear to the measured resista
Then we only need a way to compute the measured resistance instead of the voltage.
For this we first need to make sure the calibration is done so the ADC plugin outputs the correct voltage applied to the configured analog input pin.
On ESP32 this is relatively easy by enabling Factory Calibration. However the values are then in mVolt, not in Volt.
Then we must derive a formula to convert the voltage into a resistance value.
@@ -244,6 +342,10 @@ When using 10k as a value for r2, we can use this in the formula field:
``(-10000*%value%)/(%value%-3.3)``
Or using the mVolt readings when using Factory Calibration:
``(-10000*%value%)/(%value%-3300)``
With proper calibration and this formula present, we now get the measured resistance on the output.
@@ -269,6 +371,8 @@ Change log
...
|improved| 2020-04-25 Added support for ESP32 ADC pins + Hall Effect Sensor.
|improved| 2022-07-11 Added ESP32 Factory calibration, multipoint processing, binning and charts.
|improved| 2022-07-27 Improved resolution when using ESP32 Factory Calibration.
.. versionadded:: 1.0
...
Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 64 KiB

+1 -1
View File
@@ -156,7 +156,7 @@ Follow these steps to configure ESPEasy's Nextion plugin.
1. Use your favorite web browser and connect to your ESPEasy device.
2. Go to the *Devices* Tab and pick an empty task.
3. Choose the task *Add* button and select the *Display - Nextion [TESTING]* entry.
3. Choose the task *Add* button and select the *Display - Nextion* entry.
4. Configure the Nextion display as needed by your application.
See the *Configuration Settings Summary* below.
5. Click the submit button.
+1 -1
View File
@@ -81,4 +81,4 @@ Change log
.. versionchanged:: 2.0
|added| 2021-05-08 Added to main repository as Plugin 115 Energy - Fuel Gauge MAX1704x [TESTING]
|added| 2021-05-08 Added to main repository as Plugin 115 Energy - Fuel Gauge MAX1704x
+2
View File
@@ -136,6 +136,8 @@
| ``nfx,faketv[,startpixel[,endpixel]]``
","
| Run a fake TV effect on the pixels, optionally specifying a start- end end-pixel. Used for simulating an active TV-set, f.e. when not at home during the evening, to scare off potential burglars.
|
| NB: This effect may be excluded from the build for size reasons, by default it is **not** included in ESP8266 builds. It *can* be included in self-built Custom builds.
"
"
| ``nfx,simpleclock[,bigtickcolor[,smalltickcolor[,hourcolor[,minutecolor[,secondcolor (set 'off' to disable)[,backgroundcolor]]]]]]``
+5 -10
View File
@@ -207,23 +207,16 @@ See :ref:`Rules: Formatting refered values <Formatting values>` on how this can
Just remember such formatting cannot "make up" more decimals than what was set here in the task setup.
List of official plugins
========================
There are different released versions of ESP Easy:
:green:`NORMAL` is the stable release, you can consider these plugins reliable and you can use these in production.
:green:`NORMAL` is the regular set of plugins, you can consider these plugins stable with all secondary features enabled, like I2C multiplexer, RTTL, DEBUG logging, etc.
:yellow:`TESTING` (split into A/B/C/D/E sets) with new plugins that have not yet been fully tested and proven stable. Because of space limitations, this collection is split into 5 sets. When only TESTING is mentioned, the plugin is available in all TESTING builds.
:yellow:`COLLECTION` (split into sets A..x) with plugins that don't fit into the NORMAL builds. Because of space limitations, this collection is split into a number of sets. When only :yellow:`COLLECTION` is mentioned, the plugin is available in **all** :yellow:`COLLECTION` builds. Also, some features are disabled to save space in the .bin files, like the I2C multiplexer feature, RTTTL, tooltips, and some DEBUG logging.
:red:`DEVELOPMENT` is used for plugins that are still being developed and are not considered stable at all.
:red:`DEVELOPMENT` is used for plugins that are still being developed and are not considered stable at all. Currently there are no DEVELOPMENT builds available.
:yellow:`ENERGY` :yellow:`DISPLAY` :yellow:`IR` :yellow:`IRext` :yellow:`NEOPIXEL` are specialized builds holding all Energy-, Display-, Infra Red- (extended) and NeoPixel related plugins.
@@ -231,6 +224,8 @@ There are different released versions of ESP Easy:
:gray:`RETIRED` plugin has been retired from ESPEasy (though the source code is still available). Not included in any build.
2022-07-22: :yellow:`TESTING` builds renamed to :yellow:`COLLECTION`.
.. csv-table::
:header: "Plugin name", "Build set", "Plugin number"
:widths: 10, 8, 5
@@ -67,7 +67,7 @@
.. |P045_type| replace:: :cyan:`Gyro`
.. |P045_typename| replace:: :cyan:`Gyro - MPU 6050`
.. |P045_porttype| replace:: `.`
.. |P045_status| replace:: :yellow:`TESTING`
.. |P045_status| replace:: :yellow:`COLLECTION`
.. |P045_github| replace:: P045_MPU6050.ino
.. _P045_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P045_MPU6050.ino
.. |P045_usedby| replace:: `.`
@@ -80,7 +80,7 @@
.. |P046_type| replace:: :cyan:`Hardware`
.. |P046_typename| replace:: :cyan:`Hardware - Ventus W266`
.. |P046_porttype| replace:: `.`
.. |P046_status| replace:: :yellow:`TESTING`
.. |P046_status| replace:: :yellow:`COLLECTION`
.. |P046_github| replace:: P046_VentusW266.ino
.. _P046_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P046_VentusW266.ino
.. |P046_usedby| replace:: :ref:`P046_Ventus_W266_page`
@@ -93,7 +93,7 @@
.. |P047_type| replace:: :cyan:`Environment`
.. |P047_typename| replace:: :cyan:`Environment - Soil moisture sensor`
.. |P047_porttype| replace:: `.`
.. |P047_status| replace:: :yellow:`TESTING`
.. |P047_status| replace:: :yellow:`COLLECTION`
.. |P047_github| replace:: P047_i2c-soil-moisture-sensor.ino
.. _P047_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P047_i2c-soil-moisture-sensor.ino
.. |P047_usedby| replace:: `.`
@@ -106,7 +106,7 @@
.. |P048_type| replace:: :cyan:`Motor`
.. |P048_typename| replace:: :cyan:`Motor - Adafruit Motorshield v2`
.. |P048_porttype| replace:: `.`
.. |P048_status| replace:: :yellow:`TESTING`
.. |P048_status| replace:: :yellow:`COLLECTION`
.. |P048_github| replace:: P048_Motorshield_v2.ino
.. _P048_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P048_Motorshield_v2.ino
.. |P048_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P050_type| replace:: :cyan:`Color`
.. |P050_typename| replace:: :cyan:`Color - TCS34725`
.. |P050_porttype| replace:: `.`
.. |P050_status| replace:: :yellow:`TESTING`
.. |P050_status| replace:: :yellow:`COLLECTION`
.. |P050_github| replace:: P050_TCS34725.ino
.. _P050_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P050_TCS34725.ino
.. |P050_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P051_type| replace:: :cyan:`Environment`
.. |P051_typename| replace:: :cyan:`Environment - AM2320`
.. |P051_porttype| replace:: `.`
.. |P051_status| replace:: :yellow:`TESTING`
.. |P051_status| replace:: :yellow:`COLLECTION`
.. |P051_github| replace:: P051_AM2320.ino
.. _P051_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P051_AM2320.ino
.. |P051_usedby| replace:: `.`
@@ -54,7 +54,7 @@
.. |P054_type| replace:: :cyan:`Communication`
.. |P054_typename| replace:: :cyan:`Communication - DMX512 TX`
.. |P054_porttype| replace:: `.`
.. |P054_status| replace:: :yellow:`TESTING`
.. |P054_status| replace:: :yellow:`COLLECTION`
.. |P054_github| replace:: P054_DMX512.ino
.. _P054_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P054_DMX512.ino
.. |P054_usedby| replace:: `.`
@@ -67,7 +67,7 @@
.. |P055_type| replace:: :cyan:`Notify`
.. |P055_typename| replace:: :cyan:`Notify - Chiming`
.. |P055_porttype| replace:: `.`
.. |P055_status| replace:: :yellow:`TESTING`
.. |P055_status| replace:: :yellow:`COLLECTION`
.. |P055_github| replace:: P055_Chiming.ino
.. _P055_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P055_Chiming.ino
.. |P055_usedby| replace:: `.`
@@ -93,7 +93,7 @@
.. |P057_type| replace:: :cyan:`Display`
.. |P057_typename| replace:: :cyan:`Display - HT16K33`
.. |P057_porttype| replace:: `.`
.. |P057_status| replace:: :yellow:`DISPLAY, TESTING`
.. |P057_status| replace:: :yellow:`DISPLAY, COLLECTION`
.. |P057_github| replace:: P057_HT16K33_LED.ino
.. _P057_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P057_HT16K33_LED.ino
.. |P057_usedby| replace:: `.`
@@ -106,7 +106,7 @@
.. |P058_type| replace:: :cyan:`Keypad`
.. |P058_typename| replace:: :cyan:`Keypad - HT16K33`
.. |P058_porttype| replace:: `.`
.. |P058_status| replace:: :yellow:`TESTING`
.. |P058_status| replace:: :yellow:`COLLECTION`
.. |P058_github| replace:: P058_HT16K33_KeyPad.ino
.. _P058_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P058_HT16K33_KeyPad.ino
.. |P058_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P060_type| replace:: :cyan:`Analog input`
.. |P060_typename| replace:: :cyan:`Analog input - MCP3221`
.. |P060_porttype| replace:: `.`
.. |P060_status| replace:: :yellow:`TESTING`
.. |P060_status| replace:: :yellow:`COLLECTION`
.. |P060_github| replace:: P060_MCP3221.ino
.. _P060_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P060_MCP3221.ino
.. |P060_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P061_type| replace:: :cyan:`Keypad`
.. |P061_typename| replace:: :cyan:`Keypad - PCF8574 / MCP23017 / PCA8575`
.. |P061_porttype| replace:: `.`
.. |P061_status| replace:: :yellow:`TESTING`
.. |P061_status| replace:: :yellow:`COLLECTION`
.. |P061_github| replace:: P061_KeyPad.ino
.. _P061_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P061_KeyPad.ino
.. |P061_usedby| replace:: `.`
@@ -28,7 +28,7 @@
.. |P062_type| replace:: :cyan:`Keypad`
.. |P062_typename| replace:: :cyan:`Keypad - MPR121 Touch`
.. |P062_porttype| replace:: `.`
.. |P062_status| replace:: :yellow:`TESTING`
.. |P062_status| replace:: :yellow:`COLLECTION`
.. |P062_github| replace:: P062_MPR121_KeyPad.ino
.. _P062_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P062_MPR121_KeyPad.ino
.. |P062_usedby| replace:: `NXP MPR121 I2C controller`
@@ -54,7 +54,7 @@
.. |P064_type| replace:: :cyan:`Gesture`
.. |P064_typename| replace:: :cyan:`Gesture - APDS9960`
.. |P064_porttype| replace:: `.`
.. |P064_status| replace:: :yellow:`TESTING`
.. |P064_status| replace:: :yellow:`COLLECTION`
.. |P064_github| replace:: P064_APDS9960.ino
.. _P064_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P064_APDS9960.ino
.. |P064_usedby| replace:: `.`
@@ -67,7 +67,7 @@
.. |P065_type| replace:: :cyan:`Notify`
.. |P065_typename| replace:: :cyan:`Notify - DFPlayer-Mini MP3`
.. |P065_porttype| replace:: `.`
.. |P065_status| replace:: :yellow:`TESTING`
.. |P065_status| replace:: :yellow:`COLLECTION`
.. |P065_github| replace:: P065_DRF0299_MP3.ino
.. _P065_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P065_DRF0299_MP3.ino
.. |P065_usedby| replace:: `.`
@@ -80,7 +80,7 @@
.. |P066_type| replace:: :cyan:`Color`
.. |P066_typename| replace:: :cyan:`Color - VEML6040`
.. |P066_porttype| replace:: `.`
.. |P066_status| replace:: :yellow:`TESTING`
.. |P066_status| replace:: :yellow:`COLLECTION`
.. |P066_github| replace:: P066_VEML6040.ino
.. _P066_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P066_VEML6040.ino
.. |P066_usedby| replace:: `.`
@@ -93,7 +93,7 @@
.. |P067_type| replace:: :cyan:`Weight`
.. |P067_typename| replace:: :cyan:`Weight - HX711 Load Cell`
.. |P067_porttype| replace:: `.`
.. |P067_status| replace:: :yellow:`TESTING A`
.. |P067_status| replace:: :yellow:`COLLECTION A`
.. |P067_github| replace:: P067_HX711_Load_Cell.ino
.. _P067_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P067_HX711_Load_Cell.ino
.. |P067_usedby| replace:: `.`
@@ -106,7 +106,7 @@
.. |P068_type| replace:: :cyan:`Environment`
.. |P068_typename| replace:: :cyan:`Environment - SHT30/31/35`
.. |P068_porttype| replace:: `.`
.. |P068_status| replace:: :yellow:`TESTING A`
.. |P068_status| replace:: :yellow:`COLLECTION A`
.. |P068_github| replace:: P068_SHT3x.ino
.. _P068_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P068_SHT3x.ino
.. |P068_usedby| replace:: `.`
@@ -119,7 +119,7 @@
.. |P069_type| replace:: :cyan:`Environment`
.. |P069_typename| replace:: :cyan:`Environment - LM75A`
.. |P069_porttype| replace:: `.`
.. |P069_status| replace:: :yellow:`TESTING B`
.. |P069_status| replace:: :yellow:`COLLECTION B`
.. |P069_github| replace:: P069_LM75A.ino
.. _P069_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P069_LM75A.ino
.. |P069_usedby| replace:: `.`
@@ -3,7 +3,7 @@
.. |P070_type| replace:: :cyan:`Output`
.. |P070_typename| replace:: :cyan:`Output - NeoPixel Ring Clock`
.. |P070_porttype| replace:: `.`
.. |P070_status| replace:: :yellow:`DISPLAY, NEOPIXEL, TESTING A`
.. |P070_status| replace:: :yellow:`DISPLAY, NEOPIXEL, COLLECTION A`
.. |P070_github| replace:: P070_NeoPixel_Clock.ino
.. _P070_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P070_NeoPixel_Clock.ino
.. |P070_usedby| replace:: `.`
@@ -16,7 +16,7 @@
.. |P071_type| replace:: :cyan:`Communication`
.. |P071_typename| replace:: :cyan:`Communication - Kamstrup Multical 401`
.. |P071_porttype| replace:: `Serial`
.. |P071_status| replace:: :yellow:`TESTING A`
.. |P071_status| replace:: :yellow:`COLLECTION A`
.. |P071_github| replace:: P071_Kamstrup401.ino
.. _P071_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P071_Kamstrup401.ino
.. |P071_usedby| replace:: `.`
@@ -29,7 +29,7 @@
.. |P072_type| replace:: :cyan:`Environment`
.. |P072_typename| replace:: :cyan:`Environment - HDC1080 (I2C)`
.. |P072_porttype| replace:: `.`
.. |P072_status| replace:: :yellow:`TESTING A`
.. |P072_status| replace:: :yellow:`COLLECTION A`
.. |P072_github| replace:: P072_HDC1080.ino
.. _P072_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P072_HDC1080.ino
.. |P072_usedby| replace:: `.`
@@ -55,7 +55,7 @@
.. |P074_type| replace:: :cyan:`Light/Lux`
.. |P074_typename| replace:: :cyan:`Light/Lux - TSL2591`
.. |P074_porttype| replace:: `Serial`
.. |P074_status| replace:: :yellow:`TESTING A`
.. |P074_status| replace:: :yellow:`COLLECTION A`
.. |P074_github| replace:: P074_TSL2591.ino
.. _P074_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P074_TSL2591.ino
.. |P074_usedby| replace:: `.`
@@ -68,7 +68,7 @@
.. |P075_type| replace:: :cyan:`Display`
.. |P075_typename| replace:: :cyan:`Display - Nextion`
.. |P075_porttype| replace:: `.`
.. |P075_status| replace:: :yellow:`DISPLAY, TESTING`
.. |P075_status| replace:: :yellow:`DISPLAY, COLLECTION`
.. |P075_github| replace:: P075_Nextion.ino
.. _P075_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P075_Nextion.ino
.. |P075_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P080_type| replace:: :cyan:`Switch input`
.. |P080_typename| replace:: :cyan:`Switch input - iButton`
.. |P080_porttype| replace:: `.`
.. |P080_status| replace:: :yellow:`TESTING A`
.. |P080_status| replace:: :yellow:`COLLECTION A`
.. |P080_github| replace:: P080_DallasIButton.ino
.. _P080_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P080_DallasIButton.ino
.. |P080_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P081_type| replace:: :cyan:`Generic`
.. |P081_typename| replace:: :cyan:`Generic - CRON`
.. |P081_porttype| replace:: `.`
.. |P081_status| replace:: :yellow:`TESTING`
.. |P081_status| replace:: :yellow:`COLLECTION`
.. |P081_github| replace:: P081_Cron.ino
.. _P081_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P081_Cron.ino
.. |P081_usedby| replace:: `.`
@@ -28,7 +28,7 @@
.. |P082_type| replace:: :cyan:`Position`
.. |P082_typename| replace:: :cyan:`Position - GPS`
.. |P082_porttype| replace:: `Serial`
.. |P082_status| replace:: :yellow:`TESTING`
.. |P082_status| replace:: :yellow:`COLLECTION`
.. |P082_github| replace:: P082_GPS.ino
.. _P082_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P082_GPS.ino
.. |P082_usedby| replace:: :ref:`P082_Neo-6M_page`, :ref:`P082_Neo-7M_page`, :ref:`P082_Neo-M8n_page`
@@ -41,7 +41,7 @@
.. |P083_type| replace:: :cyan:`Gasses`
.. |P083_typename| replace:: :cyan:`Gasses - SGP30`
.. |P083_porttype| replace:: `.`
.. |P083_status| replace:: :yellow:`TESTING A`
.. |P083_status| replace:: :yellow:`COLLECTION A`
.. |P083_github| replace:: P083_SGP30.ino
.. _P083_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P083_SGP30.ino
.. |P083_usedby| replace:: `.`
@@ -54,7 +54,7 @@
.. |P084_type| replace:: :cyan:`UV`
.. |P084_typename| replace:: :cyan:`UV - VEML6070`
.. |P084_porttype| replace:: `.`
.. |P084_status| replace:: :yellow:`TESTING A`
.. |P084_status| replace:: :yellow:`COLLECTION A`
.. |P084_github| replace:: P084_VEML6070.ino
.. _P084_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P084_VEML6070.ino
.. |P084_usedby| replace:: `.`
@@ -67,7 +67,7 @@
.. |P085_type| replace:: :cyan:`Energy (DC)`
.. |P085_typename| replace:: :cyan:`Energy (DC) - AcuDC243`
.. |P085_porttype| replace:: `Serial`
.. |P085_status| replace:: :yellow:`ENERGY, TESTING C`
.. |P085_status| replace:: :yellow:`ENERGY, COLLECTION C`
.. |P085_github| replace:: P085_AcuDC243.ino
.. _P085_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P085_AcuDC243.ino
.. |P085_usedby| replace:: `.`
@@ -80,7 +80,7 @@
.. |P086_type| replace:: :cyan:`Generic`
.. |P086_typename| replace:: :cyan:`Generic - Homie receiver`
.. |P086_porttype| replace:: `.`
.. |P086_status| replace:: :yellow:`TESTING A`
.. |P086_status| replace:: :yellow:`COLLECTION A`
.. |P086_github| replace:: P086_Homie.ino
.. _P086_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P086_Homie.ino
.. |P086_usedby| replace:: `.`
@@ -93,7 +93,7 @@
.. |P087_type| replace:: :cyan:`Communication`
.. |P087_typename| replace:: :cyan:`Communication - SerialProxy`
.. |P087_porttype| replace:: `Serial`
.. |P087_status| replace:: :yellow:`TESTING C`
.. |P087_status| replace:: :yellow:`COLLECTION C`
.. |P087_github| replace:: P087_SerialProxy.ino
.. _P087_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P087_SerialProxy.ino
.. |P087_usedby| replace:: `.`
@@ -119,7 +119,7 @@
.. |P089_type| replace:: :cyan:`Communication`
.. |P089_typename| replace:: :cyan:`Communication - Ping`
.. |P089_porttype| replace:: `.`
.. |P089_status| replace:: :yellow:`TESTING`
.. |P089_status| replace:: :yellow:`COLLECTION`
.. |P089_github| replace:: P089_Ping.ino
.. _P089_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P089_Ping.ino
.. |P089_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P090_type| replace:: :cyan:`Gases`
.. |P090_typename| replace:: :cyan:`Gases - CCS811 TVOC/eCO2`
.. |P090_porttype| replace:: `.`
.. |P090_status| replace:: :yellow:`TESTING A`
.. |P090_status| replace:: :yellow:`COLLECTION A`
.. |P090_github| replace:: P090_CCS811.ino
.. _P090_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P090_CCS811.ino
.. |P090_usedby| replace:: `.`
@@ -14,7 +14,7 @@
.. |P091_name| replace:: :cyan:`Serial MCU controlled switch`
.. |P091_type| replace:: :cyan:`Gases`
.. |P091_typename| replace:: :cyan:`Switch input - Serial MCU controlled switch`
.. |P091_status| replace:: :yellow:`TESTING C`
.. |P091_status| replace:: :yellow:`COLLECTION C`
.. |P091_github| replace:: P091_SerSwitch.ino
.. _P091_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P091_SerSwitch.ino
.. |P091_usedby| replace:: `.`
@@ -26,7 +26,7 @@
.. |P092_name| replace:: :cyan:`DL-Bus (Technische Alternative)`
.. |P092_type| replace:: :cyan:`Heating`
.. |P092_typename| replace:: :cyan:`Heating - DL-Bus (Technische Alternative)`
.. |P092_status| replace:: :yellow:`TESTING C`
.. |P092_status| replace:: :yellow:`COLLECTION C`
.. |P092_github| replace:: P092_DLbus.ino
.. _P092_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P092_DLbus.ino
.. |P092_usedby| replace:: `.`
@@ -38,7 +38,7 @@
.. |P093_name| replace:: :cyan:`Mitsubishi Heat Pump`
.. |P093_type| replace:: :cyan:`Energy (Heat)`
.. |P093_typename| replace:: :cyan:`Energy (Heat) - Mitsubishi Heat Pump`
.. |P093_status| replace:: :yellow:`ENERGY, TESTING D`
.. |P093_status| replace:: :yellow:`ENERGY, COLLECTION D`
.. |P093_github| replace:: P093_MitsubishiHP.ino
.. _P093_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P093_MitsubishiHP.ino
.. |P093_usedby| replace:: `.`
@@ -50,7 +50,7 @@
.. |P094_name| replace:: :cyan:`Communication - CUL Reader`
.. |P094_type| replace:: :cyan:`Communication`
.. |P094_typename| replace:: :cyan:`CUL Reader`
.. |P094_status| replace:: :yellow:`TESTING D`
.. |P094_status| replace:: :yellow:`COLLECTION D`
.. |P094_github| replace:: P094_CULReader.ino
.. _P094_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P094_CULReader.ino
.. |P094_usedby| replace:: `.`
@@ -63,7 +63,7 @@
.. |P095_type| replace:: :cyan:`Display`
.. |P095_typename| replace:: :cyan:`Display - TFT ILI934x/ILI948x`
.. |P095_porttype| replace:: `.`
.. |P095_status| replace:: :yellow:`DISPLAY, TESTING`
.. |P095_status| replace:: :yellow:`DISPLAY, COLLECTION`
.. |P095_github| replace:: _P095_ILI9341.ino
.. _P095_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P095_ILI9341.ino
.. |P095_usedby| replace:: `.`
@@ -76,7 +76,7 @@
.. |P097_type| replace:: :cyan:`Internal`
.. |P097_typename| replace:: :cyan:`Internal - Touch ESP32`
.. |P097_porttype| replace:: `.`
.. |P097_status| replace:: :yellow:`TESTING A`
.. |P097_status| replace:: :yellow:`COLLECTION A`
.. |P097_github| replace:: _P097_Esp32Touch.ino
.. _P097_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P097_Esp32Touch.ino
.. |P097_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P100_type| replace:: :cyan:`Generic`
.. |P100_typename| replace:: :cyan:`Pulse Counter - DS2423`
.. |P100_porttype| replace:: `.`
.. |P100_status| replace:: :yellow:`TESTING B`
.. |P100_status| replace:: :yellow:`COLLECTION B`
.. |P100_github| replace:: P100_CCS811.ino
.. _P100_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P100_DS2423_counter.ino
.. |P100_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P101_type| replace:: :cyan:`Communication`
.. |P101_typename| replace:: :cyan:`Communication - Wake On LAN`
.. |P101_porttype| replace:: `.`
.. |P101_status| replace:: :yellow:`TESTING B`
.. |P101_status| replace:: :yellow:`COLLECTION B`
.. |P101_github| replace:: P101_WakeOnLan.ino
.. _P101_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P101_WakeOnLan.ino
.. |P101_usedby| replace:: `.`
@@ -79,7 +79,7 @@
.. |P105_type| replace:: :cyan:`Environment`
.. |P105_typename| replace:: :cyan:`Environment - AHT10/20/21`
.. |P105_porttype| replace:: `.`
.. |P105_status| replace:: :yellow:`TESTING A`
.. |P105_status| replace:: :yellow:`COLLECTION A`
.. |P105_github| replace:: P105_AHT.ino
.. _P105_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P105_AHT.ino
.. |P105_usedby| replace:: `.`
@@ -96,7 +96,7 @@
.. |P106_type| replace:: :cyan:`Environment`
.. |P106_typename| replace:: :cyan:`Environment - BME680`
.. |P106_porttype| replace:: `.`
.. |P106_status| replace:: :yellow:`TESTING B`
.. |P106_status| replace:: :yellow:`COLLECTION B`
.. |P106_github| replace:: P106_BME680.ino
.. _P106_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P106_BME680.ino
.. |P106_usedby| replace:: `.`
@@ -109,7 +109,7 @@
.. |P107_type| replace:: :cyan:`UV`
.. |P107_typename| replace:: :cyan:`UV - SI1145`
.. |P107_porttype| replace:: `.`
.. |P107_status| replace:: :yellow:`TESTING B`
.. |P107_status| replace:: :yellow:`COLLECTION B`
.. |P107_github| replace:: P107_Si1145.ino
.. _P107_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P107_Si1145.ino
.. |P107_usedby| replace:: `.`
@@ -122,7 +122,7 @@
.. |P108_type| replace:: :cyan:`Energy (AC)`
.. |P108_typename| replace:: :cyan:`Energy (AC) - DDS238-x`
.. |P108_porttype| replace:: `.`
.. |P108_status| replace:: :yellow:`ENERGY, TESTING B`
.. |P108_status| replace:: :yellow:`ENERGY, COLLECTION B`
.. |P108_github| replace:: P108_DDS238.ino
.. _P108_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P108_DDS238.ino
.. |P108_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P110_type| replace:: :cyan:`Distance`
.. |P110_typename| replace:: :cyan:`Distance - VL53L0X (200cm)`
.. |P110_porttype| replace:: `.`
.. |P110_status| replace:: :yellow:`TESTING B`
.. |P110_status| replace:: :yellow:`COLLECTION B`
.. |P110_github| replace:: P110_VL53L0X.ino
.. _P110_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P110_VL53L0X.ino
.. |P110_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P111_type| replace:: :cyan:`RFID`
.. |P111_typename| replace:: :cyan:`RFID - MFRC522`
.. |P111_porttype| replace:: `.`
.. |P111_status| replace:: :yellow:`TESTING C`
.. |P111_status| replace:: :yellow:`COLLECTION C`
.. |P111_github| replace:: P111_RC522_RFID.ino
.. _P111_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P111_RC522_RFID.ino
.. |P111_usedby| replace:: `.`
@@ -28,7 +28,7 @@
.. |P113_type| replace:: :cyan:`Distance`
.. |P113_typename| replace:: :cyan:`Distance - VL53L1X (400cm)`
.. |P113_porttype| replace:: `.`
.. |P113_status| replace:: :yellow:`TESTING B`
.. |P113_status| replace:: :yellow:`COLLECTION B`
.. |P113_github| replace:: P113_VL53L1X.ino
.. _P113_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P113_VL53L1X.ino
.. |P113_usedby| replace:: `.`
@@ -41,7 +41,7 @@
.. |P114_type| replace:: :cyan:`UV`
.. |P114_typename| replace:: :cyan:`UV - VEML6075`
.. |P114_porttype| replace:: `.`
.. |P114_status| replace:: :yellow:`TESTING D`
.. |P114_status| replace:: :yellow:`COLLECTION D`
.. |P114_github| replace:: P114_VEML6075.ino
.. _P114_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P114_VEML6075.ino
.. |P114_usedby| replace:: `.`
@@ -54,7 +54,7 @@
.. |P115_type| replace:: :cyan:`Energy`
.. |P115_typename| replace:: :cyan:`Energy - MAX1704x`
.. |P115_porttype| replace:: `.`
.. |P115_status| replace:: :yellow:`ENERGY, TESTING B`
.. |P115_status| replace:: :yellow:`ENERGY, COLLECTION B`
.. |P115_github| replace:: _P115_MAX1704x_v2.ino
.. _P115_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P115_MAX1704x_v2.ino
.. |P115_usedby| replace:: `.`
@@ -80,7 +80,7 @@
.. |P117_type| replace:: :cyan:`Gases`
.. |P117_typename| replace:: :cyan:`Gases - SCD30 CO2, Humidity, Temperature`
.. |P117_porttype| replace:: `.`
.. |P117_status| replace:: :yellow:`TESTING D`
.. |P117_status| replace:: :yellow:`COLLECTION D`
.. |P117_github| replace:: _P117_SCD30.ino
.. _P117_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P117_SCD30.ino
.. |P117_usedby| replace:: `.`
@@ -93,7 +93,7 @@
.. |P118_type| replace:: :cyan:`Communication`
.. |P118_typename| replace:: :cyan:`Communication - Itho`
.. |P118_porttype| replace:: `.`
.. |P118_status| replace:: :yellow:`TESTING D`
.. |P118_status| replace:: :yellow:`COLLECTION D`
.. |P118_github| replace:: _P118_Itho.ino
.. _P118_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P118_Itho.ino
.. |P118_usedby| replace:: `.`
@@ -106,7 +106,7 @@
.. |P119_type| replace:: :cyan:`Gyro`
.. |P119_typename| replace:: :cyan:`Gyro - ITG3205`
.. |P119_porttype| replace:: `.`
.. |P119_status| replace:: :yellow:`TESTING E`
.. |P119_status| replace:: :yellow:`COLLECTION E`
.. |P119_github| replace:: _P119_ITG3205_Gyro.ino
.. _P119_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P119_ITG3205_Gyro.ino
.. |P119_usedby| replace:: `.`
@@ -2,7 +2,7 @@
.. |P120_type| replace:: :cyan:`Acceleration`
.. |P120_typename| replace:: :cyan:`Acceleration - ADXL345 (I2C)`
.. |P120_porttype| replace:: `.`
.. |P120_status| replace:: :yellow:`TESTING E`
.. |P120_status| replace:: :yellow:`COLLECTION E`
.. |P120_github| replace:: P120_ADXL345_Accelerometer.ino
.. _P120_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P120_ADXL345_Accelerometer.ino
.. |P120_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P121_type| replace:: :cyan:`Position`
.. |P121_typename| replace:: :cyan:`Position - HMC5883L`
.. |P121_porttype| replace:: `.`
.. |P121_status| replace:: :yellow:`TESTING E`
.. |P121_status| replace:: :yellow:`COLLECTION E`
.. |P121_github| replace:: P121_HMC5883L.ino
.. _P121_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P121_HMC5883L.ino
.. |P121_usedby| replace:: `.`
@@ -28,7 +28,7 @@
.. |P124_type| replace:: :cyan:`Output`
.. |P124_typename| replace:: :cyan:`Output - I2C Multi Relay`
.. |P124_porttype| replace:: `.`
.. |P124_status| replace:: :yellow:`TESTING D`
.. |P124_status| replace:: :yellow:`COLLECTION D`
.. |P124_github| replace:: P124_MultiTelay.ino
.. _P124_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P124_MyltiRelay.ino
.. |P124_usedby| replace:: `.`
@@ -41,7 +41,7 @@
.. |P125_type| replace:: :cyan:`Acceleration`
.. |P125_typename| replace:: :cyan:`Acceleration - ADXL345 (SPI)`
.. |P125_porttype| replace:: `.`
.. |P125_status| replace:: :yellow:`TESTING E`
.. |P125_status| replace:: :yellow:`COLLECTION E`
.. |P125_github| replace:: P125_ADXL345_SPI.ino
.. _P125_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P125_ADXL345_SPI.ino
.. |P125_usedby| replace:: `.`
@@ -54,7 +54,7 @@
.. |P126_type| replace:: :cyan:`Output`
.. |P126_typename| replace:: :cyan:`Output - Shift registers (74HC595)`
.. |P126_porttype| replace:: `.`
.. |P126_status| replace:: :yellow:`TESTING E`
.. |P126_status| replace:: :yellow:`COLLECTION E`
.. |P126_github| replace:: P126_74HC595.ino
.. _P126_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P126_74HC595.ino
.. |P126_usedby| replace:: `.`
@@ -67,7 +67,7 @@
.. |P127_type| replace:: :cyan:`Gases`
.. |P127_typename| replace:: :cyan:`Gases - CO2 CDM7160`
.. |P127_porttype| replace:: `.`
.. |P127_status| replace:: :yellow:`TESTING D`
.. |P127_status| replace:: :yellow:`COLLECTION D`
.. |P127_github| replace:: P127_CDM7160.ino
.. _P127_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P127_CDM7160.ino
.. |P127_usedby| replace:: `.`
@@ -15,7 +15,7 @@
.. |P133_type| replace:: :cyan:`UV`
.. |P133_typename| replace:: :cyan:`UV - LTR390`
.. |P133_porttype| replace:: `.`
.. |P133_status| replace:: :yellow:`TESTING E`
.. |P133_status| replace:: :yellow:`COLLECTION E`
.. |P133_github| replace:: P133_LTR390.ino
.. _P133_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P133_LTR390.ino
.. |P133_usedby| replace:: `.`
+8
View File
@@ -1813,6 +1813,14 @@ There is the following workaround:
SendToHTTP 192.168.0.243,8080,/json.htm?type=param=switchlight&command&idx=174&switchcmd=On
Added: 2022/07/23
* ``SendToHTTP`` can now also be called with a full URL starting with ``http://``, so no longer the host, port and uri have to be separated. (it is still possible of course)
* HTTP return value will be made available as event to be evaluated in the rules. Example event: ``http#hostname=404``
* Calls made to a HTTP server can now also follow redirects. (GET and HEAD calls only) This has to be enabled in Tools->Advanced page.
* Host name can contain user credentials. For example: ``http://username:pass@hostname:portnr/foo.html``
* HTTP user credentials now can handle Basic Auth and Digest Auth.
Dew Point for temp/humidity sensors (BME280 for example)
--------------------------------------------------------
+8 -6
View File
@@ -230,6 +230,7 @@ Rules Settings
* Allow Rules Event Reorder - It is best to have the rules blocks for the most frequently occuring events placed at the top of the first rules file. (also for frequently happening events, which you don't want to act on) The cached event positions can be reordered in memory based on how often an event was matched. (Enabled by default, Added 2022/04/17, disabled 2022/06/24)
* Tolerant last parameter - When checked, the last parameter of a command will have less strict parsing.
* SendToHTTP wait for ack - When checked, the command SendToHTTP will wait for an acknowledgement from the server.
* SendToHTTP Follow Redirects - When checked, HTTP calls may follow redirects. Strict RFC2616, only requests using GET or HEAD methods will be redirected (using the same method), since the RFC requires end-user confirmation in other cases.
Time Source
-----------
@@ -866,10 +867,11 @@ The old settings are still active in memory and if something will be saved, only
This would corrupt the settings file.
With only ``USE_SETTINGS_ARCHIVE`` defined during build, the URL and credentials cannot be stored.
For this the build must be made with ``USE_CUSTOM_PROVISIONING`` defined.
With only ``FEATURE_SETTINGS_ARCHIVE`` defined during build, the URL and credentials cannot be stored.
(2022/07/24: Renamed USE_SETTINGS_ARCHIVE to FEATURE_SETTINGS_ARCHIVE)
For this the build must be made with ``FEATURE_CUSTOM_PROVISIONING`` defined.
N.B. ``USE_CUSTOM_PROVISIONING`` is added on 2022/05/13.
N.B. ``FEATURE_CUSTOM_PROVISIONING`` is added on 2022/05/13. (2022/07/24: Renamed from USE_CUSTOM_PROVISIONING to FEATURE_CUSTOM_PROVISIONING)
URL with Settings
@@ -884,7 +886,7 @@ System variables will be converted into an URL encoded form, which may end up li
* ``http://192.168.10.127/A0%3a20%3aA6%3a14%3a84%3a81/rules4.txt`` MAC address: ``A0:20:A6:14:84:81``
The URL will not be stored, unless the build is made with ``USE_CUSTOM_PROVISIONING`` defined and the option is checked to save the URL. (option only present when ``USE_CUSTOM_PROVISIONING`` defined)
The URL will not be stored, unless the build is made with ``FEATURE_CUSTOM_PROVISIONING`` defined and the option is checked to save the URL. (option only present when ``FEATURE_CUSTOM_PROVISIONING`` defined)
Using system variables may allow for multi stage setup of a node, as you could for example fetch a rule which may set a variable to a new value and thus new files may be fetched from a different URL.
@@ -907,12 +909,12 @@ Provisioning
Added: 2022/05/13
When the build is made with ``USE_CUSTOM_PROVISIONING`` defined, this Settings Archive screen does allow for more settings helping deployment and remote administration of ESPEasy nodes.
When the build is made with ``FEATURE_CUSTOM_PROVISIONING`` defined, this Settings Archive screen does allow for more settings helping deployment and remote administration of ESPEasy nodes.
All Settings on the Settings Archive page can be stored in a file named ``provisioning.dat``.
This file also can store the factory default settings like the device model to ease deployment of a large number of nodes.
N.B. The ``USE_SETTINGS_ARCHIVE`` define is needed to allow to edit the ``provisioning.dat`` file, but it is not needed to use the provisioning feature.
N.B. The ``FEATURE_SETTINGS_ARCHIVE`` define is needed to allow to edit the ``provisioning.dat`` file, but it is not needed to use the provisioning feature.
.. image:: images/SettingsArchive_provisioning.png
+18
View File
@@ -0,0 +1,18 @@
#include "ESPEasySerialPort.h"
const __FlashStringHelper* ESPEasySerialPort_toString(ESPEasySerialPort serType)
{
switch (serType) {
case ESPEasySerialPort::not_set: break;
case ESPEasySerialPort::sc16is752: return F("I2C Serial");
case ESPEasySerialPort::serial0_swap: return F("HW Serial0 swap");
case ESPEasySerialPort::serial0: return F("HW Serial0");
case ESPEasySerialPort::serial1: return F("HW Serial1");
case ESPEasySerialPort::serial2: return F("HW Serial2");
case ESPEasySerialPort::software: return F("SoftwareSerial");
case ESPEasySerialPort::MAX_SERIAL_TYPE: break;
// Do not include "default:" to let the compiler check if we miss some case
}
return F("");
}
+21
View File
@@ -0,0 +1,21 @@
#ifndef ESPEASY_SERIAL_ESPEASYSERIALPORT_H
#define ESPEASY_SERIAL_ESPEASYSERIALPORT_H
#include <Arduino.h>
// Keep value assigned as it is used in scripts and stored in the Settings.TaskDevicePort
enum class ESPEasySerialPort {
not_set = 0,
sc16is752 = 1,
serial0 = 2,
serial0_swap = 3,
serial1 = 4,
serial2 = 5,
software = 6,
MAX_SERIAL_TYPE
};
const __FlashStringHelper* ESPEasySerialPort_toString(ESPEasySerialPort serType);
#endif // ifndef ESPEASY_SERIAL_ESPEASYSERIALPORT_H
+115
View File
@@ -0,0 +1,115 @@
#include "ESPEasySerialType.h"
#ifndef ESP32_SER0_TX
# define ESP32_SER0_TX 1
#endif // ifndef ESP32_SER0_TX
#ifndef ESP32_SER0_RX
# define ESP32_SER0_RX 3
#endif // ifndef ESP32_SER0_RX
#ifndef ESP32_SER1_TX
# define ESP32_SER1_TX 15
#endif // ifndef ESP32_SER1_TX
#ifndef ESP32_SER1_RX
# define ESP32_SER1_RX 13
#endif // ifndef ESP32_SER1_RX
#ifndef ESP32_SER2_TX
# define ESP32_SER2_TX 17
#endif // ifndef ESP32_SER2_TX
#ifndef ESP32_SER2_RX
# define ESP32_SER2_RX 16
#endif // ifndef ESP32_SER2_RX
bool ESPeasySerialType::getSerialTypePins(ESPEasySerialPort serType, int& rxPin, int& txPin) {
rxPin = -1;
txPin = -1;
switch (serType) {
#ifdef ESP32
case ESPEasySerialPort::serial0: rxPin = ESP32_SER0_RX; txPin = ESP32_SER0_TX; return true;
case ESPEasySerialPort::serial1: rxPin = ESP32_SER1_RX; txPin = ESP32_SER1_TX; return true;
case ESPEasySerialPort::serial2: rxPin = ESP32_SER2_RX; txPin = ESP32_SER2_TX; return true;
#endif // ifdef ESP32
#ifdef ESP8266
case ESPEasySerialPort::serial0: rxPin = 3; txPin = 1; return true;
case ESPEasySerialPort::serial0_swap: rxPin = 13; txPin = 15; return true;
case ESPEasySerialPort::serial1: rxPin = -1; txPin = 2; return true;
# ifndef DISABLE_SOFTWARE_SERIAL
case ESPEasySerialPort::software: rxPin = 14; txPin = 12; return true;
# endif // DISABLE_SOFTWARE_SERIAL
#endif // ifdef ESP8266
case ESPEasySerialPort::sc16is752: rxPin = -1; txPin = -1; return true;
default:
break;
}
return false;
}
#ifdef ESP32
ESPEasySerialPort ESPeasySerialType::getSerialType(ESPEasySerialPort typeHint, int receivePin, int transmitPin) {
if (typeHint != ESPEasySerialPort::not_set) {
return typeHint;
}
if ((receivePin == ESP32_SER0_RX) && (transmitPin == ESP32_SER0_TX)) {
return ESPEasySerialPort::serial0; // UART0
}
// Serial1 on ESP32 uses default pins connected to flash
// So must make sure to set them to other pins.
if ((receivePin == ESP32_SER1_RX) && (transmitPin == ESP32_SER1_TX)) {
return ESPEasySerialPort::serial1; // UART1
}
if ((receivePin == ESP32_SER2_RX) && (transmitPin == ESP32_SER2_TX)) {
return ESPEasySerialPort::serial2; // UART2
}
if ((receivePin >= 0x48) && (receivePin <= 0x57)) {
return ESPEasySerialPort::sc16is752; // I2C address range of SC16IS752
}
return ESPEasySerialPort::MAX_SERIAL_TYPE;
}
#endif // ESP32
#ifdef ESP8266
ESPEasySerialPort ESPeasySerialType::getSerialType(ESPEasySerialPort typeHint, int receivePin, int transmitPin) {
if (typeHint != ESPEasySerialPort::not_set) {
return typeHint;
}
if ((receivePin == 3) && (transmitPin == 1)) {
return ESPEasySerialPort::serial0; // UART0
}
// ESP8266
if ((receivePin == 13) && (transmitPin == 15)) {
return ESPEasySerialPort::serial0_swap; // UART0 remapped using Serial.swap()
}
if ((receivePin == -1) && (transmitPin == 2)) {
// Serial1 uses UART1, TX pin is GPIO2.
// UART1 can not be used to receive data because normally
// it's RX pin is occupied for flash chip connection.
return ESPEasySerialPort::serial1;
}
if ((receivePin >= 0x48) && (receivePin <= 0x57)) {
return ESPEasySerialPort::sc16is752; // I2C address range of SC16IS752
}
if ((receivePin == -1) && (transmitPin == -1)) {
// No pins set, so no serial type
return ESPEasySerialPort::MAX_SERIAL_TYPE;
}
return ESPEasySerialPort::software;
}
#endif // ESP8266
+20
View File
@@ -0,0 +1,20 @@
#ifndef ESPEASY_SERIAL_ESPEASYSERIALTYPE_H
#define ESPEASY_SERIAL_ESPEASYSERIALTYPE_H
#include "ESPEasySerialPort.h"
struct ESPeasySerialType {
static bool getSerialTypePins(ESPEasySerialPort serType,
int & rxPin,
int & txPin);
static ESPEasySerialPort getSerialType(ESPEasySerialPort typeHint,
int receivePin,
int transmitPin);
};
#endif // ifndef ESPEASY_SERIAL_ESPEASYSERIALTYPE_H
+2 -127
View File
@@ -77,134 +77,9 @@
#endif // ESP32
#ifndef ESP32_SER0_TX
# define ESP32_SER0_TX 1
#endif // ifndef ESP32_SER0_TX
#ifndef ESP32_SER0_RX
# define ESP32_SER0_RX 3
#endif // ifndef ESP32_SER0_RX
#include "ESPEasySerialPort.h"
#include "ESPEasySerialType.h"
#ifndef ESP32_SER1_TX
# define ESP32_SER1_TX 15
#endif // ifndef ESP32_SER1_TX
#ifndef ESP32_SER1_RX
# define ESP32_SER1_RX 13
#endif // ifndef ESP32_SER1_RX
#ifndef ESP32_SER2_TX
# define ESP32_SER2_TX 17
#endif // ifndef ESP32_SER2_TX
#ifndef ESP32_SER2_RX
# define ESP32_SER2_RX 16
#endif // ifndef ESP32_SER2_RX
// Keep value assigned as it is used in scripts and stored in the Settings.TaskDevicePort
enum class ESPEasySerialPort {
not_set = 0,
sc16is752 = 1,
serial0 = 2,
serial0_swap = 3,
serial1 = 4,
serial2 = 5,
software = 6,
MAX_SERIAL_TYPE
};
struct ESPeasySerialType {
static bool getSerialTypePins(ESPEasySerialPort serType, int& rxPin, int& txPin) {
rxPin = -1;
txPin = -1;
switch (serType) {
#ifdef ESP32
case ESPEasySerialPort::serial0: rxPin = ESP32_SER0_RX; txPin = ESP32_SER0_TX; return true;
case ESPEasySerialPort::serial1: rxPin = ESP32_SER1_RX; txPin = ESP32_SER1_TX; return true;
case ESPEasySerialPort::serial2: rxPin = ESP32_SER2_RX; txPin = ESP32_SER2_TX; return true;
#endif // ifdef ESP32
#ifdef ESP8266
case ESPEasySerialPort::serial0: rxPin = 3; txPin = 1; return true;
case ESPEasySerialPort::serial0_swap: rxPin = 13; txPin = 15; return true;
case ESPEasySerialPort::serial1: rxPin = -1; txPin = 2; return true;
# ifndef DISABLE_SOFTWARE_SERIAL
case ESPEasySerialPort::software: rxPin = 14; txPin = 12; return true;
# endif // DISABLE_SOFTWARE_SERIAL
#endif // ifdef ESP8266
case ESPEasySerialPort::sc16is752: rxPin = -1; txPin = -1; return true;
default:
break;
}
return false;
}
#ifdef ESP32
static ESPEasySerialPort getSerialType(ESPEasySerialPort typeHint, int receivePin, int transmitPin) {
if (typeHint != ESPEasySerialPort::not_set) {
return typeHint;
}
if ((receivePin == ESP32_SER0_RX) && (transmitPin == ESP32_SER0_TX)) {
return ESPEasySerialPort::serial0; // UART0
}
// Serial1 on ESP32 uses default pins connected to flash
// So must make sure to set them to other pins.
if ((receivePin == ESP32_SER1_RX) && (transmitPin == ESP32_SER1_TX)) {
return ESPEasySerialPort::serial1; // UART1
}
if ((receivePin == ESP32_SER2_RX) && (transmitPin == ESP32_SER2_TX)) {
return ESPEasySerialPort::serial2; // UART2
}
if ((receivePin >= 0x48) && (receivePin <= 0x57)) {
return ESPEasySerialPort::sc16is752; // I2C address range of SC16IS752
}
return ESPEasySerialPort::MAX_SERIAL_TYPE;
}
#endif // ESP32
#ifdef ESP8266
static ESPEasySerialPort getSerialType(ESPEasySerialPort typeHint, int receivePin, int transmitPin) {
if (typeHint != ESPEasySerialPort::not_set) {
return typeHint;
}
if ((receivePin == 3) && (transmitPin == 1)) {
return ESPEasySerialPort::serial0; // UART0
}
// ESP8266
if ((receivePin == 13) && (transmitPin == 15)) {
return ESPEasySerialPort::serial0_swap; // UART0 remapped using Serial.swap()
}
if ((receivePin == -1) && (transmitPin == 2)) {
// Serial1 uses UART1, TX pin is GPIO2.
// UART1 can not be used to receive data because normally
// it's RX pin is occupied for flash chip connection.
return ESPEasySerialPort::serial1;
}
if ((receivePin >= 0x48) && (receivePin <= 0x57)) {
return ESPEasySerialPort::sc16is752; // I2C address range of SC16IS752
}
if ((receivePin == -1) && (transmitPin == -1)) {
// No pins set, so no serial type
return ESPEasySerialPort::MAX_SERIAL_TYPE;
}
return ESPEasySerialPort::software;
}
#endif // ESP8266
};
class ESPeasySerial : public Stream {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "ESPeasySerial",
"version": "2.0.10",
"version": "2.0.13",
"keywords": [
"serial", "io", "softwareserial", "hardwareserial"
],
+1 -1
View File
@@ -1,5 +1,5 @@
name=ESPeasySerial
version=2.0.10
version=2.0.13
author=Gijs Noorlander
maintainer=Gijs Noorlander <gijs.noorlander@gmail.com>
sentence=Wrapper for SoftwareSerial, SC16IS752 I2C to UART bridge and HardwareSerial for ESP8266 and ESP32/ESP32S2.
+1 -1
View File
@@ -122,7 +122,7 @@ try:
plugins.append(buildflag)
plugins.append('MQTT_ONLY')
plugins.append('USE_SETTINGS_ARCHIVE')
plugins.append('FEATURE_SETTINGS_ARCHIVE=1')
plugins.append('WEBSERVER_RULES_DEBUG=1')
plugins.append('WEBSERVER_TIMINGSTATS')
plugins.append('WEBSERVER_NEW_UI')
+1 -1
View File
@@ -57,7 +57,7 @@ upload_flags_esp8266 =
--port=18266
upload_flags_esp32 =
--port=3232
build_flags = -DFEATURE_ARDUINO_OTA
build_flags = -DFEATURE_ARDUINO_OTA=1
upload_port = 192.168.1.152
+6 -3
View File
@@ -212,15 +212,18 @@ platform_packages =
; Updated ESP-IDF to the latest stable 4.0.1
; See: https://github.com/platformio/platform-espressif32/releases
; IDF 4.4 = platform-espressif32 3.4.x = espressif/arduino-esp32 tag 2.0.3
; IDF 4.4 = platform-espressif32 3.4.x = espressif/arduino-esp32 tag 2.0.4
; Just for those who lost track of the extremely confusing numbering schema.
[core_esp32_IDF4_4__2_0_3]
platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip
; For MUSTFIX_CLIENT_TIMEOUT_IN_SECONDS See: https://github.com/espressif/arduino-esp32/pull/6676
[core_esp32_IDF4_4__2_0_4]
platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.4/platform-espressif32-2.0.4.zip
platform_packages =
build_flags = -DESP32_STAGE
-DMUSTFIX_CLIENT_TIMEOUT_IN_SECONDS
[core_esp32_stage]
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
platform_packages = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1/framework-arduinoespressif32-release_IDF4.4.tar.gz
platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip
build_flags = -DESP32_STAGE
-DMUSTFIX_CLIENT_TIMEOUT_IN_SECONDS
+74 -73
View File
@@ -17,7 +17,7 @@ lib_ignore = ESP8266Ping
[esp32_base]
extends = common, core_esp32_IDF4_4__2_0_3
extends = common, core_esp32_IDF4_4__2_0_4
lib_deps =
Adafruit ILI9341 ESPEasy
Adafruit_ST77xx
@@ -38,7 +38,7 @@ lib_deps =
adafruit/Adafruit GFX Library@^1.11.1
ccronexpr
rlogiacco/CircularBuffer
td-er/ESPeasySerial @ 2.0.10
td-er/ESPeasySerial @ 2.0.13
td-er/SparkFun MAX1704x Fuel Gauge Arduino Library @ ^1.0.1
ShiftRegister74HC595_NonTemplate
VL53L0X @ 1.3.0
@@ -46,7 +46,7 @@ lib_deps =
extra_scripts = post:tools/pio/post_esp32.py
${extra_scripts_default.extra_scripts}
build_unflags = -Wall
build_flags = ${core_esp32_IDF4_4__2_0_3.build_flags}
build_flags = ${core_esp32_IDF4_4__2_0_4.build_flags}
${mqtt_flags.build_flags}
-DCONFIG_FREERTOS_ASSERT_DISABLE
-DCONFIG_LWIP_ESP_GRATUITOUS_ARP
@@ -91,13 +91,12 @@ board_build.filesystem = littlefs
[esp32_IRExt]
extends = esp32_base
lib_ignore = AS_BH1750
${esp32_always.lib_ignore}
lib_ignore = ${esp32_always.lib_ignore}
ESP32_ping
build_flags = ${esp32_base.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_BUILD_NORMAL_IRext
-DTESTING_USE_RTTTL
-DCOLLECTION_USE_RTTTL
lib_deps = ${esp32_base.lib_deps}
LittleFS
@@ -159,74 +158,76 @@ lib_deps = ${esp32_common_LittleFS.lib_deps}
[env:test_A_ESP32_4M316k]
[env:collection_A_ESP32_4M316k]
extends = esp32_common
board = esp32_4M
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DPLUGIN_SET_TEST_ESP32
-DTESTING_USE_RTTTL
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_SET_COLLECTION_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_B_ESP32_4M316k]
[env:collection_B_ESP32_4M316k]
extends = esp32_common
board = esp32_4M
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DPLUGIN_SET_TEST_B_ESP32
-DTESTING_USE_RTTTL
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_SET_COLLECTION_B_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_C_ESP32_4M316k]
[env:collection_C_ESP32_4M316k]
extends = esp32_common
board = esp32_4M
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DPLUGIN_SET_TEST_C_ESP32
-DTESTING_USE_RTTTL
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_SET_COLLECTION_C_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_D_ESP32_4M316k]
[env:collection_D_ESP32_4M316k]
extends = esp32_common
board = esp32_4M
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DPLUGIN_SET_TEST_D_ESP32
-DTESTING_USE_RTTTL
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_SET_COLLECTION_D_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_E_ESP32_4M316k]
[env:collection_E_ESP32_4M316k]
extends = esp32_common
board = esp32_4M
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DPLUGIN_SET_TEST_E_ESP32
-DTESTING_USE_RTTTL
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_SET_COLLECTION_E_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_A_ESP32_IRExt_4M316k]
extends = esp32_IRExt
board = esp32_4M
[env:test_B_ESP32_IRExt_4M316k]
[env:collection_A_ESP32_IRExt_4M316k]
extends = esp32_IRExt
board = esp32_4M
build_flags = ${esp32_IRExt.build_flags}
-DPLUGIN_SET_TEST_B_ESP32
-DPLUGIN_SET_COLLECTION_ESP32
[env:test_C_ESP32_IRExt_4M316k]
[env:collection_B_ESP32_IRExt_4M316k]
extends = esp32_IRExt
board = esp32_4M
build_flags = ${esp32_IRExt.build_flags}
-DPLUGIN_SET_TEST_C_ESP32
-DPLUGIN_SET_COLLECTION_B_ESP32
[env:test_D_ESP32_IRExt_4M316k]
[env:collection_C_ESP32_IRExt_4M316k]
extends = esp32_IRExt
board = esp32_4M
build_flags = ${esp32_IRExt.build_flags}
-DPLUGIN_SET_TEST_D_ESP32
-DPLUGIN_SET_COLLECTION_C_ESP32
[env:test_E_ESP32_IRExt_4M316k]
[env:collection_D_ESP32_IRExt_4M316k]
extends = esp32_IRExt
board = esp32_4M
build_flags = ${esp32_IRExt.build_flags}
-DPLUGIN_SET_TEST_E_ESP32
-DPLUGIN_SET_COLLECTION_D_ESP32
[env:collection_E_ESP32_IRExt_4M316k]
extends = esp32_IRExt
board = esp32_4M
build_flags = ${esp32_IRExt.build_flags}
-DPLUGIN_SET_COLLECTION_E_ESP32
[env:energy_ESP32_4M316k]
extends = esp32_common
@@ -234,7 +235,7 @@ board = esp32_4M
lib_deps = ${esp32_common.lib_deps}
ServoESP32
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_ENERGY_COLLECTION
[env:display_ESP32_4M316k]
@@ -243,7 +244,7 @@ board = esp32_4M
lib_deps = ${esp32_common.lib_deps}
ServoESP32
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_DISPLAY_COLLECTION
[env:neopixel_ESP32_4M316k]
@@ -252,49 +253,49 @@ board = esp32_4M
lib_deps = ${esp32_common.lib_deps}
ServoESP32
build_flags = ${esp32_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-D PLUGIN_NEOPIXEL_COLLECTION
[env:custom_ESP32_4M316k_ETH]
extends = env:custom_ESP32_4M316k
build_flags = ${env:custom_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DFEATURE_ETHERNET=1
[env:normal_ESP32_4M316k_ETH]
extends = env:normal_ESP32_4M316k
build_flags = ${env:normal_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DFEATURE_ETHERNET=1
[env:test_A_ESP32_4M316k_ETH]
extends = env:test_A_ESP32_4M316k
build_flags = ${env:test_A_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DTESTING_USE_RTTTL
[env:collection_A_ESP32_4M316k_ETH]
extends = env:collection_A_ESP32_4M316k
build_flags = ${env:collection_A_ESP32_4M316k.build_flags}
-DFEATURE_ETHERNET=1
-DCOLLECTION_USE_RTTTL
[env:test_B_ESP32_4M316k_ETH]
extends = env:test_B_ESP32_4M316k
build_flags = ${env:test_B_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DTESTING_USE_RTTTL
[env:collection_B_ESP32_4M316k_ETH]
extends = env:collection_B_ESP32_4M316k
build_flags = ${env:collection_B_ESP32_4M316k.build_flags}
-DFEATURE_ETHERNET=1
-DCOLLECTION_USE_RTTTL
[env:test_C_ESP32_4M316k_ETH]
extends = env:test_C_ESP32_4M316k
build_flags = ${env:test_C_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DTESTING_USE_RTTTL
[env:collection_C_ESP32_4M316k_ETH]
extends = env:collection_C_ESP32_4M316k
build_flags = ${env:collection_C_ESP32_4M316k.build_flags}
-DFEATURE_ETHERNET=1
-DCOLLECTION_USE_RTTTL
[env:test_D_ESP32_4M316k_ETH]
extends = env:test_D_ESP32_4M316k
build_flags = ${env:test_D_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DTESTING_USE_RTTTL
[env:collection_D_ESP32_4M316k_ETH]
extends = env:collection_D_ESP32_4M316k
build_flags = ${env:collection_D_ESP32_4M316k.build_flags}
-DFEATURE_ETHERNET=1
-DCOLLECTION_USE_RTTTL
[env:test_E_ESP32_4M316k_ETH]
extends = env:test_E_ESP32_4M316k
build_flags = ${env:test_E_ESP32_4M316k.build_flags}
-DHAS_ETHERNET
-DTESTING_USE_RTTTL
[env:collection_E_ESP32_4M316k_ETH]
extends = env:collection_E_ESP32_4M316k
build_flags = ${env:collection_E_ESP32_4M316k.build_flags}
-DFEATURE_ETHERNET=1
-DCOLLECTION_USE_RTTTL
@@ -308,14 +309,14 @@ board_upload.flash_size = 16MB
lib_ignore = ${esp32_always.lib_ignore}
ESP32_ping
build_flags = ${esp32_base.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_BUILD_MAX_ESP32
-DPLUGIN_BUILD_IR_EXTENDED
[env:max_ESP32_16M1M_ETH]
extends = env:max_ESP32_16M1M
build_flags = ${env:max_ESP32_16M1M.build_flags}
-DHAS_ETHERNET
-DFEATURE_ETHERNET=1
; A Lolin D32 PRO with 16MB Flash, allowing 4MB sketch size, and file storage using LittleFS filesystem
@@ -327,7 +328,7 @@ lib_ignore = ${esp32_always.lib_ignore}
ESP32_ping
build_flags = ${esp32_base.build_flags}
-DUSE_LITTLEFS
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_BUILD_MAX_ESP32
-DPLUGIN_BUILD_IR_EXTENDED
extra_scripts = ${esp32_base.extra_scripts}
@@ -339,7 +340,7 @@ board_build.filesystem = littlefs
[env:max_ESP32_16M8M_LittleFS_ETH]
extends = env:max_ESP32_16M8M_LittleFS
build_flags = ${env:max_ESP32_16M8M_LittleFS.build_flags}
-DHAS_ETHERNET
-DFEATURE_ETHERNET=1
+17 -17
View File
@@ -10,7 +10,7 @@ lib_ignore = ${esp32_always.lib_ignore}
HeatpumpIR
ESP32 BLE Arduino
build_flags = ${esp32_base.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
extra_scripts = ${esp32_base.extra_scripts}
lib_deps = ${esp32_base.lib_deps}
build_unflags = ${esp32_base.build_unflags}
@@ -39,7 +39,7 @@ board = esp32s2
lib_deps = ${esp32s2_common.lib_deps}
ServoESP32
build_flags = ${esp32s2_common.build_flags}
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_NEOPIXEL_COLLECTION
@@ -63,40 +63,40 @@ board = esp32s2
lib_deps = ${esp32s2_common.lib_deps}
ServoESP32
[env:test_A_ESP32s2_4M316k]
[env:collection_A_ESP32s2_4M316k]
extends = esp32s2_common
board = esp32s2
build_flags = ${esp32s2_common.build_flags}
-DPLUGIN_SET_TEST_ESP32
-DTESTING_USE_RTTTL
-DPLUGIN_SET_COLLECTION_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_B_ESP32s2_4M316k]
[env:collection_B_ESP32s2_4M316k]
extends = esp32s2_common
board = esp32s2
build_flags = ${esp32s2_common.build_flags}
-DPLUGIN_SET_TEST_B_ESP32
-DTESTING_USE_RTTTL
-DPLUGIN_SET_COLLECTION_B_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_C_ESP32s2_4M316k]
[env:collection_C_ESP32s2_4M316k]
extends = esp32s2_common
board = esp32s2
build_flags = ${esp32s2_common.build_flags}
-DPLUGIN_SET_TEST_C_ESP32
-DTESTING_USE_RTTTL
-DPLUGIN_SET_COLLECTION_C_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_D_ESP32s2_4M316k]
[env:collection_D_ESP32s2_4M316k]
extends = esp32s2_common
board = esp32s2
build_flags = ${esp32s2_common.build_flags}
-DPLUGIN_SET_TEST_D_ESP32
-DTESTING_USE_RTTTL
-DPLUGIN_SET_COLLECTION_D_ESP32
-DCOLLECTION_USE_RTTTL
[env:test_E_ESP32s2_4M316k]
[env:collection_E_ESP32s2_4M316k]
extends = esp32s2_common
board = esp32s2
build_flags = ${esp32s2_common.build_flags}
-DPLUGIN_SET_TEST_E_ESP32
-DTESTING_USE_RTTTL
-DPLUGIN_SET_COLLECTION_E_ESP32
-DCOLLECTION_USE_RTTTL
[env:energy_ESP32s2_4M316k]
+14 -23
View File
@@ -83,7 +83,7 @@ lib_deps =
adafruit/Adafruit GFX Library@^1.11.1
bblanchon/ArduinoJson @ ^6.17.2
rlogiacco/CircularBuffer
td-er/ESPeasySerial @ 2.0.10
td-er/ESPeasySerial @ 2.0.13
td-er/RABurton ESP8266 Mutex @ ^1.0.2
td-er/SparkFun MAX1704x Fuel Gauge Arduino Library @ ^1.0.1
VL53L0X @ 1.3.0
@@ -136,17 +136,18 @@ lib_ignore = ${beta_platform.lib_ignore}
LittleFS(esp8266)
;;; TEST *************************************************************
; additional plugins (and dependend code) that is marked as TESTING ;
; Includes "normal" + "testing" plugins ;
; *********************************************************************
;;; COLLECTION ********************************************************
; additional plugins (and dependend code) that is marked as COLLECTION ;
; Includes "normal" + "collection" plugins ;
; **********************************************************************
[testing]
[collection]
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
-DPLUGIN_BUILD_TESTING
-DPLUGIN_BUILD_COLLECTION
-DLIMIT_BUILD_SIZE
-DDISABLE_SC16IS752_Serial
lib_ignore = ${regular_platform.lib_ignore}
SD(esp8266)
SD
@@ -154,24 +155,26 @@ lib_ignore = ${regular_platform.lib_ignore}
LittleFS(esp8266)
[testing_alt_wifi]
[collection_alt_wifi]
platform = ${regular_platform_alt_wifi.platform}
platform_packages = ${regular_platform_alt_wifi.platform_packages}
build_flags = ${regular_platform_alt_wifi.build_flags}
-DPLUGIN_BUILD_TESTING
-DPLUGIN_BUILD_COLLECTION
-DLIMIT_BUILD_SIZE
-DDISABLE_SC16IS752_Serial
lib_ignore = ${regular_platform_alt_wifi.lib_ignore}
SD(esp8266)
SD
SDFS
LittleFS(esp8266)
[testing_beta]
[collection_beta]
platform = ${beta_platform.platform}
platform_packages = ${beta_platform.platform_packages}
build_flags = ${beta_platform.build_flags}
-DPLUGIN_BUILD_TESTING
-DPLUGIN_BUILD_COLLECTION
-DLIMIT_BUILD_SIZE
-DDISABLE_SC16IS752_Serial
lib_ignore = ${beta_platform.lib_ignore}
SD
SDFS
@@ -244,12 +247,6 @@ extends = esp82xx_1M
board = esp8266_1M128k
build_flags = ${esp82xx_1M.build_flags}
[esp8285_1M]
extends = esp82xx_1M
board = esp8285_1M128k
build_flags = ${esp82xx_1M.build_flags}
-DESP8285
;;; Minimal ***********************************************************
; Minimal build size for OTA ;
@@ -266,12 +263,6 @@ extends = esp82xx_1M_OTA
board = esp8266_1M128k_OTA
build_flags = ${esp82xx_1M_OTA.build_flags}
[esp8285_1M_OTA]
extends = esp82xx_1M_OTA
board = esp8285_1M128k_OTA
build_flags = ${esp82xx_1M_OTA.build_flags}
-DESP8285
;;; 2MB flash nodes **************************************************
; Layout for 2M flash nodes ;
+149 -210
View File
@@ -274,19 +274,13 @@ lib_ignore = ${regular_platform_alt_wifi.lib_ignore}
; NORMAL: 1024k for esp8285 ----------------------
[env:normal_ESP8285_1M]
extends = esp8285_1M
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8285_1M.build_flags}
lib_ignore = ${regular_platform.lib_ignore}
SD(esp8266)
SD
SDFS
LittleFS(esp8266)
; NORMAL: 2048k WROOM02 version --------------------------
;[env:normal_WROOM02_2M]
;extends = espWroom2M
;platform = ${regular_platform.platform}
;platform_packages = ${regular_platform.platform_packages}
;build_flags = ${regular_platform.build_flags}
; ${espWroom2M.build_flags}
; NORMAL: 2048k WROOM02 version 256k SPIFFS --------------------------
@@ -376,11 +370,11 @@ lib_ignore = ESP32_ping
; *********************************************************************
[minimal_OTA_domoticz]
build_flags = -DUSES_DOMOTICZ
build_flags = -DFEATURE_DOMOTICZ=1
[minimal_OTA_FHEM_HA]
build_flags = -DUSES_FHEM
-DUSES_HOMEASSISTANT_OPENHAB
build_flags = -DFEATURE_FHEM=1
-DFEATURE_HOMEASSISTANT_OPENHAB=1
[env:minimal_core_274_ESP8266_1M_OTA_Domoticz]
@@ -391,13 +385,6 @@ build_flags = ${regular_platform.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}
[env:minimal_core_274_ESP8285_1M_OTA_Domoticz]
extends = esp8285_1M_OTA
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}
[env:minimal_core_302_ESP8266_1M_OTA_Domoticz]
extends = esp8266_1M_OTA
@@ -407,14 +394,6 @@ build_flags = ${core302_platform.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}
[env:minimal_core_302_ESP8285_1M_OTA_Domoticz]
extends = esp8285_1M_OTA
platform = ${core302_platform.platform}
platform_packages = ${core302_platform.platform_packages}
build_flags = ${core302_platform.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_domoticz.build_flags}
[env:minimal_core_274_ESP8266_1M_OTA_FHEM_HA]
extends = esp8266_1M_OTA
@@ -424,13 +403,6 @@ build_flags = ${regular_platform.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}
[env:minimal_core_274_ESP8285_1M_OTA_FHEM_HA]
extends = esp8285_1M_OTA
platform = ${regular_platform.platform}
platform_packages = ${regular_platform.platform_packages}
build_flags = ${regular_platform.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}
[env:minimal_core_302_ESP8266_1M_OTA_FHEM_HA]
extends = esp8266_1M_OTA
@@ -440,14 +412,6 @@ build_flags = ${core302_platform.build_flags}
${esp8266_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}
[env:minimal_core_302_ESP8285_1M_OTA_FHEM_HA]
extends = esp8285_1M_OTA
platform = ${core302_platform.platform}
platform_packages = ${core302_platform.platform_packages}
build_flags = ${core302_platform.build_flags}
${esp8285_1M_OTA.build_flags}
${minimal_OTA_FHEM_HA.build_flags}
;;; IR ***********************************************************
@@ -505,37 +469,37 @@ build_flags = ${normal_ir_extended_no_rx.build_flags}
;;; TEST *************************************************************
; additional plugins (and dependend code) that is marked as TESTING ;
; Includes "normal" + "testing" plugins ;
; *********************************************************************
;;; COLLECTION *********************************************************
; additional plugins (and dependend code) that is grouped as COLLECTION ;
; Includes "normal" + "collection" plugins ;
; ***********************************************************************
[testing_ESP8266_4M1M]
[collection_ESP8266_4M1M]
extends = esp8266_4M1M
platform = ${testing.platform}
platform_packages = ${testing.platform_packages}
build_flags = ${testing.build_flags}
platform = ${collection.platform}
platform_packages = ${collection.platform_packages}
build_flags = ${collection.build_flags}
${esp8266_4M1M.build_flags}
[testing_alt_wifi_ESP8266_4M1M]
[collection_alt_wifi_ESP8266_4M1M]
extends = esp8266_4M1M
platform = ${testing_alt_wifi.platform}
platform_packages = ${testing_alt_wifi.platform_packages}
build_flags = ${testing_alt_wifi.build_flags}
platform = ${collection_alt_wifi.platform}
platform_packages = ${collection_alt_wifi.platform_packages}
build_flags = ${collection_alt_wifi.build_flags}
${esp8266_4M1M.build_flags}
[testing_beta_ESP8266_4M1M]
[collection_beta_ESP8266_4M1M]
extends = esp8266_4M1M
platform = ${testing_beta.platform}
platform_packages = ${testing_beta.platform_packages}
build_flags = ${testing_beta.build_flags}
platform = ${collection_beta.platform}
platform_packages = ${collection_beta.platform_packages}
build_flags = ${collection_beta.build_flags}
${esp8266_4M1M.build_flags}
[testing_beta_ESP8266_16M_LittleFS]
[collection_beta_ESP8266_16M_LittleFS]
extends = esp8266_16M
platform = ${testing_beta.platform}
platform_packages = ${testing_beta.platform_packages}
build_flags = ${testing_beta.build_flags}
platform = ${collection_beta.platform}
platform_packages = ${collection_beta.platform_packages}
build_flags = ${collection_beta.build_flags}
${esp8266_16M.build_flags}
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22y
board_build.filesystem = littlefs
@@ -547,110 +511,110 @@ lib_ignore = ESP32_ping
HeatpumpIR
[env:test_A_ESP8266_4M1M]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
-DTESTING_USE_RTTTL
[env:collection_A_ESP8266_4M1M]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DCOLLECTION_USE_RTTTL
[env:test_B_ESP8266_4M1M]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_TESTING_B
[env:collection_B_ESP8266_4M1M]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_COLLECTION_B
[env:test_C_ESP8266_4M1M]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_TESTING_C
-DTESTING_USE_RTTTL
[env:collection_C_ESP8266_4M1M]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_COLLECTION_C
-DCOLLECTION_USE_RTTTL
[env:test_D_ESP8266_4M1M]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_TESTING_D
-DTESTING_USE_RTTTL
[env:collection_D_ESP8266_4M1M]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_COLLECTION_D
-DCOLLECTION_USE_RTTTL
[env:test_E_ESP8266_4M1M]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_TESTING_E
-DTESTING_USE_RTTTL
[env:collection_E_ESP8266_4M1M]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DPLUGIN_BUILD_COLLECTION_E
-DCOLLECTION_USE_RTTTL
; TEST: 4096k version + FEATURE_ADC_VCC ----------
[env:test_A_ESP8266_4M1M_VCC]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
; COLL: 4096k version + FEATURE_ADC_VCC ----------
[env:collection_A_ESP8266_4M1M_VCC]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DFEATURE_ADC_VCC=true
-DTESTING_USE_RTTTL
-DCOLLECTION_USE_RTTTL
[env:test_B_ESP8266_4M1M_VCC]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
[env:collection_B_ESP8266_4M1M_VCC]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DFEATURE_ADC_VCC=true
-DPLUGIN_BUILD_TESTING_B
-DPLUGIN_BUILD_COLLECTION_B
[env:test_C_ESP8266_4M1M_VCC]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
[env:collection_C_ESP8266_4M1M_VCC]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DFEATURE_ADC_VCC=true
-DPLUGIN_BUILD_TESTING_C
-DTESTING_USE_RTTTL
-DPLUGIN_BUILD_COLLECTION_C
-DCOLLECTION_USE_RTTTL
[env:test_D_ESP8266_4M1M_VCC]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
[env:collection_D_ESP8266_4M1M_VCC]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DFEATURE_ADC_VCC=true
-DPLUGIN_BUILD_TESTING_D
-DTESTING_USE_RTTTL
-DPLUGIN_BUILD_COLLECTION_D
-DCOLLECTION_USE_RTTTL
[env:test_E_ESP8266_4M1M_VCC]
extends = testing_ESP8266_4M1M
build_flags = ${testing_ESP8266_4M1M.build_flags}
[env:collection_E_ESP8266_4M1M_VCC]
extends = collection_ESP8266_4M1M
build_flags = ${collection_ESP8266_4M1M.build_flags}
-DFEATURE_ADC_VCC=true
-DPLUGIN_BUILD_TESTING_E
-DTESTING_USE_RTTTL
-DPLUGIN_BUILD_COLLECTION_E
-DCOLLECTION_USE_RTTTL
;[env:test_A_alt_wifi_ESP8266_4M1M_VCC]
;extends = testing_alt_wifi_ESP8266_4M1M
;build_flags = ${testing_alt_wifi_ESP8266_4M1M.build_flags}
;[env:collection_A_alt_wifi_ESP8266_4M1M_VCC]
;extends = collection_alt_wifi_ESP8266_4M1M
;build_flags = ${collection_alt_wifi_ESP8266_4M1M.build_flags}
; -DFEATURE_ADC_VCC=true
;[env:test_B_alt_wifi_ESP8266_4M1M_VCC]
;extends = testing_alt_wifi_ESP8266_4M1M
;build_flags = ${testing_alt_wifi_ESP8266_4M1M.build_flags}
;[env:collection_B_alt_wifi_ESP8266_4M1M_VCC]
;extends = collection_alt_wifi_ESP8266_4M1M
;build_flags = ${collection_alt_wifi_ESP8266_4M1M.build_flags}
; -DFEATURE_ADC_VCC=true
; -DPLUGIN_BUILD_TESTING_B
; -DPLUGIN_BUILD_COLLECTION_B
;[env:test_C_alt_wifi_ESP8266_4M1M_VCC]
;extends = testing_alt_wifi_ESP8266_4M1M
;build_flags = ${testing_alt_wifi_ESP8266_4M1M.build_flags}
;[env:collection_C_alt_wifi_ESP8266_4M1M_VCC]
;extends = collection_alt_wifi_ESP8266_4M1M
;build_flags = ${collection_alt_wifi_ESP8266_4M1M.build_flags}
; -DFEATURE_ADC_VCC=true
; -DPLUGIN_BUILD_TESTING_C
; -DPLUGIN_BUILD_COLLECTION_C
;[env:test_D_alt_wifi_ESP8266_4M1M_VCC]
;extends = testing_alt_wifi_ESP8266_4M1M
;build_flags = ${testing_alt_wifi_ESP8266_4M1M.build_flags}
;[env:collection_D_alt_wifi_ESP8266_4M1M_VCC]
;extends = collection_alt_wifi_ESP8266_4M1M
;build_flags = ${collection_alt_wifi_ESP8266_4M1M.build_flags}
; -DFEATURE_ADC_VCC=true
; -DPLUGIN_BUILD_TESTING_D
; -DPLUGIN_BUILD_COLLECTION_D
;[env:test_E_alt_wifi_ESP8266_4M1M_VCC]
;extends = testing_alt_wifi_ESP8266_4M1M
;build_flags = ${testing_alt_wifi_ESP8266_4M1M.build_flags}
;[env:collection_E_alt_wifi_ESP8266_4M1M_VCC]
;extends = collection_alt_wifi_ESP8266_4M1M
;build_flags = ${collection_alt_wifi_ESP8266_4M1M.build_flags}
; -DFEATURE_ADC_VCC=true
; -DPLUGIN_BUILD_TESTING_E
; -DPLUGIN_BUILD_COLLECTION_E
; TEST: 4096k version + FEATURE_ADC_VCC + FEATURE_MDNS + FEATURE_SD ----------
; COLL: 4096k version + FEATURE_ADC_VCC + FEATURE_MDNS + FEATURE_SD ----------
; Disabled for now as it does not fit in IRAM and with VCC_SD it does not fit in max. build size
;[env:test_ESP8266_4M1M_VCC_MDNS_SD]
;[env:collection_ESP8266_4M1M_VCC_MDNS_SD]
;extends = esp8266_4M1M
;platform = ${testing.platform}
;platform_packages = ${testing.platform_packages}
;build_flags = ${testing.build_flags}
;platform = ${collection.platform}
;platform_packages = ${collection.platform_packages}
;build_flags = ${collection.build_flags}
; ${esp8266_4M1M.build_flags}
; -DFEATURE_ADC_VCC=true
; -DFEATURE_MDNS
; -DFEATURE_SD
; -DFEATURE_SD=1
; -DLIMIT_BUILD_SIZE
;lib_ignore = ESP32_ping
; ESP32WebServer
@@ -660,68 +624,68 @@ build_flags = ${testing_ESP8266_4M1M.build_flags}
; HeatpumpIRLittleFS(esp8266)
;[env:test_A_beta_ESP8266_4M1M]
;extends = testing_beta_ESP8266_4M1M
;build_flags = ${testing_beta_ESP8266_4M1M.build_flags}
;[env:collection_A_beta_ESP8266_4M1M]
;extends = collection_beta_ESP8266_4M1M
;build_flags = ${collection_beta_ESP8266_4M1M.build_flags}
; -DLIMIT_BUILD_SIZE
; -DTESTING_USE_RTTTL
; -DCOLLECTION_USE_RTTTL
;[env:test_B_beta_ESP8266_4M1M]
;extends = testing_beta_ESP8266_4M1M
;build_flags = ${testing_beta_ESP8266_4M1M.build_flags}
;[env:collection_B_beta_ESP8266_4M1M]
;extends = collection_beta_ESP8266_4M1M
;build_flags = ${collection_beta_ESP8266_4M1M.build_flags}
; -DLIMIT_BUILD_SIZE
; -DPLUGIN_BUILD_TESTING_B
; -DPLUGIN_BUILD_COLLECTION_B
;[env:test_C_beta_ESP8266_4M1M]
;extends = testing_beta_ESP8266_4M1M
;build_flags = ${testing_beta_ESP8266_4M1M.build_flags}
;[env:collection_C_beta_ESP8266_4M1M]
;extends = collection_beta_ESP8266_4M1M
;build_flags = ${collection_beta_ESP8266_4M1M.build_flags}
; -DLIMIT_BUILD_SIZE
; -DPLUGIN_BUILD_TESTING_C
; -DTESTING_USE_RTTTL
; -DPLUGIN_BUILD_COLLECTION_C
; -DCOLLECTION_USE_RTTTL
;[env:test_D_beta_ESP8266_4M1M]
;extends = testing_beta_ESP8266_4M1M
;build_flags = ${testing_beta_ESP8266_4M1M.build_flags}
;[env:collection_D_beta_ESP8266_4M1M]
;extends = collection_beta_ESP8266_4M1M
;build_flags = ${collection_beta_ESP8266_4M1M.build_flags}
; -DLIMIT_BUILD_SIZE
; -DPLUGIN_BUILD_TESTING_D
; -DTESTING_USE_RTTTL
; -DPLUGIN_BUILD_COLLECTION_D
; -DCOLLECTION_USE_RTTTL
;[env:test_E_beta_ESP8266_4M1M]
;extends = testing_beta_ESP8266_4M1M
;build_flags = ${testing_beta_ESP8266_4M1M.build_flags}
;[env:collection_E_beta_ESP8266_4M1M]
;extends = collection_beta_ESP8266_4M1M
;build_flags = ${collection_beta_ESP8266_4M1M.build_flags}
; -DLIMIT_BUILD_SIZE
; -DPLUGIN_BUILD_TESTING_E
; -DTESTING_USE_RTTTL
; -DTESTING_USE_RTTTL
; -DPLUGIN_BUILD_COLLECTION_E
; -DCOLLECTION_USE_RTTTL
; -DCOLLECTION_USE_RTTTL
; Test: 16M version -- LittleFS --------------
; COLL: 16M version -- LittleFS --------------
; LittleFS is determined by using "LittleFS" in the pio env name
;[env:test_A_beta_ESP8266_16M_LittleFS]
;extends = testing_beta_ESP8266_16M_LittleFS
;build_flags = ${testing_beta_ESP8266_16M_LittleFS.build_flags}
;[env:collection_A_beta_ESP8266_16M_LittleFS]
;extends = collection_beta_ESP8266_16M_LittleFS
;build_flags = ${collection_beta_ESP8266_16M_LittleFS.build_flags}
;[env:test_B_beta_ESP8266_16M_LittleFS]
;extends = testing_beta_ESP8266_16M_LittleFS
;build_flags = ${testing_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_TESTING_B
;[env:collection_B_beta_ESP8266_16M_LittleFS]
;extends = collection_beta_ESP8266_16M_LittleFS
;build_flags = ${collection_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_COLLECTION_B
;[env:test_C_beta_ESP8266_16M_LittleFS]
;extends = testing_beta_ESP8266_16M_LittleFS
;build_flags = ${testing_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_TESTING_C
; -DTESTING_USE_RTTTL
;[env:collection_C_beta_ESP8266_16M_LittleFS]
;extends = collection_beta_ESP8266_16M_LittleFS
;build_flags = ${collection_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_COLLECTION_C
; -DCOLLECTION_USE_RTTTL
;[env:test_D_beta_ESP8266_16M_LittleFS]
;extends = testing_beta_ESP8266_16M_LittleFS
;build_flags = ${testing_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_TESTING_D
; -DTESTING_USE_RTTTL
;[env:collection_D_beta_ESP8266_16M_LittleFS]
;extends = collection_beta_ESP8266_16M_LittleFS
;build_flags = ${collection_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_COLLECTION_D
; -DCOLLECTION_USE_RTTTL
;[env:test_E_beta_ESP8266_16M_LittleFS]
;extends = testing_beta_ESP8266_16M_LittleFS
;build_flags = ${testing_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_TESTING_E
; -DTESTING_USE_RTTTL
;[env:collection_E_beta_ESP8266_16M_LittleFS]
;extends = collection_beta_ESP8266_16M_LittleFS
;build_flags = ${collection_beta_ESP8266_16M_LittleFS.build_flags}
; -DPLUGIN_BUILD_COLLECTION_E
; -DCOLLECTION_USE_RTTTL
@@ -833,31 +797,6 @@ build_flags = ${hard_esp82xx.build_flags}
-D PLUGIN_SET_SONOFF_POW
; ITEAD / SONOFF S20 version --------------------
;[env:hard_SONOFF_S20_1M]
;extends = esp8266_1M_OTA
;platform = ${hard_esp82xx.platform}
;platform_packages = ${hard_esp82xx.platform_packages}
;build_flags = ${hard_esp82xx.build_flags} ${esp8266_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_S2x
; ITEAD / SONOFF 4CH version --------------------
;[env:hard_SONOFF_4CH_1M]
;extends = esp8285_1M_OTA
;platform = ${hard_esp82xx.platform}
;platform_packages = ${hard_esp82xx.platform_packages}
;build_flags = ${hard_esp82xx.build_flags} ${esp8285_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_4CH
; ITEAD / SONOFF TOUCH version ------------------
;[env:hard_SONOFF_TOUCH_1M]
;extends = esp8285_1M_OTA
;platform = ${hard_esp82xx.platform}
;platform_packages = ${hard_esp82xx.platform_packages}
;build_flags = ${hard_esp82xx.build_flags} ${esp8285_1M_OTA.build_flags} -D PLUGIN_SET_SONOFF_TOUCH
; Shelly1 Open Source (ESP8266-2MB)
; https://shelly.cloud/shelly1-open-source/
; GPIO04 Relay (non inverted)
+1 -1
View File
@@ -95,7 +95,7 @@ lib_ignore = ${esp32_always.lib_ignore}
build_flags = ${esp32_base.build_flags}
${debug_pio.build_flags}
-DUSE_LITTLEFS
-DFEATURE_ARDUINO_OTA
-DFEATURE_ARDUINO_OTA=1
-DPLUGIN_BUILD_MAX_ESP32
-DPLUGIN_BUILD_IR_EXTENDED
lib_deps = ${esp32_base.lib_deps}
+18 -14
View File
@@ -22,9 +22,12 @@
*/
// --- Feature Flagging ---------------------------------------------------------
// Can be set to 1 to enable, 0 to disable, or not set to use the default (usually via define_plugin_sets.h)
#define FEATURE_ESPEASY_P2P 1 // (1/0) enables the ESP Easy P2P protocol
#define FEATURE_ARDUINO_OTA //enables the Arduino OTA capabilities
#define FEATURE_ARDUINO_OTA 1 //enables the Arduino OTA capabilities
// #define FEATURE_SD 1 // Enable SD card support
// #define FEATURE_DOWNLOAD 1 // Enable downloading a file from an url
#ifdef BUILD_GIT
# undef BUILD_GIT
@@ -107,7 +110,7 @@
#define DEFAULT_PIN_I2C_SDA 4
#define DEFAULT_PIN_I2C_SCL 5
#define DEFAULT_I2C_CLOCK_SPEED 400000 // Use 100 kHz if working with old I2C chips
#define USE_I2C_DEVICE_SCAN true
#define FEATURE_I2C_DEVICE_SCAN 1
#define DEFAULT_SPI 0 //0=disabled 1=enabled and for ESP32 there is option 2 =HSPI
@@ -178,34 +181,34 @@
// Allow for remote provisioning of a node.
// This is only allowed for custom builds.
// To setup the configuration of the provisioning file, one must also define USE_SETTINGS_ARCHIVE
// To setup the configuration of the provisioning file, one must also define FEATURE_SETTINGS_ARCHIVE
// Default setting is to not allow to configure a node remotely, unless explicitly enabled.
// #define USE_CUSTOM_PROVISIONING
// #define FEATURE_CUSTOM_PROVISIONING 1
#define USES_SSDP
#define FEATURE_SSDP 1
#define USE_EXT_RTC // Support for external RTC clock modules like PCF8563/PCF8523/DS3231/DS1307
#define FEATURE_EXT_RTC 1 // Support for external RTC clock modules like PCF8563/PCF8523/DS3231/DS1307
#define USES_PLUGIN_STATS // Support collecting historic data + computing stats on historic data
#define FEATURE_PLUGIN_STATS 1 // Support collecting historic data + computing stats on historic data
#ifdef ESP8266
# define PLUGIN_STATS_NR_ELEMENTS 16
#endif // ifdef ESP8266
# ifdef ESP32
# define PLUGIN_STATS_NR_ELEMENTS 64
#endif // ifdef ESP32
#define USES_CHART_JS // Support for drawing charts, like PluginStats historic data
#define FEATURE_CHART_JS 1 // Support for drawing charts, like PluginStats historic data
// #define USE_SETTINGS_ARCHIVE
// #define FEATURE_I2CMULTIPLEXER
// #define USE_TRIGONOMETRIC_FUNCTIONS_RULES
// #define FEATURE_SETTINGS_ARCHIVE 1
// #define FEATURE_I2CMULTIPLEXER 1
// #define FEATURE_TRIGONOMETRIC_FUNCTIONS_RULES 1
// #define PLUGIN_USES_ADAFRUITGFX // Used by Display plugins using Adafruit GFX library
// #define ADAGFX_ARGUMENT_VALIDATION 0 // Disable argument validation in AdafruitGFX_helper
// #define ADAGFX_SUPPORT_7COLOR 0 // Disable the support of 7-color eInk displays by AdafruitGFX_helper
#ifdef USE_CUSTOM_PROVISIONING
#if FEATURE_CUSTOM_PROVISIONING
// For device models, see src/src/DataTypes/DeviceModel.h
// #ifdef ESP32
// #define DEFAULT_FACTORY_DEFAULT_DEVICE_MODEL 0 // DeviceModel_default
@@ -231,7 +234,7 @@
#define USES_SSDP
#define FEATURE_SSDP 1
/*
#######################################################################################################
@@ -309,7 +312,7 @@ static const char DATA_ESPEASY_DEFAULT_MIN_CSS[] PROGMEM = {
#######################################################################################################
*/
// #define USE_SERVO
// #define FEATURE_SERVO 1 // Uncomment and set to 0 to explicitly disable SERVO support
// #define USES_P001 // Switch
@@ -455,6 +458,7 @@ static const char DATA_ESPEASY_DEFAULT_MIN_CSS[] PROGMEM = {
// #define P128_USES_RGBW
// #define P128_USES_BRG
// #define P128_USES_RBG
// #define P128_ENABLE_FAKETV 1 // Enable(1)/Disable(0) FakeTV effect, disabled by default on ESP8266 (.bin size issue), enabled by default on ESP32
// Special plugins needing IR library
+3 -5
View File
@@ -22,14 +22,11 @@
//(512k is NOT finsihed or tested yet as of v2.0.0-dev6)
//build all plugins that are in test stadium
//#define PLUGIN_BUILD_TESTING
//build all plugins that still are being developed and are broken or incomplete
//#define PLUGIN_BUILD_DEV
//add this if you want SD support (add 10k flash)
//#define FEATURE_SD
//#define FEATURE_SD 1
@@ -97,7 +94,8 @@ extern float vcc;
extern bool shouldReboot;
extern bool firstLoop;
// This is read from the settings at boot.
// Even if this setting is changed, you need to reboot to activate the changes.
extern boolean UseRTOSMultitasking;
#endif /* ESPEASY_GLOBALS_H_ */
+4 -1
View File
@@ -61,6 +61,9 @@ namespace std
// #define PLUGIN_BUILD_NORMAL
#endif
// Check if any deprecated '#define <variable>' (Custom.h) or '-D<variable>' (pre_custom_esp82xx.py/pre_custom_esp32.py) are used
#include "./src/CustomBuild/check_defines_custom.h" // Check for replaced #define variables, see https://github.com/letscontrolit/ESPEasy/pull/4153
#include "src/CustomBuild/ESPEasyDefaults.h"
#include "src/DataStructs/NodeStruct.h"
#include "src/Globals/RamTracker.h"
@@ -162,7 +165,7 @@ namespace std
#include <Wire.h>
#include <SPI.h>
#include <FS.h>
#ifdef FEATURE_SD
#if FEATURE_SD
#include <SD.h>
#else
using namespace fs;
+20 -13
View File
@@ -60,6 +60,7 @@ bool CPlugin_001(CPlugin::Function function, struct EventStruct *event, String&
const Sensor_VType sensorType = event->getSensorType();
String url;
const size_t expectedSize = sensorType == Sensor_VType::SENSOR_TYPE_STRING ? 64 + event->String2.length() : 128;
if (url.reserve(expectedSize)) {
url = F("/json.htm?type=command&param=");
@@ -113,7 +114,7 @@ bool CPlugin_001(CPlugin::Function function, struct EventStruct *event, String&
success = C001_DelayHandler->addToQueue(C001_queue_element(event->ControllerIndex, event->TaskIndex, std::move(url)));
Scheduler.scheduleNextDelayQueue(ESPEasy_Scheduler::IntervalTimer_e::TIMER_C001_DELAY_QUEUE,
C001_DelayHandler->getNextScheduleTime());
C001_DelayHandler->getNextScheduleTime());
}
} // if ixd !=0
else
@@ -140,20 +141,26 @@ bool CPlugin_001(CPlugin::Function function, struct EventStruct *event, String&
// *INDENT-OFF*
bool do_process_c001_delay_queue(int controller_number, const C001_queue_element& element, ControllerSettingsStruct& ControllerSettings) {
// *INDENT-ON*
WiFiClient client;
# ifndef BUILD_NO_DEBUG
if (!try_connect_host(controller_number, client, ControllerSettings)) {
return false;
}
// This will send the request to the server
String request = create_http_request_auth(controller_number, element.controller_idx, ControllerSettings, F("GET"), element.txt);
# ifndef BUILD_NO_DEBUG
if (loglevelActiveFor(LOG_LEVEL_DEBUG))
if (loglevelActiveFor(LOG_LEVEL_DEBUG)) {
addLog(LOG_LEVEL_DEBUG, element.txt);
# endif // ifndef BUILD_NO_DEBUG
return send_via_http(controller_number, client, request, ControllerSettings.MustCheckReply);
}
# endif // ifndef BUILD_NO_DEBUG
WiFiClient client;
int httpCode = -1;
send_via_http(
controller_number,
ControllerSettings,
element.controller_idx,
client,
element.txt,
F("GET"),
EMPTY_STRING,
EMPTY_STRING,
httpCode);
return (httpCode >= 100) && (httpCode < 300);
}
#endif // ifdef USES_C001
+15 -18
View File
@@ -90,12 +90,6 @@ bool CPlugin_004(CPlugin::Function function, struct EventStruct *event, String&
// *INDENT-OFF*
bool do_process_c004_delay_queue(int controller_number, const C004_queue_element& element, ControllerSettingsStruct& ControllerSettings) {
// *INDENT-ON*
WiFiClient client;
if (!try_connect_host(controller_number, client, ControllerSettings)) {
return false;
}
String postDataStr = F("api_key=");
postDataStr += getControllerPass(element.controller_idx, ControllerSettings); // used for API key
@@ -113,22 +107,25 @@ bool do_process_c004_delay_queue(int controller_number, const C004_queue_element
postDataStr += element.txt[x];
}
}
String hostName = F("api.thingspeak.com"); // PM_CZ: HTTP requests must contain host headers.
if (ControllerSettings.UseDNS) {
hostName = ControllerSettings.HostName;
if (!ControllerSettings.UseDNS) {
// Patch the ControllerSettings to make sure we're using a hostname instead of an IP address
ControllerSettings.setHostname(F("api.thingspeak.com")); // PM_CZ: HTTP requests must contain host headers.
ControllerSettings.UseDNS = true;
}
String postStr = do_create_http_request(
hostName, F("POST"),
WiFiClient client;
int httpCode = -1;
send_via_http(
controller_number,
ControllerSettings,
element.controller_idx,
client,
F("/update"), // uri
EMPTY_STRING, // auth_header
F("POST"),
F("Content-Type: application/x-www-form-urlencoded\r\n"),
postDataStr.length());
postStr += postDataStr;
return send_via_http(controller_number, client, postStr, ControllerSettings.MustCheckReply);
postDataStr,
httpCode);
return (httpCode >= 100) && (httpCode < 300);
}
#endif // ifdef USES_C004
+13 -9
View File
@@ -85,12 +85,6 @@ bool CPlugin_007(CPlugin::Function function, struct EventStruct *event, String&
// *INDENT-OFF*
bool do_process_c007_delay_queue(int controller_number, const C007_queue_element& element, ControllerSettingsStruct& ControllerSettings) {
// *INDENT-ON*
WiFiClient client;
if (!try_connect_host(controller_number, client, ControllerSettings)) {
return false;
}
String url = F("/emoncms/input/post.json?node=");
url += Settings.Unit;
@@ -111,9 +105,19 @@ bool do_process_c007_delay_queue(int controller_number, const C007_queue_element
serialPrintln(url);
}
return send_via_http(controller_number, client,
create_http_get_request(controller_number, ControllerSettings, url),
ControllerSettings.MustCheckReply);
WiFiClient client;
int httpCode = -1;
send_via_http(
controller_number,
ControllerSettings,
element.controller_idx,
client,
url,
F("GET"),
EMPTY_STRING,
EMPTY_STRING,
httpCode);
return (httpCode >= 100) && (httpCode < 300);
}
#endif // ifdef USES_C007
+12 -9
View File
@@ -138,15 +138,18 @@ bool do_process_c008_delay_queue(int controller_number, const C008_queue_element
}
WiFiClient client;
if (!try_connect_host(controller_number, client, ControllerSettings)) {
return false;
}
String request =
create_http_request_auth(controller_number, element.controller_idx, ControllerSettings, F("GET"), element.txt[element.valuesSent]);
return element.checkDone(send_via_http(controller_number, client, request, ControllerSettings.MustCheckReply));
int httpCode = -1;
send_via_http(
controller_number,
ControllerSettings,
element.controller_idx,
client,
element.txt[element.valuesSent],
F("GET"),
EMPTY_STRING,
EMPTY_STRING,
httpCode);
return element.checkDone((httpCode >= 100) && (httpCode < 300));
}
#endif // ifdef USES_C008
+96 -100
View File
@@ -103,118 +103,114 @@ bool CPlugin_009(CPlugin::Function function, struct EventStruct *event, String&
// *INDENT-OFF*
bool do_process_c009_delay_queue(int controller_number, const C009_queue_element& element, ControllerSettingsStruct& ControllerSettings) {
// *INDENT-ON*
WiFiClient client;
if (!try_connect_host(controller_number, client, ControllerSettings)) {
return false;
}
String request;
String jsonString;
// Make an educated guess on the actual length, based on earlier requests.
static size_t expectedJsonLength = 100;
{
// Place in separate scope, so we can destruct it jsonString before calling send_to_http.
String jsonString;
// Make an educated guess on the actual length, based on earlier requests.
static size_t expectedJsonLength = 100;
{
#ifdef USE_SECOND_HEAP
HeapSelectIram ephemeral;
#endif
// Reserve on the 2nd heap
if (!jsonString.reserve(expectedJsonLength)) {
// Not enough free memory
return false;
}
#ifdef USE_SECOND_HEAP
HeapSelectIram ephemeral;
#endif
// Reserve on the 2nd heap
if (!jsonString.reserve(expectedJsonLength)) {
// Not enough free memory
return false;
}
}
{
jsonString += '{';
{
jsonString += '{';
jsonString += to_json_object_value(F("module"), F("ESPEasy"));
jsonString += ',';
jsonString += to_json_object_value(F("version"), F("1.04"));
// Create nested object "ESP" inside "data"
jsonString += ',';
jsonString += F("\"data\":{");
{
jsonString += to_json_object_value(F("module"), F("ESPEasy"));
jsonString += ',';
jsonString += to_json_object_value(F("version"), F("1.04"));
// Create nested object "ESP" inside "data"
jsonString += ',';
jsonString += F("\"data\":{");
jsonString += F("\"ESP\":{");
{
jsonString += F("\"ESP\":{");
{
// Create nested objects in "ESP":
jsonString += to_json_object_value(F("name"), Settings.Name);
jsonString += ',';
jsonString += to_json_object_value(F("unit"), String(Settings.Unit));
jsonString += ',';
jsonString += to_json_object_value(F("version"), String(Settings.Version));
jsonString += ',';
jsonString += to_json_object_value(F("build"), String(Settings.Build));
jsonString += ',';
jsonString += to_json_object_value(F("build_notes"), F(BUILD_NOTES));
jsonString += ',';
jsonString += to_json_object_value(F("build_git"), getValue(LabelType::GIT_BUILD));
jsonString += ',';
jsonString += to_json_object_value(F("node_type_id"), String(NODE_TYPE_ID));
jsonString += ',';
jsonString += to_json_object_value(F("sleep"), String(Settings.deepSleep_wakeTime));
// embed IP, important if there is NAT/PAT
// char ipStr[20];
// IPAddress ip = NetworkLocalIP();
// sprintf_P(ipStr, PSTR("%u.%u.%u.%u"), ip[0], ip[1], ip[2], ip[3]);
jsonString += ',';
jsonString += to_json_object_value(F("ip"), NetworkLocalIP().toString());
}
jsonString += '}'; // End "ESP"
// Create nested objects in "ESP":
jsonString += to_json_object_value(F("name"), Settings.Name);
jsonString += ',';
jsonString += to_json_object_value(F("unit"), String(Settings.Unit));
jsonString += ',';
jsonString += to_json_object_value(F("version"), String(Settings.Version));
jsonString += ',';
jsonString += to_json_object_value(F("build"), String(Settings.Build));
jsonString += ',';
jsonString += to_json_object_value(F("build_notes"), F(BUILD_NOTES));
jsonString += ',';
jsonString += to_json_object_value(F("build_git"), getValue(LabelType::GIT_BUILD));
jsonString += ',';
jsonString += to_json_object_value(F("node_type_id"), String(NODE_TYPE_ID));
jsonString += ',';
jsonString += to_json_object_value(F("sleep"), String(Settings.deepSleep_wakeTime));
// Create nested object "SENSOR" json object inside "data"
jsonString += F("\"SENSOR\":{");
{
// char itemNames[valueCount][2];
for (uint8_t x = 0; x < element.valueCount; x++)
{
// Each sensor value get an own object (0..n)
// sprintf(itemNames[x],"%d",x);
if (x != 0) {
jsonString += ',';
}
jsonString += '"';
jsonString += x;
jsonString += F("\":{");
{
jsonString += to_json_object_value(F("deviceName"), getTaskDeviceName(element.TaskIndex));
jsonString += ',';
jsonString += to_json_object_value(F("valueName"), getTaskValueName(element.TaskIndex, x));
jsonString += ',';
jsonString += to_json_object_value(F("type"), String(static_cast<int>(element.sensorType)));
jsonString += ',';
jsonString += to_json_object_value(F("value"), element.txt[x]);
}
jsonString += '}'; // End "sensor value N"
}
}
jsonString += '}'; // End "SENSOR"
// embed IP, important if there is NAT/PAT
// char ipStr[20];
// IPAddress ip = NetworkLocalIP();
// sprintf_P(ipStr, PSTR("%u.%u.%u.%u"), ip[0], ip[1], ip[2], ip[3]);
jsonString += ',';
jsonString += to_json_object_value(F("ip"), NetworkLocalIP().toString());
}
jsonString += '}'; // End "data"
jsonString += '}'; // End "ESP"
jsonString += ',';
// Create nested object "SENSOR" json object inside "data"
jsonString += F("\"SENSOR\":{");
{
// char itemNames[valueCount][2];
for (uint8_t x = 0; x < element.valueCount; x++)
{
// Each sensor value get an own object (0..n)
// sprintf(itemNames[x],"%d",x);
if (x != 0) {
jsonString += ',';
}
jsonString += '"';
jsonString += x;
jsonString += F("\":{");
{
jsonString += to_json_object_value(F("deviceName"), getTaskDeviceName(element.TaskIndex));
jsonString += ',';
jsonString += to_json_object_value(F("valueName"), getTaskValueName(element.TaskIndex, x));
jsonString += ',';
jsonString += to_json_object_value(F("type"), String(static_cast<int>(element.sensorType)));
jsonString += ',';
jsonString += to_json_object_value(F("value"), element.txt[x]);
}
jsonString += '}'; // End "sensor value N"
}
}
jsonString += '}'; // End "SENSOR"
}
jsonString += '}'; // End JSON structure
jsonString += '}'; // End "data"
}
if (expectedJsonLength < jsonString.length()) {
expectedJsonLength = jsonString.length();
}
// addLog(LOG_LEVEL_INFO, F("C009 Test JSON:"));
// addLog(LOG_LEVEL_INFO, jsonString);
// We now create a URI for the request
request = create_http_request_auth(
controller_number, element.controller_idx, ControllerSettings,
F("POST"), F("/ESPEasy"), jsonString.length());
request += jsonString;
jsonString += '}'; // End JSON structure
}
return send_via_http(controller_number, client, request, ControllerSettings.MustCheckReply);
if (expectedJsonLength < jsonString.length()) {
expectedJsonLength = jsonString.length();
}
// addLog(LOG_LEVEL_INFO, F("C009 Test JSON:"));
// addLog(LOG_LEVEL_INFO, jsonString);
WiFiClient client;
int httpCode = -1;
send_via_http(
controller_number,
ControllerSettings,
element.controller_idx,
client,
F("/ESPEasy"),
F("POST"),
EMPTY_STRING,
jsonString,
httpCode);
return (httpCode >= 100) && (httpCode < 300);
}
#endif // ifdef USES_C009
+1 -1
View File
@@ -7,7 +7,7 @@
# define CPLUGIN_011
# define CPLUGIN_ID_011 11
# define CPLUGIN_NAME_011 "Generic HTTP Advanced [TESTING]"
# define CPLUGIN_NAME_011 "Generic HTTP Advanced"
# define C011_HTTP_METHOD_MAX_LEN 16
# define C011_HTTP_URI_MAX_LEN 240
+1 -3
View File
@@ -5,13 +5,11 @@
// ########################### Controller Plugin 012: Blynk #############################################
// #######################################################################################################
// #ifdef PLUGIN_BUILD_TESTING
# include "src/Commands/Blynk.h"
# define CPLUGIN_012
# define CPLUGIN_ID_012 12
# define CPLUGIN_NAME_012 "Blynk HTTP [TESTING]"
# define CPLUGIN_NAME_012 "Blynk HTTP"
bool CPlugin_012(CPlugin::Function function, struct EventStruct *event, String& string)
{
+2 -4
View File
@@ -18,8 +18,6 @@
//
// https://www.youtube.com/watch?v=5_V_DibOypE
// #ifdef PLUGIN_BUILD_TESTING
// Uncomment this to use ssl connection. This requires more device resources than unencrypted one.
// Also it requires valid server thumbprint string to be entered in plugin settings.
// #define CPLUGIN_015_SSL
@@ -38,7 +36,7 @@
#ifdef ESP32
# include <BlynkSimpleEsp32_SSL.h>
#endif
# define CPLUGIN_NAME_015 "Blynk SSL [TESTING]"
# define CPLUGIN_NAME_015 "Blynk SSL"
// Current official blynk server thumbprint
# define CPLUGIN_015_DEFAULT_THUMBPRINT "FD C0 7D 8D 47 97 F7 E3 07 05 D3 4E E3 BB 8E 3D C0 EA BE 1C"
@@ -50,7 +48,7 @@
#ifdef ESP32
# include <BlynkSimpleEsp32.h>
#endif
# define CPLUGIN_NAME_015 "Blynk [TESTING]"
# define CPLUGIN_NAME_015 "Blynk"
# define C015_LOG_PREFIX "BL: "
# endif // ifdef CPLUGIN_015_SSL
+1 -1
View File
@@ -8,7 +8,7 @@
# define CPLUGIN_018
# define CPLUGIN_ID_018 18
# define CPLUGIN_NAME_018 "LoRa TTN - RN2483/RN2903 [TESTING]"
# define CPLUGIN_NAME_018 "LoRa TTN - RN2483/RN2903"
# define C018_BAUDRATE_LABEL "baudrate"
+2 -2
View File
@@ -71,7 +71,7 @@ boolean Plugin_002(uint8_t function, struct EventStruct *event, String& string)
break;
}
# ifdef USES_PLUGIN_STATS
# if FEATURE_PLUGIN_STATS
case PLUGIN_WEBFORM_LOAD_SHOW_STATS:
{
P002_data_struct *P002_data =
@@ -82,7 +82,7 @@ boolean Plugin_002(uint8_t function, struct EventStruct *event, String& string)
}
break;
}
# endif // ifdef USES_PLUGIN_STATS
# endif // if FEATURE_PLUGIN_STATS
case PLUGIN_WEBFORM_SAVE:
{
+3 -3
View File
@@ -166,14 +166,14 @@ boolean Plugin_037(uint8_t function, struct EventStruct *event, String& string)
}
{
# if !defined(LIMIT_BUILD_SIZE) && defined(ENABLE_TOOLTIPS)
# if !defined(LIMIT_BUILD_SIZE) && FEATURE_TOOLTIPS
String toolTip = F("0..");
toolTip += P037_MAX_QUEUEDEPTH;
toolTip += F(" entries");
addFormNumericBox(F("Max. # entries in event queue"), F("p037_queuedepth"), P037_QUEUEDEPTH_EVENTS, 0, P037_MAX_QUEUEDEPTH, toolTip);
# else // if !defined(LIMIT_BUILD_SIZE) && defined(ENABLE_TOOLTIPS)
# else // if !defined(LIMIT_BUILD_SIZE) && FEATURE_TOOLTIPS
addFormNumericBox(F("Max. # entries in event queue"), F("p037_queuedepth"), P037_QUEUEDEPTH_EVENTS, 0, P037_MAX_QUEUEDEPTH);
# endif // if !defined(LIMIT_BUILD_SIZE) && defined(ENABLE_TOOLTIPS)
# endif // if !defined(LIMIT_BUILD_SIZE) && FEATURE_TOOLTIPS
addUnit(F("0 = no check"));
# if !defined(LIMIT_BUILD_SIZE)
addFormNote(F("New events will be discarded if the event queue has more entries queued."));
+2 -2
View File
@@ -2,7 +2,7 @@
#ifdef USES_P045
// #######################################################################################################
// #################################### Plugin 045: MPU6050 [Testing] ####################################
// #################################### Plugin 045: MPU6050 ####################################
// #######################################################################################################
// Based on the works of Nolan Gilley @ https://home-assistant.io/blog/2016/08/03/laundry-automation-update/
@@ -68,7 +68,7 @@
#define PLUGIN_045
#define PLUGIN_ID_045 45
#define PLUGIN_NAME_045 "Gyro - MPU 6050 [TESTING]"
#define PLUGIN_NAME_045 "Gyro - MPU 6050"
#define PLUGIN_VALUENAME1_045 ""
+2 -2
View File
@@ -1,7 +1,7 @@
#include "_Plugin_Helper.h"
#ifdef USES_P046
//#######################################################################################################
//#################################### Plugin 046: Ventus W266 [Testing] ################################
//#################################### Plugin 046: Ventus W266 ################################
//#######################################################################################################
// Purpose: Sniff the data received by the Ventus W266 display unit and send it to Domoticz
@@ -86,7 +86,7 @@
#define PLUGIN_046 // Mandatory framework constants
#define PLUGIN_ID_046 46
#define PLUGIN_NAME_046 "Hardware - Ventus W266 [TESTING]"
#define PLUGIN_NAME_046 "Hardware - Ventus W266"
#define PLUGIN_VALUENAME1_046 ""
#define PLUGIN_VALUENAME2_046 ""
#define PLUGIN_VALUENAME3_046 ""
+1 -1
View File
@@ -13,7 +13,7 @@
#define PLUGIN_047
#define PLUGIN_ID_047 47
#define PLUGIN_NAME_047 "Environment - Soil moisture sensor [TESTING]"
#define PLUGIN_NAME_047 "Environment - Soil moisture sensor"
#define PLUGIN_VALUENAME1_047 "Temperature"
#define PLUGIN_VALUENAME2_047 "Moisture"
#define PLUGIN_VALUENAME3_047 "Light"
+1 -1
View File
@@ -17,7 +17,7 @@
#define PLUGIN_048
#define PLUGIN_ID_048 48
#define PLUGIN_NAME_048 "Motor - Adafruit Motorshield v2 [TESTING]"
#define PLUGIN_NAME_048 "Motor - Adafruit Motorshield v2"
#define PLUGIN_VALUENAME1_048 "MotorShield v2"
#define Plugin_048_MotorShield_address PCONFIG(0)
+1 -1
View File
@@ -24,7 +24,7 @@
#define PLUGIN_050
#define PLUGIN_ID_050 50
#define PLUGIN_NAME_050 "Color - TCS34725 [TESTING]"
#define PLUGIN_NAME_050 "Color - TCS34725"
#define PLUGIN_VALUENAME1_050 "Red"
#define PLUGIN_VALUENAME2_050 "Green"
#define PLUGIN_VALUENAME3_050 "Blue"
+1 -1
View File
@@ -17,7 +17,7 @@
#define PLUGIN_051
#define PLUGIN_ID_051 51
#define PLUGIN_NAME_051 "Environment - AM2320 [TESTING]"
#define PLUGIN_NAME_051 "Environment - AM2320"
#define PLUGIN_VALUENAME1_051 "Temperature"
#define PLUGIN_VALUENAME2_051 "Humidity"
+1 -1
View File
@@ -54,7 +54,7 @@
#define PLUGIN_054
#define PLUGIN_ID_054 54
#define PLUGIN_NAME_054 "Communication - DMX512 TX [TESTING]"
#define PLUGIN_NAME_054 "Communication - DMX512 TX"
uint8_t* Plugin_054_DMXBuffer = 0;
int16_t Plugin_054_DMXSize = 32;
+1 -1
View File
@@ -54,7 +54,7 @@
#define PLUGIN_055
#define PLUGIN_ID_055 55
#define PLUGIN_NAME_055 "Notify - Chiming [TESTING]"
#define PLUGIN_NAME_055 "Notify - Chiming"
#define PLUGIN_055_FIFO_SIZE 64 // must be power of 2
#define PLUGIN_055_FIFO_MASK (PLUGIN_055_FIFO_SIZE-1)
+1 -1
View File
@@ -67,7 +67,7 @@
#define PLUGIN_057
#define PLUGIN_ID_057 57
#define PLUGIN_NAME_057 "Display - HT16K33 [TESTING]"
#define PLUGIN_NAME_057 "Display - HT16K33"
#include "src/PluginStructs/P057_data_struct.h"
+1 -1
View File
@@ -31,7 +31,7 @@
#define PLUGIN_058
#define PLUGIN_ID_058 58
#define PLUGIN_NAME_058 "Keypad - HT16K33 [TESTING]"
#define PLUGIN_NAME_058 "Keypad - HT16K33"
#define PLUGIN_VALUENAME1_058 "ScanCode"
+1 -1
View File
@@ -13,7 +13,7 @@
#define PLUGIN_060
#define PLUGIN_ID_060 60
#define PLUGIN_NAME_060 "Analog input - MCP3221 [TESTING]"
#define PLUGIN_NAME_060 "Analog input - MCP3221"
#define PLUGIN_VALUENAME1_060 "Analog"
+1 -1
View File
@@ -77,7 +77,7 @@
# define PLUGIN_061
# define PLUGIN_ID_061 61
# define PLUGIN_NAME_061 "Keypad - PCF8574 / MCP23017 / PCF8575 [TESTING]"
# define PLUGIN_NAME_061 "Keypad - PCF8574 / MCP23017 / PCF8575"
# define PLUGIN_VALUENAME1_061 "ScanCode"
+1 -1
View File
@@ -23,7 +23,7 @@
# define PLUGIN_062
# define PLUGIN_ID_062 62
# define PLUGIN_NAME_062 "Keypad - MPR121 Touch [TESTING]"
# define PLUGIN_NAME_062 "Keypad - MPR121 Touch"
# define PLUGIN_VALUENAME1_062 "ScanCode"
+1 -1
View File
@@ -38,7 +38,7 @@
# define PLUGIN_065
# define PLUGIN_ID_065 65
# define PLUGIN_NAME_065 "Notify - DFPlayer-Mini MP3 [TESTING]"
# define PLUGIN_NAME_065 "Notify - DFPlayer-Mini MP3"
# define PLUGIN_VALUENAME1_065 ""
# include <ESPeasySerial.h>
+1 -1
View File
@@ -14,7 +14,7 @@
#define PLUGIN_066
#define PLUGIN_ID_066 66
#define PLUGIN_NAME_066 "Color - VEML6040 [TESTING]"
#define PLUGIN_NAME_066 "Color - VEML6040"
#define PLUGIN_VALUENAME1_066 "R"
#define PLUGIN_VALUENAME2_066 "G"
#define PLUGIN_VALUENAME3_066 "B"
+1 -1
View File
@@ -19,7 +19,7 @@
#define PLUGIN_067
#define PLUGIN_ID_067 67
#define PLUGIN_NAME_067 "Weight - HX711 Load Cell [TESTING]"
#define PLUGIN_NAME_067 "Weight - HX711 Load Cell"
#define PLUGIN_VALUENAME1_067 "WeightChanA"
#define PLUGIN_VALUENAME2_067 "WeightChanB"
+1 -1
View File
@@ -24,7 +24,7 @@
# define PLUGIN_068
# define PLUGIN_ID_068 68
# define PLUGIN_NAME_068 "Environment - SHT30/31/35 [TESTING]"
# define PLUGIN_NAME_068 "Environment - SHT30/31/35"
# define PLUGIN_VALUENAME1_068 "Temperature"
# define PLUGIN_VALUENAME2_068 "Humidity"
+1 -1
View File
@@ -17,7 +17,7 @@
# define PLUGIN_070
# define PLUGIN_ID_070 70
# define PLUGIN_NAME_070 "Output - NeoPixel Ring Clock [TESTING]"
# define PLUGIN_NAME_070 "Output - NeoPixel Ring Clock"
# define PLUGIN_VALUENAME1_070 "Enabled"
# define PLUGIN_VALUENAME2_070 "Brightness"
# define PLUGIN_VALUENAME3_070 "Marks"
+1 -1
View File
@@ -18,7 +18,7 @@
#define PLUGIN_071
#define PLUGIN_ID_071 71
#define PLUGIN_NAME_071 "Communication - Kamstrup Multical 401 [TESTING]"
#define PLUGIN_NAME_071 "Communication - Kamstrup Multical 401"
#define PLUGIN_VALUENAME1_071 "Heat"
#define PLUGIN_VALUENAME2_071 "Volume"
+1 -1
View File
@@ -8,7 +8,7 @@
#define PLUGIN_072
#define PLUGIN_ID_072 72
#define PLUGIN_NAME_072 "Environment - HDC1080 (I2C) [TESTING]"
#define PLUGIN_NAME_072 "Environment - HDC1080 (I2C)"
#define PLUGIN_VALUENAME1_072 "Temperature"
#define PLUGIN_VALUENAME2_072 "Humidity"
+1 -1
View File
@@ -20,7 +20,7 @@
# define PLUGIN_074
# define PLUGIN_ID_074 74
# define PLUGIN_NAME_074 "Light/Lux - TSL2591 [TESTING]"
# define PLUGIN_NAME_074 "Light/Lux - TSL2591"
# define PLUGIN_VALUENAME1_074 "Lux"
# define PLUGIN_VALUENAME2_074 "Full"
# define PLUGIN_VALUENAME3_074 "Visible"
+1 -1
View File
@@ -27,7 +27,7 @@
// Plug-In defines
# define PLUGIN_075
# define PLUGIN_ID_075 75
# define PLUGIN_NAME_075 "Display - Nextion [TESTING]"
# define PLUGIN_NAME_075 "Display - Nextion"
# define PLUGIN_DEFAULT_NAME "NEXTION"
# define PLUGIN_VALUENAME1_075 "idx"
# define PLUGIN_VALUENAME2_075 "value"
+1 -1
View File
@@ -24,7 +24,7 @@ HLW8012 *Plugin_076_hlw = nullptr;
#define PLUGIN_076
#define PLUGIN_ID_076 76
#define PLUGIN_076_DEBUG true // activate extra log info in the debug
#define PLUGIN_NAME_076 "Energy (AC) - HLW8012/BL0937 [TESTING]"
#define PLUGIN_NAME_076 "Energy (AC) - HLW8012/BL0937"
#define PLUGIN_VALUENAME1_076 "Voltage"
#define PLUGIN_VALUENAME2_076 "Current"
#define PLUGIN_VALUENAME3_076 "Power"
+2 -2
View File
@@ -12,9 +12,9 @@
# define PLUGIN_077
# define PLUGIN_ID_077 77
# ifdef PLUGIN_SET_SONOFF_POW
# define PLUGIN_NAME_077 "Energy (AC) - CSE7766 (POW r2) [TESTING]"
# define PLUGIN_NAME_077 "Energy (AC) - CSE7766 (POW r2)"
# else // ifdef PLUGIN_SET_SONOFF_POW
# define PLUGIN_NAME_077 "Energy (AC) - CSE7766 [TESTING]"
# define PLUGIN_NAME_077 "Energy (AC) - CSE7766"
# endif // ifdef PLUGIN_SET_SONOFF_POW
# define PLUGIN_VALUENAME1_077 "Voltage"
# define PLUGIN_VALUENAME2_077 "Power"
+1 -1
View File
@@ -14,7 +14,7 @@
#define PLUGIN_078
#define PLUGIN_ID_078 78
#define PLUGIN_NAME_078 "Energy (AC) - Eastron SDM120C/220T/230/630 [TESTING]"
#define PLUGIN_NAME_078 "Energy (AC) - Eastron SDM120C/220T/230/630"
#define P078_DEV_ID PCONFIG(0)
#define P078_DEV_ID_LABEL PCONFIG_LABEL(0)
+1 -1
View File
@@ -11,7 +11,7 @@
# define PLUGIN_080
# define PLUGIN_ID_080 80
# define PLUGIN_NAME_080 "Input - iButton [TESTING]"
# define PLUGIN_NAME_080 "Input - iButton"
# define PLUGIN_VALUENAME1_080 "iButton"
+1 -1
View File
@@ -13,7 +13,7 @@
# define PLUGIN_081
# define PLUGIN_ID_081 81 // plugin id
# define PLUGIN_NAME_081 "Generic - CRON [TESTING]" // "Plugin Name" is what will be displayed in the selection list
# define PLUGIN_NAME_081 "Generic - CRON" // "Plugin Name" is what will be displayed in the selection list
# define PLUGIN_VALUENAME1_081 "LastExecution"
# define PLUGIN_VALUENAME2_081 "NextExecution"
+1 -1
View File
@@ -23,7 +23,7 @@
# define PLUGIN_082
# define PLUGIN_ID_082 82
# define PLUGIN_NAME_082 "Position - GPS [TESTING]"
# define PLUGIN_NAME_082 "Position - GPS"
# define PLUGIN_VALUENAME1_082 "Longitude"
# define PLUGIN_VALUENAME2_082 "Latitude"
# define PLUGIN_VALUENAME3_082 "Altitude"
+1 -1
View File
@@ -13,7 +13,7 @@
#define PLUGIN_083
#define PLUGIN_ID_083 83
#define PLUGIN_NAME_083 "Gasses - SGP30 [TESTING]"
#define PLUGIN_NAME_083 "Gasses - SGP30"
#define PLUGIN_VALUENAME1_083 "TVOC"
#define PLUGIN_VALUENAME2_083 "eCO2"
+1 -1
View File
@@ -13,7 +13,7 @@
#define PLUGIN_084
#define PLUGIN_ID_084 84
#define PLUGIN_NAME_084 "UV - VEML6070 [TESTING]"
#define PLUGIN_NAME_084 "UV - VEML6070"
#define PLUGIN_VALUENAME1_084 "Raw"
#define PLUGIN_VALUENAME2_084 "Risk"
#define PLUGIN_VALUENAME3_084 "Power"
+1 -1
View File
@@ -18,7 +18,7 @@
# define PLUGIN_085
# define PLUGIN_ID_085 85
# define PLUGIN_NAME_085 "Energy - AccuEnergy AcuDC24x [TESTING]"
# define PLUGIN_NAME_085 "Energy - AccuEnergy AcuDC24x"
# define PLUGIN_VALUENAME1_085 ""
+1 -1
View File
@@ -7,7 +7,7 @@
#define PLUGIN_086
#define PLUGIN_ID_086 86
#define PLUGIN_NAME_086 "Generic - Homie receiver [TESTING]"
#define PLUGIN_NAME_086 "Generic - Homie receiver"
// empty default names because settings will be ignored / not used if value name is empty
#define PLUGIN_VALUENAME1_086 ""
+1 -1
View File
@@ -23,7 +23,7 @@
#define PLUGIN_087
#define PLUGIN_ID_087 87
#define PLUGIN_NAME_087 "Communication - Serial Proxy [TESTING]"
#define PLUGIN_NAME_087 "Communication - Serial Proxy"
#define P087_BAUDRATE PCONFIG_LONG(0)
+1 -1
View File
@@ -6,7 +6,7 @@
#define PLUGIN_088
#define PLUGIN_ID_088 88
#define PLUGIN_NAME_088 "Energy (Heat) - Heatpump IR transmitter [TESTING]"
#define PLUGIN_NAME_088 "Energy (Heat) - Heatpump IR transmitter"
/*
+1 -1
View File
@@ -21,7 +21,7 @@
#define PLUGIN_090
#define PLUGIN_ID_090 90
#define PLUGIN_NAME_090 "Gases - CCS811 TVOC/eCO2 [TESTING]"
#define PLUGIN_NAME_090 "Gases - CCS811 TVOC/eCO2"
#define PLUGIN_VALUENAME1_090 "TVOC"
#define PLUGIN_VALUENAME2_090 "eCO2"
+1 -1
View File
@@ -67,7 +67,7 @@
# define PLUGIN_ID_092 92
// #define PLUGIN_092_DEBUG // additional debug messages in the log
# define PLUGIN_NAME_092 "Heating - DL-Bus (Technische Alternative) [TESTING]"
# define PLUGIN_NAME_092 "Heating - DL-Bus (Technische Alternative)"
# define PLUGIN_VALUENAME1_092 "Value"
// global values needed for all tasks
+1 -1
View File
@@ -9,7 +9,7 @@
# define PLUGIN_093
# define PLUGIN_ID_093 93
# define PLUGIN_NAME_093 "Energy (Heat) - Mitsubishi Heat Pump [TESTING]"
# define PLUGIN_NAME_093 "Energy (Heat) - Mitsubishi Heat Pump"
# define PLUGIN_VALUENAME1_093 "settings"
# define P093_REQUEST_STATUS PCONFIG(0)
+1 -1
View File
@@ -7,7 +7,7 @@
# define PLUGIN_095
# define PLUGIN_ID_095 95
# define PLUGIN_NAME_095 "Display - TFT ILI934x/ILI948x [TESTING]"
# define PLUGIN_NAME_095 "Display - TFT ILI934x/ILI948x"
# define PLUGIN_VALUENAME1_095 "CursorX"
# define PLUGIN_VALUENAME2_095 "CursorY"
# define PLUGIN_095_MAX_DISPLAY 1
+1 -1
View File
@@ -7,7 +7,7 @@
# define PLUGIN_096
# define PLUGIN_ID_096 96
# define PLUGIN_NAME_096 "Display - eInk with Lolin ePaper screen [TESTING]"
# define PLUGIN_NAME_096 "Display - eInk with Lolin ePaper screen"
# define PLUGIN_VALUENAME1_096 "CursorX"
# define PLUGIN_VALUENAME2_096 "CursorY"
+1 -1
View File
@@ -31,7 +31,7 @@
#define PLUGIN_099
#define PLUGIN_ID_099 99
#define PLUGIN_NAME_099 "Touch - XPT2046 on a TFT display [TESTING]"
#define PLUGIN_NAME_099 "Touch - XPT2046 on a TFT display"
#define PLUGIN_VALUENAME1_099 "X"
#define PLUGIN_VALUENAME2_099 "Y"
#define PLUGIN_VALUENAME3_099 "Z"
+1 -1
View File
@@ -11,7 +11,7 @@
# define PLUGIN_100
# define PLUGIN_ID_100 100
# define PLUGIN_NAME_100 "Pulse Counter - DS2423 [TESTING]"
# define PLUGIN_NAME_100 "Pulse Counter - DS2423"
# define PLUGIN_VALUENAME1_100 "CountDelta"
boolean Plugin_100(uint8_t function, struct EventStruct *event, String& string)
+2 -2
View File
@@ -11,7 +11,7 @@
// Oct-12-2020: Creation
// Oct-16-2020: Beta Test Release to ESPEasy Forum.
// Oct-18-2020: Re-assigned as plugin number P101 (was P248).
// Oct-20-2020: Github PR #3328, Submitted as [Testing] plugin.
// Oct-20-2020: Github PR #3328, Submitted as plugin.
//
// This ESPEasy plugin requires the WakeOnLan library found here:
// https://github.com/a7md0/WakeOnLan
@@ -55,7 +55,7 @@
// Plugin defines
#define PLUGIN_101
#define PLUGIN_ID_101 101
#define PLUGIN_NAME_101 "Communication - Wake On LAN [Testing]"
#define PLUGIN_NAME_101 "Communication - Wake On LAN"
// Config Setting defines
#define CUSTOMTASK_STR_SIZE_P101 20
+1 -1
View File
@@ -17,7 +17,7 @@
# define PLUGIN_102
# define PLUGIN_ID_102 102
# define PLUGIN_102_DEBUG true // activate extra log info in the debug
# define PLUGIN_NAME_102 "PZEM-004Tv30-Multiple [TESTING]"
# define PLUGIN_NAME_102 "PZEM-004Tv30-Multiple"
# define P102_PZEM_mode PCONFIG(1) // 0=read value ; 1=reset energy; 2=programm address
# define P102_PZEM_ADDR PCONFIG(2)

Some files were not shown because too many files have changed in this diff Show More