Niedawno zacząłem przygodę z Suplą.
Długo się zastanawiałem nad rozwiązaniem, które pozwoli mi monitorować nie tyle co koszty, ale to co się dzieje w mojej 3 fazowej instalacji elektrycznej, np. prawidłowy rozkład obciążenia poszczególnych faz. W aplikacji Supla brakuje mi niestety rozliczenia 2 taryfowego oraz prostych powiadomień w przypadku przekroczenia wcześniej określonych parametrów (np. moc, napięcie czy natężenie). Pomaga w takiej sytuacji konfiguracja w połączeniu z Home Assistant (alarmowanie o przekroczeniu zadanych progów natężenia prądu). Do najprostszych to nie należy, ale jakoś to ogarnąłem. Aktualnie mam 2 takie urządzenia, jednym monitoruję standardowo 3 fazy, drugim 3 wybrane obwody w domu.
Teraz mam taki problem: w HA nie występuje taka encja jak aktualna całkowita moc czynna pobierana z sieci (w Supli wyświetla się to jako suma w zakładce 1+2+3, ale nie jest to przekazywane dalej). Chciałbym założyć automatyzacje, aby dostać powiadomienie gdy ta moc przekroczy wartość np. 8000W. Jak to zrobić? Szukałem w wyzwalaczach jakiś opcji z logiką (suma, or, and ...) ale nie znalazłem.
Zasugerowano mi utworzenie własnej encji która sumuje moc czynną z wszystkich faz. Nie mam jednak pojęcia jak to zrobić. Nie mam na liście w pomocniczych encjach funkcji suma. Są średnie, max, min ... ale nie ma sumy. Nie widzę również zwykłych operatorów matematycznych ("+", "-", "*", ":")
Zasugerowano mi utworzenie własnej encji która sumuje moc czynną z wszystkich faz
Dokładnie tak, najpierw powinieneś utworzyć nowy sensor, za pomocą template https://www.home-assistant.io/integrations/template/ i w nim jako value_template deklarujesz sumę tych Twoich encji z mocą czy co tam jeszcze chcesz (możesz tu dodawać, odejmować czy mnożyć )
energia_czynna_aktualnie_pobierana: device_class: energy friendly_name: "Energia czynna aktualnie pobierana" value_template: >- {{ (states('sensor.electricity_meter_power_active_phase_1')|float + states('sensor.electricity_meter_power_active_phase_2')|float + states('sensor.electricity_meter_power_active_phase_3')|float) | round(0) }} unit_of_measurement: "W"
Poprawność takich konstrukcji możesz sprawdzić w Narzędziach deweloperskich --> szablony , wklejasz swoją konstrukcję w szablon i jak wynik jest ok to potem możesz użyć w template, możesz na żywo tutaj edytować
{{ (states('sensor.electricity_meter_power_active_phase_1')|float + states('sensor.electricity_meter_power_active_phase_2')|float + states('sensor.electricity_meter_power_active_phase_3')|float) | round(0) }}
PS. Ja używam w configuration.yaml include więc mój kod jest jak podałem wyżej, ale jeśli nie masz odnośnika w yaml do sensor (!include) to robisz ten wpis w configuration.yaml
sensor: - platform: template sensors: energia_czynna_aktualnie_pobierana: friendly_name: "Energia czynna aktualnie pobierana" device_class: energy value_template: >- {{ (states('sensor.electricity_meter_power_active_phase_1')|float + states('sensor.electricity_meter_power_active_phase_2')|float + states('sensor.electricity_meter_power_active_phase_3')|float) | round(0) }} unit_of_measurement: "W"
Dzięki za pomoc.
Napisałem tak jak mi to super wytłumaczyłeś. Żadnych błędów pliku configuration.yaml HA nie wyrzuca. Tylko mam jeszcze jedno pytanie: co muszę zrobić aby ta nowa encja gdziekolwiek się pojawiła (np. postawiała się na liście w automatyzacjach)?
co muszę zrobić aby ta nowa encja gdziekolwiek się pojawiła
Nic nie musisz robić, (oprócz uruchom ponownie HA). Encję zobaczysz np. w NARZĘDZIA DEWOLOPERSKIE --> STANY
Albo dodajesz nową kartę np. SENSOR i masz 🙂
Odnoszę wrażenie że mój Home Assistant to jakaś zupełnie inna wersja niż Twoja.
Home Assistant 2022.10.5
Supervisor 2022.10.0
Operating System 9.2
Interfejs użytkownika: 20221010.0 - latest
W szablonie definicja nie wyrzuca żadnych błędów tylko podlicza mi wartość całkowitą mocy z 3 faz
Wpisałem to do pliku configuration.yaml
Niestety mam jednak informację o błędach:
Invalid config for [sensor.template]: expected dictionary for dictionary value @ data['sensors']. Got None. (See ?, line ?). Integration error: Całkowita_moc_czynna - Integration 'Całkowita_moc_czynna' not found.
@marti Te wcięcia (spacje) w yaml mają znaczenie , zobacz jak jest w kodzie wyżej. (Wyrzuć to co masz i skopiuj i wklej jeszcze raz (albo przesuń na swoje miejsce --> Calkowita_moc_czynna ) potem "zapisz" , potem "sprawdź konfigurację" i jak jest ok, to "uruchom ponownie".
OK, nowa encja pojawiła się w zakładce Stany.
Dziękuję za pomoc 🙂
Dlaczego nie mam jej dostępnej na liście w automatyzacjach - chciałbym napisać na jej podstawie, że jeśli wzrośnie powyżej 8000W to będzie powiadomienie
WIELKIE DZIĘKI!!! 😊
a czy można teraz ten sensor - 'energia_czynna_aktualnie_pobierana' jakoś pokazać w dashboardzie Energy ?
- ja taki sensor utworzyłem za pomocą zakładki "pomocnicy" (helpers) typ 'Połączenie kilku sensorów' ... mój sensor (pomocnik) pokazuje moc i wykres w czasie ...ale nie potrafię jego danych umieścić na dashboardzie ENERGY
- edycja dashboardu Energy nie pokazuje w liście wyboru tego sensora 🙁
nie potrafię jego danych umieścić na dashboardzie ENERGY
Nic dziwnego, nie umieścisz go w dashbordzie Energy bo należy do klasy POWER.
W ENERGY ma mieć "device_class" i "unit_of_measurement"
- energy: w jednostkach Wh, kWh, MWh, MJ, lub GJ
- water: w jednostkach L, gal, m³, ft³, lub CCF
- gas: w jednostkach m³, ft³ lub CCF
oraz "state_class: total_increasing lub total
P.S.1 Utwórz za pomocą pomocnika korzystając z całki nowy czujnik (klasy "energy" kWh) i on bedzie dostępny do dodania w dashbord ENERGY.
https://www.home-assistant.io/integrations/integration/
P.S.2 Jk używasz MEW-01 masz przecież gotowce w postaci encji
A ja sie tyle głowiłem, zmieniałem device_class i inne w customize.yaml itp ... a tutaj wystarczy zadać pytanie i super odpowiedź !
dzięki !. działa 🙂
...ale przy okazji szukania uczę sie HA 🙂