Die Integration verbindet Home Assistant mit deinem Paperless-ngx-Workflow und klassifiziert Dokumente per KI automatisiert.
Die Integration startet den KI-Sorter direkt aus Home Assistant, schreibt Ergebnisse zurück nach Paperless-ngx und stellt Laufstatus, Kosten und Logs als Entitäten/Buttons bereit.
Zusätzlich kann die Integration optional ein steuerorientiertes Tax Enrichment
pro Dokument erzeugen. Diese Erweiterung richtet Dokumente auf private deutsche
Einkommensteuerfälle aus, bewertet Nachweisqualität vorsichtig und erzeugt
arbeitbare JSON-/CSV-Exporte für die manuelle Übernahme nach WISO Steuer.
Wenn du diese Funktion nicht möchtest, bleibt sie mit enable_tax_enrichment: false
komplett ausgeschaltet.
Neu dazugekommen:
- eigenständiger Docker-/Unraid-Worker mit Weboberfläche und JSON-API
- Remote-Ausführungsmodus in Home Assistant (
localoderremote_worker) - Konfig-Export aus Home Assistant direkt zum Worker
- optionaler eigener Tax-KI-Provider, z. B. lokales Ollama/vLLM für kleinere Aufgaben
- HACS öffnen ->
Integrationen->Custom repositories. - Repository hinzufügen:
- URL:
https://github.com/Feberdin/Paperless-KIplus - Kategorie:
Integration
- URL:
Paperless KIplus Runnerinstallieren.- Home Assistant neu starten.
- Unter
Einstellungen -> Geräte & Dienstedie Integration hinzufügen. - In den Optionen deine YAML-Konfiguration vollständig im YAML-Feld pflegen.
Alternative mit ChatGPT:
- Nutze den folgenden Prompt, um dir eine vollständige YAML erstellen zu lassen.
- Ergebnis 1:1 in das YAML-Feld der Integration kopieren.
Erstelle mir eine vollständige YAML-Konfiguration für die Home-Assistant Integration
"Paperless KIplus Runner" (Paperless-ngx KI-Sorter).
Ziel:
- Dokumente in Paperless-ngx per KI klassifizieren (Dokumenttyp, Korrespondent,
Speicherpfad, Tags, Datum, Notiz).
- Sicherer Betrieb in Home Assistant mit Fokus auf stabile Automationen.
Wichtige Anforderungen:
1) Gib nur gültiges YAML aus (ohne Markdown, ohne Erklärtext).
2) Gib alle unten genannten Felder vollständig aus, auch wenn du Defaultwerte nutzt.
3) Setze process_only_tag auf "#NEU".
4) Setze dry_run auf false.
5) Setze reprocess_ki_tagged_documents auf false.
6) Konfiguriere bereits klassifizierte Dokumente so, dass sie zuverlässig übersprungen werden.
7) Aktiviere Quarantäne- und Duplicate-Prechecks.
8) Aktiviere parallele KI-Verarbeitung moderat (3 bis 5 Jobs).
9) Nutze sinnvolle produktive Defaultwerte.
Pflicht-Platzhalter:
- paperless_url: <PAPERLESS_URL>
- paperless_token: <PAPERLESS_TOKEN>
- ai_api_key: <AI_API_KEY>
- ai_model: <AI_MODEL>
- ai_base_url: <AI_BASE_URL>
Die YAML muss diese Felder enthalten:
- paperless_url
- paperless_token
- ai_api_key
- ai_model
- ai_base_url
- max_documents
- dry_run
- create_missing_entities
- confidence_threshold
- request_timeout_seconds
- log_level
- enable_token_precheck
- min_remaining_tokens
- custom_prompt_instructions
- basis_config
- process_only_tag
- include_existing_entities_in_prompt
- enable_ai_notes
- ai_notes_max_chars
- enable_ai_note_summary
- ai_note_summary_max_chars
- enable_custom_field_enrichment
- create_missing_custom_fields
- enable_secondbrain_custom_fields
- secondbrain_custom_fields_overwrite_existing
- secondbrain_custom_fields_attach_empty_when_unknown
- secondbrain_custom_fields_confidence_threshold
- secondbrain_custom_fields_log_missing_fields
- metrics_file
- input_cost_per_1k_tokens_eur
- output_cost_per_1k_tokens_eur
- quarantine_failed_documents
- failed_document_cooldown_hours
- failed_documents_file
- failed_tags_only_cooldown_hours
- failed_patch_cache_file
- enable_tag_bypass_on_tags_500
- tag_bypass_file
- already_classified_skip
- already_classified_require_ki_tag
- precheck_min_content_chars
- precheck_min_word_count
- precheck_min_alnum_ratio
- precheck_blocked_filename_patterns
- precheck_image_only_gate
- precheck_duplicate_hash_gate
- precheck_duplicate_apply_metadata
- reprocess_ki_tagged_documents
- enable_parallel_ai
- max_parallel_ai_jobs
Die `basis_config` muss mindestens diese Struktur enthalten (Feldnamen exakt so verwenden):
basis_config:
people:
owner:
full_name: "Max Mustermann"
aliases: []
address:
street: "Musterstraße 1"
postal_code: "12345"
city: "Musterstadt"
contact:
mobile: "0123456789"
tax:
tax_number: ""
household:
children: []
relatives: []
contacts: []
organizations:
employer_current:
name: ""
preferred_storage_path: ""
employer_former:
name: ""
locations: []
preferred_storage_path: ""
only_if_clear_business_context: true
clubs: []
identifiers:
meters: []
classification_rules:
document_type:
invoice_addressed_to_owner: "Rechnung"
legal_documents_force_type:
type: "Rechtsanwalt"
trigger_terms: ["Rechtsanwalt", "Gericht", "Klage", "Beschluss", "Einspruch", "Aktenzeichen"]
correspondent:
normalize:
- if_contains_any: ["Hotel", "Pension", "Unterkunft", "Übernachtung"]
set_to: "Hotel"
storage_path:
mappings: []
default: "Privat"
tags:
add_year_tag_for_invoices: true
add_customer_number_tag_for_contracts: true
legal_case_tag_prefers_case_reference: true
keep_sparse: true
date:
prefer_document_date_over_upload_date: true
guardrails:
forbidden_path_assignments: []
Rahmendaten:
- Paperless URL: <PAPERLESS_URL>
- Paperless Token: <PAPERLESS_TOKEN>
- AI API Key: <AI_API_KEY>
- AI Modell: <AI_MODEL>
- AI Base URL (optional): <AI_BASE_URL>
Erzeuge jetzt die vollständige YAML.
- Native Home-Assistant Integration mit Config Flow und Options-UI
- KI-gestützte Dokumentklassifizierung für:
- Dokumenttyp
- Korrespondent
- Speicherpfad
- Tags
- Dokumentdatum
- Optionales Auto-Anlegen fehlender Entitäten (Korrespondent, Dokumenttyp, Tags)
- Dry-Run Modus ohne Schreibzugriffe in Paperless
- Vollscan-Modus (
Alle Dokumente) für Bestandsläufe - Precheck-/Skip-Logik zur Token-Einsparung
- Doppelte Dokumente per Checksum erkennen (optional Metadatenübernahme)
- Fehler-Quarantäne und Tag-Bypass für robuste Dauerläufe
- KI-Notizen inkl. Begründung/Kurz-Zusammenfassung
- Optionales Custom-Field-Enrichment für strukturierte Vertrags- und Lohnfelder
- Token-/Kosten-Tracking (letzter Lauf + Gesamtwerte)
- Services:
paperless_kiplus.runpaperless_kiplus.stoppaperless_kiplus.stop_nowpaperless_kiplus.resume
- Geräte-Buttons für:
- Bestandsdaten neu anreichern
- Lauf pausieren
- Lauf sofort stoppen
- Pausierten Lauf fortsetzen
- Letztes Protokoll anzeigen
- Letztes Protokoll exportieren
- Statistiken zurücksetzen
- Fehlgeschlagene Dokumente zurücksetzen
- Parallele KI-Verarbeitung (konfigurierbar)
- KI-Tag-Vorfilter: KI-getaggte Dokumente können standardmäßig komplett ausgeschlossen werden
- Echte Live-Fortschrittsanzeige:
- Prozent-Fortschritt
- aktueller Dokumenttitel
- laufende Zähler für Gescannt / Aktualisiert / Übersprungen / Fehler
- Kontrolliertes Pausieren und Fortsetzen:
- manuell per Button oder Service
- automatisch bei Provider-Wartezeiten (
429,Retry-After,insufficient_quota)
- Optionales Tax Enrichment für Einkommensteuer-Vorbereitung:
- feste Steuer-Taxonomie
- semantischer WISO-Mapping-Layer
- Review-Flags und Confidence-Werte
- formale Nachweisprüfung
- Exporte als
tax_export.jsonundtax_review.csv - steuerliche Ergebnis-Tags in Paperless
- eigene UI-Optionen für Steuer-Kontext und Tax-only-Nachlauf
Zusätzlich zur normalen Klassifikation kann die Integration strukturierte Paperless-Custom-Fields befüllen. Es gibt dafür jetzt zwei getrennte Wege:
enable_custom_field_enrichmentfür den kleinen festen Standard-Katalog (Vertrag / Lohnabrechnung)enable_secondbrain_custom_fieldsfür bereits in Paperless angelegtesb_-Felder, die vonSecondBrainspäter strukturiert ausgelesen werden- automatischer Tag
SB, sobald ein Dokument als SecondBrain-vorbereitet gilt
Die vollständige technische Consumer-Schnittstelle für SecondBrain steht in:
enable_secondbrain_custom_fields: true
secondbrain_custom_fields_overwrite_existing: false
secondbrain_custom_fields_attach_empty_when_unknown: false
secondbrain_custom_fields_confidence_threshold: 0.70
secondbrain_custom_fields_log_missing_fields: trueAlternativ gruppiert:
secondbrain_custom_fields:
enabled: true
overwrite_existing: false
attach_empty_when_unknown: false
confidence_threshold: 0.70
log_missing_fields: true- Paperless-ngx mit Custom-Field-Support
- die
sb_-Felder müssen bereits in Paperless existieren - ein API-Benutzer mit Rechten auf
CustomFieldundDocument
Wichtig:
- Fehlende
sb_-Felder brechen den Lauf nicht ab. Sie werden geloggt und übersprungen. - Select-Felder werden nicht über hart codierte IDs beschrieben. Die sichtbaren Labels aus der KI-Ausgabe werden zur Laufzeit gegen die in Paperless hinterlegten Select-Optionen aufgelöst.
- Bestehende Werte werden standardmäßig nicht überschrieben.
- Im Dry-Run wird nur angezeigt, was geschrieben würde.
- Dokumente mit sinnvoll befüllten
sb_-Feldern gelten als vorbereitet und bekommen zusätzlich den TagSB.
Klassifizierung:
sb_document_categorysb_life_area
Referenzen:
sb_case_referencesb_contract_numbersb_customer_numbersb_invoice_numbersb_policy_numbersb_meter_numbersb_provider_namesb_person_involvedsb_object_referencesb_bank_account_hint
Beträge:
sb_amount_totalsb_amount_netsb_amount_tax
Datumsfelder:
sb_due_datesb_document_datesb_period_startsb_period_endsb_effective_fromsb_effective_until
Aufgaben / Status:
sb_requires_actionsb_action_statussb_action_ownersb_next_action
Recht / Finanzen / Steuer:
sb_legal_relevancesb_financial_relevancesb_tax_yearsb_tax_type
Energie / Fahrzeug:
sb_energy_typesb_vehicle
Qualität / SecondBrain-Steuerung:
sb_confidencesb_source_qualitysb_sensitivesb_export_to_secondbrainsb_ignore_by_secondbrain
Verknüpfungen:
sb_related_documentssb_external_url
- Die KI kann optional ein strukturiertes Objekt
secondbrain_custom_fieldsliefern. Jeder Feldvorschlag besteht ausvalue,confidenceundreason. - Werte unterhalb
secondbrain_custom_fields_confidence_thresholdwerden nicht nach Paperless geschrieben. - Datumswerte werden auf
YYYY-MM-DDnormalisiert. - Monetäre Werte werden intern tolerant gelesen und für Paperless auf das
dokumentierte Format
EUR12.34gebracht. - Wenn
enable_tax_enrichmentaktiv ist, werden vorhandene Steuerdaten wietax_year,document_date,service_period_from,service_period_to,issuerundtotal_amountalssb_-Fallbacks wiederverwendet. - In der KI-Notiz erscheint ein eigener Abschnitt
SecondBrain-Felder, sobald tatsächlichsb_-Werte erkannt oder gesetzt wurden.
Für bereits eingelesene Paperless-Datenbanken gibt es einen eigenen
Backfill-Durchlauf. Er ist für genau den Fall gedacht, dass neue Funktionen wie
Tax Enrichment, sb_-Custom-Fields oder weitere Zusatzfelder nachträglich auf
alte Dokumente angewendet werden sollen.
Wichtig dabei:
- Der Backfill ignoriert den normalen
#NEU-Tag-Filter. - Bereits KI-getaggte Dokumente werden noch einmal analysiert, aber nur anreichernd aktualisiert.
- Standard-Metadaten wie Dokumenttyp, Korrespondent, Speicherpfad, Tags und Dokumentdatum werden bei bereits KI-getaggten Dokumenten dabei nicht überschrieben.
- Wenn du bestehende KI-Dokumente absichtlich komplett neu klassifizieren
möchtest, nutze weiterhin den normalen Reprocess-Weg über
reprocess_ki_tagged_documents: trueund nicht den Backfill-Modus. - Die kostenoptimierenden Standard-Prechecks werden im Backfill bewusst ausgesetzt, damit die Bestandsdaten wirklich vollständig erneut geprüft werden können.
CLI-Beispiel für den kompletten Backfill:
python3 /config/custom_components/paperless_kiplus/paperless_ai_sorter.py \
--config config.yaml \
--backfill-existing-documentsWenn du den Gesamtdurchlauf in Chargen aufteilen möchtest:
python3 /config/custom_components/paperless_kiplus/paperless_ai_sorter.py \
--config config.yaml \
--backfill-existing-documents \
--max-documents 200In Home Assistant kannst du den Backfill auf zwei Wegen starten:
- Button
Paperless KIplus Bestandsdaten neu anreichern - Service
paperless_kiplus.runmitbackfill_existing_documents: true
Beispiel-Service-Call:
service: paperless_kiplus.run
data:
backfill_existing_documents: trueIm Backfill gilt zusätzlich:
- Bereits befüllte SecondBrain-Dokumente werden vor dem KI-Aufruf erkannt.
- Wenn schon sinnvolle
sb_-Felder vorhanden sind, wird das Dokument ohne neue KI-Tokens übersprungen. - Solche Dokumente bekommen, falls noch nicht vorhanden, automatisch den Tag
SB.
Während eines Laufs schreibt der Sorter jetzt maschinenlesbare Runtime-Events. Dadurch kann Home Assistant echten Fortschritt anzeigen, statt nur auf das Laufende zu warten.
Sichtbar sind unter anderem:
Paperless KIplus Fortschrittals Prozent-Sensorprogress_current_document_titleim Statussensorprogress_last_event_at, damit man sofort sieht, wann der letzte echte Fortschritt ankam- eigener Sensor
Paperless KIplus Aktuelles Dokument - eigener Sensor
Paperless KIplus Letztes fertiges Dokument progress_scanned,progress_updated,progress_skipped,progress_failedresume_available,pause_reasonundauto_resume_at
Zusätzlich gibt es jetzt klickbare Hilfs-Buttons:
Paperless KIplus Aktuelles Dokument öffnenPaperless KIplus Letztes fertiges Dokument öffnenPaperless KIplus Letztes Protokoll herunterladenPaperless KIplus Lauf neu starten
Die Dokument-Buttons erzeugen in Home Assistant eine anklickbare
Benachrichtigung mit direktem Paperless-Link zum jeweiligen Dokument. Der
Log-Download-Button exportiert das letzte Protokoll nach /config/www und
zeigt direkt einen anklickbaren Download-Link an.
Wenn du bewusst nicht an einem pausierten Stand weiterlaufen willst, sondern mit neuer Konfiguration komplett frisch neu beginnen möchtest, nutze jetzt:
- Button:
Paperless KIplus Lauf neu starten - Service:
paperless_kiplus.restart
Der Neustart:
- stoppt einen laufenden Prozess bei Bedarf sofort,
- verwirft den alten Resume-Stand,
- startet den Lauf frisch von vorne,
- übernimmt ohne explizite Angabe den zuletzt bekannten Modus, z. B.
Bestandsdaten-Backfill.
Es gibt jetzt eine große Lovelace-YAML-Vorlage unter:
Damit bekommst du auf einen Blick:
- Status
- Fortschritt
- aktuelles Dokument
- letztes fertiges Dokument
- Neustart / Pause / Stop / Resume
- Log-Download und Support-Hilfen
Neuer Service zum sicheren Pausieren:
service: paperless_kiplus.stop
data: {}Neuer Service für einen echten Sofort-Stopp:
service: paperless_kiplus.stop_now
data: {}Neuer Service zum Fortsetzen eines pausierten Laufs:
service: paperless_kiplus.resume
data:
wait: falseWichtige Regeln:
stopist bewusst ein kontrollierter Stop nach aktuellem Dokument oder aktuellem KI-Batch. Der Prozess wird nicht blind hart beendet.stop_nowbeendet den laufenden Prozess sofort. Wenn bereits ein Fortschrittszustand geschrieben wurde, kann der Lauf später trotzdem wieder aufgenommen werden.- Ein pausierter Lauf speichert seinen Zustand in einer Resume-Datei und setzt später genau dort fort.
- Bei kurzen Rate-Limits mit kleinem
Retry-Afterwartet der Lauf direkt im selben Prozess. - Bei längeren Provider-Wartezeiten oder
insufficient_quotapausiert der Lauf kontrolliert und plant die Wiederaufnahme, statt Dokumente unnötig in die Fehlerquarantäne zu schicken. - Für manuelle CLI-Läufe gibt es zusätzlich:
--resume-run--request-stop--run-state-file--stop-request-file
Beispiel einer KI-Antwort mit zusätzlichen SecondBrain-Feldern:
{
"document_type": "Rechnung",
"correspondent": "Muster GmbH",
"storage_path": "Privat",
"tags": ["Finanzen"],
"document_date": "2026-05-01",
"summary": "Rechnung über Speichererweiterung.",
"confidence": 0.91,
"rationale": "Rechnungsnummer, Betrag und Zahlungsziel klar erkannt.",
"secondbrain_custom_fields": {
"sb_document_category": {
"value": "Rechnung",
"confidence": 0.95,
"reason": "Rechnungsnummer und Gesamtbetrag klar erkennbar."
},
"sb_amount_total": {
"value": "123.45",
"confidence": 0.88,
"reason": "Gesamtbetrag inkl. MwSt. erkannt."
},
"sb_due_date": {
"value": "2026-05-15",
"confidence": 0.84,
"reason": "Zahlungsziel im Dokument erkannt."
}
}
}Nach der Auflösung gegen Paperless können daraus zum Beispiel diese Werte entstehen:
sb_document_category-> Select-Option-ID aus Paperlesssb_amount_total->EUR123.45sb_due_date->2026-05-15
Zusätzlich gibt es weiterhin den kleineren festen Katalog:
enable_custom_field_enrichment: true
create_missing_custom_fields: trueVerträge:
VertragsnummerKundennummerVertragsbeginnVertragsendeKündigen bisMonatliche Aufwendungen
Lohnabrechnungen:
BruttoNettoBoniSonstige BezügeSteuern/SozialabgabenSonstige AbzügeAbgaben gesamt
- Die Extraktion bleibt KI-gestützt und ist daher ein Vorschlagssystem.
- Das Feature ist bewusst auf einen festen Feldkatalog begrenzt, damit keine unkontrollierte Feldflut in Paperless entsteht.
- Wenn
SecondBraindiese Felder als First-Class-Datenmodell nutzen soll, muss dessen Importpfad die Paperless-Custom-Fields ebenfalls aktiv auslesen.
Die Tax-Enrichment-Funktion ergänzt die normale Dokumentklassifikation um eine steuerorientierte Sicht pro Dokument. Sie ist als Vorschlagssystem gebaut und trifft keine endgültigen Rechtsentscheidungen.
- Die bestehende Paperless-Klassifikation bleibt unverändert und läuft weiter wie bisher.
- Optional wird danach ein separates, versioniertes
tax_enrichmentpro Dokument erzeugt. - Das Steuerobjekt nutzt:
- eine feste interne Taxonomie
- einen semantischen WISO-Zielbereich
- eine formale Nachweis-/Validierungslogik
- Review-Flags für menschliche Nacharbeit
- Es wird bewusst kein proprietäres WISO-Dateiformat erzeugt.
Das Steuerobjekt enthält unter anderem:
tax_yeardocument_dateservice_period_fromservice_period_todocument_typeissuerrecipienttotal_amountcurrencypayment_methodpayment_verifiedevidence_typetax_categorytax_subcategorydeduction_domainwiso_target_areaclassification_confidenceeligibility_confidencereasoning_summaryflags- optional zusätzlich
person_reference,child_reference,household_reference,extracted_evidence,missing_requirements,recommended_follow_up,formal_validity
Hauptkategorien:
werbungskostensonderausgabenaussergewoehnliche_belastungenkinderbetreuungskostenhaushaltsnahe_dienstleistungenhandwerkerleistungenunterhaltpflegekapitalvermoegenvermietungselbststaendigkeitnicht_steuerrelevantunklar
Beispiel-Unterkategorien:
arbeitsmittelhomeofficeweiterbildungfahrtkostenkitatagesmutterbabysitterreinigunggartenpflegewinterdiensthandwerker_lohnkostenmedikamenteapothekepflegedienstpflegeheim
Mindestens diese Review-Flags werden unterstützt:
needs_reviewneeds_payment_proofneeds_person_assignmentneeds_year_assignmenthigh_audit_relevancepossible_finanzamt_querynot_tax_relevantmixed_private_and_tax_relevantmissing_labor_splitcash_payment_not_eligible
Bei aktivierter Funktion werden pro Steuerjahr Dateien erzeugt:
tax_exports/<jahr>/tax_export.jsontax_exports/<jahr>/tax_review.csv
tax_export.json enthält:
taxpayertax_yeardocumentscategory_totalsreview_itemsmissing_evidencenotes_for_wiso
tax_review.csv enthält pro Dokument mindestens:
document_idtitledocument_dateissuertotal_amounttax_yeartax_categorytax_subcategorywiso_target_areaformal_validityclassification_confidenceeligibility_confidenceflagsreasoning_summary
- Die Steueranalyse ist ein Vorschlagssystem, keine Rechtsberatung.
- WISO wird nur semantisch vorbereitet, nicht über ein proprietäres Dateiformat angesteuert.
- Fehlende Zahlungsnachweise, fehlende Personenzuordnung oder unklare Jahre werden bewusst als Review-Fall markiert.
- Bei haushaltsnahen Dienstleistungen und Handwerkerleistungen werden Barzahlung und fehlende Lohn-/Materialtrennung explizit markiert.
Zusätzliche Konfigurationsfelder:
enable_tax_enrichment: true
tax_export_dir: "tax_exports"
tax_export_years:
- 2025
tax_process_ki_tagged_documents: false
tax_ai_api_key: dummy
tax_ai_model: qwen2.5:7b
tax_ai_base_url: http://ollama:11434/v1
tax_personal_context: |
Steuerpflichtiger: Max Mustermann
Familienstand:
Kinder:
Betreuungsmodell:
Sonstige steuerlich wichtige Hinweise:Wenn Tax Enrichment aktiv ist, werden steuerliche Ergebnis-Tags best effort nach Paperless gespiegelt:
KI Steuerrelevant <Jahr>bei steuerlich relevantem Dokument mit erkanntem SteuerjahrKI nicht Steuerrelevantbei klar nicht steuerrelevanten Dokumenten
So kannst du spaeter direkt nach Steuerjahr oder Nicht-Relevanz filtern.
Wenn du bereits viele Dokumente mit KI-Tag hast und diese nicht neu klassifizieren, aber einmal steuerlich prüfen lassen willst, nutze:
enable_tax_enrichment: true
tax_process_ki_tagged_documents: true
reprocess_ki_tagged_documents: falseDann werden bestehende KI-Dokumente nur fuer Tax Enrichment erneut betrachtet, ohne die normale Dokument-Klassifikation noch einmal durchzuschicken.
Du kannst dir einen guten Freitext fuer tax_personal_context mit ChatGPT erzeugen
lassen und dann in Home Assistant direkt in dein YAML-Feld einfügen.
Erstelle mir einen kompakten, gut strukturierten Freitext fuer die YAML-Einstellung
"tax_personal_context" meiner Home-Assistant Integration "Paperless KIplus Runner".
Ziel:
- Die Information soll einer Steuer-KI helfen, private deutsche Dokumente fuer die
Einkommensteuer sinnvoller zu bewerten.
- Es geht nur um Kontext, nicht um eine Steuererklaerung.
- Gib nur klaren, kopierbaren Text aus, kein Markdown, keine Erklaerungen.
Bitte frage bzw. strukturiere die Antwort nach diesen Punkten:
- Steuerpflichtige Hauptperson mit Name
- Ehe-/Partnerschaftsstatus
- Zusammenveranlagung oder Trennung, falls bekannt
- Kinder mit Name, Geburtsjahr/Alter und Wohn-/Betreuungssituation
- Bei getrennten Eltern: Verteilung der Kinderbetreuung und wer welche Kosten traegt
- Weitere haushaltszugehoerige oder unterstuetzte Personen
- Pflegefaelle, Unterhalt, Behinderung, Krankheitskosten oder andere besondere Belastungen
- Berufliche Situation, soweit fuer Werbungskosten wichtig
- Vermietung, Selbststaendigkeit, Kapitalertraege oder sonstige steuerlich relevante Lebensbereiche
- Sonstige Hinweise, wonach eine Steuer-KI besonders schauen soll
Anforderungen:
- Formuliere neutral, knapp und sachlich.
- Verwende Abschnitte mit klaren Ueberschriften.
- Erfinde nichts und lasse unbekannte Punkte als "unbekannt" stehen.
- Optimiere den Text fuer spaeteres maschinelles Mitlesen.
Wenn du die Rechenlast von Home Assistant auf deinen Server ziehen willst, gibt es jetzt einen voll lauffähigen Worker mit eigener Weboberfläche.
Was der Worker mitbringt:
- vollständige Ausführung ohne Home Assistant
- eingebaute Weboberfläche unter
/ - JSON-API für Run / Stop / Resume / Restart / Backfill
- Log-Download, Status und Konfigurationsverwaltung
- persistente Dateien für Config, Metriken und Resume-State unter
/data
Dokumentation:
- Docker- und Unraid-Betrieb
- Migration von Home Assistant zum Remote-Worker
- Lokale LLMs für kleinere Aufgaben
mkdir -p worker-data/config
cp config.example.yaml worker-data/config/config.yaml
docker compose -f docker/docker-compose.example.yml up -dDanach:
- Weboberfläche:
http://<server>:8787/ - Status-API:
http://<server>:8787/api/status
Für Unraid gibt es jetzt zwei klare Wege:
- Von macOS/Linux per SSH auf einen entfernten Unraid-Server deployen
- Direkt im Unraid-Terminal ohne Repo-Checkout installieren
- Direkt auf dem Unraid-Server mit vorhandenem Repo installieren
bash docker/deploy-to-unraid.sh \
--unraid-host 192.168.178.30 \
--paperless-url http://192.168.178.20:8000 \
--paperless-token PAPERLESS_TOKEN \
--ai-api-key OPENAI_KEY \
--ai-model gpt-4.1-miniDas Remote-Skript:
- verbindet sich per SSH mit Unraid
- kopiert den eigentlichen Host-Installer auf den Server
- überträgt optional eine lokale
config.yaml - führt die Installation direkt auf Unraid aus
Wenn du direkt im Unraid-Terminal bist und das Repo dort nicht lokal liegen hast, kannst du jetzt den Bootstrap-Weg nutzen. Er legt zuerst den passenden Ordner an, lädt den Installer herunter und startet ihn direkt:
mkdir -p /boot/config/custom/paperless-kiplus && \
curl -fsSL https://raw.githubusercontent.com/Feberdin/Paperless-KIplus/v1.4.6/docker/bootstrap-unraid-worker.sh \
-o /boot/config/custom/paperless-kiplus/bootstrap-unraid-worker.sh && \
chmod +x /boot/config/custom/paperless-kiplus/bootstrap-unraid-worker.sh && \
bash /boot/config/custom/paperless-kiplus/bootstrap-unraid-worker.sh \
--ref v1.4.6 \
--paperless-url http://192.168.178.20:8000 \
--paperless-token PAPERLESS_TOKEN \
--ai-api-key OPENAI_KEY \
--ai-model gpt-4.1-miniDabei wird der Installer standardmäßig hier abgelegt:
/boot/config/custom/paperless-kiplus/install-unraid-worker.sh
Wenn du bereits ein Repo-Checkout auf Unraid hast, kannst du weiterhin direkt das Host-Skript verwenden:
bash /pfad/zum/repo/docker/install-unraid-worker.sh \
--paperless-url http://192.168.178.20:8000 \
--paperless-token PAPERLESS_TOKEN \
--ai-api-key OPENAI_KEY \
--ai-model gpt-4.1-miniDas Host-Skript:
- legt die Appdata-Verzeichnisse an
- sichert bestehende Dateien
- erzeugt eine startfähige
config.yaml - schreibt einen Compose-Stack mit GHCR-Image
- startet oder aktualisiert den Worker
- prüft die API per Health-Check
In den Integrationsoptionen kannst du jetzt wählen:
execution_mode: localexecution_mode: remote_worker
Für den Remote-Modus brauchst du typischerweise:
remote_worker_url, zum Beispielhttp://unraid-server:8787- optional
remote_worker_token - optional
remote_worker_sync_config: true
Zusätzliche HA-Hilfen:
- Button
Paperless KIplus Worker-Konfiguration exportieren - Button
Paperless KIplus Worker-Weboberfläche öffnen - Service
paperless_kiplus.export_config
Tax Enrichment kann jetzt auf einen eigenen OpenAI-kompatiblen Endpoint zeigen. Damit kannst du die Hauptklassifikation weiter in der Cloud lassen und die kleinere steuerliche Extraktion lokal ausführen.
Beispiel:
ai_api_key: <OPENAI_KEY>
ai_model: gpt-4.1-mini
ai_base_url: https://api.openai.com/v1
enable_tax_enrichment: true
tax_ai_api_key: dummy
tax_ai_model: qwen2.5:7b
tax_ai_base_url: http://ollama:11434/v1-
v1.4.6(2026-04-27)- Installer prueft belegte Host-Ports jetzt vor dem Container-Start und meldet klar, wenn z. B.
8787schon von einem anderen Dienst oder Container verwendet wird. - Damit wird auf Unraid bei Port-Konflikten frueher und verstaendlicher abgebrochen, statt erst spaet im Docker-Start zu scheitern.
- Installer prueft belegte Host-Ports jetzt vor dem Container-Start und meldet klar, wenn z. B.
-
v1.4.5(2026-04-27)- Unraid-Terminal-Beispiel auf einen robusteren Download-Flow umgestellt: Ordner anlegen, Bootstrap-Datei herunterladen, Datei ausfuehrbar machen, dann lokal starten.
- Alle Shell-Skripte gegen leeres
$0gehaertet, damitbasename-Fehler auf einzelnen Shell-Aufrufen nicht mehr auftreten.
-
v1.4.4(2026-04-27)- Neues Bootstrap-Skript
docker/bootstrap-unraid-worker.shergänzt, damit der Worker direkt im Unraid-Terminal ohne lokales Repo-Checkout installiert werden kann. - Der Bootstrap-Weg legt den Zielordner automatisch an, lädt
install-unraid-worker.shvon GitHub herunter und startet die Installation lokal auf Unraid.
- Neues Bootstrap-Skript
-
v1.4.3(2026-04-27)- Neues Remote-Deploy-Skript
docker/deploy-to-unraid.shergänzt, damit die Installation von macOS/Linux per SSH sauber auf einem entfernten Unraid-Server ausgeführt werden kann. - Das Host-Installationsskript
docker/install-unraid-worker.shblockiert jetzt bewusst direkte Ausführung auf macOS und verweist stattdessen auf den Remote-Deploy-Weg.
- Neues Remote-Deploy-Skript
-
v1.4.2(2026-04-26)- Eigenständigen Docker-/Unraid-Worker mit Weboberfläche und JSON-API ergänzt.
- Remote-Ausführungsmodus in Home Assistant ergänzt, inklusive
execution_mode,remote_worker_urlund automatischem Config-Sync. - Neuer Config-Export-Service und neue Buttons für Worker-UI sowie Worker-Konfiguration ergänzt.
- Optionalen eigenen Tax-KI-Provider (
tax_ai_*) ergänzt, damit kleinere Steuer-Aufgaben auf lokalen OpenAI-kompatiblen LLMs laufen können. - Dockerfile, Compose-Beispiel, Unraid-Template, GHCR-Build-Workflow und Betriebsdoku ergänzt.
- Neues robustes Unraid-Installationsskript ergänzt, das Appdata, Compose, Konfiguration, Backups und Health-Check automatisch vorbereitet.
-
v1.3.5(2026-04-26)- Neuer Service und Button
Lauf neu starten: verwirft bewusst den alten Resume-Stand und startet frisch von vorne. - Neustart übernimmt standardmäßig den zuletzt bekannten Modus, zum Beispiel Backfill.
- Großes Lovelace-Dashboard als direkt einfügbare YAML-Vorlage ergänzt.
- Neuer Service und Button
-
v1.3.4(2026-04-26)- Neue Sensoren für
Aktuelles DokumentundLetztes fertiges Dokumentergänzt. - Neue Buttons ergänzt, die anklickbare Paperless-Links für aktuelles und zuletzt abgeschlossenes Dokument bereitstellen.
- Log-Download-Button verbessert: Export erzeugt jetzt direkt eine anklickbare Home-Assistant-Benachrichtigung mit Download-Link.
- Statussensor enthält jetzt zusätzlich URLs für aktuelles und letztes fertiges Dokument.
- Neue Sensoren für
-
v1.3.3(2026-04-26)- Live-Fortschritts-Events deutlich verschlankt, damit Home Assistant nicht mehr komplette OCR-Inhalte als Fortschritt mitschleppen muss.
- Resume-State bleibt weiterhin vollständig auf Disk erhalten, während der Live-Status nur noch schlanke Pending-Metadaten überträgt.
- Neuer Zeitstempel
progress_last_event_atergänzt, damit hängende oder stille Läufe sofort erkennbar sind. - Sofort-Stopp bevorzugt jetzt die vollständige Run-State-Datei für Resume, statt einen eventuell abgespeckten Live-Status zu konservieren.
-
v1.3.2(2026-04-26)- Backfill prüft jetzt vor dem KI-Aufruf, ob ein Dokument bereits sinnvolle
sb_-Felder besitzt. - Bereits vorbereitete SecondBrain-Dokumente werden im Backfill ohne neue KI-Tokens übersprungen.
- Dokumente mit vorhandenen oder frisch gesetzten SecondBrain-Feldern bekommen automatisch den Tag
SB.
- Backfill prüft jetzt vor dem KI-Aufruf, ob ein Dokument bereits sinnvolle
-
v1.3.1(2026-04-26)- Echten Sofort-Stopp per Home-Assistant-Service
paperless_kiplus.stop_nowergänzt. - Neuen Geräte-Button
Paperless KIplus Lauf sofort stoppenergänzt. - Runner bewahrt beim Sofort-Stopp den letzten bekannten Fortschrittszustand, damit ein späteres Resume möglich bleibt.
- Statussensor zeigt jetzt zusätzlich
force_stop_requested.
- Echten Sofort-Stopp per Home-Assistant-Service
-
v1.3.0(2026-04-26)- Echte Live-Fortschrittsanzeige mit Prozent, aktuellem Dokument und laufenden Zählern ergänzt.
- Kontrolliertes Pausieren und Fortsetzen für manuelle Läufe eingebaut.
- Resume-State-Datei eingeführt, damit pausierte Läufe später exakt weiterlaufen können.
- Neue Home-Assistant-Services
paperless_kiplus.stopundpaperless_kiplus.resumeergänzt. - Neue Geräte-Buttons für Pause und Fortsetzen ergänzt.
- Provider-429/Quota-Fälle werden jetzt als Pause statt als Dokumentfehler behandelt.
- Automatische Wiederaufnahme nach
Retry-Afterbzw. Provider-Backoff ergänzt.
-
v1.2.0(2026-04-26)- SecondBrain-Custom-Field-Sync für bestehende
sb_-Felder in Paperless ergänzt. - Strukturierte KI-Ausgabe für
sb_-Felder mit Confidence und Begründung hinzugefügt. - Bestehende Paperless-Custom-Fields werden dynamisch per Name und Select-Option-ID aufgelöst.
- Neuer Bestandsdaten-Backfill für bereits eingelesene Paperless-Datenbanken ergänzt.
- KI-getaggte Dokumente können im Backfill gezielt nur für neue Zusatzfunktionen erneut angereichert werden.
- Home-Assistant-Service und Geräte-Button für den Backfill ergänzt.
- SecondBrain-Custom-Field-Sync für bestehende
-
v1.1.1(2026-03-29)- UI-Optionen für Steuerfunktion ergänzt.
- Privater Steuerkontext direkt in Home Assistant pflegbar.
- Bereits KI-getaggte Dokumente können einmalig nur steuerlich nachgeprüft werden.
- Steuer-Tags
KI Steuerrelevant <Jahr>undKI nicht Steuerrelevantergänzt.
-
v1.1.0(2026-03-28)- Erste produktiv nutzbare Tax-Enrichment-Erweiterung hinzugefügt.
- Feste Steuer-Taxonomie, WISO-Mapping-Layer, Review-Flags und Nachweisprüfung ergänzt.
- Export pro Steuerjahr als
tax_export.jsonundtax_review.csveingeführt.
-
v1.0.0(2026-03-08)- Erstes stabiles Release für HACS.
-
v0.1.49(2026-03-08)- KI-Tag-Vorfilter vor der Abarbeitung ergänzt.
- Performance-Metriken im Log ergänzt (KI-Batches/Zeiten).
-
v0.1.48(2026-03-06)max_documentszählt übersprungene Dokumente nicht mehr als Verarbeitungsbudget.
-
v0.1.47(2026-03-06)- Option
reprocess_ki_tagged_documentseingeführt (Default AUS).
- Option
-
v0.1.46(2026-03-03)already_classified_skipim All-Documents-Verhalten nachgeschärft.
-
v0.1.45(2026-03-03)- Tag-Sanitizer, KI-Retry-Backoff und robustere PATCH-Fallbacks.
-
v0.1.44(2026-03-03)- Parallele KI-Verarbeitung mit konfigurierbarer Worker-Anzahl.
-
Ältere Releases
- Weitere Tags vorhanden:
v0.1.43bisv0.1.2.
- Weitere Tags vorhanden:



