diff --git a/API.md b/API.md
new file mode 100644
index 000000000..23e45369d
--- /dev/null
+++ b/API.md
@@ -0,0 +1,65 @@
+## Sonoff-Tasmota basic API information
+Sonoff-Tasmota can easily be extended by developers using provided function pointers as callback Ids. This document lists the available callback function Ids. See the wiki (https://github.com/arendst/Sonoff-Tasmota/wiki/Sensor-API) for more information.
+
+Callback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall and XnrgCall.
+
+## Driver, Sensor and Energy Callback Ids
+The following table lists Callback Ids and their availability for a Driver, Sensor or Energy service.
+
+Callback Id | Bool | Version | xdrv | xsns | xnrg | Description
+----------------------------|------|----------|------|------|------|----------------------------------
+FUNC_SETTINGS_OVERRIDE | | 6.2.1.19 | x | | | Override start-up settings
+FUNC_MODULE_INIT | x | 6.2.1.17 | x | | | Init module specific parameters
+FUNC_PRE_INIT | | | x | | x | Once GPIO have been established
+FUNC_INIT | | | x | x | x | At end of initialisation
+FUNC_LOOP | | | x | | | In main loop
+FUNC_EVERY_50_MSECOND | | | x | x | |
+FUNC_EVERY_100_MSECOND | | | x | x | |
+FUNC_EVERY_200_MSECOND | | | | x | x |
+FUNC_EVERY_250_MSECOND | | | x | | |
+FUNC_EVERY_SECOND | | | x | x | x |
+FUNC_PREP_BEFORE_TELEPERIOD | | | | x | | Deprecated. Use a FUNC_EVERY_
+FUNC_JSON_APPEND | | | | x | | Extend teleperiod JSON text
+FUNC_WEB_APPEND | | | | x | | Extend webgui ajax info
+FUNC_SAVE_BEFORE_RESTART | | | | x | | Just before a planned restart
+FUNC_COMMAND | x | | x | x | | When a command is not recognized
+FUNC_MQTT_SUBSCRIBE | | 5.12.0k | x | | | At end of MQTT subscriptions
+FUNC_MQTT_INIT | | 5.12.0k | x | | | Once at end of MQTT connection
+FUNC_MQTT_DATA | x | 5.12.0k | x | | | Before decoding command
+FUNC_SET_POWER | | | x | | | Before setting relays
+FUNC_SET_DEVICE_POWER | x | 6.2.1.18 | x | | | Set relay
+FUNC_SHOW_SENSOR | | | x | | | When FUNC_JSON_APPEND completes
+FUNC_RULES_PROCESS | x | 6.0.0 | x | | | Process specific rule
+FUNC_SERIAL | x | | x | | x | Process serial data
+FUNC_FREE_MEM | | | x | | | Show free memory for debugging
+FUNC_BUTTON_PRESSED | x | 6.2.1.18 | x | | | When a button is pressed
+FUNC_WEB_ADD_BUTTON | | 6.2.1.14 | x | x | | Add a Configuration Button to GUI
+FUNC_WEB_ADD_MAIN_BUTTON | | 6.2.1.14 | x | x | | Add a main button to GUI
+FUNC_WEB_ADD_HANDLER | | 6.2.1.14 | x | x | | Add a webserver handler
+
+## Display Call back Ids
+The following table lists all Callback Ids for a Display service.
+
+Callback Id | Bool | Version | Description
+------------------------------|------|----------|---------------------
+FUNC_DISPLAY_INIT_DRIVER | | 6.1.1.7 |
+FUNC_DISPLAY_INIT | | 6.1.1.7 |
+FUNC_DISPLAY_EVERY_50_MSECOND | | 6.1.1.7 |
+FUNC_DISPLAY_EVERY_SECOND | | 6.1.1.7 |
+FUNC_DISPLAY_MODEL | x | 6.1.1.7 |
+FUNC_DISPLAY_MODE | | 6.1.1.7 |
+FUNC_DISPLAY_POWER | | 6.1.1.7 |
+FUNC_DISPLAY_CLEAR | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_FRAME | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_HLINE | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_VLINE | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_LINE | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_CIRCLE | | 6.1.1.7 |
+FUNC_DISPLAY_FILL_CIRCLE | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_RECTANGLE | | 6.1.1.7 |
+FUNC_DISPLAY_FILL_RECTANGLE | | 6.1.1.7 |
+FUNC_DISPLAY_TEXT_SIZE | | 6.1.1.7 |
+FUNC_DISPLAY_FONT_SIZE | | 6.1.1.7 |
+FUNC_DISPLAY_ROTATION | | 6.1.1.7 |
+FUNC_DISPLAY_DRAW_STRING | | 6.1.1.7 |
+FUNC_DISPLAY_ONOFF | | 6.1.1.7 |
diff --git a/README.md b/README.md
index 7a257be8e..b32b6e2a1 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,9 @@ If you like **Sonoff-Tasmota**, give it a star, or fork it and contribute!
[](https://github.com/arendst/Sonoff-Tasmota/network)
[](https://paypal.me/tasmota)
-See [RELEASENOTES.md](https://github.com/arendst/Sonoff-Tasmota/blob/master/RELEASENOTES.md) for release information
+See [RELEASENOTES.md](https://github.com/arendst/Sonoff-Tasmota/blob/master/RELEASENOTES.md) for release information.
+
+In addition to the [release webpage](https://github.com/arendst/Sonoff-Tasmota/releases/latest) the binaries can also be OTA downloaded from http://thehackbox.org/tasmota/release/
### Disclaimer
:warning: **DANGER OF ELECTROCUTION** :warning:
@@ -52,7 +54,7 @@ See [Community](https://groups.google.com/d/forum/sonoffusers) for forum.
See [Chat](https://discord.gg/Ks2Kzd4) for more user experience.
The following devices are supported:
-- [iTead Sonoff Basic](https://www.itead.cc/smart-home/sonoff-wifi-wireless-switch-1.html)
+- [iTead Sonoff Basic (R2)](https://www.itead.cc/smart-home/sonoff-wifi-wireless-switch-1.html)
- [iTead Sonoff RF](https://www.itead.cc/smart-home/sonoff-rf.html)
- [iTead Sonoff SV](https://www.itead.cc/smart-home/sonoff-sv.html)
- [iTead Sonoff TH10/TH16 with temperature sensor](https://www.itead.cc/smart-home/sonoff-th.html)
@@ -83,9 +85,15 @@ The following devices are supported:
- [MagicHome PWM LED controller](https://github.com/arendst/Sonoff-Tasmota/wiki/MagicHome-LED-strip-controller)
- AriLux AL-LC01, AL-LC06 and AL-LC11 PWM LED controller
- [Supla device - Espablo-inCan mod. for electrical Installation box](https://forum.supla.org/viewtopic.php?f=33&t=2188)
-- [BlitzWolf BW-SHP2 Smart Socket with Energy Monitoring](https://www.banggood.com/BlitzWolf-BW-SHP2-Smart-WIFI-Socket-EU-Plug-220V-16A-Work-with-Amazon-Alexa-Google-Assistant-p-1292899.html)
+- [BlitzWolf BW-SHP2 Smart Socket with Energy Monitoring](https://www.banggood.com/BlitzWolf-BW-SHP2-Smart-WIFI-Socket-EU-Plug-220V-16A-Work-with-Amazon-Alexa-Google-Assistant-p-1292899.html)
- [Luani HVIO board](https://luani.de/projekte/esp8266-hvio/)
-- Wemos D1 mini, NodeMcu and Ledunia
+- [Wemos D1 mini](https://wiki.wemos.cc/products:d1:d1_mini)
+- [HuaFan Smart Socket](https://github.com/arendst/Sonoff-Tasmota/wiki/HuaFan-Smart-Socket)
+- [Hyleton-313 Smart Plug](https://github.com/arendst/Sonoff-Tasmota/wiki/Hyleton-313-Smart-Plug)
+- [Allterco Shelly 1](https://shelly.cloud/shelly1-open-source/)
+- [Allterco Shelly 2 with Energy Monitoring](https://shelly.cloud/shelly2/)
+- NodeMcu and Ledunia
+- [KS-602 based switches like GresaTek, Jesiya, NewRice, Lyasi etc](https://ucexperiment.wordpress.com/2017/11/14/reprogramming-a-lyasi-wifi-wall-switch-with-esp8285/)
### Contribute
You can contribute to Sonoff-Tasmota by
@@ -101,21 +109,25 @@ You can contribute to Sonoff-Tasmota by
Libraries used with Sonoff-Tasmota are:
- [ESP8266 core for Arduino](https://github.com/esp8266/Arduino)
- [Adafruit CCS811](https://github.com/adafruit/Adafruit_CCS811)
+- [Adafruit ILI9341](https://github.com/adafruit/Adafruit_ILI9341)
+- [Adafruit LED Backpack](https://github.com/adafruit/Adafruit-LED-Backpack-Library)
- [Adafruit SGP30](https://github.com/adafruit/Adafruit_SGP30)
+- [Adafruit SSD1306](https://github.com/adafruit/Adafruit_SSD1306)
+- [Adafruit GFX](https://github.com/adafruit/Adafruit-GFX-Library)
- [ArduinoJson](https://arduinojson.org/)
+- [arduino mqtt](https://github.com/256dpi/arduino-mqtt)
- [Bosch BME680](https://github.com/BoschSensortec/BME680_driver)
- [C2 Programmer](http://app.cear.ufpb.br/~lucas.hartmann/tag/efm8bb1/)
-- [Esp8266MqttClient](https://github.com/tuanpmt/ESP8266MQTTClient)
- [esp-knx-ip](https://github.com/envy/esp-knx-ip)
-- [esp-mqtt-arduino](https://github.com/i-n-g-o/esp-mqtt-arduino)
-- [ESPAsyncUDP](https://github.com/me-no-dev/ESPAsyncUDP)
- [I2Cdevlib](https://github.com/jrowberg/i2cdevlib)
- [IRremoteEsp8266](https://github.com/markszabo/IRremoteESP8266)
- [JobaTsl2561](https://github.com/joba-1/Joba_Tsl2561)
+- [Liquid Cristal](https://github.com/marcoschwartz/LiquidCrystal_I2C)
- [MultiChannelGasSensor](http://wiki.seeedstudio.com/Grove-Multichannel_Gas_Sensor/)
- [NeoPixelBus](https://github.com/Makuna/NeoPixelBus)
- [OneWire](https://github.com/PaulStoffregen/OneWire)
- [PubSubClient](https://github.com/knolleary/pubsubclient)
+- [rc-switch](https://github.com/sui77/rc-switch)
#### People inspiring me
People helping to keep the show on the road:
@@ -129,16 +141,18 @@ People helping to keep the show on the road:
- Flexiti for his initial timer implementation
- reloxx13 for his [TasmoAdmin](https://github.com/reloxx13/TasmoAdmin) management tool
- Joachim Banzhaf for his TSL2561 library and driver
-- Gijs Noorlander for his MHZ19 and SenseAir drivers
+- Gijs Noorlander for his MHZ19, SenseAir and updated PubSubClient drivers
- Emontnemery for his HomeAssistant Discovery concept and many code tuning tips
- Aidan Mountford for his HSB support
- Daniel Ztolnai for his Serial Bridge implementation
-- Gerhard Mutz for his SGP30 and Sunrise/Sunset driver
+- Gerhard Mutz for his SGP30, Sunrise/Sunset and display support drivers
- Nuno Ferreira for his HC-SR04 driver
- Adrian Scillato for his (security)fixes and implementing and maintaining KNX
- Gennaro Tortone for implementing and maintaining Eastron drivers
- Raymond Mouthaan for managing Wemos Wiki information
-- Norbert Richter, Frogmore42 and Jason2866 for providing many issue answers
+- Norbert Richter for his decode-config.py tool
+- Andre Thomas for providing [thehackbox](http://thehackbox.org/tasmota/) OTA support and daily development builds
+- Frogmore42 and Jason2866 for providing many issue answers
- Many more providing Tips, Pocs or PRs
### License
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 8cf1a0022..61b49280d 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -15,7 +15,7 @@ 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 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.
+- 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.
## Provided Binary Downloads
The following binary downloads have been compiled with ESP8266/Arduino library version **2.3.0**
@@ -25,6 +25,7 @@ The following binary downloads have been compiled with ESP8266/Arduino library v
- **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.
@@ -33,7 +34,7 @@ See [Tasmota ESP/Arduino library version related issues](https://github.com/aren
| Feature or Sensor | minimal | classic | sonoff | knx | sensors | Remarks
|--------------------------------|---------|---------|--------|------|---------|--------
-| ESP/Arduino lib v2.3.0 | 340k | 477k | 473k | 492k | 497k |
+| ESP/Arduino lib v2.3.0 | 344k | 485k | 491k | 510k | 516k |
| ESP/Arduino lib v2.4.2 | 360k | 491k | 491k | 509k | 513k | No sleep
| | | | | | |
| MY_LANGUAGE en-GB | x | x | x | x | x |
@@ -55,7 +56,7 @@ See [Tasmota ESP/Arduino library version related issues](https://github.com/aren
| USE_SUNRISE | - | - | x | x | x |
| USE_RULES | - | - | x | x | x |
| | | | | | |
-| USE_ADC_VCC | x | x | x | x | x |
+| USE_ADC_VCC | x | x | x | x | |
| USE_DS18B20 | - | - | - | - | - | Single sensor
| USE_DS18x20 | - | x | x | x | x | Multiple sensors
| USE_DS18x20_LEGACY | - | - | - | - | - | Multiple sensors
@@ -79,9 +80,11 @@ See [Tasmota ESP/Arduino library version related issues](https://github.com/aren
| USE_LM75AD | - | - | x | x | x |
| USE_APDS9960 | - | - | - | - | - |
| USE_MCP230xx | - | - | - | - | - |
+| USE_PCA9685 | - | - | - | - | - |
| USE_MPR121 | - | - | - | - | - |
| USE_CCS811 | - | - | - | - | - |
| USE_MPU6050 | - | - | - | - | - |
+| USE_DS3231 | - | - | - | - | - |
| | | | | | |
| Feature or Sensor | minimal | classic | sonoff | knx | sensors |
| USE_SPI | - | - | - | - | - |
@@ -90,9 +93,13 @@ See [Tasmota ESP/Arduino library version related issues](https://github.com/aren
| 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 |
| USE_SERIAL_BRIDGE | - | - | x | x | x |
| USE_SDM120 | - | - | - | - | x |
| USE_SDM630 | - | - | - | - | x |
+| USE_MP3_PLAYER | - | - | - | - | - |
| USE_IR_REMOTE | - | - | x | x | x |
| USE_IR_HVAC | - | - | - | - | x |
| USE_IR_RECEIVE | - | - | x | x | x |
@@ -101,76 +108,92 @@ See [Tasmota ESP/Arduino library version related issues](https://github.com/aren
| USE_ARILUX_RF | - | - | x | x | x |
| USE_SR04 | - | - | x | x | x |
| USE_TM1638 | - | - | - | - | - |
+| USE_HX711 | - | - | x | x | x |
| USE_RF_FLASH | - | - | x | x | x |
+| USE_TUYA_DIMMER | - | - | x | x | x |
+| USE_TX20_WIND_SENSOR | - | - | x | x | x |
+| USE_RC_SWITCH | - | - | x | x | x |
+| USE_DISPLAY | - | - | - | - | - |
## Changelog
-Version 6.2.1 20180905
- * Fix possible ambiguity on command parameters if StateText contains numbers only (#3656)
- * Fix Wemo emulation to select the first relay when more than one relay is present (#3657)
- * Fix possible exception due to buffer overflow (#3659)
- * Fix lost energy today and total energy value after power cycle (#3689)
-
-Version 6.2.0 20180901
- * Allow user override of define MAX_RULE_VARS and MAX_RULE_TIMERS (#3561)
- * Disable wifi sleep for both Esp8266/Arduino core 2.4.1 and 2.4.2 to solve device freeze caused by Espressif SDK bug (#3554)
- * Change DS18B20 driver to provide better instant results
- * Change some sensor drivers to provide instant results
- * Change define USE_ALL_SENSORS to USE_SENSORS as it doesn't contain all sensors due to duplicate I2C addresses
- * Change some sensor update timings: AdcEvery 200 -> 250, Senseair 300 -> 250, SDM120 300 -> 250, SDM630 300 -> 250
- * Change default Wifi config option from WPS to Wifi Manager if WPS is disabled or Wifi Smartconfig if webserver is disabled or Wifi Serial input if Smartconfig is disabled
- * Change SHT1x driver to provide better instant results and fix I2C interference
- * Change DHT driver to provide better instant results and add decimals to DHT11 (#3164)
- * Change DS18x20 driver to provide better instant results (#3169)
- * Change CounterType 1 from milliseconds to microseconds (#3437)
- * Change scheduler for better sleep support using Uptime, Delay, PulseTime and TelePeriod, Blinktime (#3581)
- * Remove unused functionality from Sonoff-minimal to save space
- * Remove WPS and SmartConfig from sonoff-minimal saving 56k code space
- * Remove TSL2561 debug message and update library (#2415)
- * Remove forced restart when sleep command is executed (#3554)
- * Fix invalid response using more than 4 switches and domoticz
- * Fix sonoff-minimal not using default settings
- * Fix unsecure main webpage update
- * Fix DHT driver mixing values for different sensors (#1797)
- * Fix EnergyReset3 regression not clearing total energy (#2723)
- * Fix rules once regression from v6.1.0 (#3198, #3226)
- * Fix command Scale buffer overflow (#3236)
- * Fix possible WDT due to long MQTT publish handling (#3313)
- * Fix command TimeDst/TimeStd invalid JSON (#3322)
- * Fix handling of default names when using names starting with shortcut character ",0,1 or 2 (#3392, #3600, #3618)
- * Fix LM75AD I2C sensor detection (#3408)
- * Fix iFan02 power on state (#3412, #3530)
- * Fix some Pow R2 and S31 checksum errors using optimized re-sync (#3425)
- * Fix SDM120 reporting wrong negative values to Domoticz (#3521)
- * Fix MQTT reconnection detection when using TasmotaMqtt library (#3558)
- * Fix OtaMagic when file path contains a dash (-) (#3563)
- * Fix Sonoff Bridge data reception when using Portisch EFM8 firmware using in data buffer length (#3605)
- * Add read sensor retry to DS18B20, DS18x20, DHT, SHT1X and HTU21
- * Add user selection of Wifi Smartconfig as define USE_SMARTCONFIG in user_config.h
- * Add boot loop detection and perform some solutions
- * Add wifi and mqtt status led blinkyblinky to be disabled by SetOption31 1. Does not work when LedPower is On (deliberate) (#871, #2230, #3114, #3155)
- * Add support for TM1638 switch (#2226)
- * Add GPIO options ButtonXn, SwitchXn and CounterXn to select INPUT mode instead of INPUT_PULLUP (#2525)
- * Add support for APDS9960 proximity sensor (#3051)
- * Add support for MPR121 controller in input mode for touch buttons (#3142)
- * Add support for MCP230xx for general purpose input expansion and command Sensor29 (#3188)
- * Add default Wifi Configuration tool as define WIFI_CONFIG_NO_SSID in user_config.h if no SSID is configured (#3224)
- * Add command Timers 0/1 to globally disable or enable armed timers (#3270)
- * Add support for CCS811 sensor (#3309)
- * Add Turkish language file (#3332)
- * Add command SerialSend4 to send binary serial data (#3345)
- * Add initial support for sensor MPU6050 (#3352)
- * Add rule triggers Wifi#Connected and Wifi#Disconnected (#3359)
- * Add option + to command Rule to concatenate new rule with existing rules (#3365)
- * Add message when JavaScript is not enabled in webbrowser (#3388)
- * Add build time setting of ButtonTopic and SwitchTopic (#3414)
- * Add iFan02 Fanspeed + and Fanspeed - command options (#3415)
- * Add Individual HSBColorX commands (#3430, #3615)
- * Add output support on MCP23008/MCP23017 (#3436)
- * Add modulo option to rules like rule1 on Time#Minute|5 do backlog power on;delay 200;power off endon (#3466)
- * Add RGB support for Domoticz (#3547)
- * Add all ruletimer values to command RuleTimer result message (#3571)
- * Add command Publish2 for publishing retained MQTT messages (#3593)
- * Add commands ButtonDebounce 40..1000 and SwitchDebounce 40..1000 to have user control over debounce timing. Default is 50mS (#3594)
- * Add RuleX debug options 8,9,10 (StopOnError) to control RuleX execution status after an exception restart (#3607)
- * Add rule variables %sunrise%, %sunset%, %uptime% and %time% (#3608)
- * Add optional MQTT_TELE_RETAIN to Energy Margins message (#3612, 3614)
+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)
+ * 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 SetOption52 to control display of optional time offset from UTC in JSON messages (#3629, #3711)
+ * 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 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 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 Wifi channel number to state message (#3664)
+ * Add user configurable GPIO02 and GPIO03 on H801 devices (#3692)
+ * Add network information to display start screen (#3704)
+ * Add toggle function RGBW lights (#3695, #3697)
+ * Add sleep to Nova Fitness SDS01X sensor (#2841, #3724, #3749)
+ * Add Analog input AD0 enabled to sonoff-sensors.bin (#3756, #3757)
+ * Add userid/password option to decode-status.py (#3796)
+ * Add power value below 5W to Sonoff Pow R2 and S31 (#3745)
+ * Add force_update to Home Assistant discovery (#3873)
+ * Add delay after restart before processing rule sensor data (#3811)
+ * Add rule triggers SWITCH1#BOOT and POWER1#BOOT (#3904, #3910)
+ * Add Apparent Power and Reactive Power to Energy Monitoring devices (#251)
+ * Add RF Receiver control to module MagicHome to be used on Arilux LC10 (#3792)
+ * Add Hebrew language file (#3960)
+ * Add whitespace removal from RfRaw and SerialSend5 (#4020)
diff --git a/platformio.ini b/platformio.ini
index f310d6c35..544d25888 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -16,6 +16,7 @@ src_dir = sonoff
;env_default = sonoff-classic
;env_default = sonoff-knx
;env_default = sonoff-sensors
+;env_default = sonoff-display
;env_default = sonoff-BG
;env_default = sonoff-BR
;env_default = sonoff-CN
@@ -24,6 +25,7 @@ src_dir = sonoff
;env_default = sonoff-ES
;env_default = sonoff-FR
;env_default = sonoff-GR
+;env_default = sonoff-HE
;env_default = sonoff-HU
;env_default = sonoff-IT
;env_default = sonoff-NL
@@ -59,7 +61,10 @@ board_build.f_cpu = 80000000L
build_unflags = -Wall
build_flags =
- -Wl,-Tesp8266.flash.1m0.ld
+; if using esp8266 core 2.5.0 (stage) or up
+; -Wl,-Tesp8266.flash.1m.ld -Wl,-Map,firmware.map
+; if using esp8266 core < 2.5.0
+ -Wl,-Tesp8266.flash.1m0.ld -Wl,-Map,firmware.map
-mtarget-align
; -DUSE_CONFIG_OVERRIDE
-DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
@@ -72,6 +77,8 @@ monitor_speed = 115200
upload_speed = 115200
upload_resetmethod = nodemcu
upload_port = COM5
+
+; *** Fix Esp/Arduino core 2.4.x induced Tasmota unused floating point includes
extra_scripts = pio/strip-floats.py
; *** Upload file to OTA server using SCP
@@ -154,6 +161,20 @@ upload_resetmethod = ${common.upload_resetmethod}
upload_speed = ${common.upload_speed}
extra_scripts = ${common.extra_scripts}
+[env:sonoff-display]
+platform = ${common.platform}
+framework = ${common.framework}
+board = ${common.board}
+board_build.flash_mode = ${common.board_build.flash_mode}
+board_build.f_cpu = ${common.board_build.f_cpu}
+build_unflags = ${common.build_unflags}
+build_flags = ${common.build_flags} -DUSE_DISPLAYS
+monitor_speed = ${common.monitor_speed}
+upload_port = ${common.upload_port}
+upload_resetmethod = ${common.upload_resetmethod}
+upload_speed = ${common.upload_speed}
+extra_scripts = ${common.extra_scripts}
+
[env:sonoff-BG]
platform = ${common.platform}
framework = ${common.framework}
@@ -266,6 +287,20 @@ upload_resetmethod = ${common.upload_resetmethod}
upload_speed = ${common.upload_speed}
extra_scripts = ${common.extra_scripts}
+[env:sonoff-HE]
+platform = ${common.platform}
+framework = ${common.framework}
+board = ${common.board}
+board_build.flash_mode = ${common.board_build.flash_mode}
+board_build.f_cpu = ${common.board_build.f_cpu}
+build_unflags = ${common.build_unflags}
+build_flags = ${common.build_flags} -DMY_LANGUAGE=he-HE
+monitor_speed = ${common.monitor_speed}
+upload_port = ${common.upload_port}
+upload_resetmethod = ${common.upload_resetmethod}
+upload_speed = ${common.upload_speed}
+extra_scripts = ${common.extra_scripts}
+
[env:sonoff-HU]
platform = ${common.platform}
framework = ${common.framework}