Grafana dane z entity SWICH jako zużycie kWh

Od czasu utworzenia encji utility_meter

Ok w takim razie wszystko jasne :wink: bo się bałem że źle liczy :wink:

Mam prośbę żeby ktoś podpowiedział jak zaokrąglić miejsca po przecinku na karcie bo wyświetla mi teraz w ten sposób:

image

W kodzie dodałem parametr round(2) niestety nie pomogło ;/

salon_ogrzewanie_kwh:
friendly_name: “salon ogrzewanie kWh”
unit_of_measurement: ‘kWh’
value_template: “{{ states(‘sensor.ogrzewanie_salon’) | float * 3.67 | round(2)}}”

  • platform: history_stats
    name: ogrzewanie salon
    entity_id: switch.sonoff_1000e5ab8b
    state: ‘on’
    type: time
    start: ‘{{ now().replace(hour=0, minute=0, second=0) }}’
    end: ‘{{ now() }}’

utility_meter:
daily_energy:
source: sensor.salon_ogrzewanie_kwh
cycle: daily
monthly_energy:
source: sensor.salon_ogrzewanie_kwh
cycle: monthly
yearly_energy:
source: sensor.salon_ogrzewanie_kwh
cycle: yearly

Spróbuj tak:

value_template: “{{ (states(‘sensor.ogrzewanie_salon’) | float * 3.67) | round(2) }}”

albo

value_template: “{{ (states(‘sensor.ogrzewanie_salon’) | int * 3.67) | round(2) }}”

Edit: teraz powinno byc dobrze.
Jeżeli wklejasz test z konfiguracji umieść go między dwoma liniami zaczynającymi się od ```
Wtedy nie ma problemie przy kopiowaniu.

i przy jednym i drugim błąd pokazuje taki:

Invalid config for [sensor.template]: invalid template (TemplateSyntaxError: unexpected char '‘' at 12) for dictionary value @ data['sensors']['salon_ogrzewanie_kwh']['value_template']. Got '“{{ (states(‘sensor.ogrzewanie_salon’) | int * 3.67 ) | round(2)}}”'. (See ?, line ?).

Coś pochrzaniłem bo nawet jak wrócę do mojego kodu to dalej błąd ;/

Edit2: kurcze znalazłem błąd, dlaczego jak kopiuje to wkleja mi inne “cudzysłowy” ?? i apostrofy?

Sprawdziłem dwa rozwiązania, które podałeś, i niestety żadne z nich nie zmieniło miejsc po przecinku ;(

Edit:

zmieniło ale tylko w salon ogrzewanie kWh.

A jak zmienić w utility_meter: ??

Nie da się, tutaj masz opis swojego przypadku: [BUG] utility_meter shows to much decimals · Issue #41234 · home-assistant/core · GitHub
a to dokladnie Twój problem:

image

Proszę pokaż konfigurację encji sensor.ogrzewanie_salon.

Zrobiłem od nowa wedle filmu z tego linku:

i mam coś takiego:

image

Jak widać miejsc po przecinku jest tyle co ma być. Mam natomiast pytanie jak zrobić aby liczyło poprawnie taryfę G12W
Czyli taryfa tania w dni powszednie godziny 22:00 do 6:00 i 13:00 do 15:00 i do tego i weekendy (piątek od 22:00 do poniedziałek 6:00)

Wiem jak dodać kolejne encję które będą wyświetlane jako następne taryfy, ale jest to mało wygodne i estetyczne bo zamiast taryfy taniej i drogiej robi mi się taryfa nocna + okienko w dzień + weekend. Jak to ogarnąć?

Kolejną dziwną sprawą, jest dziwny sposób zliczania kWh, nie rozumiem dlaczego roczne jest mniejsze od dziennego czy miesięcznego?

1 polubienie
   sensor_cop:
      friendly_name: "Delta Chwilowy"
      device_class: 'temperature'
      value_template: >-
          {{states('sensor.wyjscie_z_wymiennika')|float(0) |round(2) - states('sensor.powrot_do_bufora')|float(0) |round(2) }}
      unit_of_measurement: "C"
      
    moc_chwilowy:
      friendly_name: "Moc PC"
      device_class: 'power'
      value_template: >-
          {{states('sensor.sensor_cop')|float(0) |round(2) * 1180|float(0) * 1.17|float(0) |round (2) }}
      unit_of_measurement: "W"
      

    cop_chwilowy:
      friendly_name: "cop PC"
      device_class: 'power'
      value_template: >-
          {{states('sensor.moc_chwilowy')|round(2) / states('sensor.pobor_chwilowy_pc')| round(2) }}"
      unit_of_measurement: "Cop"
wpisz lub wklej tutaj kod

czemu nie zaokragla do dwóch miejsc po przecinku ,co jest nie tak

Zaokrąglasz do 2 miejsc po przecinku jedną wartość float i dzielisz przed drugą wartość float zaokrągloną do 2 miejsc po przecinku, ale wyniku nie zaokrąglasz, więc taki przykład:
11,23/7,85=~1,430573248407643

    sensor_cop:
      friendly_name: "Delta Chwilowy"
      device_class: 'temperature'
      value_template: >-
          {{states('sensor.wyjscie_z_wymiennika')|float(0) - states('sensor.powrot_do_bufora')|float(0) |round(2) }}
      unit_of_measurement: "C"
      
    moc_chwilowy:
      friendly_name: "Moc PC"
      device_class: 'power'
      value_template: >-
          {{states('sensor.sensor_cop')|float(0) * 1180|float(0) * 1.17|float(0) |round (2) }}
      unit_of_measurement: "W"
      

    cop_chwilowy:
      friendly_name: "cop PC"
      device_class: 'power'
      value_template: >-
          {{states('sensor.moc_chwilowy')|float(0) / states('sensor.pobor_chwilowy_pc')|float(0) |round(2) }}"
      unit_of_measurement: "Cop"

Teraz mam tak i dalej kilka miejsc po przecinku.

Nawiasów za mało na moje oko.
Ale ja tam się w sumie nie znam - nie czuję tego i zawsze sobie dorabiam takie rzeczy eksperymentalnie.
Szukaj tak
https://forum.arturhome.pl/tag/template

ok dzięki faktycznie mało :grinning:Na początku i końcu.
Już miałem coś tak kombinować z funkcja format.
Jeszcze zmieniłem żeby przy ujemnych cop liczył zero i powyzej 6.5 tez zero chyba bedzie ok.

    cop_chwilowy:
      friendly_name: "cop PC"
      device_class: 'power'
      value_template: >-
            {% set cop = (states('sensor.moc_chwilowy')|float(0) / states('sensor.pobor_chwilowy_pc')|float(0)) %}
            {% if cop < 0 or cop > 6.5 %}
             0
            {% else %}
            {{ cop | round(2) }}
            {% endif %}
          
      unit_of_measurement: "Cop"