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ł:
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
{{ 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
- 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)
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
edit:
przerobiłem wg. wzoru kolegi krskrab-bez zmian.
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 `
W utility_meter użyj sensora z integration czyli sensor.gosund_energy.
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.
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
Sprawdź i Restart HA
Od tej pory nowe sensory możesz dodawać do sensor.yaml
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ą.
W te zaiksowane miejsca, coś mam wstawić ?
To zależy z jakiej integracji będą te sensory - każda integracja ma własną dokumentację.