Orbit B-hyve

I like things to work correctly. :grinning:If you go to the events tab (I assume it creates different devices for each zone?) do they all show as opening/closing at the same time?

I went and looked at Events and yes, I have a device for each zone. However, all of them have the same open/close times for the program that ran this morning. After reading your previous post, I went and also looked when I opened only one of the zones manually for about 90 seconds this morning. Those open & close events showed up in the Events page for all of the zones, not just the one I opened. It seems that the Valve status is "IF ANY" for the Zones or is the status of the main irrigation valve, not one of the Zones.

Does each valve have a unique station id? It should be an attribute

If I try to select an Attribute when creating a Dashboard tile, Station ID is not an option but Station is.

I don't know if it matters but the DNIs are identical for each valve but end with a ":" then the Zone Number like this: bhyve-38-593608284f0cf27279575a05:3

Does the zone # match the station attribute?

yessir

1 Like

Just put out a new app and driver that is definitely going to be better, but I'm not sure if it will be FIXED. The way the polling was setup it would definitely detect which ones were open/closed wrong. I believe I fixed that (though I can only test with my single valve).

What I can't tell is how it will work with the "real-time" notification. A couple of questions:

1.) In HE can you open more than one valve at the same time? Or can only one be open at a time (same question from the bhyve app I guess?0
2.) If you can open more than one, could you do this. Open a valve. You'll see in the logs a Watering Started message. Open a second valve, should get another Watering Started. (Please paste me both of those in PM)
3.) Now close one of those valves -- what does the log show? Do you get a Watering Complete? If so please paste, if not what is there?
4.) Now close the second valve (so all are closed), you should definitely get a Watering Complete, can you please paste me that in PM?

I just need to understand what messages it sends... All of the logs I'm looking for will be under the valve device, not the controller. Separately, while running the commands above, could you send me the Orbit Controller logs which should look something like "Processing Orbit Sprinkler Device: 'Smart Hose Timer', Orbit Station #1, Zone Name:"

Once I figure out how it sends data we can get it fixed, but it's definitely better than it was now.

1 Like

Nope, I can open one but when I go to open a 2nd, it closes the 1st.

In my logs, it did this about 20 times where it said "Closed station 1; Closed station 2.... Opening station 6" even though I opened Station 6 first then opened station 4 which automatically closed station 6 then I re-opened station 6 which closed station 4:

I also looked at the logs for my Zone 1 because that was only other BHyve device in logs. Zone 4 & Zone 6 did not appear in logs. In the logs for Zone 1, it lists the station id but leaves off the ":" and Zone # like is in the DNI for each device. However, there is a current_station value that reflects what I did by turning on Zone 6; turning on Zone 4; then turning Zone 6 back on. I hope that helps.

To anyone reading this other that @dman2306, do you have the B-Hyve 6-station controller and is it working correctly?

Does the b-hyve app let you open more than one at a time? I think I see why it currently closes the other valve when you open a different one. I think I can fix that. If you could kind of do the same tests from b-hyve and show the logs that would help. I could see how it’s sending the commands differently!

Note, no it won’t be working for anyone. The code to support this device doesn’t exist. I have to try to write it. Just challenging without the device in hand!

B-Hyve does not let you open more than one at a time either and I am about 95% sure that is by design for any sprinkler controller. I believe most sprinkler systems are designed based the max pressure in your water supply and the volume of water flowing thru a zone with that full water pressure. If you have 2 zones running simultaneously, then only half as much water is running thru each zone and the diameter of the water spread coming out of each sprinkler head is significantly decreased. I don't think it is something you should try to fix. I definitely don't want ability to open more than one valve at a time.

Here is the log when I opened Zone 4 then opened Zone 6 in the B-Hyve Native App on my phone. Zone 4 closed when Zone 6 opened.

You are a glutton for punishment trying to do this without the actual device and relying on me as your eyes. :grinning: :grinning: :grinning: :grinning:

1 Like

I used to reverse engineer hardware that operated car wash equipment for a living. We’d have to troubleshoot stuff like this over the phone all time time. Was really hard when they were in another country and didn’t speak English well!

So if only one valve can be opened at a time... maybe it’s just because it’s late and I’m tired... what isn’t working at this point?

1 Like

Good evening everyone... I'm evaluating this app and drivers now... Thank you so much for your work on this! Here are the errors in my logs... Not sure what is causing this..

app:4192020-07-13 20:57:59.789 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 20:57:59.732 debugSetting all to closed, not running

app:4192020-07-13 19:57:59.723 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 19:57:59.668 debugSetting all to closed, not running

app:4192020-07-13 18:57:59.828 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 18:57:59.769 debugSetting all to closed, not running

app:4192020-07-13 18:00:26.611 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 18:00:26.581 debugSetting all to closed, not running

app:4192020-07-13 18:00:22.457 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 18:00:22.419 debugSetting all to closed, not running

app:4192020-07-13 18:00:17.651 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 18:00:17.609 debugSetting all to closed, not running

app:4192020-07-13 18:00:11.635 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (refresh)

app:4192020-07-13 18:00:11.597 debugSetting all to closed, not running

app:4192020-07-13 17:59:25.209 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 248 (main)

app:4192020-07-13 17:59:25.157 debugSetting all to closed, not running

app:4192020-07-13 17:39:12.829 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 16:39:12.709 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 15:39:12.782 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 14:39:12.889 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 13:39:12.789 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 12:39:12.621 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 11:39:12.728 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 10:39:12.730 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 09:39:12.721 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 08:39:12.783 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 07:39:12.802 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 06:39:12.722 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 06:39:03.437 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 656 (getDeviceByIdAndStation)

app:4192020-07-13 06:27:03.442 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 656 (getDeviceByIdAndStation)

app:4192020-07-13 06:12:03.483 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 656 (getDeviceByIdAndStation)

app:4192020-07-13 06:00:29.922 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 656 (getDeviceByIdAndStation)

app:4192020-07-13 05:39:12.757 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh)

app:4192020-07-13 04:39:12.739 errorjava.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 231 (refresh

Could you provide details on what kinds of devices you have?

Yes sir,

I have the Orbit B-hyve 12-Zone Smart Indoor/Outdoor Sprinkler Controller

https://www.amazon.com/Orbit-57950-12-Station-Controller-Compatible/dp/B01D15HOTU

I have 4 zones setup. When I installed the app, it found all four and installed them as devices... I have not tried the open/close yet...

Out of the 4 devices, one is randomly pinging the logs... It also has more data listed in the device settings... The other three just show valve closed... For whatever reason, this one device out of the four shows the following data...

Current States

  • is_connected : true
  • run_mode : auto
  • valve : closed

State Variables

  • retryCommand :
  • webSocketOpen : true
  • retryCount : 0
  • nextRetry : 1594694910645
  • webSocketOpenTime : 1594698540592

But it is also showing errors in the logs... The other three are not...

The error is minimal and is related to the socket described above...

dev:7092020-07-13 20:49:00.591 debugNew statuses: true true true

dev:7092020-07-13 20:49:00.586 debugOld statuses: false false false

dev:7092020-07-13 20:49:00.579 debugReconnect successful

dev:7092020-07-13 20:49:00.323 debugNew statuses: false false false

dev:7092020-07-13 20:49:00.318 debugOld statuses: false false false

dev:7092020-07-13 20:49:00.311 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 20:49:00.264 debugConnecting to Web Socket

dev:7092020-07-13 20:49:00.161 debugNew statuses: false false false

dev:7092020-07-13 20:49:00.155 debugOld statuses: true true true

dev:7092020-07-13 20:18:30.520 debugNew statuses: true true true

dev:7092020-07-13 20:18:30.515 debugOld statuses: false false false

dev:7092020-07-13 20:18:30.509 debugReconnect successful

dev:7092020-07-13 20:18:30.264 debugNew statuses: false false false

dev:7092020-07-13 20:18:30.260 debugOld statuses: false false false

dev:7092020-07-13 20:18:30.253 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 20:18:30.204 debugConnecting to Web Socket

dev:7092020-07-13 20:18:30.102 debugNew statuses: false false false

dev:7092020-07-13 20:18:30.097 debugOld statuses: true true true

dev:7092020-07-13 19:48:00.970 debugNew statuses: true true true

dev:7092020-07-13 19:48:00.965 debugOld statuses: false false false

dev:7092020-07-13 19:48:00.958 debugReconnect successful

dev:7092020-07-13 19:48:00.092 debugReconnecting to Web Socket

dev:7092020-07-13 19:48:00.084 debugAsked to send a message but the socket is closed

dev:7092020-07-13 19:47:31.023 debugNew statuses: false false false

dev:7092020-07-13 19:47:31.016 debugOld statuses: true true true

dev:7092020-07-13 19:47:31.005 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 19:31:00.592 debugNew statuses: true true true

dev:7092020-07-13 19:31:00.585 debugOld statuses: false false false

dev:7092020-07-13 19:31:00.575 debugReconnect successful

dev:7092020-07-13 19:31:00.320 debugNew statuses: false false false

dev:7092020-07-13 19:31:00.313 debugOld statuses: false false false

dev:7092020-07-13 19:31:00.260 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 19:31:00.212 debugConnecting to Web Socket

dev:7092020-07-13 19:31:00.109 debugNew statuses: false false false

dev:7092020-07-13 19:31:00.101 debugOld statuses: true true true

dev:7092020-07-13 19:00:31.086 debugNew statuses: true true true

dev:7092020-07-13 19:00:31.080 debugOld statuses: false false false

dev:7092020-07-13 19:00:31.073 debugReconnect successful

dev:7092020-07-13 19:00:30.183 debugReconnecting to Web Socket

dev:7092020-07-13 19:00:30.080 debugAsked to send a message but the socket is closed

dev:7092020-07-13 19:00:00.169 debugNew statuses: false false false

dev:7092020-07-13 19:00:00.163 debugOld statuses: true true true

dev:7092020-07-13 19:00:00.155 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 18:30:30.564 debugNew statuses: true true true

dev:7092020-07-13 18:30:30.558 debugOld statuses: false false false

dev:7092020-07-13 18:30:30.551 debugReconnect successful

dev:7092020-07-13 18:30:30.308 debugNew statuses: false false false

dev:7092020-07-13 18:30:30.269 debugOld statuses: false false false

dev:7092020-07-13 18:30:30.262 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 18:30:30.209 debugConnecting to Web Socket

dev:7092020-07-13 18:30:30.102 debugNew statuses: false false false

dev:7092020-07-13 18:30:30.096 debugOld statuses: true true true

dev:7092020-07-13 18:00:15.144 debugNew statuses: true true true

dev:7092020-07-13 18:00:15.134 debugOld statuses: false false false

dev:7092020-07-13 18:00:15.123 debugReconnect successful

dev:7092020-07-13 18:00:14.859 debugNew statuses: false false false

dev:7092020-07-13 18:00:14.852 debugOld statuses: false false false

dev:7092020-07-13 18:00:14.844 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 18:00:14.793 debugConnecting to Web Socket

dev:7092020-07-13 18:00:14.688 debugNew statuses: false false false

dev:7092020-07-13 18:00:14.681 debugOld statuses: true true true

dev:7092020-07-13 17:59:01.692 debugNew statuses: true true true

dev:7092020-07-13 17:59:01.685 debugOld statuses: false false false

dev:7092020-07-13 17:59:01.676 debugReconnect successful

dev:7092020-07-13 17:59:01.440 debugNew statuses: false false false

dev:7092020-07-13 17:59:01.422 debugOld statuses: true true false

dev:7092020-07-13 17:59:01.372 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 17:59:00.519 debugReconnecting to Web Socket

dev:7092020-07-13 17:59:00.491 debugAsked to send a message but the socket is closed

dev:7092020-07-13 17:36:31.157 debugNew statuses: true true true

dev:7092020-07-13 17:36:31.153 debugOld statuses: false false false

dev:7092020-07-13 17:36:31.147 debugReconnect successful

dev:7092020-07-13 17:36:30.185 debugReconnecting to Web Socket

dev:7092020-07-13 17:36:30.070 debugAsked to send a message but the socket is closed

dev:7092020-07-13 17:36:00.141 debugNew statuses: false false false

dev:7092020-07-13 17:36:00.135 debugOld statuses: true true true

dev:7092020-07-13 17:36:00.125 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 17:30:00.554 debugNew statuses: true true true

dev:7092020-07-13 17:30:00.549 debugOld statuses: false false false

dev:7092020-07-13 17:30:00.542 debugReconnect successful

dev:7092020-07-13 17:30:00.273 debugNew statuses: false false false

dev:7092020-07-13 17:30:00.268 debugOld statuses: false false false

dev:7092020-07-13 17:30:00.258 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 17:30:00.212 debugConnecting to Web Socket

dev:7092020-07-13 17:30:00.109 debugNew statuses: false false false

dev:7092020-07-13 17:30:00.103 debugOld statuses: true true true

dev:7092020-07-13 16:59:30.508 debugNew statuses: true true true

dev:7092020-07-13 16:59:30.504 debugOld statuses: false false false

dev:7092020-07-13 16:59:30.498 debugReconnect successful

dev:7092020-07-13 16:59:30.264 debugNew statuses: false false false

dev:7092020-07-13 16:59:30.259 debugOld statuses: false false false

dev:7092020-07-13 16:59:30.253 errorLost connection to Web Socket: status: closing

dev:7092020-07-13 16:59:30.203 debugConnecting to Web Socket

dev:7092020-07-13 16:59:30.101 debugNew statuses: false false false

dev:7092020-07-13 16:59:30.095 debugOld statuses: true true true

dev:7092020-07-13 16:29:00.608 debugNew statuses: true true true

dev:7092020-07-13 16:29:00.604 debugOld statuses: false false false

dev:7092020-07-13 16:29:00.598 debugReconnect successful

dev:7092020-07-13 16:29:00.334 debugNew statuses: false false false

dev:7092020-07-13 16:29:00.330 debugOld statuses: false false false

dev:7092020-07-13 16:29:00.323 errorLost connection to Web Socket: status: closing

@dman2306 I have the same 6-zone controller as @jcastrillo and @stephen_nutt. Can't believe I didn't see that you were working on this before today! I've been looking to integrate mine in HE since I got it a couple months ago.

The comment above about not opening more than one zone at a time is correct. Systems are usually designed to supply just slightly more water than the highest rate zone so if more than one zone is open lots of weird things happen.

I can (and will!) help with the testing of the 6-zone unit starting this weekend or early next week.

(On a side note I saw way up in the thread a comment about B-hyve reporting something called "level" - it is possible that this is their calculated "Soil Moisture" level which is reported in the app when you look at the Zone Detail page. Doesn't appear to go above 100%.)

2 Likes

Ok I’ll do some playing around after work tomorrow. 1am here!

1 Like

Going back to my post showing the Hubigraphs, when a program runs, it was showing all 6 valves open simultaneously for the entire run of the program when in fact only one zone was open at a time for 6-10 minutes depending on the zone. Zone 1 is not part of the program that ran but the valve for Zone 1 was showing open.

Currently, I can manually open any zone thru HE but only Zone 1 has webSocketOpen as true. The other 5 zones are false and still have 0s for retryCount and nextRetry. Furthermore, it looks like even when Zones 2-5 are open/closed, those actions are logged under the Zone 1 device's logs.

Right but you haven’t tried again since I made a change to correct this, right? I believe you said it will next run on Thursday? I don’t know for sure that it’s fixed, but this is what I was attempting to resolve yesterday.

This is expected behavior. Only one of the devices communicates with the server, not all. In Hubitat’s model (I’m sure there is a reason. I just don’t know it) only a driver can communicate with a websocket, not an app. So I have to pick one device to serve as the communicator (it’s the one marked master = true). All commands to the server route through this one device. If I connected each device individually they’d block you for opening too many simultaneous connections.

So are there any confirmed issues you’re experiencing with the version I committed yesterday? Or are we just waiting to see what happens Thursday?

I'm not sure you're on the latest code. Those line numbers don't seem to match up with the code... Please make sure you're using the latest code that's on github.

No, the level was actually something really stupid... it was "out of the 10 minutes I'm scheduled to run, what percentage have I run" I don't see any value to that. I can look to see if that moisture level is in there, but I'm curious, do you find it useful? I've had it say 100% when the ground is pretty dry and vice versa.