modified: README.md

renamed:    .dockerignore -> docker/.dockerignore
	modified:   repository.yaml
	modified:   src.dev/README.md
	modified:   src.dev/api.py
	modified:   src.dev/config.yaml
	new file:   src.dev/img/addon.png
	new file:   src.dev/img/grafana_01.png
	new file:   src.dev/img/grafana_02.png
	new file:   src.dev/img/grafana_03.png
	new file:   src.dev/img/grafana_04.png
	new file:   src.dev/img/grafana_05.png
	new file:   src.dev/img/grafana_06.png
	new file:   src.dev/img/grafana_07.png
	modified:   src.dev/rund.sh
	modified:   src/README.md
	new file:   src/img/addon.png
	new file:   src/img/grafana_01.png
	new file:   src/img/grafana_02.png
	new file:   src/img/grafana_03.png
	new file:   src/img/grafana_04.png
	new file:   src/img/grafana_05.png
	new file:   src/img/grafana_06.png
	new file:   src/img/grafana_07.png
This commit is contained in:
TC
2023-11-02 21:54:48 +01:00
parent 5a1ce80331
commit b53db72f2b
24 changed files with 274 additions and 133 deletions

126
README.md
View File

@@ -13,131 +13,43 @@
![i386-shield] ![i386-shield]
[![Postaw kawę][kawa-logo]][kawa] <a href="https://buycoffee.to/tcich"><img src="img/logo-buycoffee-wide.jpg" width=200 alt="Postaw kawę"></a>
[kawa-logo]: https://github.com/tcich/ha-addon-energa-meter/blob/main/img/buycoffeeto-btn-primary-outline.png
[kawa]: https://buycoffee.to/tcich
## O dodatku ## 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 ### Wersja podstawowa
1) Dodaj repozytorium do repozytoriów dodatków swojego HA za pomocą poniższego przycisku Jest to głowna wersja. Więcej informacji [tutaj](src/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)
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 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 ## 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 docker run -p 8000:8000 -e ENERGA_USERNAME=LoginEnerga -e ENERGA_PASSWORD=HasloEnerga tomcic/energa-meter:v0.1.0
``` ```
## Konfiguracja sensorów Wymagane parametry:
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")
* 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 ## Znane problemy
Czasami w aplikacji Mój Licznik włącza się captha (jeżeli masz dużo danych historycznych lub wielokrotnie instalujesz dodatek) * 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ą. * Dane wytwórcy (energia oddana oraz bilans) nie są dostępne, prace w tym zakresie trwają.
## Uwagi ## Uwagi
Dostęp do aktualnej wersji API nie jest zabezpieczony tokenem Dostęp do aktualnej wersji API nie jest zabezpieczony tokenem
Każde przeinstalowanie dodatku pobiera ponownie dane z aplikacji Mój Licznik 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
<a href="https://buycoffee.to/tcich"><img src="img/logo-buycoffee-wide.jpg" width=200 alt="Postaw kawę"></a>

View File

@@ -1,4 +1,7 @@
--- ---
- name: EnergaMeter - name: EnergaMeter
url: https://github.com/tcich/ha-addon-energa-meter url: https://github.com/tcich/ha-addon-energa-meter/src
maintainer: TCICH <https://github.com/tcich/>
- name: EnergaMeter (dev)
url: https://github.com/tcich/ha-addon-energa-meter/src.dev
maintainer: TCICH <https://github.com/tcich/> maintainer: TCICH <https://github.com/tcich/>

View File

@@ -1,6 +1,6 @@
[![ha_badge](https://img.shields.io/badge/Home%20Assistant-Add%20On-blue.svg)](https://www.home-assistant.io/) [![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 # [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 [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg
[amd64-shield]: https://img.shields.io/badge/amd64-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 [armv6-shield]: https://img.shields.io/badge/armv6-yes-green.svg
@@ -12,24 +12,135 @@
![armv7-shield] ![armv7-shield]
![i386-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
<a href="https://buycoffee.to/tcich"><img src="../img/logo-buycoffee-wide.jpg" width=200 alt="Postaw kawę"></a>
## O dodatku ## 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: ### Wersja dev
* Obsługa liczników jako sensory 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ć.
* Wykresy w Grafana
## Instalacja ## 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.
<img src="img/addon.png" style="width: 80%;" alt="Nazwa hosta">
<img src="img/grafana_01.png" style="width: 80%;" alt="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
<img src="img/grafana_06.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_02.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_03.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_04.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_05.png" style="width: 80%;" alt="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
<a href="https://buycoffee.to/tcich"><img src="../img/logo-buycoffee-wide.jpg" width=200 alt="Postaw kawę"></a>

View File

@@ -202,7 +202,7 @@ def charts():
start_date = request.args.get('start_date', start_time_unix*1000) start_date = request.args.get('start_date', start_time_unix*1000)
end_date = request.args.get('end_date', current_time_unix*1000) end_date = request.args.get('end_date', current_time_unix*1000)
mp = request.args.get('mp', None) 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) zone = request.args.get('zone', None)
query = MainChartTable.select().where((MainChartTable.tm >= int(start_date)) & (MainChartTable.tm <= int(end_date))) query = MainChartTable.select().where((MainChartTable.tm >= int(start_date)) & (MainChartTable.tm <= int(end_date)))
@@ -210,8 +210,8 @@ def charts():
if mp: if mp:
query = query.where(MainChartTable.mp == mp) query = query.where(MainChartTable.mp == mp)
if meter_type: if meter_type_url:
query = query.where(MainChartTable.meter_type == meter_type) query = query.where(MainChartTable.meter_type_url == meter_type_url)
if zone: if zone:
query = query.where(MainChartTable.zone == zone) query = query.where(MainChartTable.zone == zone)

View File

@@ -1,7 +1,7 @@
name: "Energa meter" name: "Energa meter (dev)"
description: "Energa meter addon" description: "Energa meter addon"
version: "0.1.3" version: "0.1.3"
slug: "energa_meter" slug: "energa_meter_dev"
init: false init: false
options: options:
energa_username: "" energa_username: ""

BIN
src.dev/img/addon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
src.dev/img/grafana_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
src.dev/img/grafana_02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
src.dev/img/grafana_03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
src.dev/img/grafana_04.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
src.dev/img/grafana_05.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
src.dev/img/grafana_06.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
src.dev/img/grafana_07.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@@ -2,6 +2,7 @@
USERNAME="$ENERGA_USERNAME" USERNAME="$ENERGA_USERNAME"
PASSWORD="$ENERGA_PASSWORD" PASSWORD="$ENERGA_PASSWORD"
LOG_LEVEL="$LOG_LEVEL"
if [ -z "$USERNAME" ]; then if [ -z "$USERNAME" ]; then
echo "Błąd: Zmienna ENERGA_USERNAME jest pusta. Proszę podać wartość." echo "Błąd: Zmienna ENERGA_USERNAME jest pusta. Proszę podać wartość."

View File

@@ -1,6 +1,6 @@
[![ha_badge](https://img.shields.io/badge/Home%20Assistant-Add%20On-blue.svg)](https://www.home-assistant.io/) [![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 # [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 [aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg
[amd64-shield]: https://img.shields.io/badge/amd64-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 [armv6-shield]: https://img.shields.io/badge/armv6-yes-green.svg
@@ -12,22 +12,136 @@
![armv7-shield] ![armv7-shield]
![i386-shield] ![i386-shield]
**Podoba Ci się?** [Postaw kawę.](https://buycoffee.to/tcich) <a href="https://buycoffee.to/tcich"><img src="../img/logo-buycoffee-wide.jpg" width=200 alt="Postaw kawę"></a>
## O dodatku ## 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.
## Możliwości:
* Obsługa liczników jako sensory
* Wykresy w Grafana
## Instalacja ## 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.
<img src="img/addon.png" style="width: 80%;" alt="Nazwa hosta">
<img src="img/grafana_01.png" style="width: 80%;" alt="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
<img src="img/grafana_06.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_02.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_03.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_04.png" style="width: 80%;" alt="Grafana">
<img src="img/grafana_05.png" style="width: 80%;" alt="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
<a href="https://buycoffee.to/tcich"><img src="../img/logo-buycoffee-wide.jpg" width=200 alt="Postaw kawę"></a>
**Podoba Ci się?** [Postaw kawę.](https://buycoffee.to/tcich)

BIN
src/img/addon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
src/img/grafana_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
src/img/grafana_02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
src/img/grafana_03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
src/img/grafana_04.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
src/img/grafana_05.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
src/img/grafana_06.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
src/img/grafana_07.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB