All Projects → benzino77 → Tasmocompiler

benzino77 / Tasmocompiler

Licence: mit
Web GUI for custom Tasmota compilation

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Tasmocompiler

Espurna
Home automation firmware for ESP8266-based devices
Stars: ✭ 2,650 (+1753.15%)
Mutual labels:  sonoff, firmware, esp8266
Sonoff Homeassistant
Firmware for ESP8266 based itead Sonoff switches for use with HomeAssistant
Stars: ✭ 354 (+147.55%)
Mutual labels:  sonoff, firmware, esp8266
Esparto
Esparto v3.3 is a rapid development framework, synchronous task queue and GPIO manager with web UI for ESP8266 devices
Stars: ✭ 108 (-24.48%)
Mutual labels:  sonoff, firmware, esp8266
home
Monorepo for all home automation related development, including integrated firmware, PCBs, configuration, and bridges
Stars: ✭ 104 (-27.27%)
Mutual labels:  esp8266, firmware, sonoff
Tasmota
Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Stars: ✭ 16,624 (+11525.17%)
Mutual labels:  sonoff, firmware, esp8266
Kmansonoff
Firmware for ESP8266 based itead Sonoff switches for use with HomeAssistant / mqtt
Stars: ✭ 282 (+97.2%)
Mutual labels:  sonoff, firmware
Tdm
GUI application to discover and monitor devices flashed with https://github.com/arendst/Sonoff-Tasmota
Stars: ✭ 385 (+169.23%)
Mutual labels:  sonoff, esp8266
Sonoff Homekit
Make your Sonoff Switch compatible with Apple Homekit! 🎉
Stars: ✭ 722 (+404.9%)
Mutual labels:  sonoff, esp8266
Sonoffsocket
Switching Sonoff Basic and Sonoff S20 (Webserver or MQTT).
Stars: ✭ 28 (-80.42%)
Mutual labels:  sonoff, esp8266
thinx-device-api
Remote IoT Device Management Platform
Stars: ✭ 19 (-86.71%)
Mutual labels:  esp8266, firmware
Open Home Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 820 (+473.43%)
Mutual labels:  sonoff, esp8266
Esp3d
FW for ESP8266/ESP8285/ESP32 used with 3D printer
Stars: ✭ 979 (+584.62%)
Mutual labels:  firmware, esp8266
SuperLEDstrip
No description or website provided.
Stars: ✭ 13 (-90.91%)
Mutual labels:  esp8266, firmware
Tasmoadmin
Website to manage Sonoff Devices flashed with Tasmota
Stars: ✭ 560 (+291.61%)
Mutual labels:  sonoff, esp8266
Bleeper
Library to manage your firmware configurations written in C++
Stars: ✭ 54 (-62.24%)
Mutual labels:  firmware, esp8266
Nodemcu Firmware
Lua based interactive firmware for ESP8266, ESP8285 and ESP32
Stars: ✭ 6,884 (+4713.99%)
Mutual labels:  firmware, esp8266
Desk Lamp Alternative Firmware
An alternative firmware for the Mijia Xiaomi Desk Lamp
Stars: ✭ 54 (-62.24%)
Mutual labels:  firmware, esp8266
Esp Homekit Devices
Project to add native Apple HomeKit support to any device with an ESP8266 chip
Stars: ✭ 1,153 (+706.29%)
Mutual labels:  sonoff, esp8266
arduino-firmware-wifilink
Arduino WiFi Link firmware for ESP8266 based boards
Stars: ✭ 22 (-84.62%)
Mutual labels:  esp8266, firmware
Sonoff-ESP8266-HomeKit
Firmware to control your Sonoff natively and directly through HomeKit.
Stars: ✭ 58 (-59.44%)
Mutual labels:  esp8266, sonoff

Docker Pulls donate donate Twitter URL

What it is?

TasmoCompiler is a simple web GUI which allows you to compile fantastic Tasmota firmware with your own settings:

  • You can select which features/sensors of Tasmota firmware you want to use
  • Credentials for your IOT WiFi network, so even after unexpected problems with the device (complete lost of configuration), credentials for your network will still be there, but mainly you don't have to connect to AP, served by Tasmota to configure your Home WiFi
  • You can select Tasmota version you want to compile. You can select development bleading edge version, or ie. previous stable release 6.4.1 or 6.2.1 if this is the one you like
  • You can also select with what Core version you want to compile your custom firmware: 2.3.0, 2.4.2 or maybe 2.5.0
  • Hardware version (Sonoffs, Wemos, NodeMCU).
  • Language version
  • You can also provide custom #defines if you want to build even more suitable firmaware for your needs

Why?

Well, there are two reasons. First is that I want to build my first application written in NodeJS/React. The second one is based on the observation that everytime I prepare a new device I have to start atom with platformio installed, configure all #defines (well, I have template which I copy) and prepare platformio.ini, create a branch from version I like to use, etc..

That's why I decided to prepare a solution which is easier to use (just a few clicks) and does not require knowledge how to install dev environment to build custom firmware.

How it works?

The easiest way is to look at the screenshots (the whole process is five steps only). After compilation you will be able to download three files:

  1. Your new firmware.bin file, which can be uploaded to your device via Tasmota WebGUI, espotool, ESPEasy flasher or any other tool you used to use to flash your device
  2. platformio.ini file, to check what options for platformio were used to compile the custom firmware file
  3. user_config_override.h file to check what features are included/excluded from resulting firmware

The links to download these files will show up under Compiling progress field (look at the bottom of the last screenshot). These links will show up only when compilation is successful.

You have to upload only the first firmware.bin file to your device. How to do that is perfeclty described on Tasmota wiki.

Step01 Step02 Step03 Step04 Step05 Compile01

How to start using TasmoCompiler?

Super easy way (Thanks to @meingraham and @Jason2866)

Click this link to Gipod. You have to have Github account and authorize Gitpod to access it. If you don't have it, it is just few clicks to create account on Github. After a while new browser tab should open with TasmoCompiler. If you have pop-up blocked in your browser you will have to accept the new tab open. If the new tab does not open or you cannot see the pop-up notification, click on the Open Browser link:

Open Browser

Note

You have to remember that all compilation is performed on Gitpod servers, so you have to decide if you want to put sensitive data like Wifi/MQTT credentials to Gitpod hands 🙈 🙉 🙊

Easy way

Start TasmoCompiler in docker:

docker pull benzino77/tasmocompiler

docker run --rm --name tasmocompiler -p 3000:3000 benzino77/tasmocompiler

Then point your browser to http://localhost:3000

If you want to see debug messages on docker console you can run a container with env variable:

docker run --rm --name tasmocompiler -p 3000:3000 -e DEBUG=server,git,compile benzino77/tasmocompiler

  • server to see http server messages
  • git to see git operation messages
  • compile to see messages during compilation

You can also specify different port on which TasmoCompiler will be available on the host:

docker run --rm --name tasmocompiler -p 8080:3000 benzino77/tasmocompiler

Then point your browser to http://localhost:8080

Less easy way
  1. Install NodeJS and Python 2.7.x
  2. Install yarn
  3. Install platformio
  4. Clone/download the repository from github and change directory to the cloned repo
  5. run yarn install
  6. run yarn build
  7. run node server/server.js
  8. point your browser to http://localhost:3000

How to use "Custom parameters"?

The configuration options are limited on purpose. I don't want to overload the GUI with too many options. But there is Custom prameters step which allows you to define other Tasmota parameters. Let's say you want to define your MQTT broker and credentials for it. You have to put these lines in Custom parameters field:

#ifdef MQTT_HOST
  #undef MQTT_HOST
#endif
#define MQTT_HOST               "mqtt.yourhost.iot"

#ifdef MQTT_PORT
  #undef MQTT_PORT
#endif
#define MQTT_PORT               1883

#ifdef MQTT_USER
  #undef MQTT_USER
#endif
#define MQTT_USER            "mqttuser"

#ifdef MQTT_PASS
  #undef MQTT_PASS
#endif
#define MQTT_PASS            "mqttpassword"

To define Friendly name for your device you have to put these lines in Custom parametrs field:

#ifdef FRIENDLY_NAME
  #undef FRIENDLY_NAME
#endif
#define FRIENDLY_NAME          "Watering controller"

Let's assume that you want to compile in information about your ntp server, your time zone and location (this is used by timers for events like sunrise/sunset). You can do this by putting these lines in Custom parameters field:

#ifdef NTP_SERVER1
  #undef NTP_SERVER1
#endif
#define NTP_SERVER1             "ntp.yourserver.iot"

#ifdef LATITUDE
  #undef LATITUDE
#endif
#define LATITUDE               34.4348

#ifdef LONGITUDE
  #undef LONGITUDE
#endif
#define LONGITUDE              10.0508

#ifdef APP_TIMEZONE
  #undef APP_TIMEZONE
#endif
#define APP_TIMEZONE           99

You can find additional inforamtion what can be set by Custom parameters field in my_user_config.h in Tasmota source code.

Troubleshooting and advanced usage

If you have problems with the compiler or you are interested in more advance usage, please refer to the ADVANCED tips for more information.

Disclaimer

Everything you do, you do on your own responsibility. I do not take any responsibility for damages or problems, that may arise as a result of using this solution or its products.

Credits

Thanks to Theo Arends and the entire Tasmota Dev Team for fantastic work!

License

TasmoCompiler is licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].