add more immich control options
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing

This commit is contained in:
2026-02-01 21:24:24 +11:00
parent 3644001dbc
commit 806d701535
9 changed files with 355 additions and 30 deletions

View File

@@ -136,6 +136,7 @@ Example:
"host": "mqtt.local",
"port": 1883,
"topic": "slide/control",
"immichTopic": "slide/immich",
"clientId": "slide-frame",
"username": "slide",
"password": "secret",
@@ -151,6 +152,16 @@ Commands:
* `next` / `next-image` — advance to next image
* `next-folder` — jump to next configured path (if multiple paths are configured)
* `restart` / `reset` — recreate the selector and restart playback
If `immichTopic` is not set, it defaults to `<topic>/immich`.
Immich control topic (`immichTopic`):
* `album:<id>` or `albumIds:id1,id2` — filter to one or more album IDs
* `person:<id>` or `personIds:id1,id2` — filter to one or more person IDs
* `reset` / `clear` — clear album/person filters
* JSON payloads are also accepted, for example:
```
{"albumIds":["..."],"personIds":["..."],"order":"desc","size":"fullsize"}
```
### Immich configuration (lightweight + low power)
@@ -195,6 +206,7 @@ Immich settings:
* `url`: base Immich server URL (the integration appends `/api` automatically if missing).
* `apiKey`: Immich API key (needs `asset.view`, and `asset.download` if `size` is `original`).
* `albumId` or `albumIds`: optional album filters.
* `personId` or `personIds`: optional person filters.
* `size`: `"fullsize"`, `"preview"`, `"thumbnail"`, or `"original"` (original uses the download endpoint).
* `order`: `"asc"` or `"desc"` ordering for asset search.
* `pageSize`: assets fetched per page.