Skip to content

Provide ESP8266 based itead Sonoff with Web, MQTT and OTA firmware using Arduino IDE or PlatformIO

License

Notifications You must be signed in to change notification settings

bryscus/Sonoff-Tasmota

 
 

Repository files navigation

Sonoff-Tasmota

Alternative firmware for ESP8266 based devices like iTead Sonoff with web, timers, 'Over The Air' (OTA) firmware updates and sensors support, allowing control under Serial, HTTP, MQTT and KNX, so as to be used on Smart Home Systems. Written for Arduino IDE and PlatformIO.

GitHub version GitHub download License

If you like Sonoff-Tasmota, give it a star, or fork it and contribute!

GitHub stars GitHub forks donate

Development

Dev Version Download Dev Build Status

See RELEASENOTES.md for release information and sonoff/_changelog.ino for detailed change information.

The development codebase is checked hourly for changes and if new commits have been merged and compile successfuly they will be posted at http://thehackbox.org/tasmota/ (this web address can be used for OTA too). It is important to note that these are based on the current development codebase and it is not recommended to flash it to devices used in production or which are hard to reach in the event that you need to manually flash the device if OTA failed. The last compiled commit number is also posted on the same page along with the current build status (if a firmware rebuild is in progress).

The current development codebase also stages a new experimental MQTT library that is not enabled by default. This may be enabled by commenting out:

#define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT

and uncommenting:

//#define MQTT_LIBRARY_TYPE MQTT_ARDUINOMQTT

For those interested in pre-compiled binaries based on this proposed MQTT library these may be downloaded from http://thehackbox.org/mqtt/ (This URL is also OTA friendly) but please do not under any circumstances use binaries from this link on devices used for day to day purposes as the testing of this newly proposed library still needs to follow its course of testing and possible debugging - Only use it on devices that you would normally use for testing purposes as to not inconvenience yourself when having to revert back to previous firmware versions by cable upload.

Disclaimer

⚠️ DANGER OF ELECTROCUTION ⚠️

A Sonoff device is not a toy. It uses Mains AC so there is a danger of electrocution if not installed properly. If you don't know how to install it, please call an electrician. Remember: SAFETY FIRST. It is not worth to risk yourself, your family and your home if you don't know exactly what you are doing. Never try to flash a Sonoff device while it is connected to MAINS AC.

We don't take any responsibility nor liability for using this software nor for the installation or any tips, advice, videos, etc. given by any member of this site or any related site.

Quick Install

Download one of the released binaries from https://github.com/arendst/Sonoff-Tasmota/releases and flash it to your hardware as documented in the wiki.

Important User Compilation Information

If you want to compile Sonoff-Tasmota yourself keep in mind the following:

  • Only Flash Mode DOUT is supported. Do not use Flash Mode DIO / QIO / QOUT as it might seem to brick your device. See Wiki for background information.
  • Sonoff-Tasmota uses a 1M linker script WITHOUT spiffs 1M (no SPIFFS) for optimal code space. If you compile using ESP/Arduino library 2.3.0 then download the provided new linker script to your Arduino IDE or Platformio base folder. Later version of ESP/Arduino library already contain the correct linker script. See Wiki > Prerequisite.
  • To make compile time changes to Sonoff-Tasmota it can use the user_config_override.h file. It assures keeping your settings when you download and compile a new version. To use user_config.override.h you will have to make a copy of the provided user_config.override_sample.h file and add your setting overrides. To enable the override file you will need to use a compile define as documented in the user_config_override_sample.h file.

Version Information

  • Sonoff-Tasmota provides all (Sonoff) modules in one file and starts with module Sonoff Basic.
  • Once uploaded select module using the configuration webpage or the commands Modules and Module.
  • After reboot select config menu again or use commands GPIOs and GPIO to change GPIO with desired sensor.

Migration Information

See wiki 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

Support Information

See Wiki for more information.
See Community for forum.
See Chat for more user experience.

The following devices are supported:

Contribute

You can contribute to Sonoff-Tasmota by

  • providing Pull Requests (Features, Proof of Concepts, Language files or Fixes)
  • testing new released features and report issues
  • donating to acquire hardware for testing and implementing or out of gratitude

donate

Credits

Libraries Used

Libraries used with Sonoff-Tasmota are:

People inspiring me

People helping to keep the show on the road:

  • David Lang providing initial issue resolution and code optimizations
  • Heiko Krupp for his IRSend, HTU21, SI70xx and Wemo/Hue emulation drivers
  • Wiktor Schmidt for Travis CI implementation
  • Thom Dietrich for PlatformIO optimizations
  • Marinus van den Broek for his EspEasy groundwork
  • Pete Ba for more user friendly energy monitor calibration
  • Lobradov providing compile optimization tips
  • Flexiti for his initial timer implementation
  • reloxx13 for his TasmoAdmin management tool
  • Joachim Banzhaf for his TSL2561 library and driver
  • Gijs Noorlander for his MHZ19 and SenseAir 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
  • 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
  • Many more providing Tips, Pocs or PRs

License

This program is licensed under GPL-3.0

About

Provide ESP8266 based itead Sonoff with Web, MQTT and OTA firmware using Arduino IDE or PlatformIO

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 50.2%
  • C 44.8%
  • Python 3.6%
  • Processing 0.7%
  • Makefile 0.4%
  • Objective-C 0.3%