1. Dashboard
  2. Startseite
  3. Aktivität
    1. Unerledigte Themen
  4. Wiki
  • Anmelden
  • Registrieren
  • Suche
Lexikon
  • Alles
  • Forum
  • Seiten
  • Lexikon
  • Erweiterte Suche
  1. CREATIONX - Smart Home Forum
  2. Lexikon

Tasmota - Anpassung durch user_config

  • NoitaercX
  • 13. Januar 2019 um 19:17
  • 25. Februar 2019 um 18:13
  • 29.372 mal gelesen
  • 1 Kommentar
  • 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.

    Code
    /*
      user_config_override.h - user configuration overrides my_user_config.h for Sonoff-Tasmota
    
      Copyright (C) 2019  Theo Arends
    
      This program is free software: you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 3 of the License, or
      (at your option) any later version.
    
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
    
      You should have received a copy of the GNU General Public License
      along with this program.  If not, see <http://www.gnu.org/licenses/>.
    */
    
    #ifndef _USER_CONFIG_OVERRIDE_H_
    #define _USER_CONFIG_OVERRIDE_H_
    
    // force the compiler to show a warning to confirm that this file is inlcuded
    #warning **** user_config_override.h: Using Settings from this File ****
    
    /*****************************************************************************************************\
     * USAGE:
     *   To modify the stock configuration without changing the my_user_config.h file:
     *   (1) copy this file to "user_config_override.h" (It will be ignored by Git)
     *   (2) define your own settings below
     *   (3) for platformio:
     *         define USE_CONFIG_OVERRIDE as a build flags.
     *         ie1 : export PLATFORMIO_BUILD_FLAGS='-DUSE_CONFIG_OVERRIDE'
     *         ie2 : enable in file platformio.ini "build_flags = -Wl,-Tesp8266.flash.1m0.ld -DUSE_CONFIG_OVERRIDE"
     *       for Arduino IDE:
     *         enable define USE_CONFIG_OVERRIDE in my_user_config.h
     ******************************************************************************************************
     * ATTENTION:
     *   - Changes to SECTION1 PARAMETER defines will only override flash settings if you change define CFG_HOLDER.
     *   - Expect compiler warnings when no ifdef/undef/endif sequence is used.
     *   - You still need to update my_user_config.h for major define USE_MQTT_TLS.
     *   - All parameters can be persistent changed online using commands via MQTT, WebConsole or Serial.
    \*****************************************************************************************************/
    
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++         Aenderungen erst ab hier vornehmen.               +++
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++ _MINIMAL_user_config_override.h                           +++
    // +++ NoitaercX +++ 13.01.2019 16:00:00                         +++
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++ Kommentare von mir werden durch '+++' gekennzeichnet.     +++
    // +++ ALLES was hier NICHT geaendert werden soll,               +++
    // +++ kann als Kommentar // oder /* */ auskommentiert werden    +++
    // +++ und bleibt dann so, wie in der my_user_config.h definiert.+++
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++                Abschnitt 1 (SECTION 1)                    +++
    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    // +++ Eigene WLAN-Einstellungen +++++++++++++++++++++++++++
    #undef  STA_SSID1                           // [SSId1] Wifi SSID
    #define STA_SSID1         ""                // "MeinRouter"
    #undef  STA_PASS1                           // [Password1] Wifi password
    #define STA_PASS1         ""                // "MeinPasswort"
    
    // -- Project -------------------------------------
    #undef  PROJECT                             // +++ Default Topic
    #define PROJECT          "meinsonoff"       // PROJECT is used as the default topic delimiter
    
    // +++ Eigene MQTT-Einstellungen +++++++++++++++++++++++++++
    #undef  MQTT_USE                            // +++ mit '0' ist MQTT beim Start deaktiviert
    #define MQTT_USE          0                 // [SetOption3] Select default MQTT use (0 = Off, 1 = On)
    #undef  MQTT_HOST
    #define MQTT_HOST         "192.168.x.x"     // [MqttHost] +++ MQTT-Host Einstellung
    #undef  MQTT_PORT
    #define MQTT_PORT         1883              // [MqttPort] +++ MQTT-Port Einstellung
    
    // -- HTTP ----------------------------------------
    #undef  FRIENDLY_NAME                       // +++ angezeigter Name des Geraetes
    #define FRIENDLY_NAME     "MeinSonoff"      // [FriendlyName] Friendlyname up to 32 characters used by webpages and Alexa
    
    // +++ Location -------- Orts-Einstellung ---------
    // +++                     'Berlin'
    #undef  LATITUDE
    #define LATITUDE       52.520006                 // [Latitude]  +++ Breitengrad-Angabe fuer die Berechnung von Astro-Zeiten
    #undef  LONGITUDE                             
    #define LONGITUDE      13.404954                 // [Longitude] +++ Laengengrad-Angabe fuer die Berechnung von Astro-Zeiten
    
    // -- Application ---------------------------------
    #undef  APP_TIMEZONE                               // +++ Zeitzone: 99 = Sommer-/Winterzeit
    #define APP_TIMEZONE           99                  // [Timezone] +1 hour (Amsterdam) (-13 .. 14 = hours from UTC, 99 = use TIME_DST/TIME_STD)
    
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++ Befehle in eckigen Klammern koennen direkt in der Tasmota Konsole oder               +++
    // +++ per MQTT zur Abfrage bzw. Konfiguration eingegeben werden z.B. [SSId1]               +++
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    // +++ Spracheinstellung +++++++++++++++++++++++++++++++++++
    #undef  MY_LANGUAGE
    #define MY_LANGUAGE      de-DE                 // German in Germany
    
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++                Abschnitt 2 (SECTION 2)                                               +++
    // +++ Falls die Funktion in der my_user_config.h aktiviert wurde mit #define               +++
    // +++ dann kann sie hier deaktiviert werden                      mit #undef                +++
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    //#undef USE_ENERGY_SENSOR                       // Disable energy sensors
    #undef  USE_ARDUINO_OTA                        // Disable support for Arduino OTA
    #undef  USE_WPS                                // Disable support for WPS as initial wifi configuration tool
    #undef  USE_SMARTCONFIG                        // Disable support for Wifi SmartConfig as initial wifi configuration tool
    #undef  USE_MQTT_TLS                           // Disable TLS support won't work as the MQTTHost is not set
    //#undef  USE_CUSTOM                             // Disable Custom features
    
    //#undef  USE_DOMOTICZ                           // Disable Domoticz (+6k code, +0.3k mem)
    #undef  USE_HOME_ASSISTANT                     // Disable Home Assistant Discovery Support (+2k code)
    #undef  USE_KNX                                // Disable KNX IP Protocol Support (+9.4k code, +3k7 mem)
      #undef  USE_KNX_WEB_MENU                     // Disable KNX WEB MENU (+8.3k code, +144 mem)
    
    // -- Rules --------------------------------------- // +++ Achtung: dadurch kann die Verwendung von Rules deaktiviert werden
    //#undef  USE_RULES                              // Disable support for rules (+4k4 code)
    
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++ Sensoren +++                                                                         +++
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // -- I2C sensors --------------------------------- // +++ I2C kann hier mit #undef USE_I2C komplett deaktiviert werden
    //#undef  USE_I2C                                  // I2C using library wire (+10k code, 0k2 mem, 124 iram)
    
    
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++ OPTIONALE FIRMWARE KONFIGURATION                                                     +++
    // +++ KEINE oder EINE auswaehlen                                                           +++
    // +++ KEINE: entspricht den Einstellungen in my_user_config.h und den oben vorgenommenen.  +++
    // +++ EINE:  die dann enthaltenen Features und Sensoren sind in 'RELEASENOTES.md'          +++
    // +++        beschrieben, die Einstellungen von Abschnitt 2 werden dadurch ueberschrieben. +++
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    //#define FIRMWARE_MINIMAL            // +++ 1. Tasmota sonoff-minimal: Minimal Firmware fuer OTA 
    //#define FIRMWARE_CLASSIC           // +++ 2. Tasmota sonoff-classic: mit WPS, SmartConfig und WifiManager
    //#define FIRMWARE_SENSORS           // +++ 3. Tasmota sonoff-sensors: mit den meisten Sensoren
    //#define FIRMWARE_BASIC             // +++ 5. Tasmota sonoff-basic:   OHNE Sensoren
    //#define FIRMWARE_DISPLAYS          // +++ 6. Tasmota sonoff-display: mit aktivierten Display Treibern
    
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // +++ ENDE von Abschnitt 2 (SECTION 2)                                                     +++
    // +++ Folgende Zeilen nicht aendern                                                        +++
    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    #endif  // _USER_CONFIG_OVERRIDE_H_
    Alles anzeigen

    _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 :)

    Dateien

    _MINIMAL_user_config_override.h.zip 3,34 kB – 1.754 Downloads _UNIVERSAL_user_config_override.h.zip 7,99 kB – 2.230 Downloads
    • tasmota
    • user_config.h
    • my_user_config.h
    • user_config_override.h

Teilen

  • Vorheriger Eintrag Standardbutton ein/ausschalten
  • Nächster Eintrag Tasmota Device Manager – Tasmota-Geräte bequem per grafischer Oberfläche administrieren.

Kommentare 1

riker1
20. Januar 2020 um 17:17
  • Inhalt melden

Hallo,

kann man die Rules nicht per webui aktivieren?

Oder habe ich da was übersehen?

Danke

  • Änderungsprotokoll
  • PDF

Inhaltsverzeichnis

  • I - Schnellstart mit user_config_override.h
  • II - Erklärung und Hinweise
    • II.I - my_user_config.h
    • II.II - user_config_override.h
  • III - FAQ
    • III.I - Welche Einstellungen sind vordefiniert?
    • III.II - Kann ich meine bearbeitete user_config_override.h wiederverwenden?
    • III.III - Warum immer paarweise #undef...#define ?
    • III.IV - Komplexere Bedingungen bildet man mit:
  1. Datenschutzerklärung
  2. Impressum
Lexikon, entwickelt von www.viecode.com
Community-Software: WoltLab Suite™