e-analizer
Aplikacja do analizy zużycia energii elektrycznej na podstawie danych od operatora (Enea). W większości stworzona przy użyciu asystenta AI Gemini.
Główne funkcjonalności
- Wszechstronna Analiza: Obliczaj koszty energii w oparciu o różne taryfy (G11, G12, G12w), symuluj system net-metering lub fizyczny magazyn energii.
- Analiza Rynkowa: Wykorzystaj rzeczywiste, godzinowe ceny rynkowe (RCE) pobierane z API PSE do precyzyjnej analizy finansowej.
- Optymalizacja Magazynu: Oblicz optymalną pojemność magazynu energii w dwóch scenariuszach: dla samowystarczalności oraz dla arbitrażu taryfowego.
- Porównanie Taryf: Automatycznie porównaj koszty dla wszystkich dostępnych taryf, aby znaleźć najkorzystniejszą opcję dla Twojego profilu zużycia.
- Elastyczność i Eksport: Filtruj dane według zakresu dat, eksportuj godzinowe wyniki symulacji oraz dzienne agregaty do plików CSV.
- Integralność Danych: Automatycznie wykrywaj i raportuj brakujące dane godzinowe w analizowanym okresie.
Instalacja
- Upewnij się, że masz zainstalowany menedżer pakietów
piporaz modułvenvdla Twojej wersji Pythona. W systemach bazujących na Debianie/Ubuntu:sudo apt update sudo apt install python3-pip python3-venv
- Skrypt
eanalizer-cliprzy pierwszym uruchomieniu automatycznie tworzy wirtualne środowisko i instaluje wszystkie potrzebne zależności. - Zalecana instalacja jako aplikacja CLI (przez pipx):
pipx install eanalizer
lub Instalacja w trybie deweloperskim (z edytowalnym kodem):python3 -m venv .venv .venv/bin/pip install -e .
Dane o zużyciu
Dane o zużyciu energii w formacie CSV można pozyskać na dwa sposoby:
-
Manualnie: Pobierz pliki z danymi godzinowymi z portalu Enea eBOK i umieść je w katalogu danych
eanalizer. -
Automatycznie: Użyj dołączonego skryptu
enea-downloader-cli, który po podaniu danych logowania do eBOK Enei automatycznie pobierze i zapisze wszystkie dostępne dane.Logowanie Enea wymaga weryfikacji dwuskładnikowej (kod SMS lub e-mail) -
enea-downloader-clipoprosi o wpisanie kodu w terminalu. Po udanym logowaniu sesja jest zapisywana w katalogu cache, więc kolejne uruchomienia mogą pominąć logowanie i 2FA, dopóki zapisana sesja pozostaje ważna../enea-downloader-cli
Flaga Skrót Opis --force-fWymusza ponowne pobranie danych, nawet jeśli są aktualne. --report-rTylko wyświetla zakres danych z plików na dysku (bez pobierania). --debugWypisuje dodatkowe informacje diagnostyczne o logowaniu i zapisuje zrzut ciasteczek sesji (nazwa/domena/wygaśnięcie) do katalogu cache.
Lokalizacja plików konfiguracyjnych i danych
Program eanalizer przechowuje swoje pliki w standardowych lokalizacjach systemowych:
- Konfiguracja (tariffs.csv):
~/.config/eanalizer/(np.tariffs.csv) - Dane (pobrane CSV):
~/.local/share/eanalizer/ - Cache (ceny RCE):
~/.cache/eanalizer/
Na innych systemach operacyjnych ścieżki mogą się różnić, zgodnie ze standardami platformdirs.
Użycie
Program uruchamia się za pomocą skryptu eanalizer-cli, który automatycznie zarządza wirtualnym środowiskiem.
Przykłady użycia
1. Podstawowa analiza kosztów dla taryfy G12w z net-meteringiem
./eanalizer-cli --taryfa G12w --z-netmetering
2. Symulacja fizycznego magazynu energii Symulacja magazynu o pojemności 10 kWh i sprawności 90%.
./eanalizer-cli --taryfa G12w --magazyn-fizyczny 10 --sprawnosc-magazynu 0.9
3. Porównanie wszystkich taryf w zadanym okresie
./eanalizer-cli --porownaj-taryfy --data-start 2024-01-01 --data-koniec 2024-12-31
4. Analiza finansowa w oparciu o ceny rynkowe (RCE)
./eanalizer-cli --z-cenami-rce --data-start 2025-01-01 --data-koniec 2025-01-07
5. Obliczenie optymalnej pojemności magazynu i eksport danych
./eanalizer-cli --taryfa G12w --oblicz-optymalny-magazyn --eksport-dzienny dane_dzienne.csv
6. Analiza ostatnich 365 dni danych (bez podawania konkretnych dat)
./eanalizer-cli --taryfa G12w --okres ostatnie-365-dni
7. Zbiorcze zestawienie miesięczne (pobrane/wysłane, przed i po bilansowaniu)
./eanalizer-cli --taryfa G12w --okres biezacy-rok --miesieczne --eksport-miesieczny dane_miesieczne.csv
Pełna lista opcji
| Flaga | Skrót | Opis |
|---|---|---|
--pliki <pliki...> |
-p |
Wskazuje konkretne pliki CSV do analizy. |
--katalog <katalog> |
-k |
Wskazuje katalog, z którego mają być wczytane wszystkie pliki CSV (domyślnie: $HOME/.local/share/eanalizer/). |
--taryfa <nazwa> |
-t |
Określa taryfę do analizy (np. G11, G12w). Domyślnie G11. |
--data-start <RRRR-MM-DD> |
Data początkowa analizy. | |
--data-koniec <RRRR-MM-DD> |
Data końcowa analizy. | |
--okres <nazwa> |
Predefiniowany okres analizy (ostatnie-30-dni, ostatnie-90-dni, ostatnie-365-dni, biezacy-miesiac, poprzedni-miesiac, biezacy-rok, poprzedni-rok), liczony wstecz od ostatniej dostępnej daty w danych, a nie od dzisiejszej daty. Wzajemnie wykluczający się z --data-start/--data-koniec/--ostatnie-dni. |
|
--ostatnie-dni <N> |
Analizuje N ostatnich dni danych, liczonych wstecz od ostatniej dostępnej daty w danych. Wzajemnie wykluczający się z --data-start/--data-koniec/--okres. |
|
--magazyn-fizyczny <kWh> |
Uruchamia symulację z fizycznym magazynem energii o podanej pojemności. | |
--sprawnosc-magazynu <0.0-1.0> |
Sprawność magazynu fizycznego (domyślnie 0.9). |
|
--z-netmetering |
Włącza obliczenia dla wirtualnego magazynu (net-metering). | |
--wspolczynnik-netmetering <0.7/0.8> |
Współczynnik dla energii oddawanej w net-meteringu (domyślnie 0.8). |
|
--z-cenami-rce |
Używa rzeczywistych cen rynkowych (RCE) zamiast stałych cen taryfowych. | |
--porownaj-taryfy |
Uruchamia porównanie kosztów dla wszystkich dostępnych taryf. | |
--oblicz-optymalny-magazyn |
Oblicza i wyświetla optymalną pojemność magazynu dla dwóch scenariuszy. | |
--eksport-symulacji <plik.csv> |
Eksportuje godzinowe wyniki symulacji magazynu do pliku CSV. | |
--eksport-dzienny <plik.csv> |
Eksportuje zagregowane dane dzienne do pliku CSV. | |
--miesieczne |
Wyświetla tabelę z zagregowanymi danymi miesięcznymi (pobrane/wysłane, przed i po bilansowaniu). | |
--eksport-miesieczny <plik.csv> |
Eksportuje zagregowane dane miesięczne do pliku CSV. | |
--verbose |
-v |
Włącza tryb szczegółowy, np. dla porównania taryf. |
Uwaga:
--z-cenami-rcenie obsługuje symulacji magazynu ani net-meteringu (--magazyn-fizyczny,--z-netmetering,--sprawnosc-magazynu) ani eksportu/obliczania optymalnego magazynu.--porownaj-taryfynie obsługuje eksportu ani obliczania optymalnego magazynu. Te flagi, jeśli podane w niewspieranym trybie, zostaną zignorowane, o czym program wypisze stosowne ostrzeżenie.
Rozwój i Testowanie
Repozytorium jest skonfigurowane do pracy z pre-commit w celu automatycznego formatowania i sprawdzania kodu.
- Instalacja narzędzi deweloperskich:
.venv/bin/pip install -e ".[dev]"
- Instalacja pre-commit hook:
pre-commit install - Uruchamianie testów:
.venv/bin/python -m unittest discover tests
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eanalizer-0.3.13.tar.gz.
File metadata
- Download URL: eanalizer-0.3.13.tar.gz
- Upload date:
- Size: 52.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dce2f80f72a94999b398b76b038ec7300bcc0642f20c0e83bd8ae82d29269bc2
|
|
| MD5 |
34b312f5bfd71fa178ef86dccadc8f61
|
|
| BLAKE2b-256 |
1f46e17fc8efcfde902fedd75200fbc8ebf0d724a7172f017e01cf6103383995
|
Provenance
The following attestation bundles were made for eanalizer-0.3.13.tar.gz:
Publisher:
release.yml on theundefined/eanalizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eanalizer-0.3.13.tar.gz -
Subject digest:
dce2f80f72a94999b398b76b038ec7300bcc0642f20c0e83bd8ae82d29269bc2 - Sigstore transparency entry: 2731682680
- Sigstore integration time:
-
Permalink:
theundefined/eanalizer@fa16f58d7d0352a96db759ba27fe63e8c2aabe16 -
Branch / Tag:
refs/tags/v0.3.13 - Owner: https://github.com/theundefined
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fa16f58d7d0352a96db759ba27fe63e8c2aabe16 -
Trigger Event:
push
-
Statement type:
File details
Details for the file eanalizer-0.3.13-py3-none-any.whl.
File metadata
- Download URL: eanalizer-0.3.13-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62434d774c46160f9dc4b33519939ead2d67111c2fa7b1b9473390a853e2129b
|
|
| MD5 |
c617048efc90dd78ed97319f6741e0e3
|
|
| BLAKE2b-256 |
3d5010df35e47a1bc1742c596f6dc5dc02bf996e463d476e359fba6f48909ea2
|
Provenance
The following attestation bundles were made for eanalizer-0.3.13-py3-none-any.whl:
Publisher:
release.yml on theundefined/eanalizer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eanalizer-0.3.13-py3-none-any.whl -
Subject digest:
62434d774c46160f9dc4b33519939ead2d67111c2fa7b1b9473390a853e2129b - Sigstore transparency entry: 2731683295
- Sigstore integration time:
-
Permalink:
theundefined/eanalizer@fa16f58d7d0352a96db759ba27fe63e8c2aabe16 -
Branch / Tag:
refs/tags/v0.3.13 - Owner: https://github.com/theundefined
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fa16f58d7d0352a96db759ba27fe63e8c2aabe16 -
Trigger Event:
push
-
Statement type: