Zum Inhalt

14 · Compile-Zeit-Konfiguration

Nur noch die Themen, die das Webinterface nicht abdeckt. Sehr vieles ist inzwischen zur Laufzeit über das Webinterface einstellbar (siehe Migrationstabelle am Ende dieser Seite).

Status dieser Seite

Tabellen aus dem Firmware-Code abgeleitet (Stand aktuelle dev). Bei Code-Änderungen mitziehen.

Wann brauche ich überhaupt eigene Flags?

In der Regel gar nicht – die vorgefertigte Firmware (Stufe 1) passt für die meisten. Eigene Flags lohnen nur für abweichende Hardware oder die wenigen reinen Compile-Zeit-Werte unten.

Override-Mechanismus

Eigene Einstellungen gehören in eine settings-override.h (bzw. ein eigenes Board über HAL 99settings-custom.h), damit sie ein Update nicht überschreibt.

Verbleibende Feature-Flags (echt compile-time)

Flag Zweck
HAL Board-Auswahl (siehe unten)
LANGUAGE Sprache der seriellen Ausgabe (≠ Webinterface-Sprache)
SERIAL_LOGLEVEL Loglevel der seriellen Konsole
CHIPSET / COLOR_ORDER Neopixel-Typ (FastLED-Template, nicht zur Laufzeit)
MDNS_ENABLE ESPuino.local erreichbar
MQTT_ENABLE MQTT-Anbindung
FTP_ENABLE FTP-Server
NEOPIXEL_ENABLE Neopixel-LEDs
BLUETOOTH_ENABLE Bluetooth (→ „noBT"-Firmware, wenn aus)
MEASURE_BATTERY_VOLTAGE Batteriemessung
USEROTARY_ENABLE Drehencoder
HEADPHONE_ADJUST_ENABLE Kopfhörer-Erkennung/Stereo für Kopfhörerplatine
SHUTDOWN_IF_SD_BOOT_FAILS Deep-Sleep bei SD-Bootfehler
PORT_EXPANDER_ENABLE Port-Expander PCA9555
SD_MMC_1BIT_MODE SD im SD-MMC-1-Bit-Modus
I2C_2_ENABLE zweiter I²C-Bus
INCLUDE_ROTARY_IN_CONTROLS_LOCK Encoder mit sperren
INVERT_POWER / DETECT_HP_ON_HIGH Board-Logik (Power / Kopfhörer-Erkennung)
IR-Fernbedienung (RC_*, IR_DEBOUNCE) Infrarot-Codes

Pin-Definitionen

Board-spezifisch in den Headern (settings-complete.h, settings-lolin_d32_pro_sdmmc_pe.h). Siehe auch Anhang → Pinout.

Werte nur per settings.h (kein Webinterface)

Wert Ort Zweck
deepsleepTimeAfterBootFails = 20 settings.h Auto-Neustart nach SD-Bootfehler (Sekunden)
rdiv1, rdiv2, inputAttenuation settings-complete.h Batterie-Kalibrierung (Spannungsteiler/ADC)
RC_*, IR_DEBOUNCE settings-complete.h IR-Fernbedienungscodes
Pin-Definitionen Board-Header s. o.

offsetVoltage jetzt im Webinterface

Der Batterie-Korrekturwert offsetVoltage ist seit September 2026 im Webinterface einstellbar (Batterie-Einstellungen) und daher hier nicht mehr aufgeführt.

Sprungweiten jetzt im Webinterface

Auch die beiden Sprungweiten fürs Spulen sind seit September 2026 im Webinterface einstellbar (Kapitel 8 → Sprungweiten) und stehen deshalb nicht mehr in dieser Tabelle: die per Taste (früher jumpOffset) und die per Drehencoder-Rastung (früher JUMP_OFFSET_ROTARY). Beide Konstanten sind aus der settings.h verschwunden und leben nur noch als interne Vorgabewerte (SEEK_STEP_BUTTON_DEFAULT / SEEK_STEP_ROTARY_DEFAULT) in values.h. Für Eigenbauten wichtig: Eine settings-override.h, die sie weiterhin definiert, bewirkt nichts mehr.

Vorrangregel

Webinterface > settings.h. Ein im Webinterface (NVS) gesetzter Wert gewinnt gegenüber dem Compile-Zeit-Default. Ein settings-override.h, das eine längst ins Webinterface gewanderte Option noch definiert, hat schlicht keine Wirkung mehr.

Migrationstabelle „früher settings.h → heute Webinterface"

Diese Dinge waren früher Compile-Zeit-Makros und sind heute im Webinterface:

früher (settings.h) heute im Webinterface
STATIC_IP_ENABLE Statische IP (pro Netzwerk)
PLAY_LAST_RFID_AFTER_REBOOT „Letzte Karte nach Neustart abspielen"
PAUSE_WHEN_RFID_REMOVED „Pause, wenn Karte entfernt"
DONT_ACCEPT_SAME_RFID_TWICE „Gleiche Karte nicht doppelt akzeptieren"
RESUME_ON_SAME_RFID „Bei gleicher Karte fortsetzen"
NEOPIXEL_REVERSE_ROTATION Neopixel-Drehrichtung
SHUTDOWN_ON_BAT_CRITICAL „Bei kritischer Spannung abschalten"
PLAY_MONO_SPEAKER Mono/Stereo
RFID_SCAN_INTERVAL MFRC522-Scan-Intervall
LED-Defaults (NUM_*_LEDS, *_HUE_*, ATMO_*, DIMMABLE_STATES, LED_OFFSET) Neopixel-Helligkeit / Gradient / Layout
Batterie-Schwellen (s_warning*, s_voltageIndicator*, s_batteryCheckInterval) Batterie-Einstellungen
Lautstärken (init / min / max Speaker + Kopfhörer) Lautstärke-Einstellungen
maxInactivityTime Deep-Sleep-Inaktivität
Button-Belegung Dynamisches Button-Layout
RC522-Gain RFID-Einstellungen
savePos* (Shutdown / RFID-Wechsel / Intervall) Hörbuch-Einstellungen
Rekursionstiefe Sortierung/Rekursion