Licznik energii-modbus-esphome-dziwne wiele miejsc po przecinku

Jakiś miesiąc temu po kolejnej aktualizacji (nie pamiętam czego) zaobserwowałem dziwne wartości (wiele miejsc po przecinku0 liczone przez utility_meter, sensory w .yaml zdefiniowane są np.:

  y_energia_oddana_godzinowa:
    source: sensor.energia_czynna_oddana
    name: Energia oddana przez godzinę
    cycle: hourly

Ten sam sensor jak wyklikam w GUI jest ładny- 2 miejsca po “,”.
Źródło jest z licznika przez esphome zdefiniowane tak:

  - platform: modbus_controller
    id: energia_czynna_oddana
    name: "Energia czynna oddana"
    register_type: read
    icon: mdi:circle-slice-3
    device_class: energy
    state_class: total_increasing
    address: 0x036
    unit_of_measurement: "kWh"
    value_type: FP32
    accuracy_decimals: 1

Na dashboardzie wyświeyla się ładnie:
image

ale w narzędziach deweloperskich już cuda:


Czy ktoś ma pomysł czym to może być spowodowane bo źle wygląda ?

To skutki uboczne przechowywania liczb zmiennoprzecinkowych w postaci binarnej.

tu masz dokumentację dla opcji accuracy_decimals swoją drogą widzę, że masz dobrze, więc to czas na issue

ja mam tez dobrze skonfigurowane, a wyświetla jak u kolegi :smiley: wydarzyło się to po aktualizacji HA do 2025.7

1 polubienie

Niestety jest już kilka issue z tym związanych. Generalnie jak poczytałem stało się wraz z esphome 2025.6.3. Nie jest to wina esphome, że funkcja opisana w dokumentacji nie działa, winne jest HA Core. W ogóle to tak ma być , użytkownicy się czepiają i robią z “g…a widły”.
Wniosek: zbliża się koniec HA, co miesiąc jakieś przełomowe zmiany nie do naprawy i tłumaczenie, że teraz to działa prawidłowo.

edit: encje skonfigurowane w .yaml muszą mieć “unique_id:” wtedy na dashbordzie można ustawić precyzję wyśietlania.

1 polubienie

co znaczy że muszą być uniqe id?

sensor:
  - name: "Temperature"
    unique_id: 2dfb8359-0b94-48cd-9909-422ce8418fe0
    state_topic: "tmp/feeds/temperature"
    suggested_display_precision: 1

Możesz sobie wygenerować lub wpisać własny ID

Chodzi o wpis w konfiguracji:

  • w yaml od esphome dodaję np. “id: energia_czynna_pobrana”
  • jeśli sensor jest skonfigurowany w yamlu np. utility_meter to dodaję jak Artur napisał.
    Wtedy mam “precyzja”:

No właśnie a precyzja nie działa bez id? :thinking:Ok pokombinuje jutro z tym co tu napisaliście bo sprawę jednak wypadało by sprostować dia potomnych. Dam znac czy coś pomogło

Gdzie i jak wygenerowac takie id?

Możesz sam wymyślić unikatową nazwę, a jeśli chcesz stworzyć sobie łatwo raczej niepowtarzalne id i równocześnie zupełnie nieludzkie

HA nie wymaga myślników (i nie wiem czy toleruje), jakkolwiek UUID v4 bez kresek się nadają.
Normalne “fabryczne” unikalne id w HA wygląda np. tak a5469b0b8f644fddbb12dedcbd436141
a losowy uuid v4
a0729589-dc69-4fad-8cb2-15a627830a6d
możesz zmienić w taki ciąg
a0729589dc694fad8cb215a627830a6d

Ogarnięte działa pięknie
A pytanie mam czy da sie uruchomić wiecej par(daily/monthy)czujników?
Jedna para jest do zuzycia domu i to dziala ale nie potrafię stworzyć drugiej takiej pary dla produkcji z PV :thinking: próbowałem w jednym kodzie w configuration.yaml ale pokazuje tylko jedną parę probowalem z shelly1 i 2 bez zmian. Stworzylem osobny katalog i w nim kolejny configurator.yaml bez skutku bo nigdzie go nie widze procz samej aplikacji file editor

Pokaż kod z yamla to zerknę bo “par(daily/monthy)czujników” można tworzyć do woli.
Możesz też wyklikać w GUI: ustawienia/urządzenia oraz usługi/pomocnicy.

Musisz poczytać więcej o hierarchii plików w HA, nie możesz tworzyć jakiegoś tam katalogu i czekać że HA go odczyta, żeby tak było muszą być odpowiednie wpisy w pliku configuration.yaml.

Wpis utility_meter: używasz tylko raz w konfiguracji a pod nim tworzysz odpowiednią liczbę wpisów dla: