From c9ed4a3458957043fac0af549c848004504849b3 Mon Sep 17 00:00:00 2001 From: hubobel Date: Sun, 21 Jun 2026 18:20:52 +0200 Subject: [PATCH] UPDATE --- README.md | 299 ++++++++++++++++++++++-------------------------------- 1 file changed, 119 insertions(+), 180 deletions(-) diff --git a/README.md b/README.md index e78fcd3..c64ec53 100644 --- a/README.md +++ b/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): /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.