I - Schnellstart mit user_config_override.h
Voraussetzung:
- Atom / VSC Installation mit PlatformIO oder Arduino IDE
- Tasmota Source-Code z.B. Sonoff-Tasmota-development
_MINIMAL_user_config_override.h.zip
- für das schnelle Loslegen - wenige Einträge für eine Basis-Konfiguration
_UNIVERSAL_user_config_override.h.zip
- alle wichtigen Zeilen für die eigene Konfiguration - wie in der my_user_config.h
- user_config_override.h in den Ordner \sonoff kopieren
- nur in user_config_override.h die Einstellungen auf eigene Konfiguration ändern
- user_config_override.h aktivieren (Details weiter unten) und Tasmota kompilieren
II - Erklärung und Hinweise
II.I - my_user_config.h
In der Datei sonoff\my_user_config.h werden die Einstellungen und Parameter für die Funktion von Tasmota festgehalten.
Die my_user_config.h (bis Tasmota v6.3.0 user_config.h) wird in zwei Abschnitte unterteilt:
- Abschnitt 1 (SECTION 1):
Darin sind Konfigurationsdaten für WLAN, MQTT, Zeitzone, GeoPosition usw. enthalten.
Alle hier vorgenommenen Einstellungen werden bei einem Update normalerweise nicht überschrieben und bleiben im Flash-Speicher erhalten.
Erst eine Änderung des CFG_HOLDER oder das Löschen des Flash-Speichers bewirkt ein Überschreiben.
Mit Befehlen über die Konsole (Web / Seriell) oder MQTT können die Parameter permanent geändert bzw. gespeichert werden.
- Abschnitt 2 (SECTION 2):
Hier können Features und Sensoren aktiviert und deaktiviert werden, um Speicherplatz zu sparen.
Bei jedem Update, mit Änderungen in diesem Abschnitt, wird die vorherige Konfiguration überschrieben.
II.II - user_config_override.h
Es ist zwar möglich alle gewünschten persönlichen Einstellungen in der my_user_config.h vorzunehmen,
ALLE eigenen Parameter und Anpassungen sollte man aber in der sonoff\user_config_override.h eintragen.
Warum sollte man das tun?
my_user_config.h wird i. d. R. bei jedem Tasmota-Update verändert.
- Anpassungen müssen dann jedes Mal neu in der my_user_config.h vorgenommen und abgeglichen werden.
+ user_config_override.h kann bedenkenlos von der einen zur anderen Tasmota-Version mitgenommen werden
+ dabei sind, je nach Bedarf, keinerlei Änderungen notwendig
+ sie kann ganz auf persönliche Anforderungen zugeschnitten und übersichtlich gehalten werden
+ was man nie braucht, wird ausgeklammert
+ gleichbleibende Einstellungen können unverändert belassen werden
+ für Spezialfälle kann man verschiedene user_config_override.h Dateien anlegen
Wie funktioniert das?
Die my_user_config.h wird beim Kompilieren in Atom / VSC / Arduino-IDE zuerst abgearbeitet.
Erst danach werden die Definitionen in der user_config_override.h berücksichtigt.
Das bedeutet, was zuvor in der my_user_config.h mit #define definiert wurde,
kann in der user_config_override.h
--> deaktiviert werden mit #undef oder
--> neu definiert werden mit #undef / #define
Wie macht man das?
Bei jeder neuen Version von Tasmota:
1. user_config_override.h in den Ordner \sonoff kopieren
Dazu wählt man z.B.:
_MINIMAL_user_config_override.h.zip
_UNIVERSAL_user_config_override.h.zip
oder eine, die man schon zuvor bearbeitet hat
(in \sonoff befindet sich die Beispiel-Datei: user_config_override_sample.h)
2. Einstellungen in der user_config_override.h bei Bedarf auf eigene Konfiguration ändern durch
- Einfügen / Überschreiben von Daten z.B. #define STA_SSID1 "" zu #define STA_SSID1 "MeineRouterSSID"
- DEAKTIVIEREN von einzelnen Funktionen und Sensoren durch Löschen von // (Kommentar aufheben) vor #undef
- AKTIVIEREN / Ausklammern durch Setzen von Zeilen als Kommentar durch // davor, also //#undef oder
durch die Kombination #undef und #define
Weitere Infos und Erklärungen in den Kommentaren der user_config_override.h
3. user_config_override.h aktivieren und Tasmota kompilieren
Im Normalfall wird die user_config_override.h für Tasmota nicht berücksichtigt,
deshalb müssen vor dem Kompilieren folgende Einträge gemacht werden:
Bei Atom / VSC in der platformio.ini eine Zeile hinzufügen (bzw. auskommentieren):
-DUSE_CONFIG_OVERRIDE
Für Arduino-IDE in der my_user_config.h folgende Zeile aktivieren (// davor löschen):
#define USE_CONFIG_OVERRIDE
III - FAQ
III.I - Welche Einstellungen sind vordefiniert?
_MINIMAL_user_config_override.h.zip
Abschnitt 1:
NUR das Wichtigste für WLAN, MQTT, Zeit, Ort, Namen, Sprache...
Abschnitt 2:
Default werden die Features so übernommen, wie in der my_user_config.h vordefiniert.
Am ENDE kann 'Optionale Firmware Konfiguration' gewählt werden,
dadurch ergibt sich z.B. mit #define USE_BASIC eine 'kleine' Tasmota firmware.bin OHNE Sensoren.
/*****************************************************************************************************\
* ie2 : enable in file platformio.ini "build_flags = -Wl,-Tesp8266.flash.1m0.ld -DUSE_CONFIG_OVERRIDE"
******************************************************************************************************
* - Changes to SECTION1 PARAMETER defines will only override flash settings if you change define CFG_HOLDER.
\*****************************************************************************************************/
#define FRIENDLY_NAME "MeinSonoff" // [FriendlyName] Friendlyname up to 32 characters used by webpages and Alexa
#define LATITUDE 52.520006 // [Latitude] +++ Breitengrad-Angabe fuer die Berechnung von Astro-Zeiten
#define LONGITUDE 13.404954 // [Longitude] +++ Laengengrad-Angabe fuer die Berechnung von Astro-Zeiten
#define APP_TIMEZONE 99 // [Timezone] +1 hour (Amsterdam) (-13 .. 14 = hours from UTC, 99 = use TIME_DST/TIME_STD)
// -- Rules --------------------------------------- // +++ Achtung: dadurch kann die Verwendung von Rules deaktiviert werden
_UNIVERSAL_user_config_override.h.zip
Abschnitt 1:
ALLES Wichtige für WLAN, MQTT, Zeit, Ort, Namen, Sprache usw. ist aus-/abwählbar.
Abschnitt 2:
Eine Grundauswahl mit einigen, der wichtigsten, Sensoren ist voreingestellt.
III.II - Kann ich meine bearbeitete user_config_override.h wiederverwenden?
Ja und uneingeschränkt, ohne weitere Veränderungen, vom einen \sonoff Ordner zum nächsten
(Punkt 3. user_config_override.h aktivieren muss erneut durchgeführt werden).
III.III - Warum immer paarweise #undef...#define ?
Wenn ein Wert bereits definiert wurde, muss er vorerst auf 'nicht definiert' gesetzt werden,
um ihn neu festzulegen --> bei Mehrfach-Definitionen kommt es sonst zu Fehlern beim Kompilieren.
III.IV - Komplexere Bedingungen bildet man mit:
#ifdef ... // +++ falls definiert ...
#undef ... // +++ hebe Definition auf ...
#define ... // +++ definiere ...
#endif
#ifndef ... // +++ falls nicht definiert ...
#define ... // +++ definiere ...
#endif
Weitere Beschreibungen und Fragen --> Auskommentieren der my_user_config.h
P.S.:
Kommentare zu Korrekturen und Verbesserungsvorschlägen sind SEHR willkommen
und werden von mir mit Sicherheit überdacht.
Wenn dir der Beitrag geholfen hat, freut mich ein '' natürlich besonders
Kommentare 1
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
riker1
Hallo,
kann man die Rules nicht per webui aktivieren?
Oder habe ich da was übersehen?
Danke