Neben der Hardware ist die richtige Software für Euer Projekt natürlich genauso wichtig. Eine praktische und universell einsetzbare Firmware für den Wald-und-Wiesen-Mikrocontroller ESP8266 ist die Tasmota Firmware. Damit lassen sich diverse Projekte realisieren ohne, dass Ihr selber programmieren müsst. Außerdem muss man das Rad ja auch nicht jedes mal “neu erfinden”. 🙂
Avant de pouvoir l'utiliser avec votre microcontrôleur, il doit bien sûr d'abord lui être transféré. Comment cela fonctionne et ce que vous devez prendre en compte est décrit dans l'article suivant.
Consignes de sécurité
Je sais que les notes suivantes sont toujours un peu ennuyeuses et semblent inutiles. Malheureusement, de nombreuses personnes qui savaient "mieux" ont perdu des yeux, des doigts ou d'autres choses à cause d'une négligence ou se sont blessées. La perte de données est presque négligeable en comparaison, mais même celles-ci peuvent être vraiment ennuyeuses. Par conséquent, veuillez prendre cinq minutes pour lire les consignes de sécurité. Parce que même le projet le plus cool ne vaut pas une blessure ou d'autres problèmes.
https://www.nerdiy.de/sicherheitshinweise/
Liens d'affiliation/publicitaires
Les liens vers des boutiques en ligne répertoriés ici sont des liens dits d'affiliation. Si vous cliquez sur un tel lien d'affiliation et effectuez un achat via ce lien, Nerdiy.de recevra une commission de la boutique en ligne ou du fournisseur concerné. Le prix ne change pas pour vous. Si vous effectuez vos achats via ces liens, vous aidez Nerdiy.de à pouvoir proposer d'autres projets utiles à l'avenir. 🙂
Conditions préalables
Articles utiles :
Avant de commencer cet article, vous devez avoir installé et configuré l'IDE Arduino. Vous trouverez des informations à ce sujet dans l'article suivant.
Installer des programmes - un exemple
ArduinoIDE - Trucs et astuces
Matériel requis :
Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.
Outil requis :
Dans la liste suivante, vous trouverez tous les outils dont vous avez besoin pour mettre en œuvre cet article.
Copiez la version actuelle de Tasmota depuis GitHub
Avant de pouvoir commencer à configurer et à programmer le firmware Tasmota, vous devez d'abord le télécharger depuis le GitHub.
Les fichiers du firmware se trouvent à l'adresse : https://github.com/arendst/Sonoff-Tasmota
Comment vous pouvez télécharger des fichiers à partir d'un GitHub est dans l'article GitHub - Comment copier des fichiers d'un GitHub vers mon ordinateur décrites.
Après avoir téléchargé les fichiers du micrologiciel compressés, vous devez toujours les décompresser. Vous trouverez des conseils à ce sujet dans l'article WinRar ? WinZip ? Gagner quoi ? - Chérie, j'ai réduit les fichiers
Configurer le micrologiciel Tasmota
De nombreux paramètres du micrologiciel Tasmota peuvent également être ajustés pendant le fonctionnement. Néanmoins, je trouve plus facile d'importer ces paramètres directement avec un firmware correctement configuré.
Außerdem ist das bei einigen verwendeten Sensoren auch unbedingt notwendig, da nicht alle Softwarekomponenten für jeden Sensor oder Aktor standardmäßig mitkompiliert(“zur Firmware hinzugefügt”) werden.




Les différentes options du firmware Tasmota
In der nun geöffneten “user_config.h” sind allerhand Einstellungsmöglichkeiten vorhanden. Meistens benötigt man nur einen Bruchteil davon. Der Vollständigkeit halber sind hier aber alle Optionen aufgelistet und kurz beschrieben.
Pour que vous n'ayez pas à parcourir toutes les options individuellement, j'ai surligné en vert les options que vous devez absolument modifier. Par exemple, il existe des mots de passe ou des URL que vous devez configurer individuellement ou au moins vérifier. Vérifiez donc ces options avant de transférer le firmware sur votre appareil Tasmota.








In der “MQTT”-Sektion lassen sich die grundlegenden Parameter zur Verbindung mit dem MQTT-Server einstellen. – – “MQTT_USE” aktiviert den MQTT-Clienten.
– “MQTT_HOST” legt die Adresse eures MQTT-Servers fest.
– Unter “MQTT_FINGERPRINTX” könnt Ihr den Fingerprint zur Verschlüsselung Eurer MQTT-Verbindung festlegen. – – – “MQTT_PORT” stellt den Port eures MQTT-Servers ein.
– In “MQTT_USER” und “MQTT_PASS” könnt Ihr jeweils Benutzername und Passwort für Euren MQTT-Server festlegen.
– Mit “MQTT_BUTTON_RETAIN”, “MQTT_POWER_RETAIN” und “MQTT_SWITCH_RETAIN” könnt Ihr das Retain-Flag für die jeweiligen MQTT-Nachrichten aktivieren. Dies bewirkt, dass die jeweiligen MQTT-Nachrichten auch an MQTT-Clienten gesendet werden die zum Zeitpunkt des sendens der MQTT-Nachricht noch nicht online waren.
– Mit “MQTT_STATUS_OFF” könnt Ihr den String einstellen der in Befehlen genutzt wird um etwas auszuschalten.
– Mit “MQTT_STATUS_ON” könnt Ihr den String einstellen der in Befehlen genutzt wird um etwas einzuschalten.
– Mit “MQTT_CMND_TOGGLE” könnt Ihr den String einstellen der in Befehlen genutzt wird um etwas umzuschalten.
– Mit “MQTT_CMND_HOLD” könnt Ihr den String einstellen der gesendet werden soll, wenn ein Taster für länger als in KEY_HOLD_TIME angegeben gedrückt wird.
Divers détails sur les sujets MQTT utilisés peuvent être spécifiés dans cette section.
Mit “MQTT_FULLOPIC” legt Ihr die Struktur der genutzten Topics fest. Standardmäßig besteht dieses immer aus dem “prefix” und dem jewieligen “topic”.
Unter “SUB_PREFIX”, “PUB_PREFIX” und “PUB_PREFIX2” werden dann die Prefixe festgelegt.
Dabei nutzt Euer Tasmota-Device das unter “SUB_PREFIX” angegebene Prefix als Abonement – also um Werte und Befehle zu empfangen.
Das unter “PUB_PREFIX” angegebene Pefix wird genutzt um Werte zu veröffentlichen.
Dabei werden Telemetrie-Daten über das in “PUB_PREFIX2” festgelegte Prefix versendet.
Unter “MQTT_TOPIC”, “MQTT_GRTOPIC”, “MQTT_BUTTON_TOPIC”, “MQTT_SWITCH_TOPIC” werden dann die Topics festgelegt.
Dabei steht “MQTT_TOPIC” für das individuelle Topic des Tasmota-Devices. Dabei wird auch immer ein Teil der MAC-Adresse Eures Tasmota-Devices mit angehängt.
“MQTT_GRTOPIC” steht für ein Topic in der Ihr mehrere Tasmota-Devices in einer Gruppe zusammenfassen könnt.
Mit “MQTT_BUTTON_TOPIC” und “MQTT_SWITCH_TOPIC” könnt Ihr spezielle Topics für die eventuell angeschlossenen Taster und Schalter einstellen.
Mit “MQTT_CLIENT_ID” könnt Ihr noch den Namen bzw. die ID des MQTT-Clienten festlegen.
Vous pouvez généralement laisser toutes ces valeurs telles quelles.





Mit diesen und den Optionen im nächsten Abschnitt könnt Ihr die Kriterien für die Sommer-/Winter-Zeitumstellung festlegen. Dabei legen die Parameter die mit “TIME_DST…” starten fest unter welchen Bedingungen von Standardzeit(Winterzeit) auf Sommerzeit umgestellt wird. Die Parameter die mit “TIME_STD_…” beginnen sind dagegen für den umgekehrten Fall, also die Umstellung von Sommer- auf Winterzeit ausschlaggebend. Die Parameter sind ansonsten für beide Bereiche identisch: “…HEMISPHERE” legt fest auf welchem Teil der Erdkugel Ihr euch befindet. Diese Option wird eigentlich nicht für die Zeitumstellung sondern eher für die Berechnung des korrekten Sonnen- Auf- und Untergangs-Zeitpunkts benötigt.
Nun geht es an die Parameter für die Zeitumstellung. Da die Zeitumstellung (zumindest in Deutschland) von Winter- auf Sommerzeit immer am letzten Sonntag im März um 02:00 Uhr stattfindet müsst Ihr den Paramater “TIME_DST_WEEK” auf “Last”, den Parameter “TIME_DST_DAY” auf “Sun”(=Sunday), den Parameter “TIME_DST_MONTH” auf “Mar” (=March) und den Parameter “TIME_DST_HOUR” auf zwei stellen. Mit dem Parameter “TIME_DST_OFFSET” gebt Ihr dann noch an welche Zeitverschiebung in diesem Fall eintritt. Dabei müsst Ihr auch die Abweichung durch die Zeitzone mit anegeben. In Fall Deutschlands, dass die Zeitzone UTC+1 hat also +60 Minuten hat, gilt hier für die Sommerzeit +120 Minuten.
Le passage de l'heure d'été à l'heure d'hiver (toujours en Allemagne) a toujours lieu le dernier dimanche d'octobre à 03h00.
Deshalb müsst Ihr den Paramater “TIME_STD_WEEK” auf “Last”, den Parameter “TIME_STD_DAY” auf “Sun”(=Sunday), den Parameter “TIME_STD_MONTH” auf “Oct” (=October) und den Parameter “TIME_STD_HOUR” auf drei stellen. Mit dem Parameter “TIME_STD_OFFSET” gebt Ihr dann noch an welche Zeitverschiebung in diesem Fall eintritt. Dabei müsst Ihr auch die Abweichung durch die Zeitzone mit anegeben. In Fall Deutschlands, dass die Zeitzone UTC+1 hat also +60 Minuten hat, gilt hier für die Standardzeit(=Winterzeit) somit +60 Minuten.
Mit den Optionen “LATITUDE” und “LONGITUDE” könnt Ihr die Position des Tasmota-Devices festlegen. Dies ist notwendig um die korrekte Sonnen-Auf- und Untergangs-Zeit zu berechnen. Solltet Ihr diese Funktion nutzen wollen ist es wichtig hier die korrekten Daten anzugeben. Wie Ihr die Position eines beliebigen Ortes herausfinden könnt ist im Artikel Trouvez la latitude et la longitude de n'importe quel endroit avec GoogleMaps décrit. Assurez-vous de spécifier la position (comme indiqué) dans le système décimal. Comment faire cela est également décrit dans l'article mentionné.
“APP_TIMEZONE” definiert die Zeitzone.
“APP_LEDSTATE” definiert die Funktion der (in vielen Sonoff-Devices) integrierten LED’s
“APP_PULSETIME” definiert die Pulsdauer in Form von vielfachen von 0,1 Sekunden. Ein Wert von 5 entspricht hier also 0,5 Sekunden bzw. 500 Millisekunden. Ein Wert von 0 deaktiviert diese Funktion.
“APP_POWERON_STATE” definiert den Zustand der konfigurierten Relays nach dem Einschalten. Hierbei sind folgende Einstellungen verfügbar: POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON
“APP_BLINKTIME” definiert die Impulslänge eines “blinkenden” Relais
“APP_SLEEP” definiert eine Zeitdauer zwischen 1 und 250 Millisekunden in denen der ESP8266 in den Schlafmodus versetzt wird. Auf diesem Weg lässt sich etwas Energie sparen. Natürlich reagiert der ESP8266 im worst case so erst 250 Millisekunden später.
“KEY_DEBOUNCE_TIME” definiert die Entprellzeit eines angeschlossenen Tasters. Ein Wert von 50 gibt also an, dass nach einem erkannten Tastendruck der betreffende Taster für 50 Millisekunden ignoriert wird.
“KEY_HOLD_TIME” definiert die Zeitdauer die ein Taster gedrückt werden muss bis dies als dauerhaft gedrückter Taster erkannt wird. Dabei wird der angegeben Wert wieder mit 0,1 Sekunden multipliziert. Ein Wert von 40 entspricht hier also einer Zeitdauer von 4 Sekunden. Erst nach 4 Sekunden wird also das “Taster ist gedrückt”-Event ausgelöst.
“SWITCH_DEBOUNCE_TIME” definiert die Entprellzeit eines angeschlossenen Schalters. Ein Wert von 50 gibt also an, dass nach einem erkannten Schalter-positionswechsels der betreffende Schalter für 50 Millisekunden ignoriert wird.
“SWITCH_MODE” definiert das Verhalten des konfigurierten Relais in Bezug auf einen angeschlossenen Schalter. Dabei sind folgende Optionen möglich:
BASCULER; FOLLOW, FOLLOW_INV, PUSHBUTTON, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLE
“WS2812_LEDS” definiert die Anzahl der angeschlossenen WS2812 LED’s.
“TEMP_CONVERSION” aktiviert (=1) oder deaktiviert (=0) die konvertierung der Temperatur in die Einheit Fahrenheit.
“TEMP_RESOLUTION” definiert mit welcher Auflösung die Temperatur angezeigt wird. Dabei kann man zwischen keiner und bis zu drei Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.
“HUMIDITY_RESOLUTION” definiert mit welcher Auflösung die Luftfeuchtigkeit angezeigt wird. Dabei kann man zwischen keiner und bis zu drei Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.
“PRESSURE_RESOLUTION” definiert mit welcher Auflösung der Luftdruck angezeigt wird. Dabei kann man zwischen keiner und bis zu drei Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.
“ENERGY_RESOLUTION” definiert mit welcher Auflösung der Energieverbrauch angezeigt wird. Dabei kann man zwischen keiner und bis zu fünf Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.

Mit diesen Optionen lässt sich das verhalten in dem Fall, dass für das Tasmota-Device noch keine gültigen WLAN-Zugangsdaten hinterlegt sind, festlegen. Ist “USE_WPS” aktiviert(also die beiden // vor dem entsprechendem Eintrag entfernt) habt Ihr die Möglichkeit Euer Tasmota-Device mittels der WPS-Funktion mit Eurem Router zu verbinden. Ist “USE_SMARTCONFIG” aktiviert könnt Ihr die Zugangsdaten mit der Application Android ESP8266 Configuration intelligente configurer.





















Die Option “USE_RF_FLASH” ermöglicht, sofern aktiviert auf einer SONOFF 433Mhz RF Bridge die programmierung des angeschlossenen Co-Prozessors über die Weboberfläche der Tasmota-Firmware. Näheres dazu könnt Ihr auch im Artikel Tasmota - Puce RF Flash Sonoff RF Bridge (EFM8BB1) avec micrologiciel Portisch trouver.


Démarrer le processus de programmation
Après avoir adapté ou configuré le firmware selon vos souhaits, il est maintenant temps de le transférer sur l'ESP8266 de votre appareil Tasmota. Dans cet exemple, une carte adaptateur ESP8266 normale du WEMOS D1-Mini est programmée avec le firmware Tasmota.






Amusez-vous avec le projet
J'espère que tout a fonctionné comme décrit. Si ce n'est pas le cas ou si vous avez des questions ou des suggestions, faites-le moi savoir dans les commentaires. Je les ajouterai à l'article si nécessaire.
Les idées de nouveaux projets sont toujours les bienvenues. 🙂
PS Beaucoup de ces projets - en particulier les projets matériels - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si vous pensez que c'est cool que je partage l'information avec vous, je serais heureux d'un petit don au fonds du café. 🙂
Dans la version actuelle du micrologiciel tasmota de github, le dossier sonoff décrit ci-dessus n'existe plus. La compilation ne fonctionne pas. Qu'est-ce que je fais mal?
Bien à vous
Fabien
Salut Fabien,
vous avez raison, la structure des dossiers a un peu changé.
Probiere es doch mal mit dem Ordner “Tasmota” unter: https://github.com/arendst/Tasmota/tree/development/tasmota
Wenn du die Datei “Tasmota.ino” öffnest solltest du die Firmware kompilieren können. 🙂
Cordialement
(aussi) Fabien 😀