Kwestia dotyczy ostatnio modnego tematu - mamy od HA 2021.08 dostępny panel “Energia”, więc warto go wykorzystać maksymalnie.
A wspomniany w tytule projekt właśnie wchodzi w “dojrzałą” fazę rozwoju.
Może zacznę od wątku na oficjalnym forum HA (założonego przez autora tego komponentu niestandardowego):
Konfiguracja wprawdzie wymaga “kilometrowych” wpisów w configuration.yaml (lub poprzez include w jakimś innym pliku), więc warto poczytać dokumentację
Oto króciutki przykład na wykorzystanie wraz z systemową integracją integration
czyli całką Riemanna co umożliwi nie tylko odczyt mocy, ale i pobranej energii - tyle potrzeba by mieć wskazania z jednej żarówki lub tzw. lampy zintegrowanej, czyli konstrukcji nierozbieralnej bez wymiennych żarówek (o ile jej pomiary znajdują się już w bazie LUT)
sensor:
## biurko
- platform: powercalc
entity_id: light.lampka_biurkowa_biala
#### fragment poniżej nie jest już potrzebny (dlatego go zakomentowałem)
# - platform: integration
# source: sensor.lampka_biurkowa_biala_power
# name: lampka_biurkowa_biala_energy_spent
# device_class: energy
# state_class: total_increasing
# unit_prefix: k
# round: 2
Obecnie wpisy konfiguracyjne tworzące encję pobranej energii można wygenerować półautomatycznie (opis w dokumentacji), ale wkrótce wykorzystanie integracji całki Riemanna ma nie być konieczne, więc będzie nieco prościej.
Edit: od wersji 0.4.0 encje zużytej energii są domyślnie generowane automatycznie. (na podstawie wpisów konfiguracyjnych integracji powercalc - w przykładzie powyżej to 2 linijki, które są wymaganym minimum, oczywiście w instalacjach bez mostka Hue lub w innych technologiach niż Zigbee trzeba jeszcze zdefiniować modele, czego nie ma w przykładzie powyżej, ale jest w dość dobrej dokumentacji).
Komponent na obecnym etapie rozwoju działa najlepiej (tzn.konfiguracja jest wtedy najprostsza), gdy używamy integracji z mostkiem Philips Hue do sterowania oświetleniem, ale można go używać do zupełnie innych rozwiązań (pierwotnie był adresowany do użytkowników Hue, ale się rozrósł i jest obecnie bardzo elastyczny i naprawdę dość uniwersalny).
W trybach liniowym i stałej mocy (również dostępna jest opcja zależności od stanu innej encji np. media_player
) daje się wykorzystać do praktycznie każdego typowego domowego odbiornika energii (którego realny pobór mocy znamy lub sobie wcześniej zmierzymy za pomocą miernika lub smart-plug’a).
W obecnej chwili (od paru miesięcy, ale tego się nie da stworzyć z dnia na dzień, bo pomiary są po prostu czasochłonne) powstaje baza plików LUT (lookup table) zawierających wartości mocy w zależności od jasności, nasycenia i koloru żarówek i lamp zintegrowanych (które z zasady nie raportują własnego poboru mocy) i po prostu potrzeba współtwórców tej bazy.
Więc zapraszam osoby dysponujące odpowiednią wiedzą i sprzętem do wsparcia projektu własnym wkładem pracy (aby nie było, że się obijam - w obecnej chwili koło 1/3 pomiarów przygotowałem osobiście, choć “dla większości niestety” używam głównie mało popularne modele).
Na dziś baza LUT zawiera 15 modeli żarówek/lamp Philips/Signify, 7 Ikea i kilka innych producentów (innr, Sonoff i Belkin konkretnie łącznie 4 modele), w planach jest uzupełnienie bazy modeli również innych firm, oczywiście na miarę możliwości użytkowników, niektóre najświeższe pomiary nie są zatwierdzone, z powodu zbyt “mało gęstej” siatki pomiarów, więc konieczne jest ustalenie nieco ściślejszych reguł dotyczących opomiarowania by zachować możliwie wysoką jakość bazy
(sam mam w przygotowaniu jeszcze przynajmniej 2 modele Ikea, 1 Muller-Licht, 1 Ledvance i 1 Osram oraz być może więcej jeśli uda mi się pożyczyć żarówki Zigbee od znajomych).
Gotowy skrypt autora integracji umożliwia pomiary za pomocą Shelly Plug lub Shelly Plug S (oraz zapewne Shelly 1PM) z użyciem mostka Philips Hue (to załatwia w miarę automatyczne generowanie poprawnych nazw), możliwe są i inne rozwiązania, ale wtedy potrzebna jest wiedza programistyczna (której mi niestety brakuje), jest szansa, że inni autorzy podzielą się swoimi skryptami (widziałem już raporty czego używają programistycznie mądrzejsi i to całkiem różny sprzęt, w tym “mignął” mi np. tp-link HS110, który zdaje się ma całkiem przyzwoity układ pomiarowy).
Shelly Plug S sam wcześniej pomierzyłem z wykorzystaniem przyrządu co do którego mam jako takie zaufanie (więc wiem, że losowo wybrany egzemplarz daje wyniki o w miarę przyzwoitej dokładności, niestety jest pewien problem z Shelly - drobne niedoróbki dotyczące prawdopodobnie firmware lub API, ponieważ korzystając z istniejącego API można uzyskać zaledwie jeden pomiar na około 5 sekund, więc skrypt nie może pracować zbyt szybko).
Niestety w trakcie pomiarów “wypłynęła” dość istotna niedoróbka firmware Shelly - wskazania poniżej około 0,5W są raportowane jako zero (po dłuższym dociekaniu i kolejnej porcji pomiaru wyszło, że ta granica leży w okolicy 0,4W), jak podejrzewam jest to sztucznie ustawiony filtr by ukrywać pewne niedokładności pomiaru w okolicach rzeczywistego zera - a konkretniej moim zdaniem chodzi o likwidację niezerowych wskazań przy całkowitym braku obciążenia (podejrzewam, że taki mechanizm mogą też stosować inni wytwórcy smart-plugów, jako że sama metoda pomiaru dla bardzo małych obciążeń nie jest zbyt pewna ani dokładna).
Nowe wersje skryptów pomiarowych mają umożliwić równoczesne sterowanie grupą żarówek (używając 2 lub 3 żarówek tego samego typu można podnieść sumaryczny pobór mocy powyżej tej granicy nawet w przypadku pracy w standby, gdzie pomiar dla większości żarówek i lamp Zigbee nie jest możliwy, bo zdecydowana większość tego co jest na rynku w tym trybie pobiera w okolicach 0,4W lub nawet znacznie mniej - ostatnie generacje to okolice 0,2W).
Na obrazku poniżej podgląd jak się sprawy mają podczas pomiaru i ile może trwać pomiar jednej żarówki białej z możliwością regulacji odcienia bieli (dla żarówek/lamp w pełni kolorowych trzeba wykonać 2 pomiary i ten drugi dla trybu HS jest wielokrotnie dłuższy…) - na obrazku Ledvance Tibea 2000lm w trakcie pomiarów a właściwie tuż- kilkanaście minut- przed finiszem (jest to lampa “pół-zintegrowana”, czyli dostępna w postaci kompletnego plafonu, lub samej ”żarówki" o wybitnie nietypowym kształcie, ale możliwym do wkręcenia do niektórych żyrandoli z półotwartym kloszem)
Tym razem “w obróbce” tj. w trakcie pomiaru LCT001 (RGB+TW) - jak widać pomiar trybu HS (tak naprawdę to HSB) trwa około 2 doby nawet korzystając z dość zoptymalizowanych ustawień skryptu (a do kompletu potrzebny jest jeszcze color_temp, który trwa kilka godzin)
to co widać na powyższych obrazkach to wartości mocy podebrane z integracji Shelly w HA (ale skrypt w wersji jaką używam odwołuje się bezpośrednio do API Shelly, to powyżej można traktować jedynie jako podgląd czy wszystko przebiega poprawnie)
Miałem wrzucić tylko jeden obrazek poglądowy
Ale tak naprawdę dopiero ta integracja dała mi pogląd na to jak mam nieefektywne oświetlenie (stąd pomysł na mierzoną powyżej żarówko-lampę Tibea, chociaż jak wiadomo oszczędności na oświetleniu można osiągnąć jednie pozorne - wydając “wiaderko” kasy zaoszczędzę jakieś 2W, a może i najprawdopodobniej nic - ta zmiana zasadniczo ma na celu redukcję oślepiania) - oto przykłady różnych scen oświetleniowych
- standard przy tej scenie jest po prostu normalnie jasno do większości normalnych czynności (z pewnych względów - patrz niżej, mam celowy nadmiar mocy zainstalowanych żarówek)
- “kino” świecą przygaszone tylko 2 żarówki, reszta wyłączona, czyli… w standby
- “laboratorium” (wszystko na maksymalnej jasności do pracy precyzyjnej)
ewentualnie można ciekawiej to wyświetlić używając nowych opcji kart wskaźnika (gauge)
kod z edytora kart tego co tu widać (dostosowany pod moje żarówki)
type: grid
cards:
- type: vertical-stack
cards:
- type: light
entity: light.zyrandol_tv_1
- type: gauge
entity: sensor.zyrandol_tv_1_power
min: 0
max: 9
needle: true
severity:
green: 0
yellow: 1
red: 8
- type: vertical-stack
cards:
- type: light
entity: light.zyrandol_tv_2
- type: gauge
entity: sensor.zyrandol_tv_2_power
min: 0
max: 9
needle: true
severity:
green: 0
yellow: 1
red: 8
- type: vertical-stack
cards:
- type: light
entity: light.zyrandol_tv_3
- type: gauge
entity: sensor.zyrandol_tv_3_power
min: 0
max: 9
needle: true
severity:
green: 0
yellow: 1
red: 8
- type: vertical-stack
cards:
- type: light
entity: light.zyrandol_tv_4
- type: gauge
entity: sensor.zyrandol_tv_4_power
min: 0
max: 9
needle: true
severity:
green: 0
yellow: 1
red: 8
- type: vertical-stack
cards:
- type: light
entity: light.zyrandol_tv_5
- type: gauge
entity: sensor.zyrandol_tv_5_power
min: 0
max: 9
needle: true
severity:
green: 0
yellow: 1
red: 8
- type: vertical-stack
cards:
- type: light
entity: light.zyrandol_tv_k
- type: gauge
entity: sensor.zyrandol_tv_k_power
min: 0
max: 10
needle: true
severity:
green: 0
yellow: 1
red: 9