Hallo zusammen,
ich möchte nun auch mal was beitragen und euch meine Lösung für eine Girokonto-Abfrage vorstellen. Das funktioniert mit dem Modul Aqbanking, welches ich nach der Ersteinrichtung über den Exec-Block in einem Cronjob ausführen lasse. Vor einiger Zeit wurde hier bereits einmal darüber diskutiert, jedoch ohne konkretes Ergebnis. Ob man jetzt seine Finanzdaten im ioBroker haben muss, kann jeder selbst entscheiden. Ich finde es jedoch ganz praktisch diese Daten grafisch aufzubereiten und immer im Blick zu haben. Auch Alarme bei gewissen Kontoaktivitäten lassen sich damit setzen und Vieles mehr.
Bei mir läuft iobroker in einem Proxmox Container und deshalb bin ich in der Konsole sowieso als root unterwegs. Ggf. müsst ihr die folgenden Befehle mit Sudo ausführen, je nach user und Rechten. Die folgende Beschreibung kann man im Allgemeinen in der Aqbanking Doku nachlesen. Hier habe ich es mal anhand meines Postbank Kontos durchgespielt.
Zunächst in der Konsole Aqbanking installieren
apt update
apt install aqbanking-tools
Dann müssen wir zuerst einen neuen user erstellen. Schaut vorher in diese Bankentabelle, was dazu für eure Bank nötig ist. Z.B. brauchen wir die url von eurem Bankserver. In meinem Fall ist das die Postbank. In den Parametern unten müsst ihr also euren usernamen (hier maxmustermann), eure BLZ (nicht BIC! hier 70010080) und euren Bankserver aus der Tabelle eintragen. Alle anderen Parameter lassen wir so.
aqhbci-tool4 adduser -t pintan --context=1 -b 70010080 -u maxmustermann -s "https://hbci.postbank.de/banking/hbci.do" -N "maxmustermann" --hbciversion=300
Anschließend schauen wir mit listusers, ob der neue user angelegt wurde. Falls ja, steht ganz hinten eine UniqueId, die wir uns merken, weil wir sie für die weiteren Befehle brauchen.
aqhbci-tool4 listusers
Dann laden wir die Bankinfo und hängen hinten die UniqueId an. In meinem Fall ist das 1.
aqhbci-tool4 getbankinfo -u 1
Wenn das erfolgreich war, laden wir die Systemkennung und hängen hinten wieder die UniqueId an. Dabei werdet ihr nach eurem Passwort für das Onlinebanking gefragt. Bei manchen Banken kann es sein, dass gleichzeitig das Sicherheitsverfahren getriggert wird und ihr den Login mit Tan oder App bestätigen müsst.
aqhbci-tool4 getsysid -u 1
Dann laden wir die Tan-Methoden und hängen hinten wieder die UniqueId an.
aqhbci-tool4 listitanmodes -u 1
Je nach Bank bekommt ihr eine größere oder kleinere Liste an möglichen Methoden mit einer vierstelligen Nummer am Anfang. Davon wählt ihr eine aus. In meinem Fall ist das 6920 für das BestSign Version 6 Verfahren der Postbank. Hier wieder die UniqueId nicht vergessen.
aqhbci-tool4 setitanmode -u 1 -m 6920
Optional muss man für die Postbank noch die sog. "Mediumkennung" setzen. Bei anderen Banken kann man dies überspringen. Die Mediumkennung findet ihr in eurer Bestsign App oder dem Onlinebanking unter Sicherheitsverfahren. Die BestSign id ist hier irrelevant, es geht nur um den Namen, hier als Beispiel MaxBestSign. Auch wieder die UniqueId nicht vergessen.
aqhbci-tool4 setTanMediumId -u 1 -m "MaxBestSign"
Jetzt müssen wir von diesem user noch die Kontenliste abfragen und hängen hinten wieder die UniqueId an. Dabei werdet ihr nach eurem Passwort für das Onlinebanking gefragt.
aqhbci-tool4 getaccounts -u 1
Diese Kontenliste lassen wir uns ausgeben mit:
aqhbci-tool4 listaccounts -v
In dieser Ausgabe hat jedes Konto (sind evtl. mehrere) eine LocalUniqueId. Wir merken uns nun die LocalUniqueId des Kontos, welches wir abfragen wollen, in meinem Besispiel ist das 3. Bitte nicht mir der UniqueId verwechseln!
Dann rufen wir zu diesem Konto die SEPA-Informationen ab. Wiederholt diesen Schritt mit allen Konten bzw. LocalUniqueIds, die ihr später abfragen wollt.
aqhbci-tool4 getaccsepa -a 3
Jetzt können wir schon der ersten Test machen und den Saldo des Kontos abfragen. In dem Befehl unten müsst ihr nur die Kontonummer des Kontos eintragen (hier 123456789), welches ihr zuvor mit der LocalUniqueId ausgewählt hattet. Im Parameter fromdate wird mit der Syntax unten automatisch das heutige Datum eingesetzt, damit ihr den aktuellen Saldo bekommt. Hier lässt sich theoretisch auch ein vergangenes Datum einsetzen und dann erhaltet ihr den Saldo an diesem Tag, genau wie auch im Onlinebanking.
aqbanking-cli request --account=123456789 --fromdate=$(date +%Y%m%d) --transactions
Wenn das geklappt hat, dann wirft die Konsole nach Eingabe eures Passworts eine Struktur aus, die ungefähr so aussieht:

Hier sieht man unter dem ersten char value den Wert "262137%2F100%3AEUR". Darin steckt euer Kontostand, in diesem Fall 2.621,37 EUR. Achtung, das ist leider kein Json und auch kein XML, was das Parsen etwas unkomfortabel macht.
Für eine automatisierte Abfrage müssen wir nun noch das Passwort speichern. Dazu nutzen wir folgenden Befehl und setzen sicherheitshalber gleich Minimalrechte.
aqhbci-tool4 mkpinlist >pinfile
chmod 600 /root/.aqbanking/settings6/users/pinfile
Dadurch wurde eine Vorlage für eine Pinfile erstellt, die wir nun im Editor öffnen, das Passwort eingeben und abspeichern.
nano /root/.aqbanking/settings6/users/pinfile
Eine Möglichkeit, die Pinfile verschlüsselt abzuspeichern, habe ich leider noch nicht gefunden. Innerhalb meines Proxmox containers halte ich das aber für vertretbar. Für kritische Dinge und Transaktionen braucht man ja immernoch die 2FA.
Diese Pinfile kann man nun in den Befehl einbauen. Wichtig ist die Reihenfolge der Parameter.
aqbanking-cli -P /root/.aqbanking/settings6/users/pinfile request --account=123456789 --fromdate=$(date +%Y%m%d) --transactions
Sollte hier die Abfrage ohne prompt für ein Passwort geklappt haben, dann steht einer automatisierten Abfrage nichts mehr im Wege. Das kann eigentlich jeder machen, wie es für ihn am besten ist. Ich benutze dazu ganz gern Blockly und habe es wie folgt gemacht. Das Parsen erledige ich ebenfalls innerhalb des commands und lasse mir mit sed die Ausgabe auf die Zahl vor dem "%2F" im ersten "char value" filtern. Die Ausgabe muss ich dann nur noch durch 100 teilen, um das Komma richtig zu setzen. Als trigger verwende ich einen Cron alle 3 Stunden innerhalb der Geschäftszeiten einer Bank.
Hier als Blockly Export: https://rentry.co/ae7h9q8x

Mit diesem Vorgehen lassen sich natürlich mehrere user und Konten anlegen und abfragen. Die Ausgabestruktur enthält auch die Kontoauszüge für den jeweiligen Tag, jedoch nicht inklusive der vergangenen Tage. Um sich eine Übersicht der Transaktionen der letzten Tage und Wochen zu bauen, wie aus dem Onlinebanking, müsste man also alle Tage einzeln abfragen und aufwendig parsen. Man kann jedoch die Ausgabe auf spezielle Schlüsselwörter (z.B. "Gehalt") filtern und sich so ggf. Benachrichtigungen generieren, etc.
Viele Möglichkeiten....
Für Verbesserungen bin ich jederzeit offen 
Viel Erfolg!