Skip to content

Commit 3ce03c7

Browse files
pliablepixelsclaude
andcommitted
docs: fix push_config ref label so it renders as a clickable link
The .. _push_config: label was placed before a list item inside a bullet list, which Sphinx cannot resolve as a :ref: target. Moved the push config docs into its own subsection with a proper heading so the label attaches correctly and all :ref:`push_config` references across the docs render as working hyperlinks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 3ac2818 commit 3ce03c7

1 file changed

Lines changed: 41 additions & 35 deletions

File tree

docs/guides/config.rst

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -109,41 +109,8 @@ The ``objectconfig.yml`` file is organized into these sections:
109109
- ``animation`` — create GIF/MP4 animations from event frames around the detection.
110110
Key settings: ``create_animation`` (``yes``/``no``), ``animation_types`` (``mp4,gif``),
111111
``animation_width``, ``animation_retry_sleep``, ``animation_max_tries``, ``fast_gif``
112-
113-
.. _push_config:
114-
115-
- ``push`` — direct FCM push notifications from ``zm_detect`` (Path 1 only, requires
116-
ZM 1.39.2+). ``zm_detect`` reads registered tokens from ZM's ``Notifications`` table
117-
via pyzm and sends push notifications through an FCM cloud function proxy after
118-
detection. Key settings:
119-
120-
- ``enabled`` — ``yes``/``no`` (default ``no``)
121-
- ``fcm_v1_url`` — URL of the FCM cloud function proxy. Pre-configured with the
122-
managed zmNg default (same proxy used by the ES). Replace only if you run your
123-
own cloud function.
124-
- ``fcm_v1_key`` — authorization key for the cloud function proxy. Pre-configured
125-
with the managed zmNg default. Replace only if you run your own cloud function.
126-
- ``replace_push_messages`` — ``yes`` to collapse notifications per monitor
127-
- ``include_picture`` — ``yes`` to include event image URL in the notification
128-
- ``android_priority`` — FCM priority (``high`` or ``normal``)
129-
- ``android_ttl`` — optional TTL in seconds
130-
131-
**Setup steps:**
132-
133-
1. Ensure ZoneMinder is 1.39.2+ (adds the Notifications REST API).
134-
2. Set ``push.enabled`` to ``yes`` in ``objectconfig.yml``.
135-
The cloud function URL and key are pre-configured with the managed zmNg
136-
defaults (same as the ES) — no additional configuration needed.
137-
3. Register device tokens: client apps (e.g. zmNg) register FCM tokens via
138-
the ZM ``/api/notifications.json`` REST endpoint. Tokens are stored in ZM's
139-
``Notifications`` database table.
140-
141-
If you run your own FCM cloud function proxy, replace ``fcm_v1_url`` and
142-
``fcm_v1_key`` with your own values.
143-
144-
``zm_detect`` respects per-token monitor filtering, throttle intervals,
145-
and push state. Invalid tokens are automatically cleaned up.
146-
112+
- ``push`` — direct FCM push notifications from ``zm_detect`` (Path 1 only, ZM 1.39.2+).
113+
See :ref:`push_config` below for full details.
147114
- ``remote`` — remote ML server (``pyzm.serve``) gateway URL, mode, credentials, fallback
148115
- ``ml`` — the detection pipeline:
149116

@@ -156,6 +123,45 @@ The ``objectconfig.yml`` file is organized into these sections:
156123

157124
Refer to the sample config files for the full list of options with inline comments.
158125

126+
.. _push_config:
127+
128+
Direct Push Notifications (``push`` section)
129+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
130+
131+
The ``push`` section in ``objectconfig.yml`` configures direct FCM push notifications
132+
from ``zm_detect`` — **Path 1 only**, requires ZM 1.39.2+. ``zm_detect`` reads registered
133+
tokens from ZM's ``Notifications`` table via pyzm and sends push notifications through an
134+
FCM cloud function proxy after detection.
135+
136+
**Key settings:**
137+
138+
- ``enabled`` — ``yes``/``no`` (default ``no``)
139+
- ``fcm_v1_url`` — URL of the FCM cloud function proxy. Pre-configured with the
140+
managed zmNg default (same proxy used by the ES). Replace only if you run your
141+
own cloud function.
142+
- ``fcm_v1_key`` — authorization key for the cloud function proxy. Pre-configured
143+
with the managed zmNg default. Replace only if you run your own cloud function.
144+
- ``replace_push_messages`` — ``yes`` to collapse notifications per monitor
145+
- ``include_picture`` — ``yes`` to include event image URL in the notification
146+
- ``android_priority`` — FCM priority (``high`` or ``normal``)
147+
- ``android_ttl`` — optional TTL in seconds
148+
149+
**Setup steps:**
150+
151+
1. Ensure ZoneMinder is 1.39.2+ (adds the Notifications REST API).
152+
2. Set ``push.enabled`` to ``yes`` in ``objectconfig.yml``.
153+
The cloud function URL and key are pre-configured with the managed zmNg
154+
defaults (same as the ES) — no additional configuration needed.
155+
3. Register device tokens: client apps (e.g. zmNg) register FCM tokens via
156+
the ZM ``/api/notifications.json`` REST endpoint. Tokens are stored in ZM's
157+
``Notifications`` database table.
158+
159+
If you run your own FCM cloud function proxy, replace ``fcm_v1_url`` and
160+
``fcm_v1_key`` with your own values.
161+
162+
``zm_detect`` respects per-token monitor filtering, throttle intervals,
163+
and push state. Invalid tokens are automatically cleaned up.
164+
159165
Configuration Tools
160166
---------------------
161167

0 commit comments

Comments
 (0)