## Migration Information
See [wiki migration path](https://github.com/arendst/Sonoff-Tasmota/wiki/Upgrade#migration-path) for instructions how to migrate to a major version. Pay attention to the following version breaks due to dynamic settings updates:

1. Migrate to **Sonoff-Tasmota 3.9.x**
2. Migrate to **Sonoff-Tasmota 4.x**
3. Migrate to **Sonoff-Tasmota 5.14**
4. Migrate to **Sonoff-Tasmota 6.x**

## Release notes
### Change in default initial configuration tool
Firmware binary **sonoff-classic.bin** supports **WifiManager, Wps and SmartConfig** for initial configuration. The default tool is **Wps**.

To save memory space all other binaries support **WifiManager only**.

See _changelog.ino how to enable them again.
- Define WIFI_CONFIG_TOOL now contains the default behaviour once a SSID has been configured.
- If no SSID is configured making a wifi connection impossible the new define WIFI_CONFIG_NO_SSID will be used.
- While define WIFI_CONFIG_NO_SSID is set to WIFI_WPSCONFIG in my_user_config.h the compiler will check for define USE_WPS and if not enabled WIFI_CONFIG_NO_SSID will default to WIFI_MANAGER using the webserver. If define USE_WEBSERVER is also not enabled WIFI_CONFIG_NO_SSID will default to WIFI_SMARTCONFIG. If define USE_SMARTCONFIG is also not enabled WIFI_CONFIG_NO_SSID will default to a new option WIFI_SERIAL allowing to enter wifi parameters to serial which is always possible.

## Supported Modules
The following hardware modules are supported.

Module            | Description
------------------|-----------------------
01 Sonoff Basic   | Sonoff Basic Wifi Smart Switch
02 Sonoff RF      | Sonoff RF Wifi Smart Switch with RF (434MHz) receiver
03 Sonoff SV      | Sonoff SV Safe Voltage Wifi Smart Switch
04 Sonoff TH      | Sonoff TH10/TH16 Wifi Smart Switch with Sensor connection
05 Sonoff Dual    | Sonoff Dual Wifi Smart Switch
06 Sonoff Pow     | Sonoff Pow Wifi Smart Switch with Energy Monitoring
07 Sonoff 4CH     | Sonoff 4CH 4-gang Wifi Smart Switch
08 Sonoff S2X     | Sonoff S20/S26 Wifi Smart Socket
09 Slampher       | Sonoff Slampher Wifi Smart Light Bulb Socket with RF (434MHz) receiver
10 Sonoff Touch   | Sonoff Touch Wifi Light Switch
11 Sonoff LED     | Sonoff Led Wifi Led Pack (Retired)
12 1 Channel      | 1 Channel Inching/Self Locking Wifi Switch 5V/12V
13 4 Channel      | 4 Channel Inching/Self Locking Wifi Switch (Retired)
14 Motor C/AC     | Motor Clockwise/Antoclockwise Wifi Switch (Retired)
15 ElectroDragon  | Electrodragon Wifi IoT Board
16 EXS Relay(s)   | Electronic Experience Store 1 or 2-gang Wifi Module
17 WiOn           | WiOn Wifi Smart Socket
18 Generic        | Any ESP8266/ESP8285 device like WeMos and NodeMCU
19 Sonoff Dev     | Sonoff Dev Wifi Development Board
20 H801           | H801 Wifi RGBWW Led Controller
21 Sonoff SC      | Sonoff SC Wifi Environmental Monitor
22 Sonoff BN-SZ   | Sonoff BN-SZ01 Wifi Ceiling Led (Retired)
23 Sonoff 4CH Pro | Sonoff 4CH Pro 4-gang Wifi Smart Switch
24 Huafan SS      | HuaFan Wifi Smart Socket
25 Sonoff Bridge  | Sonoff RF (434MHz) transceive to Wifi Bridge
26 Sonoff B1      | Sonoff B1 Wifi RGBWW Led Bulb
27 AiLight        | Ai-Thinker RGBW Led Bulb
28 Sonoff T1 1CH  | Sonoff T1 1-gang Wifi Light Switch
29 Sonoff T1 2CH  | Sonoff T1 2-gang Wifi Light Switch
30 Sonoff T1 3CH  | Sonoff T1 3-gang Wifi Light Switch
31 Supla Espablo  | 2-gang Wifi Module
32 Witty Cloud    | Witty Cloud ESP8266 Wifi Development Board
33 Yunshan Relay  | ESP8266 Wifi Network Relay Module
34 MagicHome      | MagicHome, Flux-light and some Arilux LC10 RGB(W) Led Controller
35 Luani HVIO     | Luani ESP8266 Wifi I/O Module
36 KMC 70011      | KMC Wifi Smart Socket with Energy Monitoring
37 Arilux LC01    | Arilux AL-LC01 RGB Led Controller
38 Arilux LC11    | Arilux AL-LC11 RGBWW Led Controller
39 Sonoff Dual R2 | Sonoff Dual R2 Wifi Smart Switch
40 Arilux LC06    | Arilux AL-LC06 RGB(WW) Led Controller
41 Sonoff S31     | Sonoff S31 Wifi Smart Socket with Energy Monitoring
42 Zengge WF017   | Zengge WF017 Wifi RGB(W) Led Controller
43 Sonoff Pow R2  | Sonoff Pow R2 Wifi Smart Switch with Energy Monitoring
44 Sonoff iFan02  | Sonoff iFan02 Wifi Smart Ceiling Fan with Light
45 BlitzWolf SHP  | BlitzWolf BW-SHP2, BW-SHP6, HomeCube SP1, Gosund SP111, Teckin SP22 Wifi Smart Switch with Energy Monitoring
46 Shelly 1       | Shelly 1 Open Source Wifi Relay Module
47 Shelly 2       | Shelly 2 Wifi 2-gang Relay Module with Energy Monitoring
48 Xiaomi Philips | Xiaomi Philips Wifi WW Led Bulb
49 Neo Coolcam    | Neo Coolcam Wifi Smart Socket
50 ESP Switch     | ESP Switch 4-gang Wifi Switch with Leds
51 OBI Socket     | OBI Wifi Smart Socket
52 Teckin         | Teckin SP20 Wifi Smart Switch with Energy Monitoring
53 AplicWDP303075 | Aplic WDP 303075 CSL Wifi Smart Switch with Energy Monitoring
54 Tuya Dimmer    | MIUO (and other Tuya based) Wifi Dimmer for Incandescent Lights and Led
55 Gosund SP1 v23 | Gosund SP1 v2.3 Wifi Smart Switch with Energy Monitoring
56 ARMTR Dimmer   | ARMtronix Wifi dimmer for Incandescent Lights and Led
57 SK03 Outdoor   | SK03 Outdoor Wifi Smart Switch with Energy Monitoring
58 PS-16-DZ       | PS-16-DZ  Wifi dimmer for Incandescent Lights and Led
59 Teckin US      | Teckin US and ZooZee SA102 Wifi Smart Switch with Energy Monitoring

## Provided Binary Downloads
The following binary downloads have been compiled with ESP8266/Arduino library version **2.3.0**

- **sonoff-minimal.bin** = The Minimal version allows intermediate OTA uploads to support larger versions and does NOT change any persistent parameter. This version **should NOT be used for initial installation**.
- **sonoff-classic.bin** = The Classic version allows **initial installation** using either WifiManager, Wps or SmartConfig.
- **sonoff.bin** = The Sonoff version without Wps and SmartConfig configuration but adds more sensors.
- **sonoff-BG.bin** to **sonoff-TW.bin** = The Sonoff version without Wps and SmartConfig configuration in different languages.
- **sonoff-sensors.bin** = The Sensors version without Wps and SmartConfig configuration but adds even more useful sensors.
- **sonoff-display.bin** = The Display version without Wps and SmartConfig configuration but adds display support.
- **sonoff-knx.bin** = The Knx version without Wps and SmartConfig configuration and some other features but adds KNX support.

See [Tasmota ESP/Arduino library version related issues](https://github.com/arendst/Sonoff-Tasmota/wiki/Theo's-Tasmota-Tips#20180523---relation-tasmota-and-esp8266arduino-core-version) why these files are still released using ESP/Arduino library version v2.3.0.

### Available Features and Sensors

| Feature or Sensor              | minimal | basic | classic | sonoff | knx  | sensors | Remarks
|--------------------------------|---------|-------|---------|--------|------|---------|--------
| ESP/Arduino lib v2.3.0         | 343k    | 425k  | 484k    | 490k   | 508k | 517k    |
| ESP/Arduino lib v2.4.2         | 372k    | 451k  | 497k    | 517k   | 533k | 541k    | No sleep
|                                |   |   |   |   |   |   |
| MY_LANGUAGE en-GB              | x | x | x | x | x | x |
| MQTT_LIBRARY_TYPE PUBSUBCLIENT | x | x | x | x | x | x |
| USE_WPS                        | - | - | x | - | - | - | WPS
| USE_SMARTCONFIG                | - | - | x | - | - | - | SmartConfig
| USE_ARDUINO_OTA                | - | - | - | - | - | - |
| USE_DOMOTICZ                   | - | - | x | x | x | x |
| USE_HOME_ASSISTANT             | - | - | x | x | x | x |
| USE_MQTT_TLS                   | - | - | - | - | - | - |
| USE_KNX                        | - | - | - | - | x | - |
| USE_WEBSERVER                  | x | x | x | x | x | x | WifiManager
| USE_EMULATION                  | - | x | x | x | - | x |
| USE_DISCOVERY                  | - | - | x | x | x | x |
| WEBSERVER_ADVERTISE            | - | - | x | x | x | x |
| MQTT_HOST_DISCOVERY            | - | - | x | x | x | x |
| USE_TIMERS                     | - | x | - | x | x | x |
| USE_TIMERS_WEB                 | - | x | - | x | x | x |
| USE_SUNRISE                    | - | x | - | x | x | x |
| USE_RULES                      | - | x | - | x | x | x |
|                                |   |   |   |   |   |
| USE_ADC_VCC                    | x | x | x | x | x | - |
| USE_DS18B20                    | - | - | - | - | - | - | Single sensor
| USE_DS18x20                    | - | - | x | x | x | x | Multiple sensors
| USE_DS18x20_LEGACY             | - | - | - | - | - | - | Multiple sensors
|                                |   |   |   |   |   |   |
| Feature or Sensor              | minimal | basic | classic | sonoff | knx  | sensors |
| USE_I2C                        | - | - | - | x | x | x |
| USE_SHT                        | - | - | - | x | x | x |
| USE_HTU                        | - | - | - | x | x | x |
| USE_BMP                        | - | - | - | x | x | x |
| USE_BME680                     | - | - | - | - | - | x |
| USE_BH1750                     | - | - | - | x | x | x |
| USE_VEML6070                   | - | - | - | - | - | x |
| USE_ADS1115                    | - | - | - | - | - | x |
| USE_ADS1115_I2CDEV             | - | - | - | - | - | - |
| USE_INA219                     | - | - | - | - | - | x |
| USE_SHT3X                      | - | - | - | x | x | x |
| USE_TSL2561                    | - | - | - | - | - | x |
| USE_MGS                        | - | - | - | - | - | x |
| USE_SGP30                      | - | - | - | x | x | x |
| USE_SI1145                     | - | - | - | - | - | x |
| USE_LM75AD                     | - | - | - | x | x | x |
| USE_APDS9960                   | - | - | - | - | - | - |
| USE_MCP230xx                   | - | - | - | - | - | - |
| USE_PCA9685                    | - | - | - | - | - | - |
| USE_MPR121                     | - | - | - | - | - | - |
| USE_CCS811                     | - | - | - | - | - | - |
| USE_MPU6050                    | - | - | - | - | - | - |
| USE_DS3231                     | - | - | - | - | - | - |
|                                |   |   |   |   |   |   |
| Feature or Sensor              | minimal | basic | classic | sonoff | knx  | sensors |
| USE_SPI                        | - | - | - | - | - | - |
| USE_MHZ19                      | - | - | - | x | x | x |
| USE_SENSEAIR                   | - | - | - | x | x | x |
| USE_PMS5003                    | - | - | - | x | x | x |
| USE_NOVA_SDS                   | - | - | - | x | x | x |
| USE_PZEM004T                   | - | - | - | x | x | x |
| USE_PZEM_AC                    | - | - | - | x | x | x |
| USE_PZEM_DC                    | - | - | - | x | x | x |
| USE_MCP39F501                  | - | x | - | x | x | x |
| USE_SERIAL_BRIDGE              | - | - | - | x | x | x |
| USE_SDM120                     | - | - | - | - | - | x |
| USE_SDM630                     | - | - | - | - | - | x |
| USE_MP3_PLAYER                 | - | - | - | - | - | x |
| USE_TUYA_DIMMER                | - | x | - | x | x | x |
| USE_IR_REMOTE                  | - | - | - | x | x | x |
| USE_IR_HVAC                    | - | - | - | - | - | x |
| USE_IR_RECEIVE                 | - | - | - | x | x | x |
| USE_WS2812                     | - | - | x | x | x | x |
| USE_WS2812_DMA                 | - | - | - | - | - | - |
| USE_ARILUX_RF                  | - | - | - | x | x | x |
| USE_SR04                       | - | - | - | x | x | x |
| USE_TM1638                     | - | - | - | - | - | x |
| USE_HX711                      | - | - | - | x | x | x |
| USE_RF_FLASH                   | - | - | - | x | x | x |
| USE_TX20_WIND_SENSOR           | - | - | - | x | x | x |
| USE_RC_SWITCH                  | - | - | - | x | x | x |
| USE_DISPLAY                    | - | - | - | - | - | - |

## Changelog
Version 6.3.0 20181030
 * Change web Configure Module GPIO drop down list order for better readability
 * Change status JSON message providing more switch and retain information
 * Change xsns_17_senseair.ino to use TasmotaModbus library
 * Change MCP230xx driver
 * Change PubSubClient Mqtt library to non-blocking EspEasy version
 * Change energy monitoring using energy sensor driver modules
 * Change Webserver page handler for easier extension (thx to Adrian Scillato)
 * Change pinmode for no-pullup defined switches to pullup when configured as switchmode PUSHBUTTON (=3 and up) (#3896)
 * Change default OTA Url to http://thehackbox.org/tasmota/release/sonoff.bin (#4170)
 * Remove support for MQTT Client esp-mqtt-arduino by #define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO
 * Remove commands PowerCal, VoltageCal and CurrentCal as more functionality is provided by commands PowerSet, VoltageSet and CurrentSet
 * Remove restart after ntpserver change and force NTP re-sync (#3890)
 * Fix showing Period Power in energy threshold messages
 * Fix header file execution order by renaming user_config.h to my_user_config.h
 * Fix some TSL2561 driver issues (#3681)
 * Fix KNX PA exception. Regression from 6.2.1 buffer overflow caused by subStr() (#3700, #3710)
 * Fix setting and getting color temperature for Philips Hue emulation (#3733)
 * Fix ButtonRetain to not use default topic for clearing retain messages (#3737)
 * Fix syslog when emulation is selected (#2109, #3784)
 * Fix rule trigger POWER1#STATE execution after restart and SetOption0 is 0 (#3856)
 * Fix Home Assistant forced light discovery (#3908)
 * Fix invalid configuration restores and decode_config.py crc error when savedata = 0 (#3918)
 * Fix timer offset -00:00 causing 12:00 hour offset (#3923)
 * Fix I2CScan invalid JSON error message (#3925)
 * Fix exception when wrong Domoticz JSON message is received (#3963)
 * Fix Sonoff Bridge RfRaw receive (#4080, #4085)
 * Fix possible wifi connection error (#4044, #4083)
 * Fix invalid JSON floating point result from nan (Not a Number) and inf (Infinity) into null (#4147)
 * Fix rule mqtt#connected trigger when mqtt is disabled (#4149)
 * Add support for LCD, Matrix, TFT and Oled displays
 * Add support for Neo Coolcam Wifi Smart Power Plug
 * Add support for Michael Haustein ESP Switch
 * Add support for MQTT Client based on lwmqtt to be selected by #define MQTT_LIBRARY_TYPE MQTT_ARDUINOMQTT
 * Add support for Neo Coolcam Wifi Smart Power Plug
 * Add support for Michael Haustein ESP Switch
 * Add support for MQTT Client based on lwmqtt to be selected by #define MQTT_LIBRARY_TYPE MQTT_ARDUINOMQTT
 * Add support for DS3231 Real Time Clock
 * Add support for HX711 Load Cell with optional web GUI scale interface to demonstrate easy GUI plug-in
 * Add support for serial 8N2 communication to TasmotaModbus and TasmotaSerial libraries
 * Add support for RF transceiving using library RcSwitch (#2702)
 * Add support for Shelly 1 and Shelly 2 (#2789)
 * Add support for La Crosse TX20 Anemometer (#2654, #3146)
 * Add support for MP3 player using DFRobot RB-DFR-562 (#3723)
 * Add Support for Xiaomi-Philips Bulbs (#3787)
 * Add support for PCA9685 12bit 16pin hardware PWM driver (#3866)
 * Add support for EXS Relay V5.0 (#3810)
 * Add support for OBI Power Socket (#1988, #3944)
 * Add support for Teckin Power Socket with Energy Monitoring (#3950)
 * Add support for Pzem-003/017 DC Energy monitoring module (#3694)
 * Add support for Pzem-014/016 AC Energy monitoring module (#3694)
 * Add support for CSL Aplic WDP 303075 Power Socket with Energy Monitoring (#3991, #3996)
 * Add support for Tuya Dimmer (#469, #4075)
 * Add command Display to show all settings at once
 * Add command SerialSend5 to send raw serial data like "A5074100545293"
 * Add command WebRefresh 1000..10000 to control web page refresh in milliseconds. Default is 2345
 * Add command WeightRes 0..3 to control display of decimals for kilogram
 * Add command RGBWWTable to support color calibration (#3933)
 * Add command Reset 4 (reset to defaults but keep wifi params) and Reset 5 (as reset 4 and also erase flash) (#4061)
 * Add command SetOption35 0..255 (seconds) to delay mDNS initialization to control possible Wifi connect problems
 * Add command SetOption52 0/1 to control display of optional time offset from UTC in JSON messages (#3629, #3711)
 * Add command SetOption53 0/1 to toggle gui display of Hostname and IP address (#1006, #2091)
 * Add authentication to HTTP web pages
 * Add decimals as input to commands PowerSet, VoltageSet and CurrentSet
 * Add tools/decode-config.py by Norbert Richter to decode configuration data. See file for information
 * Add define USE_DISPLAYS for selecting image sonoff-display
 * Add define USE_BASIC for selecting image sonoff-basic without most sensors
 * Add auto reload of main web page to some web restarts
 * Add TasmotaModbus library as very basic modbus wrapper for TasmotaSerial
 * Add more API callbacks and document API.md
 * Add Apparent Power and Reactive Power to Energy Monitoring devices (#251)
 * Add token %hostname% to command FullTopic (#3018)
 * Add Wifi channel number to state message (#3664)
 * Add user configurable GPIO02 and GPIO03 on H801 devices (#3692)
 * Add toggle function RGBW lights (#3695, #3697)
 * Add network information to display start screen (#3704)
 * Add sleep to Nova Fitness SDS01X sensor (#2841, #3724, #3749)
 * Add Analog input AD0 enabled to sonoff-sensors.bin (#3756, #3757)
 * Add power value below 5W to Sonoff Pow R2 and S31 (#3745)
 * Add RF Receiver control to module MagicHome to be used on Arilux LC10 (#3792)
 * Add userid/password option to decode-status.py (#3796)
 * Add delay after restart before processing rule sensor data (#3811)
 * Add force_update to Home Assistant discovery (#3873)
 * Add rule triggers SWITCH1#BOOT and POWER1#BOOT (#3904, #3910)
 * Add Hebrew language file (#3960)
 * Add TotalStartTime to Energy JSON message (#3971)
 * Add whitespace removal from RfRaw and SerialSend5 (#4020)
 * Add support for two BMP/BME sensors (#4195)