Zaokrąglenie wartości

Hej, tak na szybko jak zaokrąglić wartości do całkowitych?

Jeśli uzyskujesz je w template to round(0) przykład poniżej

sensor:
  - platform: template
    sensors:
      miio_sypialnia_wilgotnosc:
        friendly_name_template: "Miio Wilgotność"
        value_template: '{{ states.fan.zhimi_airpurifier_m1.attributes["humidity"] | float | round(0) }}'
        unit_of_measurement: '%'

@szopen a zerkniesz co tutaj jest nie tak:

- platform: template
  sensors:
    sensor.solaredge_energy_today_template:
      value_template: "{{ (states('sensor.solaredge_energy_today') | float / 1000) | round(2) }}"

Ponieważ wyskakuje mi taki komunikat:

Invalid config for [sensor.template]: invalid slug sensor.solaredge_energy_today_template (try sensor_solaredge_energy_today_template) for dictionary value @ data[‘sensors’]. Got OrderedDict([(‘sensor.solaredge_energy_today_template’, OrderedDict([(‘value_template’, “{{ (states(‘sensor.solaredge_energy_today’) | float / 1000) | round(2) }}”)]))]). (See ?, line ?).

Ja się nie znam na tym, swego czasu podążałem za dokumentacją, ale kropka w nazwie encji generowanej przez szablon jest podejrzana, więc pewnie powinno być jakoś tak (bo ten template i tak musi być w sekcji sensor:, więc ten sensor z kropką w nazwie sam się tam dołoży

- platform: template
  sensors:
    solaredge_energy_today_template:
      value_template: "{{ (states('sensor.solaredge_energy_today') | float / 1000) | round(2) }}"

To był dobry trop. Dzięki @szopen

Mam jeszcze problem z sensorami które są z integracji Supli i pytanie żeby w configuration.yaml nie robić zaokrąglenia do 2 miejsca (teraz jest do 4 miejsca) to czy można to zrobić w dostosowanie?

Z tego co wiem, w “dostosowaniu” można zmienić tylko wartości, a nie szablony, ale jeśli jestem w błędzie to może ktoś mnie poprawi?

Dwie encje mam orginalne i jedna utworzoną przez configuration.yaml i w tej utworzonej mam jednostkę m3 i pytanie czy da się coś zrobić z tą trójką żeby bała taka jak w tych orginalnych encjach?

Wklej poniższy kod do swojej encji:

    unit_of_measurement: 'm³'

@macek juz tak kombinowalem tylko ze jak wkleisz w configuration.yaml to i tak przekształca na m3 :disappointed:

Edytuje pliki yaml za pomocą Notepad++ (https://notepad-plus-plus.org/) i nie mam żadnych problemów z takimi znakami.

Oczywiście po edycji configuration.yaml musisz zrestartować HA.
Jeśli używasz standardowej karty historii, to ona wyświetla jednostkę encji jaka jest na początku wykresu (więc jeśli ją zmienisz to musisz odczekać aż “teraz” z momentu po restarcie będzie na początku wykresu).

Standardowy edytor konfiguracji (czyli addon File Editor) bez problemu obsługuje ten znak (więc nie trzeba używać żadnego dodatkowego edytora).

Udało się :slight_smile: dzięki wielkie.

@szopen, @macek taki jeszcze mam temat: stworzyłem kiedyś enscje w configuration.yaml liczącą ilość włączonego telewizora w danym dniu:

Jest możliwość żeby ta ilość była przedstawiana w formacie np 3h 15 min już bez sekund zamiast 1,25?

Taki mam zapis w configuration.yaml:

56

@Raddii Musisz się nauczyć wklejać kod - wystarczy linijka z zawierająca 3 znaczki ` czyli ``` przed wklejanym blokiem tekstu i taka sama za nim (to odwrotny apostrof dostępny zwykle na tym samym klawiszu co tylda), screenshoty są dobre do zobrazowania wyglądu GUI, ale gdy w grę wchodzi jakiś fragment konfiguracji musi być on poprawnie sformatowany (tzn. “tak jak jest” skoro każda spacja jest istotna), a dodatkowo ze screenshota nie da się po prostu przekleić twojego kodu i go przetestować/zmodyfikować czy zrobić z nim cokolwiek innego użytecznego…

A w kwestii zasadniczej - da się, ale nie pamiętam jak, niewątpliwie dokumentacja może pomoże?

jeśli chodzi o wyświetlanie to szukaj tu:

https://docs.python.org/3.8/library/datetime.html#strftime-and-strptime-format-codes

PS stworzyłem sobie taką encję (bliźniaczą do twojej)

sensor:
  - platform: history_stats
    name: "Dzisiaj ampli włączony przez:"
    entity_id: media_player.yamaha_receiver_salon_tv
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

i…
czas_atrybut_Screenshot_2021-05-18 Przegląd - Home Assistant
encja ma atrybut w formacie takim jaki chcesz

kod karty:

type: vertical-stack
cards:
  - type: entity
    entity: sensor.dzisiaj_ampli_wlaczony_przez
  - type: entity
    entity: sensor.dzisiaj_ampli_wlaczony_przez
    attribute: value

@szopen trzeba było powiedzieć że wystarczy tylko dopisek
attribute: value :sweat_smile:
Wielkie dzięki

@Raddii

  1. Nie wystarczyłoby, nigdzie nie używam history_stats
  1. Gdybyś wrzucił kod jako odpowiednio sformatowany tekst mógłbym go łatwo użyć w swojej instalacji i wtedy może bym to zauważył od razu…

  2. A wiedza o tym jak obsłużyć forum przyda się zawsze - tak samo to działa na discordzie czy githubie

1 Like