mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-27 19:57:38 +00:00
[Build] Disable dev build, update README.md and build documentation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
|Latest Nightly | Build Status | Downloads | Docs | Patreon | Ko-Fi | PayPal |
|
||||
|-------|-------|-------|-------|-------|-------|-------|
|
||||
| [](https://github.com/letscontrolit/ESPEasy/releases/latest) | [](https://travis-ci.org/letscontrolit/ESPEasy) | [](https://github.com/letscontrolit/ESPEasy/releases) | [](https://espeasy.readthedocs.io/en/latest/?badge=latest) | [](https://www.patreon.com/GrovkillenTDer) | [](https://ko-fi.com/grovkillentder) | [](https://www.paypal.me/espeasy) |
|
||||
| [](https://github.com/letscontrolit/ESPEasy/releases/latest) |  | [](https://github.com/letscontrolit/ESPEasy/releases) | [](https://espeasy.readthedocs.io/en/latest/?badge=latest) | [](https://www.patreon.com/GrovkillenTDer) | [](https://ko-fi.com/grovkillentder) | [](https://www.paypal.me/espeasy) |
|
||||
|
||||
For ways to *support* us, see [this announcement on the forum](https://www.letscontrolit.com/forum/viewtopic.php?f=14&t=5787), or have a look at the [Patreon](https://www.patreon.com/GrovkillenTDer), [Ko-Fi](https://ko-fi.com/grovkillentder) or [PayPal](https://www.paypal.me/espeasy) links above.
|
||||
|
||||
@@ -16,25 +16,102 @@ Introduction and wiki: https://www.letscontrolit.com/wiki/index.php/ESPEasy#Intr
|
||||
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
|
||||
|
||||
|
||||
## Automated binary releases
|
||||
## Binary releases
|
||||
|
||||
Every night our build-bot will build a new binary release: https://github.com/letscontrolit/ESPEasy/releases
|
||||
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-20190225' (last number is the build date)
|
||||
The releases are named something like 'mega-20210501' (last number is the build date)
|
||||
|
||||
Depending on your needs, we release different types of files:
|
||||
|
||||
Firmware name | Hardware | Included plugins |
|
||||
----------------------------------------------|-------------------------|-----------------------------|
|
||||
ESPEasy_mega-20190225_normal_ESP8266_1M.bin | ESP8266 with 1MB flash | Stable |
|
||||
ESPEasy_mega-20190225_test_ESP8266_1M.bin | ESP8266 with 1MB flash | Stable + Test |
|
||||
ESPEasy_mega-20190225_dev_ESP8266_1M.bin | ESP8266 with 1MB flash | Stable + Test + Development |
|
||||
ESPEasy_mega-20190225_normal_ESP8266_4M.bin | ESP8266 with 4MB flash | Stable |
|
||||
ESPEasy_mega-20190225_test_ESP8266_4M.bin | ESP8266 with 4MB flash | Stable + Test |
|
||||
ESPEasy_mega-20190225_dev_ESP8266_4M.bin | ESP8266 with 4MB flash | Stable + Test + Development |
|
||||
ESPEasy_mega-20190225_normal_ESP8285_1M.bin | ESP8285 with 1MB flash | Stable |
|
||||
ESPEasy_mega-20190225_test_ESP8285_1M.bin | ESP8285 with 1MB flash | Stable + Test |
|
||||
ESPEasy_mega-20190225_dev_ESP8285_1M.bin | ESP8285 with 1MB flash | Stable + Test + Development |
|
||||
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
|
||||
|
||||
_[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 |
|
||||
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 |
|
||||
|
||||
|
||||
_[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_274_sdk3 | Arduino Core 2.7.4 SDK v.3 release |
|
||||
|
||||
|
||||
_[hardware-type]_ cn be any of:
|
||||
Hardware type | Description |
|
||||
-----------------|---------------------------------------------|
|
||||
ESP8266 | Espressif ESP8266 generic boards |
|
||||
ESP8285 | Espressif ESP8285 generic boards 1MB Flash |
|
||||
WROOM02 | Espressif ESP8266 WRoom02 boards |
|
||||
ESP32 | Espressif ESP32 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 |
|
||||
|
||||
|
||||
_[flash-size]_ can be any of:
|
||||
Flash size | Description |
|
||||
-----------|-----------------------------|
|
||||
1M | 1 MB with 128 kB filesystem |
|
||||
2M | 2 MB with 128 kB filesystem |
|
||||
2M256 | 2 MB with 256 kB filesystem |
|
||||
4M1M | 4 MB with 1 MB filesystem |
|
||||
4M2M | 4 MB with 2 MB filesystem |
|
||||
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:
|
||||
Build features | Description |
|
||||
----------------|--------------------------------------------------------------------------|
|
||||
LittleFS | Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable \> 2 MB) |
|
||||
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 |
|
||||
|
||||
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)
|
||||
|
||||
## Documentation & more info
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ Locate the file ``platform.txt`` in the esp8266 platform directory of ArduinoIDE
|
||||
|
||||
The exact location depends on the installation, usually in a directory below the main application called ``hardware/esp8266.com/``.
|
||||
|
||||
In the same directory add an (untraced) file called ``platform.local.txt`` with the following lines:
|
||||
In the same directory add an (untracked) file called ``platform.local.txt`` with the following lines:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ Optional:
|
||||
* All Autocomplete (by Atishay Jain)
|
||||
* Excel Viewer (by GrapeCity)
|
||||
* esbonio - An extension for editing sphinx projects (by Swyddfa)
|
||||
* Markdown All in One (by Yu Zhang)
|
||||
|
||||
|
||||
Uncrustify
|
||||
@@ -115,6 +116,7 @@ An environment entry has several tasks, like:
|
||||
* Upload
|
||||
* Monitor
|
||||
* Upload and Monitor
|
||||
* Clean
|
||||
* ... many more.
|
||||
|
||||
Some of these options only are available when you have registered with PlatformIO and some are only for paid subscriptions.
|
||||
@@ -124,18 +126,19 @@ The environment definitions all have at least the used micro controller in the n
|
||||
|
||||
For example:
|
||||
|
||||
* ..._ESP8266_4M -> ESP8266 has external flash, which can vary in size from 512 kB to 16 MB.
|
||||
* ..._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, so is always 1 MB.
|
||||
* ..._ESP32_4M316k -> ESP32 with 4 MB flash and a 1.8 MB partition for the sketch. (316k SPIFFS)
|
||||
* ..._ESP32_16M2M -> ESP32 with 16 MB flash and a 4 MB partition for the sketch. (2MB LittleFS)
|
||||
|
||||
Make a custom build using PlatformIO
|
||||
------------------------------------
|
||||
|
||||
The easiest is to go for the environment "env:custom_ESP8266_4M" and unfold that one.
|
||||
The easiest is to go for the environment "custom_ESP8266_4M1M" and unfold that one.
|
||||
Then select "Build" to see if it will start building.
|
||||
|
||||
If that's working, you can open the file "pre_extra_script.py" and add or remove the plugins and controllers you need.
|
||||
That Python file is used in the "env:custom_ESP8266_4M" to define what should be embedded and what not.
|
||||
If that's working, you can open the file "pre_custom_esp8266.py" and add or remove the plugins and controllers you need.
|
||||
That Python file is used in the "env:custom_ESP8266_4M1M" (or any "custom" build environment) to define what should be embedded and what not.
|
||||
|
||||
For example to have only the controller "C014", you can remove "CONTROLLER_SET_ALL", and just add "USES_C014",
|
||||
The same for the plugins you need.
|
||||
@@ -144,6 +147,8 @@ The file is built in the ".pio/build/...." directory right under the main reposi
|
||||
|
||||
All builds will be made in a directory with the same name as the environment used.
|
||||
|
||||
Once the build is successful, the .bin file(s) and .bin.gz file (where applicable) are copied to the ``build_output/bin`` folder.
|
||||
|
||||
|
||||
|
||||
Upload to ESP
|
||||
|
||||
@@ -23,8 +23,8 @@ Below a list of the most important directories and files used in this project.
|
||||
* ``static/`` Static files we use in ESPEasy, like CSS/JS/ICO files.
|
||||
* ``test/`` Test scripts to be used in the continous integration process.
|
||||
* ``tools/`` Tools to help build ESPeasy.
|
||||
* ``tools/pio/pre_custom_esp32.py`` Python helper script for building custom ESP32 binary
|
||||
* ``tools/pio/pre_extra_script.py`` Python helper script for building custom ESP8266 binary
|
||||
* ``tools/pio/pre_custom_esp32.py`` Python helper script for building custom ESP32 binary.
|
||||
* ``tools/pio/pre_custom_esp8266.py`` Python helper script for building custom ESP8266 binary.
|
||||
* ``venv/`` Directory to store the used Python Virtual Environment. (Ignored by Git)
|
||||
* ``platformio.ini`` Configuration file for PlatformIO to define various build setups.
|
||||
* ``uncrustify.cfg`` Configuration file for Uncrustify, to format source code using some uniform formatting rules.
|
||||
@@ -50,9 +50,15 @@ The header and source files are organized in a few directories in ``src/src/``.
|
||||
|
||||
* ``Commands`` Functions to process commands.
|
||||
* ``ControllerQueue`` Mainly macro definitions for the queue system used by controllers.
|
||||
* ``CustomBuild`` Header files for defining the ESPEasy project defaults and enabled plugins.
|
||||
* ``DataStructs`` Data structures used in ESPEasy. Note that some of them are stored in settings files, so take care when changing them.
|
||||
* ``DataTypes`` Definitions for data types used.
|
||||
* ``ESPEasyCore`` Core functionality of ESPEasy, managing controllers, plugins, networking, rules, etc.
|
||||
* ``Globals`` Declaration of global variables. Declare them using ``extern`` in .h files and construct them in .cpp files or else you may end up with several instances of the same object with the same name.
|
||||
* ``Helpers`` Shared helper classes and functions.
|
||||
* ``PluginStructs`` Data and code structs per plugin, to lower memory footprint split into separated source files.
|
||||
* ``Static`` C++ encoded version of objects which have to be included in the binary. N.B. JS and CSS files are minified.
|
||||
* ``WebServer`` Sources for web handling remote command processing and UI.
|
||||
|
||||
The Arduino based .ino files are still in the ``src/`` directory. (and some .h files, which are not yet moved)
|
||||
|
||||
@@ -79,7 +85,7 @@ We have 2 main build platforms:
|
||||
For these platforms we also have a lot of different build setups.
|
||||
|
||||
The filename is quite descriptive:
|
||||
ESP_Easy_mega-<date>_<buildType>_<chip>_<memorySize>.bin
|
||||
ESP_Easy_mega-<date>_<buildType>_<chip>_<memorySize>_<build-options>.bin
|
||||
|
||||
Build Type
|
||||
----------
|
||||
@@ -87,15 +93,15 @@ Build Type
|
||||
Build type can be: (differ in included plugins)
|
||||
|
||||
* normal => Only Stable plugins and controllers
|
||||
* test => Stable + Testing
|
||||
* dev => Stable + Testing + Development
|
||||
* test => Stable + Testing (split into multiple sets, A/B/C/D)
|
||||
* max => All available plugins
|
||||
|
||||
There is also a number of special builds:
|
||||
|
||||
* normal_IR => "Normal" + IR receiver/transmitter plugins and library
|
||||
* hard_xxxxx => Special builds for some off-the-shelf hardware.
|
||||
* minimal_ESP82xx_1M_OTA => Minimum number of plugins and a limited set of controllers included to be able to perform a 2-step OTA on 1 MB flash nodes.
|
||||
* normal_core_xxx => "Normal" using core xxx (e.g. 2.6.3)
|
||||
* normal_core_xxx => "Normal" using core xxx (e.g. 2.7.4)
|
||||
* normal_beta => "Normal" using the staged (beta) branch of the esp8266/Arduino repository.
|
||||
|
||||
ESP Chip Type
|
||||
@@ -111,7 +117,25 @@ Memory Size and Partitioning
|
||||
* ``1M`` 1 MB flash modules (e.g. almost all Sonoff modules)
|
||||
* ``2M`` 2 MB flash modules (e.g. Shelly1/WROOM02)
|
||||
* ``4M`` 4 MB flash modules (e.g. NodeMCU/ESP32)
|
||||
* ``16M`` 16 MB flash modules (e.g. Wemos D1 mini pro)
|
||||
* ``16M`` 16 MB flash modules (e.g. Wemos D1 mini pro) (has 14 MB LittleFS filesystem, as SPIFFS is unstable > 2 MB)
|
||||
* ``4M1M`` 4 MB flash modules with 1 MB filesystem (usually SPIFFS)
|
||||
* ``4M2M`` 4 MB flash modules with 2 MB filesystem (usually SPIFFS)
|
||||
* ``4M316k`` 4 MB flash modules using 1.8 MB sketch size, with 316 kB filesystem (usually SPIFFS) (for ESP32)
|
||||
* ``16M1M`` 16 MB flash modules using 4MB sketch size, with 1 MB filesystem (usually SPIFFS) (ESP32 only a.t.m.)
|
||||
* ``16M2M`` 16 MB flash modules using 4MB sketch size, with 2 MB filesystem (LittleFS) (ESP32 only a.t.m.)
|
||||
* ``16M8M`` 16 MB flash modules using 4MB sketch size, with 8 MB filesystem (LittleFS) (ESP32 only a.t.m.)
|
||||
|
||||
Optional build options
|
||||
----------------------
|
||||
|
||||
* ``LittleFS`` Use LittleFS instead of SPIFFS filesystem (SPIFFS is unstable > 2 MB)
|
||||
* ``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)
|
||||
|
||||
|
||||
Please note that the performance of 14MB SPIFFS (16M flash modules) is really slow.
|
||||
All file access takes a lot longer and since the settings are also read from flash, the entire node will perform slower.
|
||||
@@ -150,16 +174,22 @@ This also means we still need to update the 2-step updater to support .bin.gz fi
|
||||
ESP32 builds
|
||||
------------
|
||||
|
||||
There are 3 builds for ESP32:
|
||||
There are several builds for ESP32:
|
||||
|
||||
* ``normal_ESP32_4M316k`` Build using the "stable" set of plugins for ESP32
|
||||
* ``normal_ESP32_4M316k_ETH`` Build using the "stable" set of plugins for ESP32, with support for an on-board Ethernet controller
|
||||
* ``custom_ESP32_4M316k`` Build template using either the plugin set defined in ``Custom.h`` or ``tools/pio/pre_custom_esp32.py``
|
||||
* ``test_ESP32_4M316k`` Build using the "testing" set of plugins for ESP32
|
||||
* ``test_ESP32-wrover-kit_4M316k`` A build for ESP32 including build flags for the official WRover test kit.
|
||||
* ``test_A_ESP32_4M316k`` Build using the "testing" set "A" of plugins for ESP32
|
||||
* ``test_B_ESP32_4M316k`` Build using the "testing" set "B" of plugins for ESP32
|
||||
* ``test_C_ESP32_4M316k`` Build using the "testing" set "C" of plugins for ESP32
|
||||
* ``test_D_ESP32_4M316k`` Build using the "testing" set "D" of plugins for ESP32
|
||||
* ``test_A_ESP32-wrover-kit_4M316k`` A build for ESP32 including build flags for the official WRover test kit.
|
||||
* ``max_ESP32_16M8M_LittleFS`` Build using all available plugins and controllers for ESP32 with 16 MB flash (some lolin_d32_pro boards)
|
||||
|
||||
Since ESP32 does have its flash partitioned in several blocks, we have 2 bin files of each ESP32 build:
|
||||
Since ESP32 does have its flash partitioned in several blocks, we have 2 bin files of each ESP32 build, f.e.:
|
||||
|
||||
* ``test_ESP32_4M316k.bin`` Use for OTA upgrades.
|
||||
* ``test_ESP32_4M316k-factory.bin`` Use on clean nodes as initial inistall.
|
||||
* ``test_D_ESP32_4M316k.bin`` Use for OTA upgrades.
|
||||
* ``test_D_ESP32_4M316k-factory.bin`` Use on clean nodes as initial inistall.
|
||||
|
||||
The binary with ``-factory`` in the name must be flashed on a new node, via the serial interface of the board.
|
||||
This flash must be started at address 0.
|
||||
|
||||
@@ -595,12 +595,12 @@ lib_ignore = ESP32_ping, ESP32WebServer, ServoESP32, ESP32HTTPUpd
|
||||
; *********************************************************************
|
||||
|
||||
; DEV : 4096k version ----------------------------
|
||||
[env:dev_ESP8266_4M1M]
|
||||
extends = esp8266_4M1M
|
||||
platform = ${dev.platform}
|
||||
platform_packages = ${dev.platform_packages}
|
||||
build_flags = ${dev.build_flags}
|
||||
${esp8266_4M1M.build_flags}
|
||||
; [env:dev_ESP8266_4M1M]
|
||||
; extends = esp8266_4M1M
|
||||
; platform = ${dev.platform}
|
||||
; platform_packages = ${dev.platform_packages}
|
||||
; build_flags = ${dev.build_flags}
|
||||
; ${esp8266_4M1M.build_flags}
|
||||
|
||||
;;; Collection builds ************************************************
|
||||
; Collection of similar plugins for a specific use case ;
|
||||
|
||||
Reference in New Issue
Block a user