Flashé un Sonoff avec le firmware Tasmota
Tutoriel pour flashé les relais connectés Sonoff avec le firmware alternatif Tasmota
Sonoff c’est quoi ?
Sonoff propose des relais connectés à des tarifs très très intéressants, basés sur le wifi pour interagir avec vous depuis un smartphone grâce à l’application eWeLink App.
C’est déjà super, néanmoins faire confiance à des serveurs hébergés à l’étranger, sans parler du risque que les serveurs ferment un jour, ce n’est pas vraiment ma philosophie.
Et justement Sonoff a ouvert leur protocole, et du coup il est possible de flasher le firmware.
C’est la qu’intervient Tasmota, un firmware alternatif pour les Sonoff qui les rend complétement autonome.
Après flash vous pourrez les contrôler grâce à une interface web ou MQTT.
MQTT ça veut dire pilotable avec Jeedom, Domoticz, Home Assistant, …
Flasher le firmware
Pour flasher le firmware, vous aurez besoin d’un d’un convertisseur série FTDI, ainsi que des pins header à souder.
J’ai choisis celui ci sur Amazon, vous pourrez trouver moins chère chez Aliexpress.
Pour souder les pins, rendez vous sur le wiki de Tasmota
Une fois soudé, il faut relier le module FTDI au Sonoff, en inversant RX et TX ( logique )
Module FTDI | Sonoff Module |
---|---|
3V3 | 3V3 / VCC |
TX | RX |
RX | TX |
GND | GND |
Ensuite, il faut utiliser le logiciel Visual Studio Code avec l’extension PlatformIO, tout est expliqué ici
Une fois installé, récupérer le dernier Source code ZIP de Tasmota et ouvrez le dans VSC.
- Éditez le fichier platformio.ini et dé-commentez le bon env_default ( dans mon cas ) sonoff-FR
- Éditez le fichier user_config.h qui se trouve dans le dossier sonoff et définir les variables STA_SSID1 et STA_PASS1 pour configurer votre WIFI.
Maintenant il va falloir passer le Sonoff en mode flash, appuyez sur le bouton physique du Sonoff et branchez votre module FTDI ( qui est bien relié au Sonoff ) à un port USB, laissez le bouton appuyé pendant 1-2s.
Votre Sonoff est prêt à être flashé, pour cela cliquez sur Upload dans Project Task dans VisualStudio Code.
Si tout se passe bien, vous obtiendrez un Success!
Votre Sonoff est maintenant flashé avec Tasmota.
Bonjour et merci pour vos explications.
Je ne comprends pas pourquoi dans TASMOTA je ne trouve pas env_default sonoff-FR à décommenter…
Voici le fichier platform.ini; merci beaucoup pour votre aide,
David
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter, extra scripting
; Upload options: custom port, speed and extra flags
; Library options: dependencies, extra library storages
;
; Please visit documentation for the other options and examples
; http://docs.platformio.org/en/stable/projectconf.html
[platformio]
description = Provide ESP8266 based devices with Web, MQTT and OTA firmware
src_dir = tasmota
build_dir = .pioenvs
workspace_dir = .pioenvs
build_cache_dir = .cache
extra_configs = platformio_tasmota_env.ini
platformio_override.ini
; *** Build/upload environment
default_envs =
; *** Uncomment by deleting « ; » in the line(s) below to select version(s)
; tasmota
; tasmota-ircustom
; tasmota-minimal
; tasmota-lite
; tasmota-knx
; tasmota-sensors
; tasmota-display
; tasmota-zbbridge
; tasmota-ir
; tasmota-BG
; tasmota-BR
; tasmota-CN
; tasmota-CZ
; tasmota-DE
; tasmota-ES
; tasmota-FR
; tasmota-GR
; tasmota-HE
; tasmota-HU
; tasmota-IT
; tasmota-KO
; tasmota-NL
; tasmota-PL
; tasmota-PT
; tasmota-RO
; tasmota-RU
; tasmota-SE
; tasmota-SK
; tasmota-TR
; tasmota-TW
; tasmota-UK
;
; *** alternatively can be done in: platformio_override.ini
; *** See example: platformio_override_sample.ini
; *********************************************************************
[common]
framework = arduino
board = esp01_1m
board_build.flash_mode = dout
board_build.ldscript = eagle.flash.1m.ld
platform = ${core.platform}
platform_packages = ${core.platform_packages}
build_unflags = ${core.build_unflags}
build_flags = ${core.build_flags}
board_build.f_cpu = 80000000L
board_build.f_flash = 40000000L
monitor_speed = 115200
upload_speed = 115200
; *** Upload Serial reset method for Wemos and NodeMCU
upload_resetmethod = nodemcu
upload_port = COM5
extra_scripts = ${scripts_defaults.extra_scripts}
[scripts_defaults]
extra_scripts = pio/strip-floats.py
pio/name-firmware.py
pio/gzip-firmware.py
pio/override_copy.py
[esp_defaults]
; *** remove undesired all warnings
build_unflags = -Wall
-Wdeprecated-declarations
build_flags = -Wno-deprecated-declarations
-D_IR_ENABLE_DEFAULT_=false
-DDECODE_HASH=true -DDECODE_NEC=true -DSEND_NEC=true
-DDECODE_RC5=true -DSEND_RC5=true -DDECODE_RC6=true -DSEND_RC6=true
; new mechanism to set the IRremoteESP8266 supported protocols: none except HASH, NEC, RC5, RC6
; *********************************************************************
; *** Use custom settings from file user_config_override.h
-DUSE_CONFIG_OVERRIDE
; *********************************************************************
[esp82xx_defaults]
build_flags = ${esp_defaults.build_flags}
-Wl,-Map,firmware.map
-D CORE_DEBUG_LEVEL=0
-D NDEBUG
-mtarget-align
-DFP_IN_IROM
-DBEARSSL_SSL_BASIC
; NONOSDK22x_190703 = 2.2.2-dev(38a443e)
-DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
; lwIP 2 – Higher Bandwidth no Features
-DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; VTABLES in Flash
-DVTABLES_IN_FLASH
; remove the 4-bytes alignment for PSTR()
-DPSTR_ALIGN=1
; restrict to minimal mime-types
-DMIMETYPE_MINIMAL
[irremoteesp_full]
build_flags = -DUSE_IR_REMOTE_FULL
-U_IR_ENABLE_DEFAULT_
-DDECODE_PRONTO=false -DSEND_PRONTO=false
[core]
; *** Esp8266 Tasmota modified Arduino core based on core 2.7.4
platform = espressif8266@2.6.2
platform_packages = framework-arduinoespressif8266 @ https://github.com/tasmota/Arduino/releases/download/2.7.4.1/esp8266-2.7.4.1.zip
build_unflags = ${esp_defaults.build_unflags}
build_flags = ${esp82xx_defaults.build_flags}
Les options ont du changés depuis mon post, regarde directement sur le site de Tasmota