Jednym z częściej powtarzających się pytań/problemów, dotyczących ESPHome jest to, że wprowadzone zmiany – np. stan przełącznika, ustawiona temperatura termostatu – nie są zapamiętywane po ponownym uruchomieniu urządzenia. W takiej sytuacji najczęściej chodzi o ESPHome uruchomione na układzie ESP8266, gdzie faktycznie, w domyślnej konfiguracji zmiany nie są zapisywane w pamięci urządzenia (w przypadku ESP32 problem ten nie występuje, bo tu są domyślnie zapisywane). Na szczęście można to łatwo zmienić…
Zapamiętywanie ustawień w ESPHome na ESP8266
Nie wiem, z czego wynika taka decyzja twórców ESPHome, ale pewnie z tego, że układy ESP8266 trochę z przypadku stały się tym, czym się stały, w przeciwieństwie do układów ESP32, które od razu były tworzone z myślą o pracy jako (mikro)kontrolery. W każdym razie jest, jak jest i jak już na wstępie wspomniałem – w przypadku układów ESP8266, oprogramowanie ESPHome domyślnie nie zapisuje ustawień w pamięci, a więc po każdym restarcie urządzenia wszystko wraca do domyślnych wartości (stanów).
Można jednak to zmienić, za pomocą opcji „restore_from_flash”:
restore_from_flash (Optional, boolean): Whether to store some persistent preferences in flash memory. Defaults to false.
Wystarczy w sekcji, gdzie ustawiamy typ płytki dodać parametr „restore_from_flash” z wartością „true”:
esp8266:
board: nodemcuv2
restore_from_flash: true
Można też zmienić co jaki czas wartości i stany, mają być zapisywane w pamięci:
flash_write_interval (Optional, Time): Customize the frequency in which data is flushed to the flash. This setting helps to prevent rapid changes to a component from being quickly written to the flash and wearing it out. Defaults to 1min.
W takim przypadku dodajemy kod:
preferences:
flash_write_interval: 10min
Mamy też opcje, pozwalające łatwo ustawić, czy np. stan danego przełącznika ma być przywracany, a jak tak, to na jakich zasadach, do czego służy parametr „restore_mode”:
- RESTORE_DEFAULT_OFF: Próbuje przywrócić, jak się nie uda, to ustawia OFF
- RESTORE_DEFAULT_ON: Próbuje przywrócić, jak się nie uda, to ustawia ON
- RESTORE_INVERTED_DEFAULT_OFF: Próbuje przywrócić stan odwrotny od zapisanego, jak się nie uda, to ustawia OFF
- RESTORE_INVERTED_DEFAULT_ON: Próbuje przywrócić stan odwrotny od zapisanego, jak się nie uda, to ustawia OFF
- ALWAYS_OFF: Zawsze ustawia OFF (domyślna opcja)
- ALWAYS_ON: Zawsze ustawia ON
- DISABLED: Nie robi nic
Przykładowy kod z użyciem tej opcji może wyglądać tak:
switch:
- platform: gpio
[...]
restore_mode: RESTORE_DEFAULT_OFF
I jest to bardzo przydatna opcja, bo pozwala z góry zaprogramować układ, by w razie np. problemów z przywróceniem ustawienia z pamięci, dany przełącznik został ustawiony tak, jak potrzebujemy. Sam często korzystam z opcji domyślnej, czyli „zawsze OFF” np. w przypadku wszelkiej maści termostatów (sterownik ogrzewania, czy sterownik piwnej lodówki), i opcji „zawsze ON” w przypadku np. dzwonka do drzwi…
![(!) Zgłoś błąd na stronie](https://webinsider.pl/wp-content/uploads/2019/12/webinsider_zglos-blad-na-stronie_200x29_888888.png)
![Pomogłem? To może postawisz mi wirtualną kawę?](https://webinsider.pl/wp-content/uploads/2025/12/pomogle-postaw-mi-wirtualna-kawe-202308-6f4e37.png)
- Zakupy w sklepie Bambu Lab bez podatku VAT, czyli rejestracja jako B2B oraz specjalny link do specjalnego sklepu - 1970-01-01
- W Home Assistant 2024.7 w końcu można bezpośrednio z właściwości danego elementu zarządzać jego rozmiarem w cały jeszcze czas eksperymentalnym układzie „sekcje” - 1970-01-01
- Sprzedajesz drona DJI? Usuń go ze swojego konta. Kupujesz używanego drona DJI? Zadbaj, by dotychczasowy właściciel usunął go ze swojego konta! - 1970-01-01