First catalog apps to exercise core 26.17's app-to-app dependency feature — until now every app was standalone. - mosquitto: MQTT broker, first dependency *provider*. Mandatory auth; per-consumer accounts created by on_install/on_start hooks (scripts/provision-client.sh, scripts/ensure-client.sh) that run inside the broker container via `docker compose exec`. Provider-side password stash so on_start can restore an account after a volume wipe. - zigbee2mqtt: first dependency *consumer*. `requires` mosquitto; MQTT creds wired in from the provisioning hook via ZIGBEE2MQTT_CONFIG_* env. Serial coordinator path as a text setting + devices mapping. Supporting changes: - Bump vendored furtka_manifest.py (26.10-era -> 26.17) so the validator actually validates the `requires` schema instead of ignoring it. - Document `requires`/hooks in apps/README.md (was undocumented), including the three framework gaps building this pair surfaced. - CI now shellchecks app hook scripts (apps/*/scripts/*.sh), not just repo-root scripts/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
28 lines
1.3 KiB
JSON
28 lines
1.3 KiB
JSON
{
|
|
"name": "zigbee2mqtt",
|
|
"display_name": "Zigbee2MQTT",
|
|
"version": "1.0.0",
|
|
"description": "Control Zigbee sensors, lights and switches over MQTT — no vendor cloud, no vendor hub.",
|
|
"description_long": "Bindet Zigbee-Geräte (Sensoren, Lampen, Schalter, Steckdosen vieler Hersteller) über einen USB-Koordinator lokal ein und stellt sie per MQTT bereit — ohne Hersteller-Cloud und ohne Hersteller-Bridge. Benötigt einen unterstützten Zigbee-USB-Stick (z.B. ConBee II, Sonoff ZBDongle-E) an dieser Maschine. Setzt den MQTT-Broker (Mosquitto) voraus; dieser wird bei Bedarf automatisch mitinstalliert und ein eigenes Broker-Konto angelegt. Die Weboberfläche zum Koppeln und Steuern der Geräte läuft auf Port 8084.",
|
|
"volumes": ["data"],
|
|
"ports": [8084],
|
|
"icon": "icon.svg",
|
|
"open_url": "http://{host}:8084/",
|
|
"requires": [
|
|
{
|
|
"app": "mosquitto",
|
|
"on_install": "scripts/provision-client.sh",
|
|
"on_start": "scripts/ensure-client.sh"
|
|
}
|
|
],
|
|
"settings": [
|
|
{
|
|
"name": "ZIGBEE_SERIAL_PORT",
|
|
"label": "Zigbee-Stick (serieller Port)",
|
|
"description": "Gerätepfad deines Zigbee-USB-Koordinators, z.B. /dev/ttyACM0 oder /dev/ttyUSB0. Den stabilen Pfad findest du per 'ls /dev/serial/by-id/' auf der Konsole.",
|
|
"type": "text",
|
|
"required": true,
|
|
"default": "/dev/ttyACM0"
|
|
}
|
|
]
|
|
}
|