diff --git a/README.md b/README.md index 63f8c08..7009cd9 100644 --- a/README.md +++ b/README.md @@ -13,131 +13,43 @@ ![i386-shield] -[![Postaw kawę][kawa-logo]][kawa] - -[kawa-logo]: https://github.com/tcich/ha-addon-energa-meter/blob/main/img/buycoffeeto-btn-primary-outline.png -[kawa]: https://buycoffee.to/tcich - +Postaw kawę ## O dodatku -To jest dodatek dla [Home Assistant](https://www.home-assistant.io/). Instalacja dodatku [Energa meter](https://github.com/tcich/ha-addon-energa-meter) umożliwia cykliczne pobieranie danych z aplikacji [Mój Licznik - Energa](https://mojlicznik.energa-operator.pl) udostępnianej klientom Operatora energetycznego Energa +To jest dodatek dla [Home Assistant](https://www.home-assistant.io/). Instalacja dodatku [Energa meter](https://github.com/tcich/ha-addon-energa-meter) umożliwia cykliczne pobieranie danych z aplikacji [Mój Licznik - Energa](https://mojlicznik.energa-operator.pl) udostępnianej klientom Operatora energetycznego Energa. +* Udostępnia dane o aktualnym stanie licznika dla sensorów +* Udostępnia dane historyczne dla wykresów -## Instalacja -1) Dodaj repozytorium do repozytoriów dodatków swojego HA za pomocą poniższego przycisku - -[![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Ftcich%2Fha-addon-energa-meter) - -Lub zainstaluj manualnie z Ustawienia -> Dodatki -> Sklep z dodatkami -> ⁞ (Menu) -> Repozytoria -> Wpisz `https://github.com/tcich/hassio-mojlicznik` -> Dodaj. Następnie w ⁞ (Menu) -> Sprawdź aktualizacje (może być konieczne przeładowanie strony) - -2) Odszukaj dodatek na liście dodatków w sklepie z dodatkami i zainstaluj go. - -3) W zakładce konfiguracja uzupełnij nazwę użytkownika oraz hasło do aplikacji Mój Licznik, jeżeli potrzebujesz to zmień udostępniany port dla API - -4) Przejdź do zakładki informacje i uruchom dodatek (pierwsze uruchomienie może trwać kilkanaście minut), jeżeli w logu pojawi się informacja *INFO: Czekam...* oznacza to, że pierwsze inicjalne pobieranie danych zostało ukończone. +### Wersja podstawowa +Jest to głowna wersja. Więcej informacji [tutaj](src/README.md) +### Wersja dev +Wersja dev jest wersją developeską, nie należy jej używać w produkcyjnej wersji HA, może powodować różne problemy, może nie działać. Więcej informacji [tutaj](src.dev/README.md) ## Wersja Docker +Aby ruchomić wersję docker należy skorzystać z polecenia poniżej + ``` docker run -p 8000:8000 -e ENERGA_USERNAME=LoginEnerga -e ENERGA_PASSWORD=HasloEnerga tomcic/energa-meter:v0.1.0 ``` -## Konfiguracja sensorów -1) Ustal ID Twoich liczników, w tym celu przejdź do adresu Twojego HA na porcie 8000 lub innym jeźeli zmieniłeś go w konfiguracji, np. http://192.168.1.10:8000 wyświetli się w formacie json lista dostępnych liczników, możesz również odszukać ID w logu: *Licznik 12335379 istnieje w systemie* -2) W pliku configuration.yaml w HA dodaj następującą konfigurację np.: - -``` -sensor: - - platform: rest - resource: http://localhost:8000/meters/12335379 - name: "Energia aktualna T1" - unique_id: 12335379_sumz1 - unit_of_measurement: "kWh" - value_template: "{{ value_json.meter.zone1.meter | round(2) }}" - - platform: rest - resource: http://localhost:8000/meters/12335379 - name: "Dzienny odczyt licznika" - unique_id: 12335379_meterz1 - unit_of_measurement: "kWh" - value_template: "{{ value_json.meter.zone1.sum | round(2) }}" - - platform: rest - resource: http://localhost:8000/meters/12335379 - name: "Energia aktualna T2" - unique_id: 12335379_sumz2 - unit_of_measurement: "kWh" - value_template: "{{ value_json.meter.zone2.meter | round(2) }}" - - platform: rest - resource: http://localhost:8000/meters/12335379 - name: "Dzienny odczyt licznika" - unique_id: 12335379_meterz2 - unit_of_measurement: "kWh" - value_template: "{{ value_json.meter.zone2.sum | round(2) }}" -``` - -# Opis konfiguracji -| element konfiguracji | Opis | -|-------------------|-------------------| -| resource: http://localhost:8000/meters/12335379 | Adres API z danymi konkretnego licznika, podajemy nazwę instancji dockera (**Nazwa hosta** z okna dodatku) lub localhost| -| name: "Energia aktualna" | Nazwa sensora, wpisz dowolną| -| unique_id | Unikalny ID sensora, nie mogą być w systemie dwa sensory z tym samym ID| -| unit_of_measurement: "kWh" | Jednostka miary, nie zmieniaj chyba, że wiesz co robisz| -| value_template: "{{ value_json.meter.zone2.meter \| round(2) }}" | Zaokrąglony do dwóch miejsc po przecinku stan sensora| - -# Opis konfiguracji cd -| value_template | Opis | -|-------------------|-------------------| -| value_json.meter.zone1.sum | Suma licznika oraz dziennego zużycia dla tartfy1 (dostępne są: zone1, zone2, zone3)| -| value_json.meter.zone2.meter | Stan licznika dziennego dla taryfy1 (dostępne są: zone1, zone2, zone3)| - - -## API dla wykresów, np. Grafana -Aby pobrać dane z API w formacie JSON należy użyć adresu http://home_assistant:8000/charts/12729?start_date=1695332400129&end_date=1697924583285 - -gdzie: -* 12729 - jest to ID licznika -* start_date - początek okresu w milisekundach wg. standardu EPOCH (timestamp) -* end_date - koniec okresu w milisekundach wg. standardu EPOCH (timestamp) - -## Jak dodać wykres do Grafana -### Źródło danych -1) Dodajemy źródło danych Home -> Data sources - Add new datasources: Wyszukujemy JSON API (jeżeli nie ma to musimy dodać) -2) NAME: ENERGA (1) -3) URL: http://twoj_addon:8000 (2) -4) Klikamy Save&test (3) -5) Uwaga: Jeżeli Grafana jest addonem w HA użyj właściwej nazwy hosta dostępnej w docker. - -![Addon](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/addon.png "Nazwa hosta") - -![Żródło danych](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/grafana_01.png "Grafana źródło danych") - -### Dashboard -1) Przechodzimy do Dashboards -2) Klikamy New -> New dashboard -> Add visualization -3) Wskazujemy Data source: ENERGA -4) W **Path** wpisujemy: GET: /charts/12335379 (id Twojego licznika) -5) W **Fields** wpisujemy \$.charts\[\*\].czas typu Time oraz $.charts[*].value typu number z aliasem kWh -5) W **Params** wpisujemy Key: start_date Value: $__from -6) W **Params** wpisujemy Key: end_date Value: $__to - -![Grafana path](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/grafana_06.png "Grafana") - -![Grafana path](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/grafana_02.png "Grafana") - -![Grafana Params](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/grafana_03.png "Grafana") - -![Grafana Params](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/grafana_04.png "Grafana") - -![Grafana Params](https://github.com/tcich/ha-addon-energa-meter/blob/main/img/grafana_05.png "Grafana") +Wymagane parametry: +* ENERGA_USERNAME - nazwa użytkownika w aplikacji Energa Mój licznik +* ENERGA_PASSWORD - hasło użytkownika w aplikacji Energa Mój licznik ## Znane problemy -Czasami w aplikacji Mój Licznik włącza się captha (jeżeli masz dużo danych historycznych lub wielokrotnie instalujesz dodatek) -Dane wytwórcy (energia oddana oraz bilans) nie są dostępne, prace w tym zakresie trwają. +* Czasami w aplikacji Mój Licznik włącza się captha (jeżeli masz dużo danych historycznych lub wielokrotnie instalujesz dodatek) +* Dane wytwórcy (energia oddana oraz bilans) nie są dostępne, prace w tym zakresie trwają. ## Uwagi Dostęp do aktualnej wersji API nie jest zabezpieczony tokenem Każde przeinstalowanie dodatku pobiera ponownie dane z aplikacji Mój Licznik -[![Postaw kawę][kawa-logo]][kawa] +## Uwagi +Błędy można zgłaszać przez https://github.com/tcich/ha-addon-energa-meter/issues + +Postaw kawę diff --git a/.dockerignore b/docker/.dockerignore similarity index 100% rename from .dockerignore rename to docker/.dockerignore diff --git a/repository.yaml b/repository.yaml index 98bd61a..715d7cb 100644 --- a/repository.yaml +++ b/repository.yaml @@ -1,4 +1,7 @@ --- - name: EnergaMeter - url: https://github.com/tcich/ha-addon-energa-meter + url: https://github.com/tcich/ha-addon-energa-meter/src + maintainer: TCICH +- name: EnergaMeter (dev) + url: https://github.com/tcich/ha-addon-energa-meter/src.dev maintainer: TCICH diff --git a/src.dev/README.md b/src.dev/README.md index ff503de..25fe7b3 100644 --- a/src.dev/README.md +++ b/src.dev/README.md @@ -1,6 +1,6 @@ [![ha_badge](https://img.shields.io/badge/Home%20Assistant-Add%20On-blue.svg)](https://www.home-assistant.io/) # [Energa meter](https://github.com/tcich/ha-addon-energa-meter) Home Assistant add-on - +# Wersja dev [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [armv6-shield]: https://img.shields.io/badge/armv6-yes-green.svg @@ -12,24 +12,135 @@ ![armv7-shield] ![i386-shield] -**Podoba Ci się?** [Postaw kawę.](https://buycoffee.to/tcich) +[kawa-logo]: https://github.com/tcich/ha-addon-energa-meter/blob/main/img/buycoffeeto-btn-primary-outline.png +[kawa]: https://buycoffee.to/tcich + +Postaw kawę ## O dodatku -To jest dodatek dla [Home Assistant](https://www.home-assistant.io/). Instalacja dodatku [Energa meter](https://github.com/tcich/ha-addon-energa-meter) umożliwia cykliczne pobieranie danych z aplikacji [Mój Licznik - Energa](https://mojlicznik.energa-operator.pl) udostępnianej klientom Operatora energetycznego Energa, pobierane są zarówno aktualne stany liczników jak i dane historyczne. Dzieki temu możliwe jest generowanie wykresów oraz analiza danych z użyciem zaawansowanych narzędzi, np. Grafana +To jest dodatek dla [Home Assistant](https://www.home-assistant.io/). Instalacja dodatku [Energa meter](https://github.com/tcich/ha-addon-energa-meter) umożliwia cykliczne pobieranie danych z aplikacji [Mój Licznik - Energa](https://mojlicznik.energa-operator.pl) udostępnianej klientom Operatora energetycznego Energa. -## Możliwości: -* Obsługa liczników jako sensory -* Wykresy w Grafana +### Wersja dev +Wersja dev jest wersją developeską, nie należy jej używać w produkcyjnej wersji HA, może powodować różne problemy, może nie działać. ## Instalacja +1) Dodaj repozytorium do repozytoriów dodatków swojego HA za pomocą poniższego przycisku -Instrukcja instalacji jest dostępna pod adresem: [Instrukcja konfiguracji](https://github.com/tcich/ha-addon-energa-meter/blob/main/README.md) +[![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Ftcich%2Fha-addon-energa-meter) -## Motywacja +Lub zainstaluj manualnie z Ustawienia -> Dodatki -> Sklep z dodatkami -> ⁞ (Menu) -> Repozytoria -> Wpisz `https://github.com/tcich/hassio-mojlicznik` -> Dodaj. Następnie w ⁞ (Menu) -> Sprawdź aktualizacje (może być konieczne przeładowanie strony) -**Podoba Ci się?** [Postaw kawę.](https://buycoffee.to/tcich) +2) Odszukaj dodatek na liście dodatków w sklepie z dodatkami i zainstaluj go. + +3) W zakładce konfiguracja uzupełnij nazwę użytkownika oraz hasło do aplikacji Mój Licznik, jeżeli potrzebujesz to zmień udostępniany port dla API + +4) Przejdź do zakładki informacje i uruchom dodatek (pierwsze uruchomienie może trwać kilkanaście minut), jeżeli w logu pojawi się informacja *INFO: Czekam...* oznacza to, że pierwsze inicjalne pobieranie danych zostało ukończone. +## Wersja Docker +Aby ruchomić wersję docker należy skorzystać z polecenia poniżej + +``` +docker run -p 8000:8000 -e ENERGA_USERNAME=LoginEnerga -e ENERGA_PASSWORD=HasloEnerga tomcic/energa-meter:v0.1.0 +``` + +Wymagane parametry: + +* ENERGA_USERNAME - nazwa użytkownika w aplikacji Energa Mój licznik +* ENERGA_PASSWORD - hasło użytkownika w aplikacji Energa Mój licznik + + +## Konfiguracja sensorów +Do HA możesz dodać sensory, które zawierają informacje udostępniane przez API + +Poniższa instrukcja zawiera założenia: +* dodatek jest dostępny pod adresem *localhost* na porcie *8000* +* ID Twojego licznika to *123456789* + +1) Ustal ID Twoich liczników, w tym celu przejdź do adresu Twojego HA na porcie 8000 lub innym jeźeli zmieniłeś go w konfiguracji, np. http://192.168.1.10:8000 wyświetli się w formacie json lista dostępnych liczników. +2) W pliku configuration.yaml w HA dodaj następującą konfigurację np.: + +``` +sensor: + - platform: rest + resource: http://localhost:8000/123456789/A%2B/1 + name: "A+ Taryfa 1" + unique_id: 123456789_apt1 + unit_of_measurement: "kWh" + value_template: "{{ value_json.countner.meter_value | round(2) }}" + - platform: rest + resource: http://localhost:8000/123456789/A%2B/2 + name: "A+ Taryfa 2" + unique_id: 123456789_apt2 + unit_of_measurement: "kWh" + value_template: "{{ value_json.countner.meter_value | round(2) }}" +``` + +### Opis konfiguracji +| element konfiguracji | Opis | +|-------------------|-------------------| +| resource: http://localhost:8000/123456789/A%2B/1 | Adres API z danymi konkretnego licznika, podajemy **localhost** lub nazwę instancji dockera (**Nazwa hosta** z okna dodatku), port, id licznika, rodzaj pomiaru, taryfa| +| name: "A+ Taryfa 1" | Nazwa sensora, wpisz dowolną| +| unique_id | Unikalny ID sensora, nie mogą być w systemie dwa sensory z tym samym ID| +| unit_of_measurement: "kWh" | Jednostka miary, nie zmieniaj chyba, że wiesz co robisz| +| value_template: "{{ value_json.meter.countner.meter_value \| round(2) }}" | Zaokrąglony do dwóch miejsc po przecinku stan sensora| + +## API dla wykresów, np. Grafana +Aby pobrać dane z API w formacie JSON należy użyć adresu http://home_assistant:8000/charts/12729?start_date=1695332400129&end_date=1697924583285&mp=123456789&zone=1 + +### Opis konfiguracji +| element konfiguracji | Opis | +|-------------------|-------------------| +| resource: http://localhost:8000/charts | Adres API z danymi do wykresów, podajemy **localhost** lub nazwę instancji dockera (**Nazwa hosta** z okna dodatku), port, id licznika, rodzaj pomiaru, taryfa| +| start_date | data początkowa danych w formacie epoch (ms), domyślnie czas bieżący | +| end_date | data końcowa danych w formacie epoch (ms), domyślnie czas bieżący - 1 dzień | +| mp | numer licznika | +| meter_type_url | typ licznika (np. A+: A%2B, A-: A- ) | +| zone | numer strefy (np. 1, 2) | + +## Jak dodać wykres do Grafana +### Źródło danych +1) Dodajemy źródło danych Home -> Data sources - Add new datasources: Wyszukujemy JSON API (jeżeli nie ma to musimy dodać) +2) NAME: ENERGA (1) +3) URL: http://twoj_addon:8000 (2) +4) Klikamy Save&test (3) +5) Uwaga: Jeżeli Grafana jest addonem w HA użyj właściwej nazwy hosta dostępnej w docker. + +Nazwa hosta + +Grafana źródło danych + + +### Dashboard +1) Przechodzimy do Dashboards +2) Klikamy New -> New dashboard -> Add visualization +3) Wskazujemy Data source: ENERGA +4) W **Path** wpisujemy: GET: /charts/12335379 (id Twojego licznika) +5) W **Fields** wpisujemy \$.charts\[\*\].czas typu Time oraz $.charts[*].value typu number z aliasem kWh +5) W **Params** wpisujemy Key: start_date Value: $__from +6) W **Params** wpisujemy Key: end_date Value: $__to + +Grafana + +Grafana + +Grafana + +Grafana + +Grafana + + +## Znane problemy +Czasami w aplikacji Mój Licznik włącza się captha (jeżeli masz dużo danych historycznych lub wielokrotnie instalujesz dodatek) +Dane wytwórcy (energia oddana oraz bilans) nie są dostępne, prace w tym zakresie trwają. + +## Uwagi +Dostęp do aktualnej wersji API nie jest zabezpieczony tokenem +Każde przeinstalowanie dodatku pobiera ponownie dane z aplikacji Mój Licznik + +Postaw kawę + diff --git a/src.dev/api.py b/src.dev/api.py index 020d054..51034c2 100644 --- a/src.dev/api.py +++ b/src.dev/api.py @@ -202,7 +202,7 @@ def charts(): start_date = request.args.get('start_date', start_time_unix*1000) end_date = request.args.get('end_date', current_time_unix*1000) mp = request.args.get('mp', None) - meter_type = request.args.get('meter_type', None) + meter_type_url = request.args.get('meter_type_url', None) zone = request.args.get('zone', None) query = MainChartTable.select().where((MainChartTable.tm >= int(start_date)) & (MainChartTable.tm <= int(end_date))) @@ -210,8 +210,8 @@ def charts(): if mp: query = query.where(MainChartTable.mp == mp) - if meter_type: - query = query.where(MainChartTable.meter_type == meter_type) + if meter_type_url: + query = query.where(MainChartTable.meter_type_url == meter_type_url) if zone: query = query.where(MainChartTable.zone == zone) diff --git a/src.dev/config.yaml b/src.dev/config.yaml index db686b4..e5db5ec 100644 --- a/src.dev/config.yaml +++ b/src.dev/config.yaml @@ -1,7 +1,7 @@ -name: "Energa meter" +name: "Energa meter (dev)" description: "Energa meter addon" version: "0.1.3" -slug: "energa_meter" +slug: "energa_meter_dev" init: false options: energa_username: "" diff --git a/src.dev/img/addon.png b/src.dev/img/addon.png new file mode 100644 index 0000000..7daebfe Binary files /dev/null and b/src.dev/img/addon.png differ diff --git a/src.dev/img/grafana_01.png b/src.dev/img/grafana_01.png new file mode 100644 index 0000000..6fbbedb Binary files /dev/null and b/src.dev/img/grafana_01.png differ diff --git a/src.dev/img/grafana_02.png b/src.dev/img/grafana_02.png new file mode 100644 index 0000000..72e64e6 Binary files /dev/null and b/src.dev/img/grafana_02.png differ diff --git a/src.dev/img/grafana_03.png b/src.dev/img/grafana_03.png new file mode 100644 index 0000000..81ca51a Binary files /dev/null and b/src.dev/img/grafana_03.png differ diff --git a/src.dev/img/grafana_04.png b/src.dev/img/grafana_04.png new file mode 100644 index 0000000..1cf2b31 Binary files /dev/null and b/src.dev/img/grafana_04.png differ diff --git a/src.dev/img/grafana_05.png b/src.dev/img/grafana_05.png new file mode 100644 index 0000000..c0819e1 Binary files /dev/null and b/src.dev/img/grafana_05.png differ diff --git a/src.dev/img/grafana_06.png b/src.dev/img/grafana_06.png new file mode 100644 index 0000000..a4a9233 Binary files /dev/null and b/src.dev/img/grafana_06.png differ diff --git a/src.dev/img/grafana_07.png b/src.dev/img/grafana_07.png new file mode 100644 index 0000000..f4ba9ba Binary files /dev/null and b/src.dev/img/grafana_07.png differ diff --git a/src.dev/rund.sh b/src.dev/rund.sh index 721e075..3d0f13f 100644 --- a/src.dev/rund.sh +++ b/src.dev/rund.sh @@ -2,6 +2,7 @@ USERNAME="$ENERGA_USERNAME" PASSWORD="$ENERGA_PASSWORD" +LOG_LEVEL="$LOG_LEVEL" if [ -z "$USERNAME" ]; then echo "Błąd: Zmienna ENERGA_USERNAME jest pusta. Proszę podać wartość." diff --git a/src/README.md b/src/README.md index 28996c2..71d4159 100644 --- a/src/README.md +++ b/src/README.md @@ -1,6 +1,6 @@ [![ha_badge](https://img.shields.io/badge/Home%20Assistant-Add%20On-blue.svg)](https://www.home-assistant.io/) # [Energa meter](https://github.com/tcich/ha-addon-energa-meter) Home Assistant add-on - +# Wersja podstawowa [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg [amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [armv6-shield]: https://img.shields.io/badge/armv6-yes-green.svg @@ -12,22 +12,136 @@ ![armv7-shield] ![i386-shield] -**Podoba Ci się?** [Postaw kawę.](https://buycoffee.to/tcich) - +Postaw kawę ## O dodatku -To jest dodatek dla [Home Assistant](https://www.home-assistant.io/). Instalacja dodatku [Energa meter](https://github.com/tcich/ha-addon-energa-meter) umożliwia cykliczne pobieranie danych z aplikacji [Mój Licznik - Energa](https://mojlicznik.energa-operator.pl) udostępnianej klientom Operatora energetycznego Energa - -## Możliwości: -* Obsługa liczników jako sensory -* Wykresy w Grafana +To jest dodatek dla [Home Assistant](https://www.home-assistant.io/). Instalacja dodatku [Energa meter](https://github.com/tcich/ha-addon-energa-meter) umożliwia cykliczne pobieranie danych z aplikacji [Mój Licznik - Energa](https://mojlicznik.energa-operator.pl) udostępnianej klientom Operatora energetycznego Energa. ## Instalacja +1) Dodaj repozytorium do repozytoriów dodatków swojego HA za pomocą poniższego przycisku -Instrukcja instalacji jest dostępna pod adresem: [Instrukcja konfiguracji](https://github.com/tcich/ha-addon-energa-meter/blob/main/README.md) +[![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Ftcich%2Fha-addon-energa-meter) -## Motywacja +Lub zainstaluj manualnie z Ustawienia -> Dodatki -> Sklep z dodatkami -> ⁞ (Menu) -> Repozytoria -> Wpisz `https://github.com/tcich/hassio-mojlicznik` -> Dodaj. Następnie w ⁞ (Menu) -> Sprawdź aktualizacje (może być konieczne przeładowanie strony) + +2) Odszukaj dodatek na liście dodatków w sklepie z dodatkami i zainstaluj go. + +3) W zakładce konfiguracja uzupełnij nazwę użytkownika oraz hasło do aplikacji Mój Licznik, jeżeli potrzebujesz to zmień udostępniany port dla API + +4) Przejdź do zakładki informacje i uruchom dodatek (pierwsze uruchomienie może trwać kilkanaście minut), jeżeli w logu pojawi się informacja *INFO: Czekam...* oznacza to, że pierwsze inicjalne pobieranie danych zostało ukończone. + + +## Wersja Docker +Aby ruchomić wersję docker należy skorzystać z polecenia poniżej + +``` +docker run -p 8000:8000 -e ENERGA_USERNAME=LoginEnerga -e ENERGA_PASSWORD=HasloEnerga tomcic/energa-meter:v0.1.0 +``` + +Wymagane parametry: + +* ENERGA_USERNAME - nazwa użytkownika w aplikacji Energa Mój licznik +* ENERGA_PASSWORD - hasło użytkownika w aplikacji Energa Mój licznik + + +## Konfiguracja sensorów + + +``` +sensor: + - platform: rest + resource: http://localhost:8000/meters/12335379 + name: "Energia aktualna T1" + unique_id: 12335379_sumz1 + unit_of_measurement: "kWh" + value_template: "{{ value_json.meter.zone1.meter | round(2) }}" + - platform: rest + resource: http://localhost:8000/meters/12335379 + name: "Dzienny odczyt licznika" + unique_id: 12335379_meterz1 + unit_of_measurement: "kWh" + value_template: "{{ value_json.meter.zone1.sum | round(2) }}" + - platform: rest + resource: http://localhost:8000/meters/12335379 + name: "Energia aktualna T2" + unique_id: 12335379_sumz2 + unit_of_measurement: "kWh" + value_template: "{{ value_json.meter.zone2.meter | round(2) }}" + - platform: rest + resource: http://localhost:8000/meters/12335379 + name: "Dzienny odczyt licznika" + unique_id: 12335379_meterz2 + unit_of_measurement: "kWh" + value_template: "{{ value_json.meter.zone2.sum | round(2) }}" +``` + +# Opis konfiguracji +| element konfiguracji | Opis | +|-------------------|-------------------| +| resource: http://localhost:8000/meters/12335379 | Adres API z danymi konkretnego licznika, podajemy nazwę instancji dockera (**Nazwa hosta** z okna dodatku) lub localhost| +| name: "Energia aktualna" | Nazwa sensora, wpisz dowolną| +| unique_id | Unikalny ID sensora, nie mogą być w systemie dwa sensory z tym samym ID| +| unit_of_measurement: "kWh" | Jednostka miary, nie zmieniaj chyba, że wiesz co robisz| +| value_template: "{{ value_json.meter.zone2.meter \| round(2) }}" | Zaokrąglony do dwóch miejsc po przecinku stan sensora| + +# Opis konfiguracji cd +| value_template | Opis | +|-------------------|-------------------| +| value_json.meter.zone1.sum | Suma licznika oraz dziennego zużycia dla tartfy1 (dostępne są: zone1, zone2, zone3)| +| value_json.meter.zone2.meter | Stan licznika dziennego dla taryfy1 (dostępne są: zone1, zone2, zone3)| + + +## API dla wykresów, np. Grafana +Aby pobrać dane z API w formacie JSON należy użyć adresu http://home_assistant:8000/charts/12729?start_date=1695332400129&end_date=1697924583285 + +gdzie: +* 12729 - jest to ID licznika +* start_date - początek okresu w milisekundach wg. standardu EPOCH (timestamp) +* end_date - koniec okresu w milisekundach wg. standardu EPOCH (timestamp) + +## Jak dodać wykres do Grafana +### Źródło danych +1) Dodajemy źródło danych Home -> Data sources - Add new datasources: Wyszukujemy JSON API (jeżeli nie ma to musimy dodać) +2) NAME: ENERGA (1) +3) URL: http://twoj_addon:8000 (2) +4) Klikamy Save&test (3) +5) Uwaga: Jeżeli Grafana jest addonem w HA użyj właściwej nazwy hosta dostępnej w docker. + +Nazwa hosta + +Grafana źródło danych + + +### Dashboard +1) Przechodzimy do Dashboards +2) Klikamy New -> New dashboard -> Add visualization +3) Wskazujemy Data source: ENERGA +4) W **Path** wpisujemy: GET: /charts/12335379 (id Twojego licznika) +5) W **Fields** wpisujemy \$.charts\[\*\].czas typu Time oraz $.charts[*].value typu number z aliasem kWh +5) W **Params** wpisujemy Key: start_date Value: $__from +6) W **Params** wpisujemy Key: end_date Value: $__to + + +Grafana + +Grafana + +Grafana + +Grafana + +Grafana + + +## Znane problemy +Czasami w aplikacji Mój Licznik włącza się captha (jeżeli masz dużo danych historycznych lub wielokrotnie instalujesz dodatek) +Dane wytwórcy (energia oddana oraz bilans) nie są dostępne, prace w tym zakresie trwają. + +## Uwagi +Dostęp do aktualnej wersji API nie jest zabezpieczony tokenem +Każde przeinstalowanie dodatku pobiera ponownie dane z aplikacji Mój Licznik + +Postaw kawę -**Podoba Ci się?** [Postaw kawę.](https://buycoffee.to/tcich) diff --git a/src/img/addon.png b/src/img/addon.png new file mode 100644 index 0000000..7daebfe Binary files /dev/null and b/src/img/addon.png differ diff --git a/src/img/grafana_01.png b/src/img/grafana_01.png new file mode 100644 index 0000000..6fbbedb Binary files /dev/null and b/src/img/grafana_01.png differ diff --git a/src/img/grafana_02.png b/src/img/grafana_02.png new file mode 100644 index 0000000..f17d352 Binary files /dev/null and b/src/img/grafana_02.png differ diff --git a/src/img/grafana_03.png b/src/img/grafana_03.png new file mode 100644 index 0000000..8fbd681 Binary files /dev/null and b/src/img/grafana_03.png differ diff --git a/src/img/grafana_04.png b/src/img/grafana_04.png new file mode 100644 index 0000000..1cf2b31 Binary files /dev/null and b/src/img/grafana_04.png differ diff --git a/src/img/grafana_05.png b/src/img/grafana_05.png new file mode 100644 index 0000000..c0819e1 Binary files /dev/null and b/src/img/grafana_05.png differ diff --git a/src/img/grafana_06.png b/src/img/grafana_06.png new file mode 100644 index 0000000..a0bc00d Binary files /dev/null and b/src/img/grafana_06.png differ diff --git a/src/img/grafana_07.png b/src/img/grafana_07.png new file mode 100644 index 0000000..f4ba9ba Binary files /dev/null and b/src/img/grafana_07.png differ