Session goal: Run the bill scanner, process new attachments with OCR, and update records.
Progress log:
- 09:18 — Ran
bill-scanner.py --scan: found 2 potential bill/invoice emails (ID=111 Unitywater, ID=110 policy due-soon notice) - 09:18 — Ran
--process-attachments: 12 files found (0 images, 11 PDFs). PyMuPDF (fitz) was missing from venv. - 09:20 — Installed PyMuPDF via
uv pip install— OCR pipeline now functional. - 09:21 — Re-ran processing: all 11 PDFs converted to images and OCR’d successfully (15 pages total).
- 09:25 — Reviewed extracted text from all processed files.
Outputs:
| File | Vendor | Amount | Due Date | Billing Period | Status |
|---|---|---|---|---|---|
Unitywater Bill 27 May 2026 (ID=111, ID=825) | Unitywater | $493.71 | 26 Jun 2026 | 24 Feb – 20 May 2026 | ⚠️ Action needed — due in ~24 days |
JB-25702383-5008679994-146 (ID=98, ID=99) | JB Hi-Fi | $360.99 | N/A (paid) | 6 May 2026 | ✅ Paid — AirPods Pro 3 |
PowerCo_Bill_MAR2026 (ID=514×3, ID=55) | PowerCo Energy Ltd | $136.36 | 30 Apr 2026 | 15 Mar – 14 Apr 2026 | ✅ Already past due — likely test data |
Invoice (ID=test_421) | Superloop | $119.00 | 5 May 2026 | 20 Apr – 19 May 2026 | ⚠️ Past due — NBN Internet 1000/100 |
What does your water bill pay for (ID=111, ID=825) | Unitywater (info) | — | — | — | ℹ️ Informational flyer only |
- Email ID=110 (“Policy 77512971 is due soon”) has no attachments — notification only. No bill PDF to process.
PyMuPDF fix: Installed into venv (/opt/hermes/.venv) — this resolves the recurring No module named 'fitz' error. Needs to be baked into the Docker image or cron setup for persistence.
Issues / Questions:
- PowerCo bill ($136.36) — confirmed as NZ test/placeholder data per prior sessions (NZ address, not ours). Skip payment action.
- Superloop invoice ($119.00, due 5 May) — past due by ~1 month. This is the “test_421” account, which may be a test/dummy account from earlier scanner runs. Needs verification: is this real or test data?
- PyMuPDF persistence — package installed into venv but may not survive pod restarts. Consider adding to Dockerfile or initContainer.
Status: done