[RELEASE] Orbit Bhyve+

Hi, thank you for this plugin.

I have it installed and I get a successful login, however, no devices ever show up. What am I doing wrong?

I found and fixed the issue in a hacky way.

I noticed this in the logs:

app:842023-10-09 18:36:44.803errorjava.lang.NullPointerException: Cannot get property 'timezone_id' on null object on line 477 (method updated)

So, I went to line 477 and changed:

state.timezone = respdata[0].timezone.timezone_id

to

state.timezone = 'US/Eastern'

And it worked. My guess is the respdata data structure changed somewhere along the way. FYI.

thanks for finding this -- I don't see it myself but maybe something's different with your device(s). I logged respdata[0].timezone and here's what I get:

        timezone:
        [
            dst_offset:0,
            raw_offset:-18000,
            timezone_id:America/New_York,
            timezone_name:EasternStandardTime
        ],

If you're able to add this line right above where you modified the app I can try to handle this better - just let me know

    if (command=='devices') {
        log.error "DEVICES: ${respdata}"

OK, I added this and got looks like a response for each device, so I picked just one:

timezone:
[
    dst_offset:3600, 
    raw_offset:-18000,
    timezone_id:America/New_York
    timezone_name:Eastern Daylight Time
],

Is it the spaces in timezone_name for Eastern Daylight Time?

I don't think that would be the reason for the NPE; it looks good to me.

java.lang.NullPointerException: Cannot get property 'timezone_id' on null object on line 477 (method updated)

Maybe that timezone structure wasn't there the first time you logged in but it's there now? Anyway, I'll add a check to the code just in case it happens again or for someone else

hmm, no, I tried multiple times to log in, including multiple re/uninstalls of the app and got that error (with no device discovery).

Right now, I'm kind of happy that it works and am afraid to mess with it, but maybe when you have a new release we can revisit debugging.

Thank you for the app, however, and your time!

Hi @jpage4500 ,
First, thank you for keeping this app alive.
I installed this app on a second app while the original app is stil running on my main hub. It seems to work on two hubs just fine.
For a reason I can not understand the time (start and stop times) presented on the device page as Unix time and not a human readable time format. I think I saw other users getting the time to display just fine.
Do you know the possible reason?
image

Is there any way to use this device locally without it connecting to their servers? Thanks.

I did not see any app that connects to Orbit B-hyve locally.

Couple of issues/suggestions:

  1. Previously when I open the valve, I used to get the water_flow_rate variable updated automatically & I had a rule to close the valve if it exceeds certain threshold (to detect if there is any leak in my drip system). But now, unless I open the B-hyve app, select the particular hose timer & click on the "Tap for more watering details", water_flow_rate doesn't get updated automatically. Can you please check if there is a way to get the flow rate automatically when some hose timer value is opened as per the schedule?

  2. Is it possible to round the value for the display. Currently it shows as x.xxxxxxxxxxx and if there is a way to truncate it, it will be good for the dashboard. I use Tile master to show the flow rate on the dashboard.

@jpage4500 is there a way to disable the valve remain open time? I’m using other logic to turn off the valve (including a failsafe if it doesn’t) so I’d like the device driver not to close the valve on its own.

When I needed this a while back, it wasn’t possible. I switched to the new Rachio hose timers for this feature and they work well for this use case. But perhaps @jpage4500 can save the day for you!?

Suppose the easy hack is to set the remain-open-time to 999999 minutes. Perhaps it's not a bad idea anyway as it adds another failsafe (if I set it to 180 or 240 mins, etc.)

I just realized that the scumbag orbit b-hyve app only has 4 program slots so too bad if you have a multi zone device and want to program more than 4 zones separately. If you do, you have to double up and put multiple zones into program slots which is of zero use if you want to water at completely separate times.

If you turn the programs on the b-hyve app off, can you use this driver and rule machine to control the zones individually to turn them on and off at different times?

I took a quick look. It seems like the app is sending the auto-off time as a param to the Bhyve device. Meaning, the Hubitat app isn't closing the valve after X minutes -- at least not that I see

I removed my Bhyve devices for the winter so I can't see if this is possible to do in the Bhyve app itself either. I'll try to connect them and look again when I get time

def open() {
    def runTime = presetRunTime ?: device.latestValue('preset_runtime') ?: 10
    parent.sendRequest('open', parent.getOrbitDeviceIdFromDNI(device.deviceNetworkId), device.latestValue('station'), runTime)
}

def open(duration) {
    parent.sendRequest('open', parent.getOrbitDeviceIdFromDNI(device.deviceNetworkId), device.latestValue('station'), duration)
}
....
def sendRequest(valveState, device_id, zone, run_time) {
    def bhyveHub = findMasterDevice()
    bhyveHub?.sendWSMessage(valveState, device_id, zone, run_time)
    runIn(10, "main")
}

Hmmm not sure. What I noticed is that my valve kept closing after 10 minutes even though my automation intended to close it based on rising water levels (and that part wasn't getting triggered). When I looked at the device details screen of the Bhyve, I noticed that the remain-open parameter was set to 10. I changed the value to 240 and the problem went away. FWIW....

Has anybody successfully used this app/driver with a multi-port Orbit BHyve smart timer? I believe there are 2- and 4-port varieties (like this one), but I've only used single port to date. I can see where a multi-port timer can be added to the B-Hyve app -- just not sure if it'll make it into HE.

Hi @jpage4500 Adding my thanks for picking this up. I noticed that if I rename a device in the Orbit app, the name change doesn't seem to carry to the Hubitat Device. Not a huge deal but just pointing it out.