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