[Build] Disable dev build, update README.md and build documentation

This commit is contained in:
Ton Huisman
2021-05-02 16:47:43 +02:00
parent da9f7d093e
commit 6bde89860b
5 changed files with 151 additions and 39 deletions
+92 -15
View File
@@ -1,6 +1,6 @@
|Latest Nightly | Build Status | Downloads | Docs | Patreon | Ko-Fi | PayPal |
|-------|-------|-------|-------|-------|-------|-------|
| [![GitHub version](https://img.shields.io/github/release/letscontrolit/ESPEasy/all.svg)](https://github.com/letscontrolit/ESPEasy/releases/latest) | [![Build Status](https://travis-ci.org/letscontrolit/ESPEasy.svg?branch=mega)](https://travis-ci.org/letscontrolit/ESPEasy) | [![Downloads](https://img.shields.io/github/downloads/letscontrolit/ESPEasy/total.svg)](https://github.com/letscontrolit/ESPEasy/releases) | [![Documentation Status](https://readthedocs.org/projects/espeasy/badge/?version=latest)](https://espeasy.readthedocs.io/en/latest/?badge=latest) | [![donate](https://img.shields.io/badge/donate-Patreon-blue.svg)](https://www.patreon.com/GrovkillenTDer) | [![donate](https://img.shields.io/badge/donate-KoFi-blue.svg)](https://ko-fi.com/grovkillentder) | [![donate](https://img.shields.io/badge/donate-PayPal-blue.svg)](https://www.paypal.me/espeasy) |
| [![GitHub version](https://img.shields.io/github/release/letscontrolit/ESPEasy/all.svg)](https://github.com/letscontrolit/ESPEasy/releases/latest) | ![Build status](https://github.com/letscontrolit/ESPEasy/actions/workflows/build.yml/badge.svg) | [![Downloads](https://img.shields.io/github/downloads/letscontrolit/ESPEasy/total.svg)](https://github.com/letscontrolit/ESPEasy/releases) | [![Documentation Status](https://readthedocs.org/projects/espeasy/badge/?version=latest)](https://espeasy.readthedocs.io/en/latest/?badge=latest) | [![donate](https://img.shields.io/badge/donate-Patreon-blue.svg)](https://www.patreon.com/GrovkillenTDer) | [![donate](https://img.shields.io/badge/donate-KoFi-blue.svg)](https://ko-fi.com/grovkillentder) | [![donate](https://img.shields.io/badge/donate-PayPal-blue.svg)](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
+1 -1
View File
@@ -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
+9 -4
View File
@@ -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
+43 -13
View File
@@ -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.
+6 -6
View File
@@ -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 ;