ING/README.md
2026-06-06 17:31:23 +02:00

4.7 KiB

ING Kontostandsabfrage für ioBroker

Zweck

Dieses Python-Skript ruft den aktuellen Kontostand eines ING-Kontos per FinTS ab und schreibt den Wert automatisch in einen ioBroker-Datenpunkt über die Simple-API.

Systemumgebung

  • Betriebssystem: Debian Linux
  • Benutzer: banking
  • Ausführungsort: VM Applikationen
  • Bank: ING Deutschland
  • Übertragung: HTTP Simple-API an ioBroker

Verzeichnisstruktur

/home/banking/
├── .ing.conf
├── bin/
│   └── balance.py
└── logs/
    └── balance.log

Konfigurationsdatei

Datei:

/home/banking/.ing.conf

Inhalt:

# ING
ING_USER=1234567890
ING_PIN=geheimepin
ING_IBAN=DE00123456789012345678

# ioBroker
IOBROKER_HOST=10.0.1.122
IOBROKER_PORT=8087
IOBROKER_DP=javascript.0.Finanzen.ING.Kontostand

Berechtigungen

chmod 700 /home/banking
chmod 700 /home/banking/bin
chmod 700 /home/banking/bin/balance.py
chmod 700 /home/banking/logs
chmod 600 /home/banking/.ing.conf

Installation

Python-Abhängigkeit installieren:

python3 -m pip install --user --break-system-packages fints

Prüfen:

python3 -c "from fints.client import FinTS3PinTanClient; print('OK')"

Manuelle Ausführung

python3 /home/banking/bin/balance.py

Bei erfolgreicher Ausführung erfolgt keine Konsolenausgabe.

Der aktuelle Kontostand wird direkt in den konfigurierten ioBroker-Datenpunkt geschrieben.

Logging

Fehler werden protokolliert in:

/home/banking/logs/balance.log

Logdatei anzeigen:

tail -f /home/banking/logs/balance.log

Cronjob

Ausführung Montag bis Samstag alle 4 Stunden:

0 */4 * * 1-6 /usr/bin/python3 /home/banking/bin/balance.py

Cronjob bearbeiten:

crontab -e

Cronjobs anzeigen:

crontab -l

Sicherheit

  • Zugangsdaten werden nicht im Skript gespeichert.
  • Die Konfiguration liegt ausschließlich in /home/banking/.ing.conf.
  • Die Datei ist nur für den Benutzer banking lesbar.
  • Die ING-Zugangsdaten werden nicht auf dem ioBroker-System gespeichert.
  • Die Kommunikation erfolgt ausschließlich zwischen der VM Applikationen, der ING und dem lokalen ioBroker-Server.

Hinweise

  • Für die ING wird FinTS verwendet.
  • FinTS-Server: https://fints.ing.de/fints/
  • Der ioBroker-Datenpunkt sollte vom Typ number sein.
  • Die ING kann aufgrund regulatorischer Vorgaben eine regelmäßige Anmeldung im normalen Online-Banking verlangen.

Transaktions-Export

Zusätzlich zum Kontostandsabruf steht ein separates Skript für den Export der Kontotransaktionen zur Verfügung.

Datei:

/home/banking/bin/transactions.py

Funktion

Das Skript:

  • verbindet sich per FinTS mit der ING
  • liest die Transaktionen der letzten 7 Tage
  • exportiert die Daten als CSV-Datei
  • exportiert die Daten als JSON-Datei
  • schreibt statistische Kennzahlen nach ioBroker

Verzeichnisstruktur

/home/banking/Transaktionen/
└── <Jahr>/
    ├── csv/
    │   └── transactions_<Jahr>_KW<Kalenderwoche>.csv
    └── json/
        └── transactions_<Jahr>_KW<Kalenderwoche>.json

Beispiel:

/home/banking/Transaktionen/
└── 2026/
    ├── csv/
    │   └── transactions_2026_KW23.csv
    └── json/
        └── transactions_2026_KW23.json

CSV-Inhalt

date;amount;posting_text;applicant_name;purpose
2026-06-01;-17.80 EUR;Lastschrifteinzug;ERGO Krankenversicherung AG;...
2026-06-05;-10.99 EUR;Kartenzahlung;Amazon;...

JSON-Inhalt

[
  {
    "date": "2026-06-01",
    "amount": "-17.80 EUR",
    "posting_text": "Lastschrifteinzug",
    "applicant_name": "ERGO Krankenversicherung AG",
    "purpose": "..."
  }
]

ioBroker-Datenpunkte

Das Skript aktualisiert folgende Datenpunkte:

Datenpunkt Beschreibung
javascript.0.Variablen.Konto_Transaktionen Anzahl der Transaktionen der letzten 7 Tage
javascript.0.Variablen.Konto_Wochensumme Summe aller Transaktionen der letzten 7 Tage
javascript.0.Variablen.Konto_Wochenausgaben Summe aller Ausgaben der letzten 7 Tage

Cronjob

Ausführung jeden Sonntag um 23:00 Uhr:

0 23 * * 0 /usr/bin/python3 /home/banking/bin/transactions.py

Cronjobs anzeigen:

crontab -l

Cronjobs bearbeiten:

crontab -e

Manuelle Ausführung

python3 /home/banking/bin/transactions.py

Hinweise

  • Die Exportdateien werden pro Kalenderwoche neu erstellt.
  • Vorhandene Dateien derselben Kalenderwoche werden überschrieben.
  • CSV und JSON werden getrennt nach Jahr archiviert.
  • Die ING-Zugangsdaten werden aus der Datei .ing.conf gelesen.
  • Das Skript verwendet dieselbe Konfiguration wie balance.py.