Seems to be a waiting period after signing up but I want to keep this thread going. The last reply on there is spot on. The b-hyve line has some great products for fairly reasonable cost and it would only help their product sales to release an api.
Its soooo frustrating that there is OBVIOUSLY an API that they refuse to publish. I started picking it apart, will post whatever I find. I can at least login and get some devices, now just working on control. Seems like the web version is posting JSON over a websocket… Could definitely be emulated but I imagine there’s a way to do this with pure REST.
HEADER TAGS FOR ALL CALLS BELOW orbit-app-id=Orbit Support Dashboard orbit-api-key={orbit_api_key returned from session call} Content-Type=application/json
VARIOUS CALLS TO GET INFO GET https://api.orbitbhyve.com/v1/users/{user_id} GET https://api.orbitbhyve.com/v1/user_feedback?user_id={user_id} GET https://api.orbitbhyve.com/v1/devices?user_id={userid} GET https://api.orbitbhyve.com/v1/sprinkler_timer_programs?device_id={device_id} GET https://api.orbitbhyve.com/v1/device_history/{device_id} GET https://api.orbitbhyve.com/v1/zone_reports/{device_id} GET https://api.orbitbhyve.com/v1/watering_events/{device_id} GET https://api.orbitbhyve.com/v1/landscape_descriptions/{device_id} GET https://api.orbitbhyve.com/v1/event_logs/{device_id} GET https://api.orbitbhyve.com/v1/meshes/{mesh_id}
Doesn’t seem to be a way to POST anything to the API to control anything (that i’ve been able to guess), so it seems like a websocket interface will be the only path… I’ve just been using the web interface for a bit, capturing the websocket traffic. It seems like it wouldn’t be too difficult. Have a little time today, going to see what I can put together.
The websocket messages are all JSON and look pretty simple to predict…
To initialize the websocket connection, you need to do a POST first to /v1/session as you’ve outlined above, then to auth the websocket connection you use:
Zone/Station 2 for 10 minutes
{“event”:“change_mode”,“device_id”:“5a8b5b084f0c9ba809f1b55b”,“timestamp”:“2019-02-24T14:04:06.803Z”,“mode”:“manual”,“stations”:[{“station”:2,“run_time”:10}]}
It’s pretty responsive, phone app updates real-time (since they’re using websocket connections). I think we can make this work…
The next question… MQTT gateway or integrate as a component? I feel like a docker container that uses MQTT would be a bit better to start with, easier to test and can work with other tools…
I’m from the UK, but have ordered a couple of the Orbit B-hyve 21005 Bluetooth Hose Faucet Timers, now wondering if I should order the wifi hub too, as I assume this will allow them to be operated via the api? I did plan to sniff the packets, it’s a great little device with built in flow meter etc.
@billchurch, I’m up and running via Node Red, valve control seems to work perfect!
The only thing is I cannot keep flow related updates active once the app is closed
Edit 3: So I’ve narrowed it down, everything is working with exception of the flow related messages, I assume the app sends a payload when you click “tap for more water details”, it then times out when I close the app and Node Red stops receiving updates, how can I find out the payload which is sent?
Hello, looking for a smart hose device and wondering, instead of using the cloud api , wouldnt it be possible to use a bluetooth backend and controlling the hose locally and directly like for example the xiaomi flora plugins?