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
|
||||
|
||||
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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue