Verwendung von `restore_value` bei Global Variables in ESPHome

Home Assistant 2. Sep. 2025

Einleitung
Die Konfiguration von ESPHome ermöglicht es Nutzern, ihre Smart-Home-Geräte effizient zu steuern und zu automatisieren. Eine wichtige Funktion in diesem Kontext ist die Verwendung von globalen Variablen, insbesondere die Option restore_value, die es ermöglicht, den letzten Wert einer Variablen nach einem Neustart des Geräts wiederherzustellen. Die korrekte Verwendung dieser Option ist entscheidend für die Stabilität und Funktionalität von Automatisierungen.

Problem
Ein Nutzer hat Fragen zur Verwendung der restore_value-Option bei globalen Variablen in ESPHome. Insbesondere interessiert ihn, ob es einen Unterschied zwischen den Werten true/false und yes/no gibt und ob beide Schreibweisen technisch gleichwertig sind.

Lösung
In der ESPHome-Dokumentation wird die Option restore_value für globale Variablen als yes oder no angegeben. Diese Werte sind jedoch in der Praxis äquivalent zu true und false. ESPHome interpretiert beide Schreibweisen korrekt und führt die gewünschte Funktionalität aus.

Die Verwendung von true/false oder yes/no ist also eine Frage der persönlichen Präferenz. Es wird jedoch empfohlen, sich an die in der Dokumentation angegebenen Werte zu halten, um die Lesbarkeit und Wartbarkeit des Codes zu verbessern. Dies kann insbesondere für andere Entwickler oder Nutzer von Bedeutung sein, die möglicherweise mit deinem Code arbeiten oder ihn anpassen möchten.

Schritte zur Umsetzung
1. Öffne deine ESPHome-Konfigurationsdatei.
2. Definiere eine globale Variable mit der Option restore_value.
3. Wähle zwischen yes/no oder true/false für die restore_value-Option.
4. Speichere die Datei und lade die Konfiguration auf dein ESP-Gerät hoch.

Beispielkonfiguration:

globals:
  - id: my_global_variable
    type: int
    restore_value: true  # oder 'yes'
    initial_value: '0'

Hintergrundwissen
In der Programmierung sind true und false häufig verwendete boolesche Werte, während yes und no als stringbasierte Darstellungen von Wahrheitswerten gelten. In vielen Programmiersprachen und Frameworks sind diese Werte austauschbar, solange die Implementierung dies unterstützt. In ESPHome ist dies der Fall, was die Flexibilität bei der Codierung erhöht.

Typische Fehler, die bei der Verwendung von restore_value auftreten können, sind:
- Falsche Typen für die globale Variable (z. B. Verwendung eines Strings anstelle eines Integers).
- Vergessen, die Option restore_value zu setzen, was dazu führen kann, dass der Wert nach einem Neustart nicht wiederhergestellt wird.

Zusätzliche Infos

FunktionBeschreibung
`restore_value`Gibt an, ob der letzte Wert der Variablen nach einem Neustart wiederhergestellt werden soll.
`true`Boolescher Wert, der `restore_value` aktiviert.
`false`Boolescher Wert, der `restore_value` deaktiviert.
`yes`String-Darstellung für `true`, aktiviert `restore_value`.
`no`String-Darstellung für `false`, deaktiviert `restore_value`.

Hinweise & Best Practices
- Halte dich an die in der Dokumentation angegebenen Werte (yes/no), um die Lesbarkeit zu erhöhen.
- Teste die Konfiguration nach Änderungen, um sicherzustellen, dass die Werte korrekt wiederhergestellt werden.
- Dokumentiere deine Konfigurationen, insbesondere wenn du mit anderen Entwicklern zusammenarbeitest, um Missverständnisse zu vermeiden.