This integration lets Home Assistant control Orbit B-hyve hose timers locally over Bluetooth Low Energy. Only a subset of official-app features is implemented.
This project is unofficial and not endorsed by Orbit. It's intended for local control of B-hyve devices you own. It may be useful when you have little or no internet connectivity, or when you cannot use the official Android or iOS apps.
Use at your own risk. The author is not responsible for bricked hardware, high water bills, unhappy soaked pets, or any other undesirable outcome.
- Open HACS in Home Assistant → Integrations.
- Open the menu (⋮) → Custom repositories.
- Add this repository URL, category Integration, then Add.
- Search for Orbit B-hyve (or this repo name), open it, and Download.
- Restart Home Assistant to load the integration.
- Copy the folder
custom_components/bhyve_ble/from this repository into yourconfig/custom_components/directory (so you haveconfig/custom_components/bhyve_ble/manifest.json). The BLE library (pybhyve) ships inside that folder — no separate pip install is required. - Restart Home Assistant to load the integration.
- In Home Assistant navigate to Settings → Devices & services → Add integration and choose Orbit B-hyve.
- Click the
+ Add Integrationbutton. - Search for
B-hyve. - If you cannot find
Orbit B-hyvein the list then be sure to clear your browser cache and/or perform a hard-refresh of the page. - Put the timer in pairing mode (press the “b” hex button five times quickly) and choose its Bluetooth address from the dropdown.
- Select hardware generation.
- Provide existing secrets or allow integration to generate new values.
Each hose timer exposes, per output port:
- Status: read-only state (
off,watering,delay, orfault); defaults tooff. Fault details appear in attributes when the timer reports them. - Run time: seconds for the next manual run. Valid values range from 15 to 14400 (4 hours).
- Switch: turn on runs manual watering for the configured run time; turn off stops all ports.
Device info, battery, and related sensors are filled in when the device reports them.
Catch syntax, JSON, and lint issues before commit (Ruff matches the Lint GitHub workflow; check-json catches invalid strings.json / translations/*.json).
prek (reads .pre-commit-config.yaml):
prek install # git hooks
prek run -a # lint entire repo (not just staged files)Use a Python environment where Home Assistant is installed so import homeassistant works (for example pip install homeassistant in a venv). From the repository root:
pytest -q testsBLE protocol code and the bhyve CLI live in custom_components/bhyve_ble/pybhyve/. Packaging metadata is in custom_components/bhyve_ble/pyproject.toml. CLI examples: pybhyve/README.md.
From the repository root:
uv sync
uv run bhyve --help
uv run pytest -qOr from the integration directory:
cd custom_components/bhyve_ble
uv sync
uv run bhyve --help