UPDATE
This commit is contained in:
parent
0f74b9253a
commit
c9ed4a3458
1 changed files with 119 additions and 180 deletions
299
README.md
299
README.md
|
|
@ -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
|
|
||||||
```
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue