Difference between revisions of "ESPEasy"

From Let's Control It
Jump to navigation Jump to search
 
(312 intermediate revisions by 12 users not shown)
Line 1: Line 1:
= Introduction =
+
<!--        BANNER ACROSS TOP OF PAGE        -->
The ESP Easy firmware can be used to turn the ESP module into an easy multifunction sensor device for Home Automation solutions like Domoticz. Configuration of the ESP Easy is entirely web based, so once you've got the firmware loaded, you don't need any other tool besides a common web browser.
+
{| id="mp-topbanner" style="width:100%; background:#f5faff; margin:1.2em 0 6px 0; border:1px solid #0077dd;"
 +
| style="width:61%; color:#000;" |
  
The ESP Easy firmware is currently at build R120 an looks stable enough for production purposes as long as it's being used as a sensor device.
+
{| style="width:280px; border:none; background:none;"
 
+
| style="width:280px; text-align:center; white-space:nowrap; color:#000;" |
ESP Easy also offers limited "low level" actuator functions but due to system instability, this could be less useful in real life applications.
+
<div style="font-size:162%; border:none; margin:0; padding:.1em; color:#000;">Welcome to [[History of ESP Easy|ESP Easy]],</div>
 +
<div style="top:+0.2em; font-size:95%;">the [https://github.com/letscontrolit open source] firmware for ESP8266 / ESP8285 / ESP32.</div>
 +
<div style="top:+0.2em; font-size:95%;">'''Latest builds:''' [https://github.com/letscontrolit/ESPEasy/releases GitHub nightly builds]</div>
 +
|}
  
= Get started =
+
<!--        PORTAL LIST ON RIGHT-HAND SIDE        -->
 
+
| style="width:18%; font-size:95%;" |
Getting started with the ESP Easy takes a few basic steps. In most cases your ESP module comes with the AT firmware or the NodeMCU LUA firmware. We need to replace the existing firmware with the ESP Easy firmware. We provide a (Windows only) flashtool to make this process an easy job.
+
* [[ESP Hardware|ESP Hardware]]
 
+
* [[Devices|Supported Sensors/Actuators]]
[[File:Flashprocess.png|link=]]
+
* [[Modded Hardware|Modded Hardware]]
 
+
* [[Basics,Tutorials & Howto's|Basics,Tutorials & Howto's]]
= Supported Hardware =
+
| style="width:35%; font-size:95%;" |
 
+
* [https://github.com/letscontrolit/ESPEasy/issues/ GitHub]
ESP Easy can be installed/flashed on nearly every piece of Hardware that has an ESP8266 built-in, newest 2.0.0 version even does support the ESP8285 (basically an ESP8266 with buildtin 1M Flash):
+
* [https://www.letscontrolit.com/forum/ Forum]
 
+
* [[ESP Easy web interface|ESP Easy web interface]]
This is a (not yet complete) list  of Hardware which is known to be supported:
+
* [[Template Files|Template Files]]
 
+
| style="width:25%; font-size:95%;" |
{| class="wikitable"
+
* [[History of ESP Easy|History of ESP Easy]]
|-
+
* [[MilestonesRoadmap|Milestones/Roadmap]]
! Device Name
+
* [[Contributors|Contributors/Sponsorship]]
! ESP Chip
+
* [[UserProjects|Users & Projects]]
! Flash Size
 
! USB-TTL
 
! GPIOs available
 
! GPIO connected to onboard Hardware
 
! onboard PSU/voltage regulator
 
! Input voltage
 
! Antenna
 
! Size (LxWxH)
 
 
 
|-
 
[[Wemos D1 mini]]
 
[[File:Wemos_d1_mini.jpg|200px|link=Wemos D1 mini]]
 
| 12 E/F
 
| 4MB
 
| CH340
 
| 0,1,2,3,4,5,12,13,14,15,16,A0(with Voltage divider)
 
| 1&3 (serial)
 
| [http://www.richtek.com/assets/product_file/RT9013/DS9013-10.pdf RT9013]
 
| 5 VDC (+/-0,5V)
 
| onboard PCB
 
| 34,2mmx25,6mm
 
|-
 
| [[Wemos D1 mini pro]]
 
| 12 E/F
 
| 16MB
 
| CP2104
 
| 0,1,2,3,4,5,12,13,14,15,16,A0(with Voltage divider)
 
| 1&3 (serial)
 
| [http://www.richtek.com/assets/product_file/RT9013/DS9013-10.pdf RT9013]
 
| 5 VDC (+/-0,5V)
 
| onboard ceramic/pigtail connector
 
| 34,2mmx25,6mm
 
|-
 
| [[Wemos D1 R2]] [[File:Wemos_d1_r2.jpg|200px]]
 
| 12 E/F
 
| 4MB
 
| CP340G
 
| 0,1,2,3,4,5,12,13,14,15,16,A0(with Voltage divider)
 
| 1&3 (serial)
 
| 9-24VDC Switching power supply to 5 VDC(@1A) and  [http://www.richtek.com/assets/product_file/RT9013/DS9013-10.pdf RT9013]
 
| 9-24VDC (power jack), 5VDC (5V pin)
 
| onboard PCB
 
| 68,6mmx53,4mm (=Arduino UNO)
 
|-
 
| [[Sonoff basic]]  
 
| generic ESP8266
 
| 1MB
 
| None
 
| 1,3,(14) 
 
| 0(button),12(Relay 10A@230VAC),13(LED)
 
| on board mains AC to 5DVC + ? 3.3V Voltage Regulator
 
| 90-250VAC
 
| onboard PCB
 
| 88mmx38mmx23mm
 
 
|}
 
|}
  
 +
<div style="border-bottom:1px solid black; background: red; padding:0.4em 1em; font-size:110%; font-weight:bold; font-color: white;"><span style="color:white">Wiki documentation outdated - Warning</span></div>
  
 +
<div style="border-bottom:1px solid red;  background:#F6CECE; padding:0.4em 1em 0.4em;">This wiki documentation (for ESPEasy) has become outdated.
  
Very easy flashing, just need do be attached via USB.
+
Please see [https://espeasy.readthedocs.io/en/latest/ ESPEasy ReadTheDocs] for more up to date documentation.
 +
As not all documentation has been transferred to RTD, this Wiki can still be useful.
 +
However, always check the RTD documentation first.
  
=== Wemos D1 R2 ===
+
There may be links to older builds online.
[[File:Wemos_d1_r2.jpg|300px]]
+
See [https://github.com/letscontrolit/ESPEasy/releases GitHub nightly builds] for latest builds and releases.
 +
</div>
  
Very easy flashing, just need do be attached via USB.
 
  
=== ITEAD Sonoff Basic ===
+
= Introduction =
TBD
+
The ESP Easy firmware can be used to turn the ESP module into an easy multifunction sensor device for Home Automation solutions like Domoticz. Configuration of the ESP Easy is entirely web based, so once you've got the firmware loaded, you don't need any other tool besides a common web browser.
=== ITEAD Sonoff TH10 ===
 
TBD
 
=== ITEAD Sonoff 4ch ===
 
[[File:Sonoff-4ch.jpg|300px]]
 
  
Must be flashed with a firmware compiled for ESP8285 with 1MB.
+
ESP Easy also offers limited "low level" actuator functions but due to system instability, this could be less useful in real life applications.
  
BEWARE, this device operates with HIGH VOLTAGE! To flash the case has to be opened, do not connect it to mains while flashing, it can be flashed while powered from the USB-TTL adapter.
+
ESP Easy is under continuous development as can be seen on the [https://github.com/letscontrolit/ESPEasy GitHub page] and on the [https://www.letscontrolit.com/forum/ Forum].
  
=== ITEAD Sonoff S20 Smart Socket ===
+
There are so called "nightly builds" which can be found on the [https://github.com/letscontrolit/ESPEasy/releases Releases page].
[[File:sonoff_S20.jpg|300px]]
 
  
BEWARE, this device operates with HIGH VOLTAGE! To flash the case has to be opened, do not connect it to mains while flashing, it can be flashed while powered from the USB-TTL adapter. Only has 1M Flash!
 
  
=== Ai-Thinker A20 Breakout ===
 
  
[[File:Ai-thinker_a20.jpg|300px]]
+
== We need support ==
  
Based on a ESP8285 chip, so only 1M Flash, can be flashed with a stripped down build of latest mega build, '''GSM/GPRS and Camera not yet supported!'''
+
<div style="border-bottom:1px solid white; background: green; padding:0.4em 1em; font-size:110%; font-weight:bold; font-color: white;"><span style="color:white">Funding = a better firmware</span></div>
  
==== Flashing Instructions ====
+
<div style="border-bottom:1px solid green;  background:#e5f442; padding:0.4em 1em 0.4em;">We are in great need for funding. The plan is to make this an awesome "operating system" for IoT. We have some big (even huge) features that we want to give you but time is scarce and we need to quit our daytime jobs... Do you want to help us with that? Read more in [https://www.letscontrolit.com/forum/viewtopic.php?t=5787 this announcement here].
To enable Flash mode for the esp8285:
+
</div>
# power down the board
 
# connect WI 00 to ground
 
# connect power to the board.
 
# flash using WRX0 and WTX0 for the Rx Tx connections
 
  
=== many more, this list is not yet finished.... ===
+
== Version names, numbers, and branches ==
  
TBD
+
Well, this is a short version of our naming convention here at the ESP Easy initiative. We started to call the extensive re-write of the source code "Mega", which is an hint of the size needed for the next big stable release. Prior to mega we allowed smaller mem-sizes (sub-megabyte, aka 512kb) for the official releases. This is a bit tight for our goal to add many more useful features to the firmware. So after a somewhat bad decision in the early days of the re-write project we started to call the development branch "Mega" instead of the more accepted name "Master". We later switched this to the correct name. The current master branch on GitHub is where all the development goes into. The legacy branch is the archive, a point zero if you like, which is the exact copy of the source code before we started the re-write. Once we have reached all the milestones for version 2.0.0 we will freeze the source from that point and fork that into a branch called v2.0, only bug fixes is going into that branch. New features that cannot wait until next v2.1 release will be branched into v2.0.1 (this might not happen if no ground breaking feature is added). New features, and experimental stuff, is poured into the development branch (master). Below you will find a explanation on how we intend to do the branching and releases of future firmware versions. Please observe that this table is not the road map, just an example to explain the different names and numbers.
  
= Supported Sensors/Actuators =
+
N.B. this table is outdated and needs to be updated.
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
|+ style="caption-side:bottom;" | Explanation
 +
|+ style="caption-side:bottom; color: white; background-color: gray;" | ''L: legacy freeze (R147 code)''
 +
|+ style="caption-side:bottom; color: black; background-color: #ffbbbb;"|''D: development (cutting edge)''
 +
|+ style="caption-side:bottom; color: black; background-color: #ffffcc;"|''FF: feature freeze''
 +
|+ style="caption-side:bottom; color: black; background-color: #bbffbb;"|''R: release of new stable''
 +
! rowspan="2"|Branch !! rowspan="2"|Tag !! colspan="4" | 2017 !! colspan="4" | 2018 !! colspan="4" | 2019
 +
|-
 +
! Q1 || Q2 || Q3 || Q4 || Q1 || Q2 || Q3 || Q4 || Q1 || Q2 || Q3 || Q4
 +
|-
 +
! legacy
 +
| R147 || style="caption-side:bottom; color: white; background-color: gray;" | L ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||
 +
|-
 +
! development
 +
| Mega/Knox/Carta ||  || colspan="11" style="color: black; background-color: #ffbbbb;" | D
 
|-
 
|-
! Device Type
+
! v2.0
! Device Name
+
| v2.0.0 ||  ||  || ||  ||  || style="color: black; background-color: #ffffcc;" | FF || style="color: black; background-color: #bbffbb;" | R ||  ||  ||  ||  ||
! Power requirements
+
|-
! connection method
+
! v2.1
! level shifter required
+
| v2.1.0 ||  ||  ||  || ||  ||  ||  ||  || style="color: black; background-color: #ffffcc;" | FF || style="color: black; background-color: #bbffbb;" | R ||  ||
! mounting options
 
! Size (LxWxH)
 
 
 
 
|-
 
|-
 +
! v3.0
 +
| v3.0.0 ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || style="color: black; background-color: #ffffcc;" | FF?
 
|}
 
|}
  
 +
=== Tag names ===
 +
Stable releases will have a version number similar to "v2.0.0" but focusing areas for development will have short tag names such as "Mega" which indicate the focus for the next big release. A preliminary list for the future focus areas are:
  
 +
'''Mega''' which will become v2.0.0 - getting more plugins and much more features (thus the tag "mega" which indicates that a bigger memory is needed for the generic FW)<br>
 +
'''Knox''' which will become v2.1.0 - focusing on security<br>
 +
'''Carta''' which will become v2.2.0 - focusing on communication unit2unit and unit2controller
  
 +
As of release mega we will also try to get more hardware specific builds for especially Sonoff units. These will have much less plugins by default since they are not needed for these units, this makes flashing units with less than 1MB possible.
  
{| class="wikitable"
+
=== Release names ===
!colspan="2" style="font-size:24px; color:white; background-color: black;"|Sensors (Input)
+
Nightly builds are always generated if something has been updated in the source code. So the master branch will always have many more releases than the frozen stable releases which will only have one (until a bug fix release is generated). To explain this we provide these examples:
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Pulse (Counting) || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Temperature
+
Master is updated on 2018-04.07 with new code, next morning you will be able to download the release "master-20180408" (current tag name for that release is "mega").<br>
|-
+
Master is branched into an official stable release named "v2.0" on 2018-05-07, next morning you can download "v2.0-20180508".<br>
| [[PulseCounter | TCR5000]] [[File:TCR5000.jpg|100px|link=]]<br/>[[Pulse logic | Pulse logic input]] [[File:Flow_sensor_pulse.jpg|100px|link=]] [[File:Pulse_wheel.jpg|100px|link=]] || [[TemperatureSensor | Dallas DS18b20]] [[File:DS18B20.jpg|100px|link=]]<br/>[[ MLX90614 | MLX90614]] [[File:MLX90614.png|100px|link=]]
+
v2.0 is bug fixed on 2018-05-23, next morning you can download "v2.0-20180524" which then supersede the older v2.0.0 version.<br>
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Barometric Pressure || style="font-size:16px; color:white; background-color: #0077dd;" align="center"|Light/Lux
+
'''So how do you know which one is the latest?'''<br>
|-
+
That's where this wiki is here for (among many other things). We will list all the current states from v2.0.0 and onward. Releases named "master" should always be seen as not stable and only for users that wish to experiment with new releases and test stuff to help the development of future releases.
| [[BarometricSensor | BMP085/BMP180]] [[File:BMP085.png|100px|link=]]<br/>[[BME280 | BME280]] [[File:BME280.png|100px|link=]]<br/>[[BMP280 | BMP280]] [[File:BMP280.png|100px|link=]]<br/>[[MS5611 | MS5611]] [[File:MS5611.png|100px|link=]] || [[LuxSensor | BH1750]] [[File:BH1750.jpg|320px|100px|link=]]<br/>[[LuxSensor2 | TSL2561]] [[File:TLS2561.png|320px|100px|link=]]<br/>[[TCS34725_RGB_Color_Sensor | TCS34725 RGB Color Sensor]] [[File:TCS34725-RGB-Color-Sensor.jpg|100px|link=]]<br/>[[Photosensitive resistor | Photosensitive resistor]] [[File:Photosensitive_resistor.jpg|100px|link=]][[File:Photosensitive_resistor_raw.jpg|100px|link=]]
 
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Humidity || style="font-size:16px; color:white; background-color: #0077dd;" align="center"|RFID
+
= Get started =
|-
 
| [[HumiditySensor | DHT]] [[File:DHT11.png|100px|link=]]<br/>[[DHT12 | DHT12]] [[File:DHT12.png|100px|link=]]<br/>[[HumiditySensor2 | SI7021/HTU21D]] [[File:SI7021.png|100px|link=]]<br/>[[SHT1X | SHT1X]] [[File:SHT1X.png|100px|link=]]<br/>[[AM2320_i2c_Temperatur_and_Humidity_Sensor | AM2320 ]] [[File:AM2320-Sensor.jpg|100px|link=]] || [[RFID | Wiegand]] [[File:WiegandRFID_1.jpg|100px|link=]]<br/>[[RFID2 | PN532]] [[File:PN532.png|100px|link=]]
 
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Distance || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Switch
+
Getting started with the ESP Easy takes a few basic steps. In most cases your ESP module comes with the AT firmware or the NodeMCU LUA firmware. We need to replace the existing firmware with the ESP Easy firmware. We provide a (Windows only) flashtool to make this process an easy job. Below you find the general flow of this but an in [[Basics:_Connecting_and_flashing_the_ESP8266|depth guide is found here]].
|-
 
| [[DistanceSensor | HC-SR04]] [[File:HC-SR04.jpg|100px|link=]] || [[Switch | Switch]] [[File:Lightswitch.jpg|100px|link=]] [[File:Door Switch.png|100px|link=]] [[File:PIR.jpg|100px|link=]]
 
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Analog || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| More Analog
+
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
|-
+
<span style="color: white; background:#0077dd">1. Download firmware as binary including flash tool</span>
| [[ Analog | Analog]] [[File:Analog.png|100px|link=]] || [[PCF8591 | PCF8591]] [[File:PCF8591Module.jpg|100px|link=]]<br/>[[ADS1115 | ADS1115]] [[File:ADS1115.png|100px|link=]]
+
<br/>&darr;<br/>
|-
+
<span style="color: white; background:#0077dd">2. Connect the ESP to Windows PC</span>
 +
<br/><span style="font-size:60%">Using either USB/UART of board or separate USB/TTL adapter</span>
 +
<br/>&darr;<br/>
 +
<span style="color: white; background:#0077dd">3. Write firmware using flash tool</span>
 +
<br/><span style="font-size:60%">Note necessity for GPIO to be LOW to enter flashmode</span>
 +
<br/>&darr;<br/>
 +
<span style="color: white; background:#0077dd">4. Restart ESP. WiFi AP <nowiki />"ESP_Easy_0" will appear, password: '''configesp'''</span><br/>(prior to 2.0 the AP was named ESP_0)
 +
<br/><span style="font-size:60%">If you're not automatically taken to the log-in page, browse to 192.168.4.1</span>
 +
<br/>&darr;<br/>
 +
<span style="color: white; background:#0077dd">5. Search for you routers WiFi and connect</span><br/>(if you have multiple AP they will all show up with the same SSID name multiple times)
 +
<br/>&darr;<br/>
 +
<span style="color: white; background:#0077dd">6. Reconnect to your WiFi and enter IP adress shown on previous screen</span>
 +
</div>
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Digital inputs || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Infrared Receivers
+
= [[ESP_Hardware|Supported Hardware]] =
|-
 
| [[MCP23017 | MCP23017]] [[File:MCP23017DIP28.jpg|100px|link=]]<br/>[[PCF8574 | PCF8574]] [[File:PCF8574.jpg|100px|link=]]  || [[IR | IR]] [[File:TSOP4838.png|100px|link=]]
 
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Dust || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Voltage & Current
+
ESP Easy can be installed/flashed on nearly every piece of Hardware that has an ESP8266 built-in, newest 2.0.0 version even does support the ESP8285 (basically an ESP8266 with built-in 1M Flash).<br/> Please see the list [[ESP Hardware|here]] for more in depth detail about the hardware.
|-
 
| [[DustSensor | GP2Y10]] [[File:GP2Y10.png|100px|link=]] || [[INA219 | INA219]] [[File:INA219.png|100px|link=]]
 
|-
 
  
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Weather || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Motion
+
= [[Devices|Supported Sensors/Actuators]] =
|-
 
| [[VentusW266 | Ventus W266]] [[File:Ventusw266.png|150px|link=]] || [[MPU6050 | MPU 6050]] [[File:Mpu-6050.jpg|80px|link=]]
 
|-
 
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Soil Moisture || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Gas Sensors
 
|-
 
| [["Soil_moisture_sensor" | Soil moisture sensor]] [[File:Soilmoisturesensor_small.jpg|link=]] || [["CO2_Sensor_MH-Z19" | CO2 Sensor MH-Z19]] [[File:mh-z19.jpg|100px|link=]]
 
|-
 
  
 +
The in depth list of devices (sensors and actuators) is found [[Devices|here]].
  
{| class="wikitable"
+
= [[Modded_Hardware|Modded Hardware Products]] =
!colspan="2" style="font-size:24px; color:white; background-color: black;"|Actuators (Output)
 
|-
 
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Digital output || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Servo
 
|-
 
| [[GPIO | Output pin]] [[File:LED.png|100px|link=]]<br/>[[Relais | Relays]] [[File:Relaisbordje.jpg|100px|link=]] || [[Servo | Servo]] [[File:Servo.png|100px|link=]]
 
|-
 
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| IR-Transmit || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Extra IO
 
|-
 
|[[IRTX | IR Led]] [[File:IRLED.png|100px|link=]] || [[MCP23017 | MCP23017]] [[File:MCP23017DIP28.jpg|100px|link=]]<br/>[[PCF8574 | PCF8574]] [[File:PCF8574.jpg|100px|link=]]
 
|-
 
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| PWM || style="font-size:16px; color:white; background-color: #0077dd;" align="center"|  Motor Shield
 
|-
 
| [[PCA9685 | PCA9685]] [[File:PCA9685Module.jpg|100px|link=]]<br/>[[PWM GPIO| PWM GPIO]][[File:MosFET.png|100px|link=]] || [["Adafruit_Motor_Shield_v2"| Adafruit Motor Shield v2]] [[File:Motor_shield_klein.jpg|100px|link=]]
 
|-
 
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Buzzer (RTTL) || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| 
 
|-
 
| [[Buzzer (RTTL) | RTTL]] [[File:buzzer.jpg|100px|link=]]
 
|}
 
  
 
+
A list of (officially) modded hardware products is found [[Modded Hardware|here]].
{| class="wikitable"
 
!colspan="3" style="font-size:24px; color:white; background-color: black;"|Other
 
|-
 
|style="font-size:16px; color:white; background-color: #0077dd;" align="center"| LCD || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| OLED || style="font-size:16px; color:white; background-color: #0077dd;" align="center"| Level Shifter
 
|-
 
| [[LCDDisplay | LCD Display]] [[File:LCDDemo.jpg|100px|link=]] ||  [[OLEDDisplay | OLED Display]] [[File:OLED.png|100px|link=]] ||  [[Level Shifter | Level Shifter]] [[File:Level_shifter_example.jpg|100px|link=]]
 
|}
 
  
 
= Tutorials =
 
= Tutorials =
 
* [[Tutorial_ESPEasy_Firmware_Upload | Using the flashtool to upload the ESP Easy firmware]]
 
* [[Tutorial_ESPEasy_Firmware_Upload | Using the flashtool to upload the ESP Easy firmware]]
 
* [[Tutorial_Arduino_Firmware_Upload | Using the Arduino IDE to upload the ESP Easy firmware]]
 
* [[Tutorial_Arduino_Firmware_Upload | Using the Arduino IDE to upload the ESP Easy firmware]]
 +
* [[EasySetup | How to setup ESPEasy after flashing it.]]
 +
 
* [[Tutorial_Domoticz_Switch | Using the ESP Easy as a simple input switch in Domoticz]]
 
* [[Tutorial_Domoticz_Switch | Using the ESP Easy as a simple input switch in Domoticz]]
 
* [[Tutorial_OpenHAB_Switch | Using the ESP Easy to control a LED of Relay from OpenHAB]]
 
* [[Tutorial_OpenHAB_Switch | Using the ESP Easy to control a LED of Relay from OpenHAB]]
 
* [[Tutorial_Rules | Rules, a modest way to locally control something in ESP Easy ]]
 
* [[Tutorial_Rules | Rules, a modest way to locally control something in ESP Easy ]]
 
* [[EasyGlobalSync | GlobalSync ]]
 
* [[EasyGlobalSync | GlobalSync ]]
 
= Hardware Tips 'n Tricks=
 
* [[Power | Power stability]]
 
* [[Relays | Relays]]
 
* [[Breadboards | Breadboards]]
 
* [[Interference | WiFi interference]]
 
 
= Examples =
 
* [[Analog Pressure sensor | Analog Pressure Sensor]]
 
* [[DC Voltage divider | DC Voltage divider]]
 
  
 
= Loading firmware =
 
= Loading firmware =
  
== Stable ==
+
* New release candidates are on github: [https://github.com/letscontrolit/ESPEasy/releases ESPEasy version 2.0  and higher]
Firmware image R120
+
  On the linked page you will find two daily builds of ESPEasy.
 +
  For some clarification:
 +
  Release V2.0-<date>: Beta version of the next stable release, no new features, bugfixes only.
 +
  Release mega-<date>: Bleeding edge of development.
  
* [http://www.letscontrolit.com/downloads/ESPEasy_R120.zip ESP Easy firmware (image)]
+
* [https://www.letscontrolit.com/wiki/index.php/Basics:_Connecting_and_flashing_the_ESP8266 Connecting and flashing tutorial]
  
== Release candidates ==
+
* Old releases: [http://www.letscontrolit.com/downloads/ESPEasy_R120.zip ESPEasy R120] (will be replaced by v2.0.0!)
  
Firmware image R147_RC8
+
* Old release candidate: [http://www.letscontrolit.com/downloads/ESPEasy_R147_RC8.zip ESPEasy R147_RC8]  (is now part of the dev build for v2.0.0)
  
* [http://www.letscontrolit.com/downloads/ESPEasy_R147_RC8.zip ESP Easy firmware (image)]
 
  
[[Tutorial_ESPEasy_Firmware_Upload]]
 
  
= Protocol selection =
+
== 2.0+ firmware on 1MB modules ==
 +
<div style="border-bottom:1px solid black; background: red; padding:0.4em 1em; font-size:110%; font-weight:bold; font-color: white;"><span style="color:white">2.0+ firmware on 1MB modules - Warning</span></div>
  
The ESP Easy supports several Home Automation controllers or web-services that collect sensor data.
+
<div style="border-bottom:1px solid red;  background:#F6CECE; padding:0.4em 1em 0.4em;">If you are running the stock Mega edition firmware on 1MB modules, you will find that you can no longer load newer images because there's insufficient free space to upload the image (344kB as of 2.0.0.-Dev 9 edition). You can compile smaller images to solve this issue or use a small image that has been build just to upload newer images. So you would always have to use a two-step process to renew using OTA on 1MB modules. Using the uploader image as an in-between step, you can use images up to 604kB.
  
[[EasyProtocols]]
+
* Only devices with 1Mb or more flash are supported.
 +
* To use OTA you need more then 1Mb of flash. (otherwise your device will get unreachable via wireless and you need to fix it via serial)
 +
* You lose all your config settings if you upgrade from an Rxxx version. (from before ESPEasy v2.0)
 +
</div>
  
= Configuration =
+
[http://www.letscontrolit.com/downloads/ESPEasyUploaderMega.zip ESPEasyUploaderMega]
To get you on track with the ESP Easy, we provide a tutorial to demonstrate the basics [[Tutorial_Domoticz_Switch]]
 
For all further applications, please check their respective wiki page [[Main_Page#Applications | Applications]]
 
  
 +
''The uploader uses SPIFFS so it uses the same configuration regarding SSID, WPA key and IP. It will connect to your Wifi network as usual, but it will only present this small web page:
 +
''
  
= ESP Easy web interface =
+
[[File:ESPUploader.png]]
The ESP Easy has a user-friendly web interface for all configuration settings. They are locally stored in flash memory and retained on power-off.
 
We will explain all configuration pages and settings:
 
  
== Main page ==
+
[[Tutorial_ESPEasy_Firmware_Upload]]
[[File:ESPEasy_Main.png]]
 
  
This is an informational page that provides some technical and operational parameters.
+
=== Compile your own firmware (Platformio) ===
The bottom half shows a node list of all known ESP units that are running in your network (this is optional and needs to be configured in tools/advanced)
 
The list only shows live systems.
 
  
 +
If you want to compile your own firmware (with unreleased plugins etc.) you do pretty much the same as the [[Tutorial building and uploading with platformio|development method]] except that you only need to download extra plugins on the side. Just follow the official guide found [[Tutorial building and uploading with platformio|here]].
  
== Config page ==
+
= [[EasyProtocols|Protocol selection]] =
Main settings can be found under "Config" page.
 
  
[[File:ESPEasy_Config.png]]
+
The ESP Easy supports several Home Automation controllers or web-services that collect sensor data.
  
'''Name''' Can be set to an easy to remember name for this system. Can also be used in MQTT communication templates.
+
[[EasyProtocols]]
  
'''Admin Password''' Can be set if you want to protect your system config with a password.
+
= [[Configuration]] =
 +
The ESP8266 boards are generally easy to use and understand but some precautions need to be taken when it comes to the different GPIOs available. This [[Configuration|section]] tells you more about the ESPeasy setup and the ESP unit's need to know settings (GPIO boot states etc.).
  
'''SSID''' Wifi network SSID
+
= [[ESP Easy web interface|ESP Easy web interface]] =
 +
The ESP Easy has a user-friendly web interface for all configuration settings. They are locally stored in flash memory and retained on power-off.
 +
We explain all configuration pages and settings [[ESP Easy web interface|here]].
  
'''WPA Key''' The key used on your Wifi Access Point
+
'''<span style="color:red">Do NOT expose the ESP Easy web interface directly to the internet, always make sure that the web interface is only reachable from "trusted/local" networks!</span>'''
  
'''WPA AP Mode Key''' The key that ESP Easy will use if it starts as a Wifi Access Point to set the first time configuration
+
= [[ESPEasy Command Reference|Command Reference]] =
  
'''Unit nr''' Each ESP Easy unit needs a unique number in the range 1-31. <span style="color:red">This is important for MQTT connections and the Node list! Do not forget to set this field to a non-zero value, not conflicting with other units.</span>
+
[[ESPEasy Command Reference]]
  
'''Protocol''' Select the protocol for your Home Automation controller or webservice like ThingSpeak.
+
= [[ESPEasy System Variables|System variables Reference]] =
  
'''Locate Controller''' You can set the controller based on it's DNS hostname or it's IP address.
+
[[ESPEasy System Variables]]
  
'''Controller IP/Hostname''' Set IP or hostname for the controller
+
= [[Tutorial Rules|Tutorial Rules]]=
 +
Most information on rules (=local logic on ESP without controller) can be found in the tutorials. Rules are a great way of tweaking the ESP Easy firmware to do exactly what you want without the need to tinker with any source code.
  
'''Controller Port''' Set the TCP port used on your controller or webservice.
+
More on how is found on the [[Tutorial Rules]] page.
  
'''Sensor Delay''' Set the delay between sensor reporting in seconds.
+
= Hardware Tips 'n Tricks=
 +
* [[Power | Power stability]]
 +
* [[Relays | Relays]]
 +
* [[Breadboards | Breadboards]]
 +
* [[Interference | WiFi interference]]
  
'''Sleep Mode''' Tick this field to use the ESP in deepsleep mode for low power operation. Read more: [[SleepMode]]
+
= Examples =
 
+
* [[Analog Pressure sensor | Analog Pressure Sensor]]
Optional
+
* [[DC Voltage divider | DC Voltage divider]]
 
+
* [[SleepMode | SleepMode]]
'''ESP IP''' You can set a static IP for this ESP unit. Set to 0.0.0.0 to use DHCP
 
 
 
'''ESP GW''' If using a static IP, enter the gateway (not needed if no connection to internet is needed!)
 
 
 
'''ESP Subnet''' Enter the local used subnet, usually 255.255.255.0
 
 
 
'''ESP DNS''' Enter you local DNS server IP address. Usually the IP of your local internet router.
 
 
 
== Hardware page ==
 
[[File:ESPEasy_Hardware.png]]
 
 
 
'''Status LED''' (version 2.0 only) Select the data pin used for a low active LED to show the status of the firmware. Use D4 (GPIO2) for the on-board blue LED.
 
 
 
[[File:StatusLEDModes.png|200px]]
 
 
 
'''SDA''' Select the data pin used for I2C communications.
 
 
 
'''SCL''' Select the clock pin used for I2C communications.
 
 
 
'''Pin mode x''' Select an optional boot state for this pin, either output low or high
 
 
 
I2C is a well known standard to let multiple devices communicate over just two wires (and ground). We use it to connect sensors to ESP Easy. You can connect multiple sensors to the same two wires. Don't forget to use pull-up resistors on both SDA and SCL, unless one of your sensors already has them mounted on board.
 
 
 
== Devices page ==
 
[[File:ESPEasy_Devices.png]]
 
 
 
This is a list of tasks that the ESP Easy will perform. A sensor needs to be defined here to get the values send to your controller.
 
 
 
After selecting a new device, press the ? button to get specific help on this device!
 
 
 
<span style="color:red">Most common mistake if your values remain 0: The ESP Easy mainly targets Domoticz and the internal framework is entirely build upon the IDX field. This needs to match Domoticz. If you run a different protocol, it can be any value but must be non-zero. Just choose '1' in those cases...</span>
 
 
 
== Tools page ==
 
[[File:ESPEasy_Tools.png]]
 
 
 
Some maintenance tools.
 
 
 
 
 
=== Tools Log page ===
 
 
 
This page can be used for debugging issues. The debug level is set to '2' by default and will show sensor readings. Debugging levels can be changed under Tools/Advanced.
 
 
 
If your system runs fine, you can set the level to '0' to turn of logging. This will save valuable RAM!
 
 
 
 
 
=== Tools Advanced page ===
 
[[File:ESPEasy_Tools_Advanced.png]]
 
 
 
'''Subscribe Template''' Used for MQTT subscription. Selecting a MQTT protocol will automatically fill this field
 
 
 
'''Publish Template''' Used for MQTT publishing. Selecting a MQTT protocol will automatically fill this field
 
It is also used for the Generic HTTP protocol. Create your custom template here.
 
 
 
'''MQTT Retain Msg'''
 
 
 
'''Message Delay''' To prevent overloading your controller or webservice, a delay between reports can be set. Defaults to 1000 milliseconds. <span style="color:red">For ThingSpeak, you need to set this to 15000! to have multiple sensor readings working</span>
 
 
 
'''Fixed IP Octet''' Special network config where the ESP starts with DHCP to get the basic network config and then sets the last octet to a fixed IP.
 
 
 
'''Use NTP''' To enable internal software clock, synchronized using internet time.
 
 
 
'''NTP Hostname''' Can be left empty as it defaults to pool.ntp.org. Can be changed here if needed.
 
 
 
'''Timezone Offset''' Offset in minutes to GMT. In the Netherlands this should be '60'
 
 
 
'''DST''' Daylight Saving Time. Must be set manually when DST is active to adjust the time.
 
 
 
'''Syslog IP''' Enter your syslog server IP if you have one running and want to debug something.
 
 
 
'''Syslog level''' Level of log messaging to the syslog server. Can be set between 0 - 4 (0=no logging, 1=error, 2=error+info, 3=error+info+debug, 4=error+info+more debug)
 
 
 
'''UDP port''' This is used for communication between ESP unit's. 65500 is just a sample. Use a number that does not conflict with other systems on your network as the ESP uses broadcast messages.
 
<span style="color:red">If you have a syslog server running, do not enter 514 here!</span>. This fields needs to be non-zero to have the node list running.
 
 
 
'''Enable Serial Port''' Enable/disable the serial port.
 
 
 
'''Serial log level''' Level of log messaging to the serial port. Can be set between 0 - 4 (0=no logging, 1=error, 2=error+info, 3=error+info+debug, 4=error+info+more debug)
 
 
 
'''Web log level''' Level of log messaging to the web gui. Can be set between 0 - 4 (0=no logging, 1=error, 2=error+info, 3=error+info+debug, 4=error+info+more debug)
 
 
 
'''Baud Rate''' Serial port baud rate
 
 
 
'''WD I2C Address''' I2C address to send watchdog messages to. Experimental feature to feed a ATTiny based external watchdog.
 
 
 
'''Custom CSS''' Tick this box to use a custom CSS (style sheet). You must first upload a "esp.css" file one to use this.
 
<span style="color:red">The CSS filesize can not exceed 4 kbyte!</span>.
 
 
 
'''Use SSDP''' SSDP is a network protocol based on the Internet Protocol Suite for advertisement and discovery of network services and presence information. This option toggles this service.
 
 
 
'''Rules''' Tick this checkbox to enable the Rules section for scripting the device. Else the rules aren't visible and editable and won't be processed at all.
 
 
 
'''I2C ClockStrechLimit'''
 
 
 
'''Global Sync'''
 
 
 
=== Tools I2C scan ===
 
If one or more I2C devices are connected to the ESP Easy, you can use this scan feature to verify if devices can be located using their I2C address. If no device is shown, you likely made a mistake on wiring or the I2C configuration in the Hardware page.
 
 
 
If the I2C scanner lists an address, it will also list some well known devices that are fixed or typically found on that address. It does NOT mean that the detected device is verified to work in any way. I2C devices use a 7 bit address and the ESP will just scan all 127 possible addresses. If a device listens to some address it will acknowledge this to the ESP. It does not report the type of device so the ESP can only tell that something is listening!
 
 
 
 
 
=== Tools Settings up/download ===
 
 
 
The ESP Easy settings can be saved to your computer so you can restore them if they are lost or you just want to restore them after some experimenting. You can also upload a custom style sheet.
 
 
 
The system recognizes only two filenames:
 
 
 
'''config.txt'''
 
 
 
This file contains the ESP main configuration settings, except security data. The filesize should be 32k.
 
You can exchange this file with other people if you like, because WPA keys and config password are not stored into this file.
 
 
 
Security data cannot be saved or restored from file!
 
 
 
 
 
'''esp.css''' (Custom Style Sheet, max 4 kb !)
 
 
 
If you want to customize the web gui you can upload (a small) css file. Remember that the webgui is only there for configuration so customization is limited. You may use the following stylesheet as an working example or template for further customization. And don't forget to activate the uploaded stylesheet in the TOOLS>ADVANCED section by enabling the "Custom CSS" option.
 
 
 
<pre style="margin:0%;20%;">
 
* {
 
font-family: verdana,sans-serif;
 
font-size: 13px;
 
}
 
h1 {
 
color: black;
 
font-size: 16pt;
 
}
 
 
 
h1::after {
 
content: " (Powersocket Livingroom)";  /* Give your Device an additional selfexplaing name after the topmost headline */
 
}
 
 
 
h6 {
 
color: black;
 
font-size: 10pt;
 
text-align: center;
 
}
 
.button-menu {
 
background: #3498db;
 
background-image: -webkit-linear-gradient(top, #3498db, #2980b9);
 
background-image: -moz-linear-gradient(top, #3498db, #2980b9);
 
background-image: -ms-linear-gradient(top, #3498db, #2980b9);
 
background-image: -o-linear-gradient(top, #3498db, #2980b9);
 
background-image: linear-gradient(to bottom, #3498db, #2980b9);
 
-webkit-border-radius: 7;
 
-moz-border-radius: 7;
 
border-radius: 7px;
 
color: #ffffff;
 
padding: 3px 10px 3px 10px;
 
border: solid #1f628d 1px;
 
text-decoration: none;
 
margin:0px 2px;
 
}
 
 
 
.button-menu:hover {
 
background: #8fd4ff;
 
background-image: -webkit-linear-gradient(top, #8fd4ff, #3498db);
 
background-image: -moz-linear-gradient(top, #8fd4ff, #3498db);
 
background-image: -ms-linear-gradient(top, #8fd4ff, #3498db);
 
background-image: -o-linear-gradient(top, #8fd4ff, #3498db);
 
background-image: linear-gradient(to bottom, #8fd4ff, #3498db);
 
text-decoration: none;
 
margin:0px 2px;
 
}
 
 
 
.button-link {
 
border: 1px solid;
 
border-radius: 5px;
 
background:ButtonFace;
 
color:ButtonText;
 
border-color:ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
 
padding: 5px 15px;
 
text-decoration: none;
 
}
 
.button-link:hover {
 
background-color:Highlight;
 
color:HighlightText;
 
}
 
.button-link:active {
 
border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
 
}
 
th {
 
background-color: #369;
 
color: #ffffff;
 
padding: 10px;
 
}
 
td {
 
padding: 7px;
 
}
 
table {
 
color: black;
 
border-collapse:collapse;
 
}
 
.div_l {
 
float: left;
 
}
 
.div_r {
 
background-color: #080;
 
border-radius: 7px;
 
color: white;
 
float: right;
 
margin: 2px;
 
padding: 1px 10px;
 
}
 
.div_br {
 
clear: both;
 
}
 
 
 
</pre>
 
 
 
=== Tools Firmware update using OTA ===
 
Once your first ESP Easy firmware is loaded using the serial interface, subsequent updates can be loaded using the Wifi connection (if your unit has 1MB flash or more!).
 
More details on OTA firmware update: [[EasyOTA]]
 
 
 
= Command Reference =
 
 
 
[[ESPEasy Command Reference]]
 
 
 
= System variables Reference =
 
 
 
[[ESPEasy System Variables]]
 
 
 
= Tutorial Rules  =
 
[[Tutorial Rules]]
 
 
 
Most information on rules (=local logic on ESP without controller) can be found in the tutorial
 
  
 
= Support and discussion =
 
= Support and discussion =
Line 535: Line 235:
 
* [http://www.letscontrolit.com/forum/ Forum]
 
* [http://www.letscontrolit.com/forum/ Forum]
 
* IRC: #espeasy @freenode
 
* IRC: #espeasy @freenode
 +
* Slack (for Wiki talk): [https://espeasywiki.slack.com ESP Easy Wiki]
  
 
== Source code development ==
 
== Source code development ==
Line 548: Line 249:
 
* Then you're ready for: [[Tutorial building and uploading with platformio]]
 
* Then you're ready for: [[Tutorial building and uploading with platformio]]
 
* And eventually, if you did the github stuff: [[Tutorial Contributing Back To ESPEasy]]
 
* And eventually, if you did the github stuff: [[Tutorial Contributing Back To ESPEasy]]
 +
 +
= Hardware page =
 +
<span style="color: red>For older versions, the Hardware page has now moved to:</span> [[ESP Easy web interface#Hardware page]]!

Latest revision as of 23:36, 3 February 2021

Welcome to ESP Easy,
the open source firmware for ESP8266 / ESP8285 / ESP32.
Latest builds: GitHub nightly builds
Wiki documentation outdated - Warning
This wiki documentation (for ESPEasy) has become outdated.

Please see ESPEasy ReadTheDocs for more up to date documentation. As not all documentation has been transferred to RTD, this Wiki can still be useful. However, always check the RTD documentation first.

There may be links to older builds online. See GitHub nightly builds for latest builds and releases.


Introduction

The ESP Easy firmware can be used to turn the ESP module into an easy multifunction sensor device for Home Automation solutions like Domoticz. Configuration of the ESP Easy is entirely web based, so once you've got the firmware loaded, you don't need any other tool besides a common web browser.

ESP Easy also offers limited "low level" actuator functions but due to system instability, this could be less useful in real life applications.

ESP Easy is under continuous development as can be seen on the GitHub page and on the Forum.

There are so called "nightly builds" which can be found on the Releases page.


We need support

Funding = a better firmware
We are in great need for funding. The plan is to make this an awesome "operating system" for IoT. We have some big (even huge) features that we want to give you but time is scarce and we need to quit our daytime jobs... Do you want to help us with that? Read more in this announcement here.

Version names, numbers, and branches

Well, this is a short version of our naming convention here at the ESP Easy initiative. We started to call the extensive re-write of the source code "Mega", which is an hint of the size needed for the next big stable release. Prior to mega we allowed smaller mem-sizes (sub-megabyte, aka 512kb) for the official releases. This is a bit tight for our goal to add many more useful features to the firmware. So after a somewhat bad decision in the early days of the re-write project we started to call the development branch "Mega" instead of the more accepted name "Master". We later switched this to the correct name. The current master branch on GitHub is where all the development goes into. The legacy branch is the archive, a point zero if you like, which is the exact copy of the source code before we started the re-write. Once we have reached all the milestones for version 2.0.0 we will freeze the source from that point and fork that into a branch called v2.0, only bug fixes is going into that branch. New features that cannot wait until next v2.1 release will be branched into v2.0.1 (this might not happen if no ground breaking feature is added). New features, and experimental stuff, is poured into the development branch (master). Below you will find a explanation on how we intend to do the branching and releases of future firmware versions. Please observe that this table is not the road map, just an example to explain the different names and numbers.

N.B. this table is outdated and needs to be updated.

Explanation L: legacy freeze (R147 code) D: development (cutting edge) FF: feature freeze R: release of new stable
Branch Tag 2017 2018 2019
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
legacy R147 L
development Mega/Knox/Carta D
v2.0 v2.0.0 FF R
v2.1 v2.1.0 FF R
v3.0 v3.0.0 FF?

Tag names

Stable releases will have a version number similar to "v2.0.0" but focusing areas for development will have short tag names such as "Mega" which indicate the focus for the next big release. A preliminary list for the future focus areas are:

Mega which will become v2.0.0 - getting more plugins and much more features (thus the tag "mega" which indicates that a bigger memory is needed for the generic FW)
Knox which will become v2.1.0 - focusing on security
Carta which will become v2.2.0 - focusing on communication unit2unit and unit2controller

As of release mega we will also try to get more hardware specific builds for especially Sonoff units. These will have much less plugins by default since they are not needed for these units, this makes flashing units with less than 1MB possible.

Release names

Nightly builds are always generated if something has been updated in the source code. So the master branch will always have many more releases than the frozen stable releases which will only have one (until a bug fix release is generated). To explain this we provide these examples:

Master is updated on 2018-04.07 with new code, next morning you will be able to download the release "master-20180408" (current tag name for that release is "mega").
Master is branched into an official stable release named "v2.0" on 2018-05-07, next morning you can download "v2.0-20180508".
v2.0 is bug fixed on 2018-05-23, next morning you can download "v2.0-20180524" which then supersede the older v2.0.0 version.

So how do you know which one is the latest?
That's where this wiki is here for (among many other things). We will list all the current states from v2.0.0 and onward. Releases named "master" should always be seen as not stable and only for users that wish to experiment with new releases and test stuff to help the development of future releases.

Get started

Getting started with the ESP Easy takes a few basic steps. In most cases your ESP module comes with the AT firmware or the NodeMCU LUA firmware. We need to replace the existing firmware with the ESP Easy firmware. We provide a (Windows only) flashtool to make this process an easy job. Below you find the general flow of this but an in depth guide is found here.

1. Download firmware as binary including flash tool

2. Connect the ESP to Windows PC
Using either USB/UART of board or separate USB/TTL adapter

3. Write firmware using flash tool
Note necessity for GPIO to be LOW to enter flashmode

4. Restart ESP. WiFi AP "ESP_Easy_0" will appear, password: configesp
(prior to 2.0 the AP was named ESP_0)
If you're not automatically taken to the log-in page, browse to 192.168.4.1

5. Search for you routers WiFi and connect
(if you have multiple AP they will all show up with the same SSID name multiple times)

6. Reconnect to your WiFi and enter IP adress shown on previous screen

Supported Hardware

ESP Easy can be installed/flashed on nearly every piece of Hardware that has an ESP8266 built-in, newest 2.0.0 version even does support the ESP8285 (basically an ESP8266 with built-in 1M Flash).
Please see the list here for more in depth detail about the hardware.

Supported Sensors/Actuators

The in depth list of devices (sensors and actuators) is found here.

Modded Hardware Products

A list of (officially) modded hardware products is found here.

Tutorials

Loading firmware

 On the linked page you will find two daily builds of ESPEasy.
 For some clarification:
 Release V2.0-<date>: Beta version of the next stable release, no new features, bugfixes only.
 Release mega-<date>: Bleeding edge of development.
  • Old release candidate: ESPEasy R147_RC8 (is now part of the dev build for v2.0.0)


2.0+ firmware on 1MB modules

2.0+ firmware on 1MB modules - Warning
If you are running the stock Mega edition firmware on 1MB modules, you will find that you can no longer load newer images because there's insufficient free space to upload the image (344kB as of 2.0.0.-Dev 9 edition). You can compile smaller images to solve this issue or use a small image that has been build just to upload newer images. So you would always have to use a two-step process to renew using OTA on 1MB modules. Using the uploader image as an in-between step, you can use images up to 604kB.
  • Only devices with 1Mb or more flash are supported.
  • To use OTA you need more then 1Mb of flash. (otherwise your device will get unreachable via wireless and you need to fix it via serial)
  • You lose all your config settings if you upgrade from an Rxxx version. (from before ESPEasy v2.0)

ESPEasyUploaderMega

The uploader uses SPIFFS so it uses the same configuration regarding SSID, WPA key and IP. It will connect to your Wifi network as usual, but it will only present this small web page:

ESPUploader.png

Tutorial_ESPEasy_Firmware_Upload

Compile your own firmware (Platformio)

If you want to compile your own firmware (with unreleased plugins etc.) you do pretty much the same as the development method except that you only need to download extra plugins on the side. Just follow the official guide found here.

Protocol selection

The ESP Easy supports several Home Automation controllers or web-services that collect sensor data.

EasyProtocols

Configuration

The ESP8266 boards are generally easy to use and understand but some precautions need to be taken when it comes to the different GPIOs available. This section tells you more about the ESPeasy setup and the ESP unit's need to know settings (GPIO boot states etc.).

ESP Easy web interface

The ESP Easy has a user-friendly web interface for all configuration settings. They are locally stored in flash memory and retained on power-off. We explain all configuration pages and settings here.

Do NOT expose the ESP Easy web interface directly to the internet, always make sure that the web interface is only reachable from "trusted/local" networks!

Command Reference

ESPEasy Command Reference

System variables Reference

ESPEasy System Variables

Tutorial Rules

Most information on rules (=local logic on ESP without controller) can be found in the tutorials. Rules are a great way of tweaking the ESP Easy firmware to do exactly what you want without the need to tinker with any source code.

More on how is found on the Tutorial Rules page.

Hardware Tips 'n Tricks

Examples

Support and discussion

Source code development

Sources are on Github

Want to contribute? Anyone is invited to do so, but please read this first: ESPEasyDevelopmentGuidelines

If you're new to this, follow these guides:

Hardware page

For older versions, the Hardware page has now moved to: ESP Easy web interface#Hardware page!