Hilfe
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Finanzmanager Ersatz

34 ANTWORTEN

Bardoshino
Autor ★
11 Beiträge

Hallo Gerrit,

 

ich habe leider die Mail von Comdirect verpennt und vor dem Abschalten des PFM kein Download gemacht.

Somit bin ich auf das Skript angewiesen, dass mir die Finanzreporte in ein schönes CSV Format überträgt, um diese dann wider in ein neues Tool einzulesen. Bedauerlicherweise bin ich nicht so bewandert, was das coden angeht, sonst würde ich viel selbst versuchen.

Ich mochte im PFM die Budgetübersicht sehr, da sie mir einen Monatsvergleich ausgegeben hat.

Sehr vergleichbar mit deinem Punkt "table sum per month & category".

Ich werde mir versuchen auch dein Toll ein bisschen eigen zu machen, muss aber mal sehen, ob und wie ich das mit den schon bei mir heruntergeladenen CSV Dateien nutzen kann.

Ansonsten verwende ich derzeit moneymoney.

Da fehlt mir allerdings eine schöne Gegenüberstellung der Monate und Kategorien.

 

Lieben Gruß

Nico

Bardoshino
Autor ★
11 Beiträge

Hallo tho.riemer,

 

vielen lieben Dank 🐵

Sogar mit extra Spalte. Ich bin wirklich begeistert.

 

Lieben Gruß

Bardoshino

ignorama
Autor ★
10 Beiträge

Kein Problem 🙂

Mein Programm ist leider nicht so nutzerfreundlich.

 

Der erste Fehler kommt von einem falschen Datums-Format. Da kann Excel schon was verändern wenn man eine CSV-Datei öffnet und wieder abspeichert. Ich habe versucht es möglichst international zu machen. Mit 

format='%Y-%m-%d'

müsste es dann funktionieren.

Man müsste noch etwas Arbeit reinstecken, um den CSV-Import zum Laufen zu kriegen. Da wollte ich ungern ein Beispiel zur Verfügung stellen.

Der API-Import sollte aber direkt funktionieren, wenn man den Anweisungen im Readme folgt. Dazu den csv-Import auskommentieren und den API-import einkommentieren:

# new transactions
# transactions_new = functions.transactions_csv(file_new, clm, header=2)
transactions_new = functions.transactions_API_comdirect(clm, pastDays = 30)

Der 2. Fehler tritt bei mir mit dem Beispiel-Datensatz nicht auf. Vlt fehlt noch ein Paket? Oder Pandas updaten?

ignorama
Autor ★
10 Beiträge

Ja die Budgetübersicht fand ich auch mit Abstand das hilfreichste Tool, deshalb hab ich auch versucht es nachzubauen 🙂

Was mir noch fehlt ist die Vorschau der kommenden Monate, in der man auch händisch Korrekturen machen kann.

Bardoshino
Autor ★
11 Beiträge

ich habe ebenfalls mal versucht das bei mir lauffähig zu machen, aber ich steige bei den Fehlermeldungen leider schon aus 🐵

 

 

 

Traceback (most recent call last):
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\PFM\budgetbook\calculate_balance.py", line 25, in <module>
transactions = pd.read_csv(file + '.csv', encoding = "ISO-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\parsers\readers.py", line 1024, in read_csv
return _read(filepath_or_buffer, kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\parsers\readers.py", line 624, in _read
return parser.read(nrows)
^^^^^^^^^^^^^^^^^^
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\parsers\readers.py", line 1921, in read
) = self._engine.read( # type: ignore[attr-defined]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\Lib\site-packages\pandas\io\parsers\c_parser_wrapper.py", line 234, in read
chunks = self._reader.read_low_memory(nrows)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "parsers.pyx", line 838, in pandas._libs.parsers.TextReader.read_low_memory
File "parsers.pyx", line 905, in pandas._libs.parsers.TextReader._read_rows
File "parsers.pyx", line 874, in pandas._libs.parsers.TextReader._tokenize_rows
File "parsers.pyx", line 891, in pandas._libs.parsers.TextReader._check_tokenize_status
File "parsers.pyx", line 2061, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 4 fields in line 16, saw 5

Bardoshino
Autor ★
11 Beiträge

Ich habe es auch mal über die API versucht, aber da bekomme ich dann eine TAN gesendet und bekomme einen runtime error.

Muss ich da etwa die TAN irgendwo eintragen?

 

Traceback (most recent call last):
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\PFM\budgetbook\comdirect_financialreport.py", line 368, in <module>
access_credentials = authenticate_api()
^^^^^^^^^^^^^^^^^^
File "C:\Users\ndavis\AppData\Local\Programs\Python\Python312\PFM\budgetbook\comdirect_financialreport.py", line 125, in authenticate_api
raise RuntimeError(
RuntimeError: PATCH https://api.comdirect.de/session/clients/user/v1/sessions/...:returned status 400

 

 

entschuldigt meine Unwissenheit 🐵

ignorama
Autor ★
10 Beiträge

Der runtime error kommt, weil man auch bei API-Abruf bestätigen muss, dass man sich einloggt 🙂

Ich persönlich mache es mit photoTAN-App, ich weiß leider nicht wie es mit TAN funktionieren würde. Ich mache immer die photoTAN-App auf, starte das Skript import_transactions.ipynb und aktualisiere dann die App regelmäßig 🙂

Bist Du für die API registriert (https://kunde.comdirect.de/cms/kontakt-zugaenge-api.html) und hast config.json ausgefüllt?

Bardoshino
Autor ★
11 Beiträge

ahh.... wieder einen Schritt weiter. Ich habe mich für die API registriert und auch die Config ausgefüllt. Photo-Tan muss ich durch ein neues Handy wieder aktiviert werden und da ich natürlich den Aktivierungsbrief nicht mehr habe, warte ich noch auf post.

 

Danke also erstmal und ich schaue weiter, wenn die Post da ist.

 

 

ich versuche derweil mal

http://localhost:8888/notebooks/import_transactions.ipynb

http://localhost:8888/notebooks/analysis.ipynb

 

Schritt für Schritt geht es voran 🐵

 

Danke für die Geduld und Unterstützung

ignorama
Autor ★
10 Beiträge

Kommt der Fehler, wenn Du calculate_balance.py benutzen willst?

 

Bisher habe ich kein Feedback von anderen Nutzern erhalten, ich sehe jetzt dass man da noch einiges an Arbeit reinstecken müsste, damit es ohne eigenes Programmieren funtkioniert.

Vielleicht komme ich demnächst dazu, das noch mal intensiv zu testen und anzupassen.

Danke schon mal, dass Du es versucht hast!

Bardoshino
Autor ★
11 Beiträge

Hallo Gerrit,

für den Fall, dass Du Dich tatsächlich nochmal gern damit auseinandersetzen möchtest, habe ich mal hingesetzt und ein paar Dinge notiert.
Ich persönlich würde mich natürlich sehr freuen, da ich die Budgetplanung sehr gut fand und gern wieder eine solche Übersicht hätte.


Zu Deiner Frage:
Ja, die Fehlermeldung erscheint, wenn ich calculate_balance.py aufrufe


hier ein paar Anmerkungen, bzw. wünsche, die ich für einen CSV Aufruf interessant fände.
Bitte sieh mir meinen leienhaften Versuch nach, ein paar Dinge aufzulisten, die sicher wesentlich mehr aufwand erfordern, als ich es überblicken kann.


einheitliche Umwandlung des Fnanzreports in CSV:

- der API Abruf geht ja nur 2-3 Jahre zurück. Wenn man nun also versäumt hat, sich jedes Jahr eine CSV zu ziehen, ist man zusätzlich auf
das Umwandeln durch die "com_fm.py" angewiesen.
Durch die neue Version "com_fm.py V1.0.2" sehen sich die csv nun recht ähnlich und man könnte durch Angleichen der
Spaltenüberschriften, die csv Downloads und die umgewandelten nutzen

- in der "calculate_balance.py wäre dann evtl eine Anpassung hilfreich, in dem man die angeglichenen Spaltenüberschriften der csv Dateien nutzt
# column names
clm = dict(
Buchungstag = 'Buchungstag' ,
Umsatz in EUR = 'Umsatz in EUR' ,
balance = 'balance'
)


analysis.ipynb

- hier gibt es einen Bereicht, wo das hier aufgeführt ist, den könnte man ja in soweit anpassen und aufbereiten, dass er ebenfalls die Spalten der vereinheitlichten
angeglichenen Spaltenüberschriften der csv Dateien entsprechen
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# column names\n",
"clm = dict(\n",
" date = 'date' , # in transactions file\n",
" amount = 'amount' , # in transactions file\n",
" balance = 'balance' , # in transactions file\n",
" category = 'category' , # in transactions file\n",
" cat_fine = 'type' , # for fine categories\n",
" expenses = 'EXPENSES' , # for result\n",
" sum = 'SUM' , # for result\n",
" mean_month = '/MONTH' , # for result\n",
" )"
]
}


import_transactions.ipynb müsste dann sicher ebenfalls angeglichen werden.


Ich würde mich jedenfalls sehr freuen und stünde auch zum testen Bereit 🐵

Ganz lieben Gruß
Nico