diff --git a/README.md b/README.md index 4647b30..7b422a7 100644 --- a/README.md +++ b/README.md @@ -52,21 +52,14 @@ On-demand integrations, managed under **Add-ons** in the sidebar. ### Ring (cloud, opt-in) -Ring has no local API, so HomeOS bridges it via [ring-mqtt](https://github.com/tsightler/ring-mqtt), -which runs as an **opt-in** container (it never starts on a Ring-less setup): +Ring has no local API, so HomeOS bridges it via [ring-mqtt](https://github.com/tsightler/ring-mqtt). +The bridge is part of the stack, so it **starts automatically** with `docker compose up -d` — no +manual step. Then: -```bash -bash docker/mosquitto/gen-passwd.sh # seeds the least-privileged `ring` broker account -docker compose --profile addons up -d ring-mqtt # start the bridge -``` - -Then: - -1. Open **http://:${RING_UI_PORT:-55123}** (ring-mqtt's own web UI) and sign in with your - Ring account (email + password + 2FA). It mints and stores the refresh token — HomeOS never - handles Ring's OAuth itself. -2. In HomeOS → **Add-ons → Ring → Install**, then **Connect account**. -3. Ring devices (doorbell, cameras, sensors) appear automatically under **Devices**, tagged **Cloud**. +1. In HomeOS → **Add-ons → Ring → Install → Einrichten**, click **Open bridge UI** + (**http://:${RING_UI_PORT:-55123}**) and sign in with your Ring account (email + password + + 2FA). The bridge mints and stores the refresh token — HomeOS never handles Ring's OAuth. +2. Ring devices (doorbell, cameras, sensors) appear automatically under **Devices**, tagged **Cloud**. ## Install as an app (PWA) diff --git a/docker-compose.yml b/docker-compose.yml index 91e0ca1..f579ade 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -86,15 +86,13 @@ services: - "${MQTT_HOST_PORT:-1883}:1883" restart: unless-stopped - # Ring bridge — installable add-on, opt-in so a Ring-less setup never runs it: - # docker compose --profile addons up -d ring-mqtt - # Ring has no local API (handoff §12): the initial account login + 2FA is done in ring-mqtt's - # own web UI (http://:${RING_UI_PORT:-55123}), which mints the refresh token; the bridge - # then connects to our broker as the least-privileged `ring` user and publishes device state - # under ring/# for HomeOS to ingest. We do not build a custom Ring client. + # Ring bridge — part of the stack so it starts automatically (no manual command). Idle and + # cheap until you log in. Ring has no local API (handoff §12): the account login + 2FA is done + # in ring-mqtt's own web UI (http://:${RING_UI_PORT:-55123}), which mints the refresh + # token; the bridge then connects to our broker as the least-privileged `ring` user and + # publishes device state under ring/# for HomeOS to ingest. We do not build a custom Ring client. ring-mqtt: image: tsightler/ring-mqtt - profiles: ["addons"] depends_on: - mosquitto environment: diff --git a/lang/de/addons.php b/lang/de/addons.php index de5f214..f0e6371 100644 --- a/lang/de/addons.php +++ b/lang/de/addons.php @@ -24,10 +24,9 @@ return [ 'body' => 'Ring bietet keine lokale Schnittstelle. Die Anmeldung inkl. 2FA passiert in der eigenen Weboberfläche der ring-mqtt-Bridge — HomeOS speichert keine Ring-Zugangsdaten.', 'setup' => 'Einrichten', 'setup_title' => 'Ring einrichten', - 'setup_intro' => 'Ring wird über die separate ring-mqtt-Bridge angebunden. So richtest du sie ein:', - 'step1' => 'Bridge starten (einmalig, am Server):', - 'step2' => 'Bridge-Oberfläche öffnen und mit deinem Ring-Konto anmelden (inkl. 2FA). Die Bridge speichert das Token.', - 'step3' => 'Fertig — deine Ring-Geräte erscheinen automatisch unter „Geräte" (Badge „Cloud").', + 'setup_intro' => 'Die ring-mqtt-Bridge läuft automatisch als Teil von HomeOS — kein manueller Start nötig. So verbindest du dein Ring-Konto:', + 'step1' => 'Bridge-Oberfläche öffnen (Button unten) und mit deinem Ring-Konto anmelden — inklusive 2FA. Die Bridge speichert das Token.', + 'step2' => 'Fertig — deine Ring-Geräte erscheinen automatisch unter „Geräte" (Badge „Cloud").', 'open_bridge' => 'Bridge-Oberfläche öffnen', 'status_title' => 'Bridge-Status', 'status_hint_disconnected' => 'Noch keine Verbindung von der Bridge empfangen. Starte die Bridge und melde dich an.', diff --git a/lang/en/addons.php b/lang/en/addons.php index b4f892c..1e70f5c 100644 --- a/lang/en/addons.php +++ b/lang/en/addons.php @@ -24,10 +24,9 @@ return [ 'body' => 'Ring has no local API. The login incl. 2FA happens in the ring-mqtt bridge\'s own web UI — HomeOS never stores Ring credentials.', 'setup' => 'Set up', 'setup_title' => 'Set up Ring', - 'setup_intro' => 'Ring connects through the separate ring-mqtt bridge. Set it up like this:', - 'step1' => 'Start the bridge (once, on the server):', - 'step2' => 'Open the bridge UI and sign in with your Ring account (incl. 2FA). The bridge stores the token.', - 'step3' => 'Done — your Ring devices appear automatically under “Devices” (with a “Cloud” badge).', + 'setup_intro' => 'The ring-mqtt bridge runs automatically as part of HomeOS — no manual start. Connect your Ring account like this:', + 'step1' => 'Open the bridge UI (button below) and sign in with your Ring account — including 2FA. The bridge stores the token.', + 'step2' => 'Done — your Ring devices appear automatically under “Devices” (with a “Cloud” badge).', 'open_bridge' => 'Open bridge UI', 'status_title' => 'Bridge status', 'status_hint_disconnected' => 'No connection received from the bridge yet. Start the bridge and sign in.', diff --git a/resources/views/livewire/modals/ring-setup.blade.php b/resources/views/livewire/modals/ring-setup.blade.php index 7ca9766..abb866b 100644 --- a/resources/views/livewire/modals/ring-setup.blade.php +++ b/resources/views/livewire/modals/ring-setup.blade.php @@ -5,19 +5,12 @@
  1. 1 -
    -

    {{ __('addons.ring.step1') }}

    - docker compose --profile addons up -d ring-mqtt -
    +

    {{ __('addons.ring.step1') }}

  2. 2

    {{ __('addons.ring.step2') }}

  3. -
  4. - 3 -

    {{ __('addons.ring.step3') }}

    -