Use this after the hub is installed and reachable in a browser.
Open:
http://<hub-ip>:3000
Create the first account, then sign in.
HomeBrain browser sessions are stored in HttpOnly cookies set by the server. If login behaves strangely after an upgrade from an older build, sign out once and sign back in so the browser drops any legacy local token state. The native iOS app remains a bearer-token client and keeps its 365-day refresh-session default.
Open Settings -> General.
Use this tab for the main system behavior and defaults. Save once after reviewing the screen so the database stores your baseline configuration.
Open Settings -> Voice & Audio.
This is where you configure:
- local or cloud speech-to-text
- cloud text-to-speech providers
- wake-word sensitivity
- wake-word models and Piper voices
Recommended beginner path:
- Leave advanced values alone at first
- Add optional cloud API keys only if you want them
- Use the default wake-word tooling in the UI
If you want local speech-to-text:
- install Whisper models from the
Whisperpage - Jetson is the best-tested hardware for that
Open Settings -> Integrations.
Current integration areas in the UI:
- SmartThings
- Ecobee
- Logitech Harmony Hub
- INSTEON / ISY
Practical guidance:
- SmartThings: use OAuth, not a short-lived PAT
- Ecobee: configure OAuth and test before syncing devices
- Harmony: discover hubs, then sync activities to devices
- INSTEON: use a real serial path or a serial-to-TCP bridge; the PLM is not an Ethernet device
- ISY: use the built-in test, extract, preview, and sync tools from the same settings area
Open User Profiles.
Each profile can hold:
- name
- prompt / personality
- voice
- wake words
Profiles are what let HomeBrain answer like different family members or assistants.
Open Voice Devices.
To add a listener:
- Click
Add Remote Device - Enter the name and room
- Copy the generated one-command installer
- Run it on the listener device
The current system supports Raspberry Pi best, but other Debian/Ubuntu-based Linux listeners can also be used.
Wall panels are now a separate hardware path from Linux voice listeners.
Current support targets the ELECROW 2.1" round ESP32-S3 rotary display first. The panel talks to HomeBrain over Wi-Fi using the dedicated /api/panels API.
Current setup flow:
- Open
Settings -> Hardware Orbs - Create the orb and reveal its setup packet
- Flash the firmware in
../embedded/elecrow-wall-panel - Finish thermostat, scene, device, security, and Harmony mappings back in the same tab
Use the full runbook here:
Current note:
- provisioning and room bindings now live in the dedicated
Hardware OrbsSettings tab
Current structure:
Scenes: reusable grouped device actionsWorkflows: the primary builder for triggers, schedules, logic, visual editing, and AI generationAutomations: internal runtime records generated from workflows for scheduling and execution
Recommended order:
- Create devices and profiles first
- Build scenes second
- Build routines in
Workflows - Treat
Automationsas runtime internals rather than a separate user-facing editor
Runtime behavior:
device_stateandsensorworkflows run on the false-to-true trigger edge so they do not repeat every scheduler tick.- If a running workflow was started by a state trigger and that trigger stops matching before the workflow finishes, HomeBrain records a stop request and cancels the workflow. This is what keeps countdown routines, such as bathroom fan auto-off timers, from completing after the switch has already been turned back off.
- The native iOS workflow editor can create countdown workflows with a hold time, delay, triggering-device target, cooldown, and full raw trigger/action JSON for workflows originally built in the web editor.
Open:
Operationsfor event monitoring and health visibilityPlatform Deployfor git pull/build/restart jobs
Use Platform Deploy only after the host itself is already stable and working.
Open SSL if you want HomeBrain reachable at a public HTTPS domain.
You only need this if:
- you want internet-reachable access
- or an external integration requires a public HTTPS endpoint
If you only use HomeBrain inside your LAN, plain http://<hub-ip>:3000 is enough.
For public deployments:
- set
HOMEBRAIN_PUBLIC_BASE_URL - set
COOKIE_SECURE=true - set
CORS_ALLOWED_ORIGINSto the exact HTTPS origins that should use browser credentials - keep
AUTH_SESSION_MAX_AGE_DAYS=30for browsers andAUTH_IOS_SESSION_MAX_AGE_DAYS=365for the native iOS app unless you intentionally want a different policy - keep real secrets only in
server/.env - run
bash scripts/check-secrets.sh --historybefore pushing
Full checklist: