Tasmota - Anpassung durch user_config

  • In diesem Abschnitt wird die Anpassung von Tasmota mit eigenen Einstellungen

    durch die Dateien my_user_config.h und user_config_override.h beschrieben.

    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

    1. user_config_override.h in den Ordner \sonoff kopieren
    2. nur in user_config_override.h die Einstellungen auf eigene Konfiguration ändern
    3. 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.


    _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 ':thumbup:' natürlich besonders :)

Teilen