This commit is contained in:
hubobel 2026-06-21 18:20:52 +02:00
parent 0f74b9253a
commit c9ed4a3458

299
README.md
View file

@ -1,163 +1,107 @@
# ING FinTS Auswertung # ING FinTS Auswertung
Python-Skripte zur automatisierten Auswertung eines ING-Kontos über FinTS. Python-Skripte und Web-Dashboard zur automatisierten Auswertung eines ING-Kontos über FinTS.
---
## Funktionen ## Funktionen
### balance.py ### balance.py
Ermittelt den aktuellen Kontostand und überträgt diesen an ioBroker. * Aktuellen Kontostand abrufen
Ausgabe:
* Kontostand
* Buchungsdatum
Optional:
* Übertragung an ioBroker * Übertragung an ioBroker
* Logging
---
### transactions.py ### transactions.py
Lädt die Kontobewegungen einer Kalenderwoche direkt von der ING. * Abruf der Kontobewegungen einer Kalenderwoche
* Export als CSV und JSON
Erzeugt: * Übertragung von Kennzahlen an ioBroker
```text
Transaktionen/
└── YYYY/
├── csv/
│ └── transactions_YYYY_KWxx.csv
└── json/
└── transactions_YYYY_KWxx.json
```
Zusätzlich:
* Anzahl Transaktionen
* Wochensumme
* Wochenausgaben
werden an ioBroker übertragen.
---
### categorize_transactions.py ### categorize_transactions.py
Kategorisiert die bereits exportierten Transaktionen anhand der Datei `Kategorien.json`. * Kategorisierung anhand von Kategorien.json
* Erzeugung von Auswertungen
* Erstellung der Excel-Jahresauswertung
Es erfolgt kein erneuter Abruf bei der ING. ### Flask Web-Dashboard
Quelle: * Dashboard mit aktueller Kalenderwoche
* Aktueller Kontostand aus ioBroker
```text * Kontostand-Ampel
Transaktionen/YYYY/json/transactions_YYYY_KWxx.json * Einnahmen / Ausgaben / Saldo
``` * Transaktionen der aktuellen Woche
* Unbekannte Buchungen
Erzeugt: * Kategorienverwaltung
* Wartungsbereich
```text * Log-Anzeige
Transaktionen/
└── YYYY/
├── categorized_csv/
│ └── categorized_transactions_YYYY_KWxx.csv
├── categorized_json/
│ └── categorized_transactions_YYYY_KWxx.json
├── summary/
│ └── category_summary_YYYY_KWxx.json
└── jahresauswertung/
└── Kontobewegungen_YYYY.xlsx
```
--- ---
## Excel-Auswertung ## Web-Dashboard
Die Datei ### Dashboard
Anzeige von:
* Kontostand
* Einnahmen
* Ausgaben
* Saldo
* Transaktionen der aktuellen Kalenderwoche
* Unbekannte Buchungen
### Unbekannte Buchungen
Alle Transaktionen mit Kategorie:
```text ```text
Kontobewegungen_YYYY.xlsx Unbekannt
``` ```
enthält: werden in einer eigenen Kachel angezeigt.
### Blatt "Übersicht" Von dort kann direkt zur Kategorienverwaltung gewechselt werden.
Monatsübergreifende Übersicht aller vorhandenen Kalenderwochen: ### Kontostand-Ampel
* Einnahmen Konfigurierbar über:
* Ausgaben
* Saldo
### Blatt "KWxx" ```ini
BALANCE_YELLOW_DAY=15
BALANCE_YELLOW_LIMIT=400
Für jede Kalenderwoche: BALANCE_RED_DAY=28
BALANCE_RED_LIMIT=300
#### Kennzahlen
* Anzahl Transaktionen
* Einnahmen
* Ausgaben
* Saldo
#### Kategorien
* Einnahmen pro Kategorie
* Ausgaben pro Kategorie
* Saldo pro Kategorie
#### Kontobewegungen
* Datum
* Betrag
* Kategorie
* Name
* Verwendungszweck
---
## Kategorien
Datei:
```text
Kategorien.json
``` ```
Beispiel: Beispiel:
```json * ab Tag 15 und unter 400 € → Orange
{ * ab Tag 28 und unter 300 € → Rot
"Haus": [
"ERGO",
"ENTEGA",
"WASSER"
],
"Lebensmittel": [ ### Wartung
"REWE",
"ALDI",
"LIDL"
],
"Luxus": [ Über die Weboberfläche können folgende Aktionen gestartet werden:
"AMAZON"
],
"Ausgleich": [ * Kontostand aktualisieren
"AUSGLEICH" * Transaktionen laden
] * Kategorisierung starten
} * Wochenupdate
### Wochenupdate
Führt automatisch aus:
```text
transactions.py
categorize_transactions.py
``` ```
Die Suche erfolgt in: ### Popup-Meldungen
* Name Erfolgreiche Aktionen werden direkt im Dashboard angezeigt.
* Verwendungszweck
Groß-/Kleinschreibung wird ignoriert.
--- ---
@ -166,15 +110,29 @@ Groß-/Kleinschreibung wird ignoriert.
```text ```text
/home/banking /home/banking
├── .ing.conf ├── .ing.conf
├── Kategorien.json ├── logs
│ ├── balance.log
│ ├── transactions.log
│ └── categorize_transactions.log
├── ING ├── ING
│ ├── app.py
│ ├── balance.py │ ├── balance.py
│ ├── transactions.py │ ├── transactions.py
│ ├── categorize_transactions.py │ ├── categorize_transactions.py
│ ├── Kategorien.json
│ ├── templates/
│ ├── static/
│ └── README.md │ └── README.md
├── Transaktionen
│ └── YYYY └── Transaktionen
└── logs └── YYYY
├── csv
├── json
├── categorized_csv
├── categorized_json
├── summary
└── jahresauswertung
``` ```
--- ---
@ -192,14 +150,21 @@ Beispiel:
```ini ```ini
ING_USER=12345678 ING_USER=12345678
ING_PIN=geheim ING_PIN=geheim
ING_IBAN=DE...... ING_IBAN=DExxxxxxxx
IOBROKER_HOST=10.0.1.10
IOBROKER_HOST=10.0.1.122
IOBROKER_PORT=8087 IOBROKER_PORT=8087
IOBROKER_DP_BALANCE=javascript.0.Variablen.Konto_Saldo IOBROKER_DP_BALANCE=javascript.0.Variablen.Konto
IOBROKER_DP_TRANSACTIONS=javascript.0.Variablen.Konto_Transaktionen IOBROKER_DP_TRANSACTIONS=javascript.0.Variablen.Konto_Transaktionen
IOBROKER_DP_WEEKSUM=javascript.0.Variablen.Konto_Wochensumme IOBROKER_DP_WEEKSUM=javascript.0.Variablen.Konto_Wochensumme
IOBROKER_DP_WEEKEXPENSES=javascript.0.Variablen.Konto_Wochenausgaben IOBROKER_DP_WEEKEXPENSES=javascript.0.Variablen.Konto_Wochenausgaben
BALANCE_YELLOW_DAY=15
BALANCE_YELLOW_LIMIT=400
BALANCE_RED_DAY=28
BALANCE_RED_LIMIT=300
``` ```
--- ---
@ -212,7 +177,7 @@ Repository klonen:
git clone https://git.hintergasse.de/hubobel/ING.git git clone https://git.hintergasse.de/hubobel/ING.git
``` ```
Python-Abhängigkeiten installieren: Abhängigkeiten installieren:
```bash ```bash
pip install -r requirements.txt pip install -r requirements.txt
@ -222,44 +187,40 @@ pip install -r requirements.txt
## Wichtige Befehle ## Wichtige Befehle
### Repository aktualisieren Repository aktualisieren:
```bash ```bash
git -C ~/ING pull git -C ~/ING pull
``` ```
### Kontostand abrufen Kontostand abrufen:
```bash ```bash
python3 ~/ING/balance.py python3 ~/ING/balance.py
``` ```
### Aktuelle Kalenderwoche laden Transaktionen laden:
```bash ```bash
python3 ~/ING/transactions.py python3 ~/ING/transactions.py
``` ```
### Bestimmte Kalenderwoche laden Bestimmte Kalenderwoche laden:
(Beispiel KW23/2026)
```bash ```bash
python3 ~/ING/transactions.py 2026 23 python3 ~/ING/transactions.py 2026 25
``` ```
### Aktuelle Kalenderwoche kategorisieren Kategorisieren:
```bash ```bash
python3 ~/ING/categorize_transactions.py python3 ~/ING/categorize_transactions.py
``` ```
### Bestimmte Kalenderwoche kategorisieren Bestimmte Kalenderwoche kategorisieren:
(Beispiel KW23/2026)
```bash ```bash
python3 ~/ING/categorize_transactions.py 2026 23 python3 ~/ING/categorize_transactions.py 2026 25
``` ```
--- ---
@ -278,60 +239,38 @@ Windows (PyCharm):
<Projektverzeichnis>/logs <Projektverzeichnis>/logs
``` ```
Logdateien:
```text
balance.log
transactions.log
categorize_transactions.log
```
--- ---
## Nextcloud ## Betriebssysteme
### Linux ### Linux
Synchronisation über rclone: * Debian
* Ubuntu
```bash * Proxmox VE
rclone copy \
~/Transaktionen/2026/jahresauswertung/Kontobewegungen_2026.xlsx \
nextcloud:Bank/2026
```
### Windows ### Windows
Automatische Kopie nach: * Windows 11
* PyCharm
```text Die Skripte erkennen automatisch die Umgebung und verwenden passende Log- und Konfigurationspfade.
C:\Users\hubob\Nextcloud\Bank\2026
```
--- ---
## Cronjobs ## ioBroker
### Kontostand Verwendete Datenpunkte:
Montag bis Samstag alle 4 Stunden: * Kontostand
* Anzahl Transaktionen
* Wochensumme
* Wochenausgaben
```cron Der Kontostand wird zusätzlich im Dashboard angezeigt.
0 */4 * * 1-6 /usr/bin/python3 /home/banking/ING/balance.py
```
### Transaktionen ---
Sonntag 23:30 Uhr: ## Lizenz
```cron Privates Projekt.
30 23 * * 0 /usr/bin/python3 /home/banking/ING/transactions.py
```
### Kategorisierung
Sonntag 23:37 Uhr:
```cron
37 23 * * 0 /usr/bin/python3 /home/banking/ING/categorize_transactions.py
```