I like things to work correctly. 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
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.
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.
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?
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%.)
Ok I’ll do some playing around after work tomorrow. 1am here!
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.