Monitor and control your Unraid server from Homey. The app polls Unraid's GraphQL API without waking disks from standby and provides tiles, flows, and alerts for system, storage, UPS, containers, and VMs.
- Array status, parity state, and total/free/used storage
- Per-disk usage tiles (up to 30) with dynamic capability management so only present disks appear
- Cache and flash (boot USB) usage tiles
- Disk health/temp warnings and high-usage triggers
- Container and VM counts and start/stop flows
- UPS status, battery, load, runtime
- Flow triggers/conditions for array, disks, containers, VMs, UPS
- App entry: app.ts
- Driver: drivers/unraid-server/driver.ts
- Device implementation & polling: drivers/unraid-server/device.ts
- GraphQL client & queries: lib/api
- Schemas: lib/schemas
- Utilities (poll manager, naming, formatting): lib/utils
- Capabilities: .homeycompose/capabilities
- Homey driver composition: .homeycompose/drivers/unraid-server/driver.compose.json
Use the Dev Container. Tooling is preconfigured for Node.js and Homey CLI.
- Node.js 18+
- Homey CLI (
npm i -g homey), though the dev container has it installed
npm cinpm run lint -- --ignore-pattern vitest.config.ts(ESLint must pass with zero warnings before committing.)
npm run buildnpm testnpx homey app run- Validate: .github/workflows/homey-app-validate.yml (runs
homey-app-validateafter installing dependencies) - Version bump: .github/workflows/homey-app-version.yml
- Publish (manual): .github/workflows/homey-app-publish.yml — requires
HOMEY_PAT
- Disk standby safety: polling uses
array.disks(cached) and never the rootdisksSMART query, so disks can spin down normally. - Dynamic capabilities: disk tiles are added/removed based on detected disks; cache/flash tiles are added only when present.
- Logging: use
this.log()within the app/driver for consistency.
- Ensure lint/tests pass.
- Update changelog/version via the version workflow (or manually bump
app.jsonif needed). - Run the Publish workflow with
HOMEY_PATconfigured.
- Issues and PRs are welcome. Follow linting/test requirements and keep Homey SDK best practices.
Note: README.txt is kept for Homey App Store publishing; this README.md is for developers.