Verwendung¶
Um pYMLedger nutzen zu können, müssen Sie zunächst CSV-Exporte von Ihrem Online-Banking erstellen, um Ihre Finanzdaten zu verwalten. Sie können entweder die originalen CSV-Dateien verwenden, die von Ihrer Bank exportiert wurden, oder die mitgelieferten Beispieldateien im Verzeichnis examples/input zum Testen nutzen.
Eingabe und Quellen¶
Bitte stellen Sie sicher, dass jeder Kontoauszug (CAMT-CSV-Export) nur einen Monat abdeckt.
CSV-Dateien von der Bank¶
Die CSV-Dateien sollten im CAMT-CSV-Format vorliegen und die folgenden Spalten enthalten, wobei die Spalten durch Kommas getrennt sein müssen:
(Die Spalten in der CSV-Datei MÜSSEN durch (``,``) Kommas getrennt sein)
Die CSV-Datei sollte die folgenden Spalten enthalten:
Auftragskonto,Buchungstag,Valutadatum,Buchungstext,Verwendungszweck,Glaeubiger ID,Mandatsreferenz,Kundenreferenz (End-to-End),Sammlerreferenz,Lastschrift Ursprungsbetrag,Auslagenersatz Ruecklastschrift,Beguenstigter/Zahlungspflichtiger,Kontonummer/IBAN,BIC (SWIFT-Code),Betrag,Waehrung,Info
Verzeichnisstruktur¶
Stellen Sie sicher, dass das Eingabe-Verzeichnis (input/
) folgende Struktur aufweist:
├── input/
│ ├── 2023/
│ │ ├── 2023-01/
│ │ │ └── 2023-01.bank.csv
│ │ ├── 2023-02/
│ │ │ └── 2023-02.bank.csv
│ │ └── 2023-03/
Verwenden Sie das Format “YYYY” für das Jahr, “YYYY-MM” für den Ordner (pro Monat) und “YYYY-MM.bank.csv” für die CAMT-CSV-Datei.
CSV Dateien bereinigen¶
Bevor wir aus den CSV-Dateien rules
und journals
generieren,
sollten wir diese erstmal etwas “säuber”, mit den Befehl:
python3 ./scripts/hledger-rules/hledger-rules.py -c config.yml clean-up-csv 2023
Die CSV-Dateien aus den input/2023
werden etwas “gesäubert” und in
source/2023/ gespeichert.
Lastschrift, Überweisungen, etc. - (allgemeine) Regeln¶
Lassen Sie uns nun die CSV-Dateien im Verzeichnis
source/2023/ betrachten.
Dort sollten alle monatlichen Kontoauszüge unserer Bank zu finden sein.
Wir können uns zunächst auf die Ausgaben (Expenses
) konzentrieren und Zeile für
Zeile durchgehen, um für jeden Eintrag/Ausgabe eine rule
zu erstellen.
Beispiel: Wohnen¶
Betrachten wir beispielsweise die CSV-Datei für Januar 2023. Darin befindet sich eine Zeile mit dem Verwendungszweck “Wohnen” (wichtig sind hier nur die Spalten “Verwendungszweck” und “Begünstigter/Zahlungspflichtiger”).
source/2023/2023-01/csv/2023-01.bank.csv
****,02.01.23,02.01.23,DAUERAUFTRAG,1234/4568.00001.12,***,,,****,,,Wohnen GmbH,,,"-499,2",EUR,Umsatz gebucht,2023-01.0031,Wohnen GmbH
Verwendungszweck:
1234/4568.00001.12
Beguenstigter/Zahlungspflichtiger:
Wohnen GmbH
Für diesen Eintrag könnten wir ganz einfach eine rule
in unserer config.yml anlegen:
config.yml
common_rules:
# Wohung/Miete
- if:
- 1234/4567.00001.12.*Wohnen GmbH
description: Miete
account: Expenses:Wohnen:Miete
Regeln für Lastschrift, Überweisungen usw. befinden sich im Block ``common_rules``.
Erstellung der Regeln¶
Nachdem wir die Regeln in unsere config.yml
eingetragen haben,
können wir die hledger rules
mit dem folgenden Befehl erstellen:
python3 ./scripts/hledger-rules/hledger-rules.py -c config.yml gen-rules 2023
Die Regeln werden im Verzeichnis journals/2023/rules/ gespeichert.
common.csv.rules
if 1234/4568.00001.12.*Wohnen GmbH
description %beguenstigter_zahlungspflichtiger | Miete
account1 Expenses:Wohnen:Miete
Journals¶
Nachdem alle möglichen rules
in unsere config.yml
eingetragen
wurden (und die Regeln erstellt wurden), können wir auch die
journal
s erstellen lassen:
python3 ./scripts/hledger-rules/hledger-rules.py -c config.yml gen-rules 2023
python3 ./scripts/hledger-rules/hledger-rules.py --hledger-path=/usr/bin/hledger -c config.yml gen-year 2023
Die erstellten Journals werden im Verzeichnis journals/2023/ gespeichert.
journals/2023/2023-01/2023-01.bank.hledger
2023-01-02=2023-01-02 * (2023-01.0030) Wohnen GmbH | Miete ; type:DAUERAUFTRAG, payee:Wohnen GmbH
Expenses:Wohnen:Miete EUR499,20
Assets:Bank:Checking EUR-499,20
Budgetierung¶
Wenn alle Regeln für die Ausgaben eingetragen wurde, geht weiter zum Budgetieren:
Spezielle Regeln¶
Um komplexe Regeln für Amazon-Bestellungen und PayPal-Käufe zu verwenden, können wir vordefinierte Regeln generieren lassen.
config.yml
amazon_rules:
- if:
- Audible.de.*AUDIBLE GMBH
- Audible GmbH.*AUDIBLE GMBH
description: Amazon Audible GmbH Hörbuch
account: Expenses:Unterhaltung:Multimedia:Streaming:Abo:Amazon:Audible
- if:
- AMZNPrime DE.*AMAZON EU S.A R.L.
- Prime Video.*AMAZON DIGITAL GERMANY GMBH
description: Amazon Prime
account: Expenses:Unterhaltung:Multimedia:Streaming:Abo:Amazon:Prime