Jeden z moich znajomych jest głębokim… hm… wyznawcą zasady „jak działa, to nie ruszać”, choć na szczęście dość wybiórczym i są obszary, gdy rozsądku pokazuje więcej. Ostatnio jednak zdarzyło mu się zaktualizować Home Assistant i ESPHome pierwszy raz od prawie roku. Nie wiem, co sprawiło, że zdecydował się na ten heroiczny czyn, ale na pewno kilka rzeczy go zaskoczyło, kilka rzeczy musiał też skorygować/naprawić. Nie dlatego, że „aktualizacja zepsuła”, tylko po takim czasie oczywiste, że będzie dużo zmian, w tym również niekompatybilnych wstecz. Gdyby aktualizował regularnie, zaskoczenie byłoby mniejsze. A gdyby jeszcze czytał informacje o zmianach, to by zaskoczenia nie było pewnie w ogóle.

Zaokrąglenie w powiadomieniach wysyłanych z Home Assistant

Z większością „problemów” dość szybko z moją małą pomocą udało mu się uporać, ale jeden „smaczek” celowo zostawiłem, czekając, aż się zorientuje, że coś jest nie tak. Mogłem sobie na to pozwolić, bo to nic istotnego dla działania „inteligentnego domu”, a tylko i wyłącznie „wizualne WTF” (lub głosowe ;-)).

No i się stało. Wczoraj napisał do mnie, czy wiem, czemu w powiadomieniach dane z niektórych czujników wyświetlają się z dokładnością np. 14 miejsc po przecinku, jak w Home Assistant ma ustawione np. do jednego miejsca po przecinku (np. 9.27394485473633, zamiast 9.3)?!?

Ów „problem” dotyczy tylko sensorów z ESPHome, i nie pomaga ustawienie w ESPHome dokładności, np. do dwóch cyfr po przecinku. Bo w logach widać prawidłowo (np. 9.27), w Home Assistant widać prawidłowo, ale w powiadomieniach z Home Asistant wysyłanych np. na telefon czy komunikator już mamy wspomnianego potworka z 14 miejscami po przecinku, co w większości sytuacji nie tylko nie ma sensu, ale i wizualnie przeszkadza w odbiorze/interpretacji powiadomienia.

No cóż… Jest to zmiana, która weszła gdzieś w okolicach lipca 2025 (na pewno w wakacje, bo przerabiałem wtedy powiadomienia) i polega na tym, że ustawiona dokładność jest tylko w celach „wizualnych”, natomiast odczyty zapisywane i przesyłane są w „surowym formacie” (RAW).

Więc w panelu Home Assistant czy ESPHome, a nawet w logach będzie wszystko elegancko, zgodnie z ustawieniami, bo to kwestia wizualna, ale już w powiadomieniach uznali, że kwestie wizualne nie mają aż takiego znaczenia i każdy najchętniej zobaczy powiadomienie np. o temperaturze w mieszkaniu z dokładnością do 14 miejsc po przecinku, jakby od tego zależało funkcjonowanie przydomowego reaktora atomowego.

Pamiętam, że moje zdziwienie tą zmianą było o tyle zabawne, że dotyczyło skryptu, który za pomocą głośników przedstawia mi najważniejsze informacje pogodowe, z których korzystam np. przed wyjściem z psem do lasu. A tu np. zamiast klasycznej informacji o temperaturze czy wilgotności na zewnątrz, słucham coś o milionach i miliardach, poprzeplatane wielokrotnie ze sobą w ramach każdego odczytu z każdego sensora, bo TTS od Google nie dał rady. A w dodatku nie byłem wtedy sam, więc przynajmniej było zabawnie… ;-)

Modyfikacja wywołania sensora w powiadomieniach z Home Assistant

Na szczęście pojawiły się odpowiednie opcje (parametry) pozwalające sprawić, że w powiadomieniach będą odpowiednio sformatowane jednostki.

Kiedyś standardowy zapis w powiadomieniach:

Temperatura na zewnątrz: {{states('sensor.identyfikator_encji_temperatura')}} °C.

Sprawiał, że otrzymywaliśmy powiadomienie w stylu:

Temperatura na zewnątrz: 9,2 °C.

Po zmianie:

Temperatura na zewnątrz: 9.27394485473633 °C.

By to skorygować, należy wywołać stan sensora z dodatkowym parametrem:

Temperatura na zewnątrz: {{states('sensor.identyfikator_encji_temperatura', rounded=True)}} °C.

Można też skorzystać z parametru automatycznie dodającego jednostki, w jakich operuje dany sensor:

Temperatura na zewnątrz: {{states('sensor.identyfikator_encji_temperatura', rounded=True, with_unit=True)}}.

Lub krócej (zaokrąglenie i jednostki):

Temperatura na zewnątrz: {{states('sensor.identyfikator_encji_temperatura', True, True)}}.

Kolega po tej wiadomości cicho przeklął pod nosem, rzucił, że idzie po coś zimnego do lodówki, bo czeka go zabawa w modyfikowanie kodu w wielu automatyzacjach i skryptach. Przed czymś zimnym go nie uchroniłem, bo niby po co, ale zasugerowałem, by najlepiej skorzystał z bezpośredniej edycji plików automations.yaml i scripts.yaml w Home Assistant, co jest zdecydowanie szybsze, niż jakby miał edytować poszczególne automatyzacje i skryptu z panelu Home Assistant (GUI).

Zwłaszcza że w końcu po coś ma odblokowany dostęp po SSH do Home Assistant jako użytkownik „root”. A do tego może się tu wspomóc kilkoma opcjami np. Notepad++, by sobie to jeszcze bardziej ułatwić i przyspieszyć…

I choć mogę zrozumieć zmianę i jej cel, to jako użytkownik, który też swego czasu musiał ręcznie modyfikować sporo automatyzacji i powiadomień, mam spore obiekcje co do tego, że taka zmiana została wprowadzona w taki sposób, że w powiadomieniach nie zastosowano automatycznie zaokrąglenia zgodnego z ustawieniami sensora, a wrzucono tam odczyty w wersji RAW. Przecież logiczne, że w większości przypadków nikt nie potrzebuje w powiadomieniach np. temperatury w mieszkaniu z dokładnością do 14 miejsc po przecinku…

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk