Devices Page¶
ESPEasy supports lots of sensors and displays via “Plugins”. A plugin is a piece of code tailored specifically to communicate with some hardware like a sensor.
There are several builds made of ESPEasy which mainly differ in the plugins included during build. See below to check which build is needed to support specific sensors.
In ESPEasy, one can setup a number of “Tasks”. A task is an instance of a plugin and may yield upto 4 “task values”. (typically measurements taken from the connected sensor) These task values can be sent to connected controllers to send the data to some other system, like a MQTT broker.
There can be multiple instances of the same plugin, however this might not be implemented for all plugins yet. For example, it makes perfect sense to have multiple temperature sensors on a single ESPEasy node.
The Devices page shows a list of all tasks, including the last task values. These task values may be updated live. The update interval depends on the lowest set task interval of any (enabled) task.
Task Config Page¶
Via the “Edit” button on the “Devices Page”, one can see and edit the configuration of a task.
A typical layout of a task setup page.

Each task needs to have an unique name and has to be enabled in order to actually start collecting task values. The reason to have unique task names is to make sure task values can be used elsewhere in the ESPEasy system. (e.g. showing a task value on a display)
Sensor¶
Next section is about how to communicate with the device. Typically:
For I2C sensors: I2C address, I2C speed
For UART/Serial sensors: Serial port, type of serial port (hardware/software serial), baudrate, GPIO pins used.
GPIO pins for other sensor types, whether pull-up resistors should be enabled etc.
Device Settings¶
Some other plugins support several variants of the same sensor. (e.g. PMSx003 plugin) This can then be configured here.
A lot of sensors allow for some options to operate. For example in the shown screenshot above, one can set the voltage range.
Output¶
Some sensors can collect more than 4 types of data. GPS is one of those, which can collect values like:
Longitude
Latitude
Altitude
Speed
Satellites tracked
HDOP
etc.
These can then be selected to be output as task value.
Statistics¶
(Added: 2022/07/11)
A chart is shown with the recorded task values for all task values which have the “Stats” option is checked in the “Values” section at the bottom of the page.

As can be seen in the screenshot taken from a “sysinfo” task, a dataset can be disabled in the chart by clicking on the item in the legend. This will scale the chart to fit the other data sets. For example the amount of free memory on an ESP32 is several orders of magnitude larger than the typical system load.
Enabling “Stats” on a task value also extends how task values can be addressed within ESPEasy.
For example using just like normal task value data:
[bme#temp.avg]
Compute the average over the last N samples in the historic buffer (typically: 64 samples on ESP32, 16 on ESP8266)[bme#temp.avgX]
Compute the average over the last X samples (or less if there are less samples available)[bme#temp.stddev]
Compute the standard deviation over the last N samples in the historic buffer (typically: 64 samples on ESP32, 16 on ESP8266)[bme#temp.stddevX]
Compute the standard deviation over the last X samples (or less if there are less samples available)[bme#temp.max]
Refer to the maximum recorded sample since the lastresetpeaks
. N.B. Not all tasks log the min and max peaks.[bme#temp.min]
See[bme#temp.max]
[bme#temp.size]
Return the number of samples in memory.[bme#temp.sample]
Access the last sample in memory.[bme#temp.sampleN]
Access the N-th last sample in memory.
Commands on “Stats” data:
bme.resetpeaks
Reset the recorded “max” and “min” value of all task values of that task.bme.clearsamples
Clear the recorded historic samples of all task values of that task.
Data Acquisition¶
Each time a task is “run”, it may collect some data. When successful, other parts of the ESPEasy system should be notified.
If rules are enabled, a task may generate several events. Each event consists of the task name, value name and the new sample.
For a task named “bme” with a task value “temperature”, the events looks like this: bme#temperature=23.45
Please note the number of decimals as this will be discussed below.
Such events will be generated for all task values of this task.
To limit the number of events, one may also check the “Single event with all values” checkbox.
This will then generate only a single event like this: bme#All=23.45,78.90,1001.23
(the assumed order of task values: Temp/Humidity/Pressure)
Below this checkbox is a number of options to send this data to a controller. This only shows controllers which are configured. Some controllers, like Domoticz MQTT and Domoticz HTTP, also require some IDX value to identify the sample origin.
This Interval is the number of seconds between repeated calls to TaskRun
, which will perform a read of the sensor.
Some plugins allow this to be set to 0
, which then effectively disables repetitive calls to run this task.
However, most plugins consider 0
to be the default of 60 seconds.
A task can also be called to run via the command TaskRun
from the rules.
This can be useful to trigger a read based on an event.
A nice use case can be to take samples on a number of sensors as soon as the GPS task sends new coordinates. Since a GPS task can be configured to send updates each N meters travelled, this allows for collecting samples at an equal distance spaced, regardless the driving speed.
Values¶
At the bottom of the task config page, one can configure the task values.

Task Value Name¶
Each task value has to have an unique name within that task. It does not have to be unique on the entire ESPEasy system, as long as the combination of task name and task value name is unique.
For example bme#temp
and bme2#temp
are perfectly fine as each can be addressed.
Formula¶
ESP Easy can use a simple formula to change the task value before it is processed further.
A few samples will be provided here. Remember that this is just a simple build-in ‘calculator’ with only the basic stuff like add, substract, multiply, devide.
On a successful “task run”, the new task values will be processed by the formula.
To refer to the new task value, use %value%
in the formula.
For example to convert a temperature from Celsius to Fahrenheit, one may use:
(%value%*9/5)+32
For some very common conversions, see also the “Standard Conversions” section on the sysvars
page in ESPEasy.
This conversion from Celsius to Fahrenheit is so common, one may also use this in the formula field:
%c_c2f%(%value%)
To use the previous task value in a formula, use %pvalue%
.
It is also possible to refer to other task values and system variables. (added: 2021/08/06)
Note
The syntax in the formula field is nearly the same as in the rules. Only the %value%
and %pvalue%
cannot be used in rules.
Stats¶
(Added: 2022/07/11)
This checkbox allows to collect some historic data of this task value. On ESP32 it will collect upto 64 samples. On ESP8266 this is limited to 16 samples due to memory.
When checked, the last N samples of each checked task value will be shown in a chart in the “Statistics” section.
Decimals¶
The number of decimals set here will be used throughout ESPEasy whenever a task value has to be formatted.
For example, when referring to a task value on a display via [bme#temperature]
, the value formatting will include the set number of decimals.
See Rules: Formatting referred values on how this can be customized. 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:
NORMAL is the regular set of plugins, this is the base set of plugins, and with all secondary features enabled, like I2C multiplexer, RTTTL, DEBUG logging, etc.
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 COLLECTION is mentioned, the plugin is available in all COLLECTION builds. Also, some features are disabled to save space in the .bin files, like RTTTL, tooltips, and DEBUG-level logging.
DEVELOPMENT is used for plugins that are still being developed and are not considered stable at all. Currently there are no DEVELOPMENT builds available.
ENERGY DISPLAY IR IRext NEOPIXEL CLIMATE are specialized builds holding all Energy-, Display-, Infra Red- (extended), NeoPixel- and Climate- related plugins.
MAX is the build that has all plugins that are available in the ESPEasy repository. Available for ESP32 16MB and ESP32-s3 8MB Flash units.
RETIRED plugin has been retired and removed from ESPEasy.
2022-07-22: TESTING builds renamed to COLLECTION.
Plugin name |
Build set |
Plugin number |
---|---|---|
NORMAL CLIMATE |
P000 (core) |
|
NORMAL CLIMATE |
P001 |
|
NORMAL CLIMATE |
P002 |
|
NORMAL CLIMATE |
P003 |
|
NORMAL CLIMATE |
P004 |
|
NORMAL CLIMATE |
P005 |
|
NORMAL CLIMATE |
P006 |
|
NORMAL |
P007 |
|
NORMAL |
P008 |
|
NORMAL |
P009 |
|
NORMAL CLIMATE |
P010 |
|
NORMAL |
P011 |
|
NORMAL DISPLAY CLIMATE |
P012 |
|
NORMAL CLIMATE |
P013 |
|
NORMAL CLIMATE |
P014 |
|
NORMAL CLIMATE |
P015 |
|
IR |
P016 |
|
NORMAL |
P017 |
|
NORMAL CLIMATE |
P018 |
|
NORMAL CLIMATE |
P019 |
|
NORMAL |
P020 |
|
NORMAL CLIMATE |
P021 |
|
NORMAL |
P022 |
|
NORMAL DISPLAY CLIMATE |
P023 |
|
NORMAL CLIMATE |
P024 |
|
NORMAL ENERGY CLIMATE |
P025 |
|
NORMAL CLIMATE |
P026 |
|
NORMAL ENERGY |
P027 |
|
NORMAL CLIMATE |
P028 |
|
NORMAL CLIMATE |
P029 |
|
RETIRED |
P030 |
|
NORMAL CLIMATE |
P031 |
|
NORMAL CLIMATE |
P032 |
|
NORMAL CLIMATE |
P033 |
|
NORMAL CLIMATE |
P034 |
|
IR |
P035 |
|
NORMAL DISPLAY CLIMATE |
P036 |
|
NORMAL CLIMATE |
P037 |
|
NORMAL NEOPIXEL CLIMATE |
P038 |
|
NORMAL CLIMATE |
P039 |
|
NORMAL |
P040 |
|
NORMAL NEOPIXEL |
P041 |
|
NORMAL NEOPIXEL |
P042 |
|
NORMAL CLIMATE |
P043 |
|
NORMAL CLIMATE |
P044 |
|
COLLECTION |
P045 |
|
COLLECTION |
P046 |
|
COLLECTION CLIMATE |
P047 |
|
COLLECTION |
P048 |
|
NORMAL CLIMATE |
P049 |
|
COLLECTION |
P050 |
|
COLLECTION CLIMATE |
P051 |
|
NORMAL CLIMATE |
P052 |
|
NORMAL CLIMATE |
P053 |
|
COLLECTION |
P054 |
|
COLLECTION |
P055 |
|
NORMAL CLIMATE |
P056 |
|
DISPLAY COLLECTION |
P057 |
|
COLLECTION |
P058 |
|
NORMAL CLIMATE |
P059 |
|
COLLECTION |
P060 |
|
COLLECTION |
P061 |
|
COLLECTION |
P062 |
|
NORMAL |
P063 |
|
COLLECTION |
P064 |
|
COLLECTION |
P065 |
|
COLLECTION |
P066 |
|
COLLECTION A |
P067 |
|
COLLECTION A CLIMATE |
P068 |
|
COLLECTION B CLIMATE |
P069 |
|
NEOPIXEL COLLECTION A |
P070 |
|
COLLECTION A |
P071 |
|
COLLECTION A CLIMATE |
P072 |
|
NORMAL CLIMATE |
P073 |
|
COLLECTION A |
P074 |
|
DISPLAY COLLECTION |
P075 |
|
ENERGY |
P076 |
|
ENERGY |
P077 |
|
ENERGY |
P078 |
|
NORMAL |
P079 |
|
COLLECTION A |
P080 |
|
COLLECTION CLIMATE |
P081 |
|
COLLECTION |
P082 |
|
COLLECTION A CLIMATE |
P083 |
|
COLLECTION A |
P084 |
|
ENERGY COLLECTION C |
P085 |
|
COLLECTION A |
P086 |
|
COLLECTION C |
P087 |
|
IRext |
P088 |
|
COLLECTION |
P089 |
|
COLLECTION A CLIMATE |
P090 |
|
COLLECTION C |
P091 |
|
COLLECTION C |
P092 |
|
ENERGY COLLECTION D |
P093 |
|
COLLECTION D |
P094 |
|
DISPLAY COLLECTION |
P095 |
|
COLLECTION A |
P097 |
|
COLLECTION A COLLECTION D |
P098 |
|
DISPLAY |
P099 |
|
COLLECTION B |
P100 |
|
COLLECTION B |
P101 |
|
ENERGY |
P102 |
|
CLIMATE |
P103 |
|
DISPLAY |
P104 |
|
COLLECTION A CLIMATE |
P105 |
|
COLLECTION B CLIMATE |
P106 |
|
COLLECTION B |
P107 |
|
ENERGY COLLECTION B |
P108 |
|
DISPLAY |
P109 |
|
COLLECTION B |
P110 |
|
COLLECTION C |
P111 |
|
COLLECTION F |
P112 |
|
COLLECTION B |
P113 |
|
COLLECTION D |
P114 |
|
ENERGY COLLECTION B |
P115 |
|
DISPLAY |
P116 |
|
COLLECTION D CLIMATE |
P117 |
|
COLLECTION F CLIMATE |
P118 |
|
COLLECTION E |
P119 |
|
COLLECTION E |
P120 |
|
COLLECTION E |
P121 |
|
COLLECTION F |
P122 |
|
COLLECTION D |
P124 |
|
COLLECTION E |
P125 |
|
COLLECTION E |
P126 |
|
COLLECTION D CLIMATE |
P127 |
|
NEOPIXEL |
P128 |
|
COLLECTION E |
P129 |
|
NEOPIXEL |
P131 |
|
ENERGY |
P132 |
|
COLLECTION E CLIMATE |
P133 |
|
COLLECTION A |
P134 |
|
COLLECTION E CLIMATE |
P135 |
|
COLLECTION DISPLAY ENERGY NEOPIXEL |
P137 |
|
COLLECTION DISPLAY ENERGY NEOPIXEL |
P138 |
|
DISPLAY |
P141 |
|
COLLECTION C DISPLAY |
P143 |
|
COLLECTION E |
P144 |
|
COLLECTION F |
P145 |
|
NORMAL |
P146 |
|
COLLECTION F CLIMATE |
P147 |
|
ENERGY DISPLAY |
P148 |
|
COLLECTION F CLIMATE |
P150 |
|
COLLECTION F CLIMATE |
P151 |
|
NORMAL |
P152 |
|
COLLECTION F CLIMATE |
P153 |
|
COLLECTION G CLIMATE |
P154 |
Internal GPIO handling¶
Plugins: Internal GPIO handling
Hardware: Relay, Servo motor, Buzzer (RTTTL), Piezo element, Speaker, Relay, Servo motor, Level converter
Analog input¶
Plugins: Analog Input - Internal, Analog input - PCF8591, Analog input - ADS1x15, Analog input - MCP3221, Internal - Touch ESP32
Acceleration¶
Plugins: Acceleration - ADXL345 (I2C), Acceleration - ADXL345 (SPI)
Color¶
Plugins: Color - AS7265X
Communication¶
Plugins: Communication - IR Receive (TSOP4838), Communication - Serial Server, Communication - IR Transmit, Communication - P1 Wifi Gateway, Communication - DMX512 TX, Communication - Kamstrup Multical 401, Communication - SerialProxy, Communication - Ping, Communication - CUL Reader, Communication - Wake On LAN, Communication - Itho
Display¶
Plugins: Display - LCD2004, Display - OLED SSD1306, Display - OLED SSD1306/SH1106 Framed, Display - HT16K33, Display - 7-segment display, Display - Nextion, Display - TFT ILI934x/ILI948x, Display - MAX7219 dot matrix, Display - ST77xx TFT, Display - NeoPixel Matrix, Display - POWR3xxD/THR3xxD
Distance¶
Plugins: Distance - HC-SR04/RCW-0001/etc., Distance - VL53L0X (200cm), Distance - VL53L1X (400cm), Distance - A02YYUW
Dust¶
Plugins: Dust - Sharp GP2Y10, Dust - PMSx003 / PMSx003ST, Dust - SDS011/018/198, Dust - PM1006(K) (Vindriktning)
Energy (AC)¶
Plugins: Energy (AC) - HLW8012/BL0937, Energy (AC) - CSE7766, Energy (AC) - Eastron SDMxxx Modbus, Energy (AC) - PZEM-004Tv30-Multiple, Energy (AC) - DDS238-x
Energy (DC)¶
Plugins: Energy (DC) - INA219, Energy (DC) - AcuDC243, Energy - MAX1704x, Energy (DC) - INA3221
Energy (Heat)¶
Plugins: Energy (Heat) - HeatpumpIR, Energy (Heat) - Mitsubishi Heat Pump
Environment¶
Plugins: Environment - 1-Wire Temperature, Environment - DHT11/12/22 SONOFF2301/7021/MS01, Environment - BMP085/180, Environment - SI7021/HTU21D, Environment - MLX90614, Environment - BMx280, Environment - BMP280, Environment - SHT1x, Environment - MS5611 (GY-63), Environment - DHT12 (I2C), Environment - Thermosensors, Environment - Soil moisture sensor, Environment - AM2320, Environment - SHT3x, Environment - LM75A, Environment - HDC1000/HDC1008/HDC1010/HDC1050/HDC1080 (I2C), Environment - Atlas Scientific EZO pH, Environment - AHT10/AHT2x, Environment - BME68x, Environment - SHT2x, Environment - TMP117 Temperature, Environment - I2C Honeywell Pressure, Environment - SHT4x, Environment - BMP3xx
Hardware: Environment - 1-Wire Temperature, DHT11/DHT22, BMP085, BMP180, MLX90614, Environment - BMx280, .
Extra IO¶
Gases¶
Plugins: Gases - CO2 MH-Z19, Gases - CO2 Senseair, Gases - SGP30 TVOC/eCO2, Gases - CCS811 TVOC/eCO2, Gases - SCD30 CO2, Humidity, Temperature, Gases - CO2 CDM7160, Gases - CO2 SCD4x, Gases - MQxxx (MQ135 CO2, MQ3 Alcohol), Gases - SGP4x VOC(/NOx)
Hardware: S8, S11, tSense (K70)
Generic¶
Plugins: Generic - Pulse counter, Generic - System Info, Generic - Dummy Device, Generic - MQTT Import, Generic - CRON, Pulse Counter - DS2423, Generic - Cache Reader
Gesture¶
Plugins: Gesture - APDS9960
Gyro¶
Plugins: Gyro - MPU 6050, Gyro - ITG3205
Hardware¶
Plugins: Hardware - Ventus W266
Hardware: .
Input¶
Plugins: Input - Shift registers (74HC165)
Keypad¶
Plugins: Keypad - HT16K33, Keypad - PCF8574 / MCP23017 / PCA8575, Keypad - MPR121 Touch, Keypad - TTP229 Touch
Light/Color¶
Plugins: Color - TCS34725, Color - VEML6040
Light/Lux¶
Plugins: Light/Lux - BH1750, Light/Lux - TSL2561, Light/Lux - TSL2591
Hardware: TSL2561
Light/UV¶
Plugins: UV - VEML6070, UV - SI1145, UV - VEML6075, UV - LTR390
Motor¶
Plugins: Motor - Adafruit Motorshield v2, Motor - Wemos / Lolin Motorshield, Motor - PWM Motor
Notify¶
Plugins: Notify - Chiming, Notify - DFPlayer-Mini MP3
Output¶
Plugins: Output - Domoticz MQTT Helper, Output - NeoPixel (Basic), Output - NeoPixel (Word Clock), Output - NeoPixel (Candle), Output - Clock, Output - NeoPixel Ring Clock, Output - I2C Multi Relay, Output - Shift registers (74HC595), Output - NeoPixel (BusFX), Output - ESP32 DAC
Position¶
Plugins: Position - GPS, Position - HMC5883L
Power management¶
Plugins: Power mgt - AXP192 Power management ESP32, Power mgt - IP5306 Power management
Regulator¶
Plugins: Regulator - Level Control
RFID¶
Plugins: RFID - Wiegand, RFID - PN532, RFID - ID12LA/RDM6300, RFID - MFRC522
Switch input¶
Plugins: Switch Input - Switch, Switch Input - MCP23017, Switch input - PCF8574, Switch input - Rotary Encoder, Switch input - iButton, Switch input - Serial MCU controlled switch, Internal - Touch ESP32, Switch input - I2C Rotary encoders
Hardware: Switch, Door switch, PIR sensor
Touch¶
Plugins: Internal - Touch ESP32, Touch - XPT2046 touchscreen on TFT display
Weight¶
Plugins: Weight - HX711 Load Cell