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
  3. Tasmota - Anpassung durch user_config

Tasmota - Anpassung durch user_config

  • NoitaercX
  • 13. Januar 2019 um 19:17
  • 22. Januar 2019 um 19:39
  • 268 mal gelesen

Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • 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 BE_MINIMAL            // +++ 1. Tasmota sonoff-minimal: Minimal Firmware fuer OTA 
    //#define USE_CLASSIC           // +++ 2. Tasmota sonoff-classic: mit WPS, SmartConfig und WifiManager
    //#define USE_SENSORS           // +++ 3. Tasmota sonoff-sensors: mit den meisten Sensoren
    //#define USE_BASIC             // +++ 5. Tasmota sonoff-basic:   OHNE Sensoren
    //#define USE_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.:

    Der Artikel befindet sich zurzeit in Bearbeitung.

    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.858 Downloads _UNIVERSAL_user_config_override.h.zip 7,99 kB – 2.315 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

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™