2026-06-07 16:13:01 +02:00
2026-06-07 14:43:28 +02:00
2026-06-07 13:45:39 +02:00
2026-06-07 13:45:39 +02:00
2026-06-07 13:32:14 +02:00
2026-06-07 16:13:01 +02:00
2026-06-07 19:13:50 +02:00
2026-06-07 13:45:39 +02:00
2026-06-07 13:45:39 +02:00
2026-06-07 16:28:31 +02:00
2026-06-07 13:32:14 +02:00
2026-06-07 16:28:31 +02:00
2026-06-07 13:32:14 +02:00

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).

Description
No description provided
Readme 3.9 MiB
Languages
C# 98.1%
Shell 1.2%
Dockerfile 0.7%