# eSaver Ausw Ersparnis v1.02.2 packages

Auswertung Ersparnis v1.02.2 - (c) <span style="color:blue"> GMarder </span>/[eSaver][312] GmbH  

[312]: https://www.esaver.eu/

## Motivation

Die Projekt-Daten werden in zur Zeit in 2 unterschiedlichen VIDA-Daten-Erfassungen aufgezeichnet.  

- Für eine Jahresauswertung müssend diese Dateien zu erst in 12 Monatstateien  
 vom VIDA System exportiert werden.  

- Dann werden die hinterlegten Werte in eine Import-Datei konvertioert und die  
 Einheiten ggf. angepasst z.B.: W/h in kW/h  

- Die aufbereiteten Monats-Dateien werden danach in die Jahresauswertung übernommen,  
 und werden dort unter Excel weiter berechnet.

## Funktions Ablauf

Alle Benötigten Dateinamen und ablageorte werden in einer Excel-Datei gesammelt, mit der dann die Konvertierung erfolgt

Zum testen der Verbindung zum Python-Programm wurden 2 Buttons eingebunden;  
bei erfolgreicher Verbindung werden je 2 Texte invertiert ausgegeben.

---
---

### Einstellungen in der Excel-Datei

#### Hinterlegen der Projekt - Kennung

| items           | Wert              |
| --------------- | ----------------- |
| Projekt-Name    | Name1-Name2       |
| Projekt-Typ     | G 63 M / 1000 kVA |
| Projekt-Nr.     | PJJ0X0XX          |
| Datum           | 18.02.2026        |
|                 |                   |
| Jahresübersicht | 2025              |
| Datum_Start     | 01.01.2025        |
| Datum_Ende      | 31.12.2025        |
|                 |                   |
|                 |                   |

#### Hinterlegen der VIDA-Version und ablageortde der Dateien

| items             | Wert                                                     |
| ----------------- | -------------------------------------------------------- |
| VIDA-Version      | VIDA-SystemX                                             |
| Export VIDA       | Stundenverbrauch                                         |
| Path_Export_Files | C:\ ...\VIDA-Export-Path\ ...\eSaver_Ausw_Erspar\example |
| Path_Import_Files | C:\ ...\VIDA-Import-Path\ ...\eSaver_Ausw_Erspar\example |
|                   |                                                          |
|                   |                                                          |

#### Hinterlegen der Export-Files von den jeweiligen VIDA-Datenerfassungen

| items              | Wert                                                           |
| ------------------ | -------------------------------------------------------------- |
| Export_File_01_Jan | PJJ0X0XX Export_VIDA-Data_2025_0101_2025_0201_StdVerBer_GM.csv |
| Export_File_xx_mon | PJJ0X0XX Export_VIDA-Data_2025_xx01_2025_yy01_StdVerBer_GM.csv |
| Export_File_12_Jan | PJJ0X0XX Export_VIDA-Data_2025_1201_2025_1201_StdVerBer_GM.csv |
|                    |                                                                |
|                    |                                                                |

#### Hinterlegen der Import-Files von den jeweiligen VIDA-Datenerfassungen

| items              | Wert                                                            |
| ------------------ | --------------------------------------------------------------- |
| Import_File_01_Jan | PJJ0X0XX Import_VIDA-Data_2025_0101_2025_0201_StdVerBer_Imp.csv |
| Import_File_xx_mon | PJJ0X0XX Import_VIDA-Data_2025_xx01_2025_yy01_StdVerBer_Imp.csv |
| Import_File_12_Jan | PJJ0X0XX Import_VIDA-Data_2025_1201_2025_1201_StdVerBer_Imp.csv |
|                    |                                                                 |
|                    |                                                                 |

---
---

### Bedienung der Excel-Datei

Zur leichteren Bedienung der Konvertierung der Dateien und die Übernahme der Werte  
in die Jahresauswertungs-Datei wurden Bedien-Buttons eingebunden.

#### Button zum testen der Verbindung zu Python

| **[test main]** | **[test ahoy]** |
| --------------- | --------------- |

- **[Test Main]**

    > Damit wird die Funktion "xw_main_req" in python aufgerufen,  
      und eine Nachricht in die Zeile A1 geschrieben  
    >> Der Text wird Invertiert, um eine Rückmeldung von Python zu erkennen

- **[Test ahoy]**

  > Damit wird die Funktion "xw_ahoy_req" in python aufgerufen,  
    und eine Nachricht in die Zeile A1 geschrieben  
    >> Der Text wird Invertiert, um eine Rückmeldung von Python zu erkennen

#### Button zum Bearbeiten der VIDA-Daten

| **[init Excel Datei]** | **[gen Import Dateien]** | **[Import in Auswertungs Datei]** |
| ---------------------- | ------------------------ | --------------------------------- |
|                        |                          |                                   |

- **[init Excel Datei]**

  > Damit wird die Funktion (Initialisierung der Excel-Importeingträge) in python aufgerufen,  
    mit diesder Funktion werden die Dateinamen aus en Spalten "Export-Files_MM_mmm" gelesen und  
    die Erweiterungen gegen _Import.xlsx getauscht.
    Diese Dateinamen weren dann in der Excel unter den "Import_Files_MM_mmm" eingetragen
    >> Als Rückmeldung sind die Eintragungen zu erkannen.

- **[gen Import Datei]**

  > Damit wird die Funktion (generieren der Import Dateien) in python aufgerufen,  
    mit diesder Funktion werden die einzelnen Export-Dateien eingelesen und die gelesenen Werte überprüft.
    Die Werte werden auf eine genormte Einheit konvertiert und in das excel-Format überführt.
    Danach werden die einzelnen Import-Files "Import_Files_MM_mmm" erstellt.
    >> Als Rückmeldung springt der Button wieder aus seiner gedrückten Position zurück.

- **[Import in Auswertungs Datei]**

  > Damit wird die Funktion (Importiere gnerierte Werte in die Jahresauswertungs-Datei) in python aufgerufen,  
    mit diesder Funktion werden die einzelnen Import-Dateien eingelesen und die gelesenen Werte überprüft.
    Das Datum in den Import-Dateien bestimmen welche Tabelle in der "Auswertungs-Datei" geöffnet wird.
    Danach werden die einzelnen Werte in die "Auswertungs-Datei" übertragen.
    >> Als Rückmeldung springt der Button wieder aus seiner gedrückten Position zurück.

---

Zum Konvertieren sind 3 Buttons hinterlegt:  

- Schritt 1:  
 Export-Dateien in der Excel lesen und die Import-Dateien vom Namen erstellen und in die Excel-Dateischreiben.  

- Schritt 3:  
 Export-Dateien in Import-Dateien umsetzen und die Werte entsprechend Formatieren.  

- Schritt 3:  
 Die Import-Dateien lesen und in die Jahres Übersichts-Datei überführen.

---
---

## Programm Infos

### Struktur

``` text
├── pyproject.toml
├── ... other config files ...
├── docs
│   ├── api_eS_Ausw_1_xlsm_Init_reads.md
│   ├── api_eS_Ausw_2_csv_to_excel_and_scan_kw.md
│   ├── api_eS_Ausw_2_xlsx_to_excel_and_scan_kw.md
│   ├── api_eS_Ausw_3_Imports_to_Ausw.md
│   ├── api_eS_Ausw_Erspar.md
│   ├── api_eS_Data_App.md
│   ├── api_eS_Data_XLS.md
│   ├── api.md
│   └── index.md
├── examples
├── ├── PJJ0X0XX_Emty
├── ├── ├── PJJ0X0XX Export_VIDA-Data_2025_xx01_2025_xx01_StdVerBer_GM.csv
├── ├── ├── "="  // Muster-Dateien ohne Werte
├── ├── └── ...
├── ├── PJJ0X0XX_Values
├── ├── ├── PJJ0X0XX Export_VIDA-Data_2025_xx01_2025_xx01_StdVerBer_GM.csv
├── ├── ├── "="  // Muster-Dateien mit Werten
├── ├── └── ...
│   ├── eSaver_Export_VIDA_Ausw_Erspar_SVB_PJJ0X0XX.xlsm
│   ├── PJJ0X0XX Export_VIDA-Data_2025_0101_2025_0101_StdVerBer_GM.csv
│   ├── PJJ0X0XX Export_VIDA-Data_2025_xx01_2025_xx01_StdVerBer_GM.csv
│   ├── PJJ0X0XX Export_VIDA-Data_2025_1201_2026_0101_StdVerBer_GM.csv
│   ├── PJJ0X0XX_Name1-Name2 Ersparnis 2025_01-12 - Stundenbasiert GMpk.xlsx
│   └── ...
├── src
│   ├── __init__.py
│   ├── eSaver_Ausw_1_xlsm_Init_reads.py
│   ├── eSaver_Ausw_2_csv_to_excel_and_scan_kw_v.py
│   ├── eSaver_Ausw_2_xlsx_to_excel_and_scan_kw_v.py
│   ├── eSaver_Ausw_3_excel_Imp_to_excel_Ausw.py
│   ├── eSaver_Data_App.py
│   └── eSaver_Data_XLS.py
└── tests
    ├── __init__.py
    └── test_eSaver_Data_App_pytest.py.py
```

### Commands

```bash
# Build and Install (local)
pip install -e .  # OR
pip install -e ../eSaver_Ausw_Erspar_py_v1.02.2.5_py31403  # OR
pip install -e ../eSaver_Ausw_Erspar_py_v1.02.2.5_py31403[all]
```

```bash
# Test
pytest tests  # OR
pytest .  # OR
pytest
```

```bash
# Code Coverage
pytest --cov=src tests --cov-report=html
```

---
End of File
