Dzienne i miesięczne zużycie

W jaki sposób mogę prezentować na grafie, miesięczne zużycie. W mini graf jest group_by: date. Jednka chciałbym aby każdy słuper przedstawiał osobny miesięc, a uruchamiać grafane to za duże działo…

Hej,
mam mały problem, otóż chciałem trochę poukładać wszystko związane z shelly ze względu na komunikat, który mi się pojawiał:
shelly

więc znalazłem na forum homeassistant, nowy sposób sumowania mocy z SHelly3EM, oto kod:

template:
  - sensor:
      - name: "Zuzycie energii pompa"
        unique_id: zuzycie_energii_pompa
        state: >-
          {{ 
            [ states('sensor.faza_l1_energy'), 
              states('sensor.faza_l2_energy'),
              states('sensor.faza_l3_energy'),
            ] | map('float') | sum
          }}
        availability: >-
          {{ 
            [ states('sensor.faza_l1_energy'), 
              states('sensor.faza_l2_energy'),
              states('sensor.faza_l3_energy'),
            ] | map('is_number') | min
          }}
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing

  - sensor:
      - name: "Aktualna moc"
        unique_id: obecna_moc_pompa
        state: >-
          {{ 
            [ states('sensor.faza_l1_power'), 
              states('sensor.faza_l2_power'),
              states('sensor.faza_l3_power'),
            ] | map('float') | sum
          }}
        availability: >-
          {{ 
            [ states('sensor.faza_l1_power'), 
              states('sensor.faza_l2_power'),
              states('sensor.faza_l3_power'),
            ] | map('is_number') | min
          }}
        unit_of_measurement: kW
        device_class: power
        state_class: total_increasing

  - sensor:
      - name: "Zuzycie energii pompa ENERGY"
        unique_id: zuzycie_energii_pompa_m_energy
        unit_of_measurement: "kWh"
        device_class: energy
        state: >-
          {{ 
            {% if states('sensor.zuzycie_energii_pompa') | float(0) %}
            {{ states('sensor.zuzycie_energii_pompa_m_energy') }}
            {% else %}
            {{ states('sensor.zuzycie_energii_pompa') | float }}
            {% endif %}
            }}
  - sensor:
      - name: "Poprzedni_miesiac_pompa"
        unique_id: poprzedni_miesiac_energia_pompa
        unit_of_measurement: "kWh"
        state: >-
          {{ 
            state_attr('sensor.miesieczne_zuzycie', 'last_period')
            }}
  - sensor:
      - name: "Wczoraj energia pompa"
        unique_id: wczoraj_energia_pompa
        unit_of_measurement: "kWh"
        state: >-
          {{ 
            state_attr('sensor.zuzycie_wczoraj', 'last_period')
            }}
  - sensor:
      - name: "Poprzedni rok pompa"
        unique_id: energia_pompa_last_year
        unit_of_measurement: "kWh"
        state: >-
          {{ 
            state_attr('sensor.pompa_energy_rocznie', 'last_period')
            }}

tylko w linijce , gdzie jest "- name: “Zuzycie energii pompa ENERGY” wyskakuje mi taki błąd:


2022-02-09 20:19:12 ERROR (MainThread) [homeassistant.config] Invalid config for [template]: invalid template (TemplateSyntaxError: expected token ':', got 'states') for dictionary value @ data['sensor'][0]['state']. Got "{{ \n {{if states('sensor.zuzycie_energii_pompa') | float(0)}}\n {{ states('sensor.zuzycie_energii_pompa_m_energy') }}\n {% else %}\n {{ states('sensor.zuzycie_energii_pompa') | float }}\n {% endif %}\n }}". (See /config/packages/shelly3em.yaml, line 43). 

ktoś wie co powinienem zrobić, czytam na ten temat, i jakoś to do mnie nie dochodzi…

Sensor sprawdza sam siebie :thinking:

{{ states('sensor.zuzycie_energii_pompa_m_energy') }}

/
Wydaje mi się, że ten sposób jest bardziej czytelny i poprawny

  - sensor:
      - name: "Aktualna moc"
        unique_id: obecna_moc_pompa
        device_class: power
        unit_of_measurement: "kW"
        state_class: measurement
        state: >
          {% set powerA = states('sensor.faza_l1_power') | float %}
          {% set powerB = states('sensor.faza_l2_power') | float %}
          {% set powerC = states('sensor.faza_l3_power') | float %}

          {{ ((powerA + powerB + powerC) / 1000) | round(2, default=0) }}

Masz rację, to miałem dziwne, usunąłem to i wszystko zaczęło działać poprawnie :slight_smile:

  - sensor:
      - name: "Aktualna moc"
        unique_id: obecna_moc_pompa
        state: >-
          {{ 
            [ states('sensor.faza_l1_power'), 
              states('sensor.faza_l2_power'),
              states('sensor.faza_l3_power'),
            ] | map('float', default=0) | sum/1000 | round(2)
          }}
        availability: >-
          {{ 
            [ states('sensor.faza_l1_power'), 
              states('sensor.faza_l2_power'),
              states('sensor.faza_l3_power'),
            ] | map('is_number') | min
          }}
        unit_of_measurement: kW
        device_class: power

mam round(2), jednakże nie chce mi zaokrąglać do dwóch miejsc po przecinku.
Pokazuje mi 4 miejsca, ma ktoś pomysł co jest nie tak?

   {{ (
        [ states('sensor.faza_l1_power'), 
          states('sensor.faza_l2_power'),
          states('sensor.faza_l3_power'),
        ] | map('float', default=0) | sum/1000 
     )|round(2) }}

dodaj nawiasy
tak powinno być całość jest w () i na końcu round (2)

1 polubienie

Odświeżę temat.
Czy można wyciągnąć dane o zużyciu dziennym, miesięcznym z gniazdka Gosund 111
(osuplowanego). ?

Powyższe kody niestety nie działają.
Tak wpisałem w pliku /config/configuration.yaml

utility_meter:
daily_energy:
source: sensor.lodowka_kuchnia_total_forward_active_energy
cycle: daily
monthly_energy:
source: sensor.lodowka_kuchnia_total_forward_active_energy
cycle: monthly

Ala tak:

configuration.yaml
utility_meter:
  klima_dzien:
    name: Klima dzień kWh
    source: sensor.ac_licznik_energy_meter
    cycle: daily

  klima_tydzien:
    name: Klima tydzień kWh
    source: sensor.ac_licznik_energy_meter
    cycle: weekly

  klima_miesiac:
    name: Klima miesiąc kWh
    source: sensor.ac_licznik_energy_meter
    cycle: monthly
   
  klima_rok:
    name: Klima rok kWh
    source: sensor.ac_licznik_energy_meter
    cycle: yearly 

Rozwiniesz to stwierdzenie?

Brak dodatkowych encji przypisanych do danego gniazdka, które umożliwiłyby pokazanie wartości dziennych zużycia energii :wink:

edit:
przerobiłem wg. wzoru kolegi krskrab-bez zmian.

Zrzut ekranu 2022-03-18 o 19.01.44

Generalnie sp111 mierzy energię i można użyć odpowiedniego sensora energii, ale jak Ci nie działa możesz użyć sensora mocy i go całkować, a potem liczyć energię:

sensor:
  - platform: integration
    source: sensor.gosund_sp111v2_energy_power
    name: Gosund energy
    unit_prefix: k
    round: 2   
  
utility_meter:
    gosund_daily_energy:
      source: sensor.gosund_energy
      cycle: daily

Przepraszam ale piszę na tablecie i mi się trochę rozjechało powyższe.
Chyba znalazłem odpowiedni znaczek ` :wink:

Mógłbyś zerknąć, bo pokazuje błąd.

W utility_meter użyj sensora z integration czyli sensor.gosund_energy.

tak uczyniłem. Nie mogę zapisać, bo pokazuje taki błąd:


A nie masz już sekcji sensor ?
Sensory tworzy się w pliku sensor.yaml lub innych np. w plikach katalogu Packages.

Można przecież w configuration.yaml byle nie dublować sekcji.

Tak wygląda plik configuration.yaml

No i?

PS

W linii 15 masz “sensory”
teraz w linii 24 dodaj

- platform: integration
  xxxx
  xxxx
...
- platform: history_stats
  xxx
  xxx
...

/
Najlepiej zrób tak :
w folderze gdzie jest configuration.yaml utwórz nowy plik z nazwą

sensor.yaml

Następnie w configuration.yaml dodaj taki wpis:

sensor: !include sensor.yaml

ScreenShot_20220319114419

Sprawdź i Restart HA

Od tej pory nowe sensory możesz dodawać do sensor.yaml
ScreenShot_20220319114720

Po dodaniu nowego sensora, sprawdź konfiguracje HA i restart
/
1.Usuń z lini 15 “sensor:” i resztę do linii 24 (skopiuj)
2.Sprawdź i zrestartuj HA
3. Spróbuj ponownie
/
4 Dodając sensory w sensor.yaml nie dodawaj “sensor:”

Nie denerwujcie się, ale do tej pory miałem tylko kontakt z Suplą. :wink:

W te zaiksowane miejsca, coś mam wstawić ?

To zależy z jakiej integracji będą te sensory - każda integracja ma własną dokumentację.