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.
/*
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 '' natürlich besonders
Kommentare 1