Files
Tetra-AI-HA-App/DOCS.md
T

4.0 KiB
Raw Blame History

Moltbot Assistant (Home Assistant Add-on)

This add-on runs a Moltbot Assistant instance on Home Assistant OS (Supervisor add-on).

Note: The upstream project has gone through renames. This add-on currently installs OpenClaw (the successor of Clawdbot) and also provides a clawdbot shim for backwards compatibility.

What this add-on provides

1) Ingress page (embedded)

The add-ons Ingress UI is intentionally kept simple and reliable:

  • a landing page
  • an embedded web terminal (optional)
  • a button/link that opens the Gateway Web UI in a separate browser tab (not embedded)

This avoids Home Assistant Ingress websocket edge-cases.

2) Gateway Web UI (separate tab)

The Gateway Web UI requires websockets. Instead of trying to tunnel that through HA Ingress, we open it directly using a user-provided public/base URL.

Installation

  1. Home Assistant → Settings → Add-ons → Add-on store
  2. Add repository URL:
    • Add-on store → ⋮ → Repositories → paste the GitHub repo URL
  3. Install Moltbot Assistant

Configuration overview

All configuration is done via the add-on UI (Options).

Required

  • telegram_bot_token
  • gateway_bind: loopback
  • gateway_port: 18789
  • gateway_token: "" (auto-generated by gateway when loopback)
  • enable_terminal: false

Terminal (Ingress) setup

To enable the embedded web terminal:

  • Set enable_terminal: true

Then open the add-on Ingress page. You will see a terminal iframe.

Security note: the terminal is powerful. Only enable if you trust HA admins with shell access inside the add-on container.

Gateway Web UI (separate tab) setup

To open the gateway UI in a separate tab reliably:

  1. Expose the gateway:
  • Set gateway_bind: lan
  • Set gateway_port (default 18789)
  • Set a fixed gateway_token (required when gateway_bind=lan)
  1. Tell the add-on what URL to open:
  • Set gateway_public_url to a base URL that the browser can reach (recommended: no trailing slash).

Examples:

  • LAN only: http://homeassistant.local:18789 (or http://192.168.1.10:18789)
  • Public domain with port-forward: https://example.duckdns.org:12345
    • (in that case your router/NAT must forward 12345 → HA host → gateway port)

The Ingress landing page button will open:

<gateway_public_url>/?token=<gateway_token>

Notes:

  • This is intentionally not embedded.
  • This avoids the unreliable “ingress websocket proxy” path.

Optional options

  • telegram_allow_from: comma-separated Telegram user IDs (locks DMs)
  • brave_api_key: exported as BRAVE_API_KEY (for web search)
  • homeassistant_token: written to /config/secrets/homeassistant.token inside the container

Router SSH (generic)

This add-on supports a generic SSH configuration for a router/firewall (or any LAN network device) when you want the assistant to automate local network changes (e.g., port forwarding, DNS records, firewall rules).

Config fields:

  • router_ssh_host: host/IP of the router (reachable from the HA host network)
  • router_ssh_user: SSH username
  • router_ssh_key_path: path to the private key file inside the add-on (default: /data/keys/router_ssh)

How to provide the SSH key:

  • Put the private key file under the add-on config directory so it appears in-container at /data/keys/....
  • Ensure permissions are restricted (recommended chmod 600).

Back-compat:

  • Older versions used MikroTik-branded names: mikrotik_host, mikrotik_ssh_user, mikrotik_ssh_key_path. These are still accepted but deprecated.

Troubleshooting

Terminal doesnt show

  • Ensure enable_terminal=true
  • Check add-on logs for Starting web terminal (ttyd)

Gateway button opens but UI says unauthorized

  • Ensure gateway_token is set when using gateway_bind=lan.
  • Ensure the opened URL includes ?token=... (the add-on button does this automatically).

Gateway button opens but cannot connect

  • Confirm the browser can reach gateway_public_url.
  • Confirm your NAT/port-forward rules.