Jeśli w konfiguracji ESPHome dla czujnika CO2 Sensirion SCD4x podałeś ambient_pressure_compensation z jednostką, na przykład 961mBar, czujnik nigdy nie dostał tego ciśnienia i go nie uwzględniał. Zgłoszenie zmian #19888 od użytkownika zerafachris poprawia obsługę jednostek. bdraco scalił je do gałęzi rozwojowej 19 października 2026 o 9:54 czasu polskiego i tym samym zamknął zgłoszenie błędu #19751 z 27 września.

Dwa błędy, które się znosiły

ESPHome sprawdzał tę opcję ogólnym typem ciśnienia, który zamienia każdą wartość na bary. Kod w C++ wysyła natomiast liczbę do czujnika bez zmian i traktuje ją jako hPa (czyli mbar), bo według karty katalogowej SCD4x przyjmuje ciśnienie właśnie w tej jednostce. Dokumentacja też podaje mbar.

Zgłoszenie błędu dokładnie pokazuje, co z tego wynikało. Liczba bez jednostki działała przypadkiem: sprawdzanie konfiguracji odczytywało 1013 jako 1013 barów, czujnik dostawał 1013 i brał to za hPa, więc oba błędy się znosiły. Jednostka psuła ten układ. 961mBar zamieniało się w 0,961 bara i docierało do czujnika jako 0 hPa, przez co kompensacja ciśnienia była wyłączona, a ESPHome nie dawał żadnego ostrzeżenia.

Co się zmienia

  • Liczba bez jednostki nadal oznacza hPa, więc tak napisane konfiguracje działają dalej.
  • bar, mbar i mBar są teraz przeliczane poprawnie, więc zarówno 961mBar, jak i 0.961bar docierają do czujnika jako 961 hPa.
  • Wartości spoza zakresu 700-1200 hPa są odrzucane. W takim zakresie SCD4x przyjmuje ciśnienie do kompensacji.
  • 0 nadal jest dozwolone. Wyłącza kompensację ciśnienia, a wtedy działa opcja altitude_compensation, tak jak wcześniej.
sensor:
  - platform: scd4x
    co2:
      name: CO2
    ambient_pressure_compensation: 961mBar  # teraz dociera do czujnika jako 961 hPa

Przez nowy limit konfiguracja, która dotąd się kompilowała, może teraz nie przejść sprawdzania. Odpadnie każda liczba bez jednostki mniejsza niż 700 albo większa niż 1200, z wyjątkiem 0. Tak wyłapiesz na przykład ciśnienie wpisane w barach bez jednostki, które i tak nigdy nie działało tak, jak miało.

Zmiana dotyczy tylko stałej wartości w YAML. Osobna opcja ambient_pressure_compensation_source, która pobiera ciśnienie z innego czujnika podającego wynik w hPa, zostaje bez zmian. Zgłoszenie dodaje testy kompilacji dla liczby w hPa, wartości w barach oraz 0 z kompensacją wysokości, a autor zaznaczył, że sprawdził zmianę na ESP32 z ESP-IDF i na ESP8266.

Poprawka jest w gałęzi rozwojowej. ESPHome 2026.10 jest wciąż w fazie testów (2026.10.0b5 ukazało się 19 października), a poprawki błędów czasem trafiają jeszcze do wersji testowej. Jeśli ta nie trafi, pojawi się w ESPHome 2026.11.

Jeśli ciśnienie było u ciebie wpisane z jednostką, pamiętaj, że dotychczasowe odczyty nie miały kompensacji ciśnienia. Skok na wykresie CO2 tuż po aktualizacji może wynikać z włączonej kompensacji, a nie ze zmiany powietrza w pokoju.