been working on this for a while and I know some are aware of it already but I never officially posted a thread! This integration is originally a port of the ST integration, but I added support for things that HE supports and ST doesn't so you can actually control the devices via a WebSocket. This works with both the hose timer and 6 and 12 port controllers over Wifi. This is a cloud integration so keep that in mind but because it is WebSocket based things should be nearly real time.
Just got a "B-Hyve Smart Hose Faucet Irrigation Controller/Wi-Fi Hub" from Home Depot and set it up via the Android app. Next I installed this driver and configured it. I only see my "Bhyve Wi-Fi Hub" in the devices list and there's no commands there except for Refresh.
I did notice this in the logs.. any idea what went wrong?
app:2062020-10-15 02:09:36.307 pm errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.util.TimeZone#getTimeZone.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.String]
[class java.time.ZoneId] on line 406 (refresh)
app:2062020-10-15 02:09:21.664 pm errorjava.lang.NullPointerException: null on line 660 (installed)
Update: I guess my wifi hub was offline because I went through the configuration again and this time I see both the wifi hub and controller in the devices list!
@dman2306 -- question - would it be possible to add an optional parameter to the open command - the number of minutes to run for? Just thinking that would be a nice addition to have via the dashboard I'm working on.. in addition to running for the default time also being able to run it for X minutes..
no biggie though - thanks for putting this together!
I'll take a look at adding that. While that would work for your dashboard app, it wouldn't work for the HE dashboard since it can't call custom commands.
Agreed.. I thought about that too.. I wasn't looking for special treatment.
I was thinking for any HE dashboard or even Google/Alexa voice control -- would it be possible to create a virtual switch/button that turned the Orbit value on for a custom time? For example, could I have a virtual button that would run the valve for 1 hour? And another one for 15 minutes?
sorry, 2 more questions while I'm thinking of them..
I opened the hose timer valve for 30 minutes and I didn't see any indication of how long it had remaining before it closed. Is that available anywhere or possible to figure out?
i noticed this driver was a fork of another HE driver described here. I know you added several features but has anything been added to the original driver that is worth adding here too?
side-note -- now that I think about it, I installed the Orbit driver via the HE Package Manager.. does that mean I'm running the other driver and not yours? I can remove and switch over but was hoping to figure out what the differences were today.
Yeah, it'd still boil down to a custom command. I'll try to find some time this weekend.
Currently nothing in my driver for this, I think there was some data for this in the websocket data but I'll have to play around and look.
It started as that, yes, but then became a complete rewrite. That driver didn't have the ability to control the valve at all, only read state. It was basically an ST port and didn't add any HE specific functionality. So I pretty much rewrote it for HE. I don't think they've added any other functionality, but if they did, I'm always open to anyone submitting PRs!
The one in HPM is this one so you should be good. Basically, if you have an open/close command, you have my driver as the original one only supported reading, not controlling.
I pushed a new version that has an open(minutes) command that lets you define how long the valve should be open.
I added two properties, start_time and stop_time. They're in miliseconds. It doesn't count down (that would flood events), so you need to do the math on your end if you'd like a timer. I found it pretty accurate that when stop_time == now() the valve closes within 1-2 seconds so I think it'd be pretty accurate to count down to that time to detect when it closes.
I use this integration to mirror two Rachio zones to two Orbit hose controllers, and that works really well. The thing is .. I only use the hose controllers after planting grass in the fall so most of the year, the Orbit hub and controllers are unplugged or batteries pulled. Even so, I see these events in the event log. The hose controller reporting is only used by the Orbit Controller App which is disabled, and used in a rule which is disabled. Is there a way I can get these devices to rest peacefully until next fall without removing them?
dev:19092020-11-25 04:47:50.016 pm warnWaiting until Wed Nov 25 16:52:00 EST 2020 to reconnect 1177
dev:19092020-11-25 04:47:25.112 pm warnWaiting until Wed Nov 25 16:52:00 EST 2020 to reconnect 1177
dev:19092020-11-25 04:47:01.782 pm errorLost connection to Web Socket: status: closing, will reconnect.
dev:19092020-11-25 04:46:50.012 pm warnWaiting until Wed Nov 25 16:46:50 EST 2020 to reconnect 1176
dev:19092020-11-25 04:46:25.025 pm warnWaiting until Wed Nov 25 16:46:50 EST 2020 to reconnect 1176
Yesterday I installed Package Manager and this integration. I have one hub and several valves. The app connected and created several devices. It looks good but nothing happens. I'm seeing things like this in the logs:
On the phone I was also seeing the states is_connected: true, rain_delay: 0, run_mode: auto, switch: off, valve: closed, water_flow_rate: 0.38402 before I reloaded everything. So the app is seeing the devices.
Can you provide details on the exact devices you have? What version of the HE firmware do you have? Also I think I'm going to need the logs that spit out when you first run through the app setup because I think something didn't work right from the initial install.