Orbit B-hyve component for Home Assistant.
This integration works with:
The following controllers have been verified as compatible with this integration, either by the author or members of the community. By virtue that this is an unofficial project which is not supported by the company, there is no guarantee of continued compatibility for current or future devices.
- Orbit 21004 B-hyve Smart Hose Faucet Timer with Wi-Fi Hub. The Wifi hub is required to provide the faucet timer with internet connectivity. Bluetooth connectivity with the timer is not supported.
- Orbit 57946 B-hyve Smart Indoor/Outdoor 6-Station WiFi Sprinkler System Controller.
- Orbit 57925 B-hyve Smart 8-Zone Indoor-Mount Sprinkler Controller.
- Orbit 57995 B-hyve XR.
- Orbit B-hyve XD (with the Gen 2 Wifi hub).
Note: The Wifi hub is required to provide the faucet controllers with internet connectivity.
Note: The Wifi hub is required to provide the flood sensors with internet connectivity.
valvefor opening/closing individual zones onsprinkler_timerdevices.sensorfor battery levels, zone watering history, device run-mode state, flood-sensor temperature and flood-sensor signal strength.switchfor enabling/disabling rain delays, toggling pre-configured programs and enabling/disabling per-zone smart watering.selectfor the device run-mode (auto/off) onsprinkler_timerdevices.binary_sensorfor flood detection, temperature alerts, sprinkler station faults and Wi-Fi bridge connectivity.
Recommended installation is via the Home Assistant Community Store (HACS).
If you do not wish to use HACS, then please download the latest version from the releases page and proceed to Step 2.
- Navigate to the HACS add-on
- Search for the
Orbit BHyveintegration and install it - Restart Home Assistant
- Navigate to Home Assistant Settings > Devices & Services
- Click
+ Add Integration - Search for
Orbit B-hyve - Complete the guided configuration
Some common errors in set up include:
- Assuming that installing the integration via HACS is all that is required - it still needs to be configured!
- Not restarting Home Assistant after installing the integraion via HACS
A battery sensor entity is created for any device which has a battery level to report.
A device state sensor entity is created for each sprinkler_timer device. This reports the state of the device, for example auto or off. A device may be switched to off either manually through the B-hyve app, or may be automatically set when battery levels are too low to operate the device correctly.
A zone history sensor entity is created for each zone on a sprinkler_timer device. This reports the history of zone watering.
The following attributes are set on zone history sensor entities:
| Attribute | Type | Notes |
|---|---|---|
budget |
number |
The watering budget used. |
program |
string |
The program letter which triggered the watering event. |
program_name |
string |
The name of the program which triggered the watering event. |
run_time |
number |
The number of minutes the watering was active. |
status |
string |
The watering status. |
consumption_gallons |
number |
The amount of water consumed, in gallons. |
consumption_litres |
number |
The amount of water consumed, in litres. |
start_time |
string |
The start time of the watering. |
A temperature sensor entity is created for each flood_sensor device, reporting the ambient temperature in degrees Fahrenheit.
A signal strength sensor entity is created for each flood_sensor device, reporting the Wi-Fi RSSI in dBm.
A binary_sensor is created for each flood_sensor device. It turns on if water is detected.
A binary_sensor is created for each flood_sensor device. It turns on if the detected temperature is over or under the set threshold. The threshold values should be set using the BHyve app.
A binary_sensor is created for each sprinkler_timer device. It turns on when B-hyve reports one or more station faults, with the raw fault list exposed via the station_faults attribute.
A binary_sensor is created for each Wi-Fi hub / bridge device, reporting whether the bridge is currently online.
A zone valve entity is created for each zone of a sprinkler_timer device. Opening the valve starts watering the zone for a "default" amount of time; closing it stops watering.
The default run time is often indicated by the manual_preset_runtime attribute, and this can be set using the set_manual_preset_runtime service or configured in the B-hyve app.
Note
Some BHyve devices do not have the ability to set the default watering time, and it is recommended that you use the bhyve.start_watering service to start the watering zone with the desired number of minutes.
The following attributes are set on zone valve entities:
| Attribute | Type | Notes |
|---|---|---|
zone_name |
string |
The name of the zone |
device_id |
string |
The id of the device which this zone belongs to |
device_name |
string |
The name of the device which this zone belongs to |
station |
number |
The station number of the zone on the device. |
manual_preset_runtime |
number |
The number of seconds to run zone watering when the valve is opened. |
smart_watering_enabled |
boolean |
True if the zone has a smart water schedule enabled. |
sprinkler_type |
string |
The configured type of sprinkler. |
image_url |
string |
The url to zone image. |
started_watering_station_at |
string |
The timestamp the zone started watering. |
next_start_time |
string |
ISO-8601 timestamp of the next scheduled watering, if any. |
next_start_programs |
list[string] |
The programs scheduled to run at next_start_time. |
program_x |
object |
Provides details on any configured watering programs for the given zone. |
program_e[watering_program] |
list[string] |
List of timestamps for future/scheduled watering times.† |
† Only applicable if a Smart Watering program is enabled. Any rain delays or other custom programs must be considered separately.
Any watering programs which are configured for a zone are made available as an attribute. The x denotes the (lowercase) letter of the program slot. Values a, b and c are well-known custom slots. Program e is reserved for the Smart Watering plan. Slot d does not have a known use at this stage.
Please see program switches below for more details.
A rain delay switch entity is created for each discovered sprinkler_timer device. This entity will be on whenever B-hyve reports that a device's watering schedule will be delayed due to weather conditions.
Enabling the switch will set a 24 hour rain delay on the device — for a custom rain delay, please use the enable_rain_delay service.
The following attributes are set on switch.*_rain_delay entities, if the sensor is on:
| Attribute | Type | Notes |
|---|---|---|
cause |
string |
Why a delay was put in place. Values seen: auto. May be empty. |
delay |
number |
The number of hours the delay is in place. NB: This is hours from started_at attribute. |
weather_type |
string |
The reported cause of the weather delay. Values seen: wind, rain. May be empty. |
started_at |
string |
The timestamp the delay was put in place. |
A program switch entity is created for each program attached to each zone. These switches can be switched on or off. They can be configured using the official B-hyve app.
| Attribute | Type | Notes |
|---|---|---|
device_id |
string |
The id of the device which this zone belongs to. |
is_smart_program |
boolean |
True if this is a Smart Watering program. |
start_times |
string |
Configured start time for the program.† |
frequency |
object |
Watering schedule configuration.† |
frequency.type |
string |
Type of schedule. Known values: days, interval. |
frequency.days |
list[int] |
Configured days for watering (when type is days). 0 is Sunday, 1 is Monday etc... |
frequency.interval |
int |
Number of days between watering (when type is interval). |
budget |
int |
Watering budget as a percentage. Scales each zone's run time.† |
run_times |
list[object] |
Configured watering run times.† |
run_times[].run_time |
int |
Minutes of watering. |
run_times[].station |
int |
Zone id to water. |
† Not available on Smart Watering programs
A smart watering switch entity is created for each zone that has smart watering as an available feature. Toggling the switch enables or disables the Smart Watering schedule for that zone.
A device mode select entity is created for each sprinkler_timer device, with options auto and off. This mirrors the device-level run mode exposed by the B-hyve app.
This integration provides the following services:
| Service | Parameters | Description |
|---|---|---|
bhyve.start_watering |
entity_id - zone(s) entity to start watering. This should be a reference to a zone valve entity minutes - number of minutes to water for |
Start watering a zone for a specific number of minutes |
bhyve.stop_watering |
entity_id - zone(s) entity to stop watering. This should be a reference to a zone valve entity |
Stop watering a zone |
bhyve.enable_rain_delay |
entity_id - device to enable a rain delay. This can reference either a zone valve or rain delay switch hours - number of hours to enable a rain delay |
Enable a rain delay for a device for a specified number of hours |
bhyve.disable_rain_delay |
entity_id - device to disable a rain delay. This can reference either a zone valve or rain delay switch |
Cancel a rain delay on a given device |
bhyve.set_manual_preset_runtime |
entity_id - zone(s) entity to set the preset runtime. This should be a reference to a zone valve entity minutes - number of minutes to water for |
Set the default time a zone is watered for when the valve is opened. Support for this service appears to be patchy, and it has been difficult to identify the devices or under which conditions it works |
bhyve.set_smart_watering_soil_moisture |
entity_id - zone(s) entity to set the moisture level for. This should be a reference to a zone valve entity percentage - soil moisture level between 0 - 100 |
Set Smart Watering soil moisture level for a zone |
bhyve.start_program |
entity_id - program entity to start. This should be a reference to a program switch entity |
Starts a pre-configured watering program. Watering programs cannot be created via this integration and must first be set up in the B-Hyve app |
bhyve.update_program |
entity_id - program switch to update start_times - (optional) list of watering start times in HH:MM format frequency - (optional) frequency configuration object (must include a type, known values: days, interval) budget - (optional) watering budget as a percentage (0-200) |
Update the configuration of an existing non-smart program. At least one of start_times, frequency or budget must be provided |
service: bhyve.update_program
data:
entity_id: switch.front_yard_usual_programming_program
start_times:
- "06:00"
- "18:30"
frequency:
type: days
days: [1, 3, 5]
interval: 1
interval_hours: 0
budget: 75The frequency object mirrors the B-Hyve API structure. Known type values:
dayswithdays: [0-6](where0is Sunday,1is Monday etc.) to water on specific weekdaysintervalwithinterval: Nto water every N days
The budget is a percentage that scales each zone's run time. 100 means unchanged, 50 halves every run time, 200 doubles it. Valid range is 0–200.


