Files
frame-processor/README.md
Fritiof Hedman e9d9311748 11.2 README
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-07 16:28:31 +02:00

1.3 KiB

Frame Processor

Self-hosted ASP.NET Core (.NET 10) service that dithers and color-remaps images for Spectra 6 e-ink frames, persists the result to disk, and notifies the frame via MQTT.

Documentation

  • SPEC.md — authoritative behavior contract.
  • PLAN.md — implementation design and verification checklist.
  • CLAUDE.md — load-bearing conventions and working notes.

Quick start

docker compose up --build

Brings up frame-processor on :8080 plus a mosquitto broker on :1883.

Smoke tests

# Health (also reports MQTT connection state)
curl http://localhost:8080/health

# Upload a file
curl -H "X-Api-Key: change-me" \
     -F "image=@photo.jpg" \
     http://localhost:8080/api/frames/living-room/image

# Upload via URL
curl -H "X-Api-Key: change-me" \
     -H "Content-Type: application/json" \
     -d '{"url":"https://example.com/photo.jpg"}' \
     http://localhost:8080/api/frames/living-room/image-url

# Fetch the processed PNG (the frame does this on MQTT signal)
curl http://localhost:8080/i/aabbccddeeff.png > out.png

# Watch MQTT publishes
mosquitto_sub -t 'frames/#' -v

Configure frames in frames.json; service settings in appsettings.json (or via Mqtt__Host-style env vars).