Monitor and control an openHop Repeater from Home Assistant.
This custom integration connects Home Assistant directly to the Repeater's local HTTP API. During setup it signs in once with the Repeater admin password, creates a dedicated API token, stores that token in the Home Assistant config entry, and discards the admin password.
The integration uses coordinated local polling instead of making a separate API request for every entity. The polling interval is configurable in the integration options and defaults to 15 seconds.
Note
The integration domain and folder remain pymc_repeater so existing installations and entity registry entries continue to work. The user-facing name is openHop Repeater.
- UI-based setup and options flows
- Configurable integration-wide polling interval
- Repeater, radio, packet, routing, and signal-quality telemetry
- MQTT broker and handler status
- Hardware, process, network, database, and metrics diagnostics
- GPS position, fix, satellite, time-sync, and location-update data
- External sensor-manager entities, including supported modem and UPS readings
- Neighbor-link counts and on-demand neighbor history
- Default-region, duty-cycle, advert-rate, and Repeater-mode controls
- Update status, update-channel selection, and update actions
- CAD calibration controls and manual CAD checks
- Native Home Assistant diagnostics and an extensive example dashboard
- Home Assistant 2024.1 or newer
- A running openHop Repeater
- The Repeater HTTP API reachable from Home Assistant
- The Repeater admin password for initial setup or reauthentication
- A trusted local network, VPN, or another secure path between Home Assistant and the Repeater
This integration is currently installed as a HACS custom repository:
-
Open HACS → Integrations.
-
Open the top-right menu and select Custom repositories.
-
Add:
https://github.com/openhop-dev/openHop-HA-Integration -
Select Integration as the category.
-
Install openHop Repeater.
-
Restart Home Assistant.
-
Download the latest release.
-
Copy
custom_components/pymc_repeaterinto your Home Assistant configuration directory:/config/custom_components/pymc_repeater -
Restart Home Assistant.
After installation and restart:
- Open Settings → Devices & services.
- Select Add integration.
- Search for openHop Repeater.
- Enter the Repeater hostname or IP address, HTTP API port, and admin password.
- Submit the form.
Home Assistant will create and retain a dedicated API token. The admin password is not stored after setup completes.
Open Settings → Devices & services → openHop Repeater → Configure to change:
- Integration polling interval, defaulting to 15 seconds
- Data-size display unit
- Uptime display unit
Changing an option reloads the integration automatically.
A comprehensive native Lovelace view is included at:
dashboards/openhop_repeater_dashboard.yaml
The template covers radio health, packet flow, LBT diagnostics, routing, neighbor links, controls, advert tuning, MQTT, companions, GPS, external modem readings, updates, and database metrics.
To use it:
- Find one Repeater entity in Home Assistant, such as
sensor.my_repeater_repeater_version. - Copy the entity prefix—in this example,
my_repeater. - Replace every
REPEATER_SLUGin the template with that prefix. - Create or edit a dashboard view and paste the template into the view's YAML editor.
- Optionally change the view
titleandpath. - Replace the marked example MQTT broker and companion rows with entities from your installation.
- If your external sensor is not named
modem, replace_sensor_modem_with its actual sensor slug.
The dashboard uses only built-in Home Assistant cards.
The integration exposes Home Assistant actions for supported Repeater operations, including:
- Sending adverts and restarting the Repeater service
- Checking for and installing updates
- Reading broker presets and neighbor-link history
- Running manual CAD checks and CAD calibration
- Saving CAD settings
- Reading advert, companion, and contact diagnostics
Open Developer tools → Actions and search for openHop Repeater or pymc_repeater to see the actions and their current fields.
The Home Assistant integration stores an API token, while the Repeater stores the matching token hash in its SQLite database. Both the Repeater JWT secret and SQLite database must persist across Repeater restarts.
For the openHop Home Assistant add-on, use the persistent openHop storage path:
storage:
storage_dir: /var/lib/openhop_repeaterUsing the legacy, unmapped /var/lib/pymc_repeater path in the renamed add-on can cause the API-token database to disappear when the add-on restarts. The integration will then report Authentication failed for /api/stats and request reauthentication.
Do not publish your admin password, JWT secret, Home Assistant token, or Repeater API token in an issue or diagnostic upload.
- The Repeater API is currently accessed over plain
http://. - Keep Home Assistant and the Repeater on a trusted network, behind a VPN, or within another secure transport boundary.
- Revoke unused Home Assistant API tokens from the Repeater.
- If a token is revoked or no longer validates, Home Assistant starts its standard reauthentication flow.
- Join the openHop Discord
- openHop Repeater
- openHop Repeater Home Assistant add-on
- Release notes
- Issue tracker
The repository includes HACS validation, Hassfest, Python compilation, and contract tests. To run the local checks:
python3 -m unittest discover -s tests -v
python3 -m compileall -q custom_components/pymc_repeaterRelease versions are defined in custom_components/pymc_repeater/manifest.json and documented in CHANGELOG.md.
Contributions and focused bug reports are welcome. Please include the Home Assistant version, integration version, Repeater version, and relevant redacted logs when reporting a problem.