bhyve-home-assistant
bhyve-home-assistant copied to clipboard
Zone Turned Off time is not correct, actually reflects program end time rather than zone end time
Runtime appears correctly, and zone on timestamp is correct. However the zone off timestamp reflects when the program ends, not when the zone actually shuts off.
Turned off 2:50:00 PM - 1 hour ago Turned on 1:59:59 PM - 2 hours ago Turned off 6:49:59 AM - 9 hours ago Turned on 5:59:58 AM - 10 hours ago
device name: XXXXXXXXX B-hyve
device id: XXXXX
zone name: Garden Sprinklers
smart watering enabled: false
manual preset runtime: 600
sprinkler type: rotor
program a:
enabled: true
name: New Grass
is_smart_program: false
start_times:
- "06:00"
- "14:00"
frequency:
type: days
days:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
run_times:
- run_time: 10
station: 1
program b:
enabled: false
name: Sprinkler Test
is_smart_program: false
program c:
enabled: false
name: Run Now
is_smart_program: false
@jbrukardt what output are you expecting?
And what's the difference between the zone shutting off vs the program ending?
Additional information:
Hardware, Bhyve sprinkler controller, 8 zone, indoor
The program "new grass" runs 5 zones, each for 10 minutes.
The expected output would be for the turned off time to be 10 minutes after the turned on time.
The program end time (which is whats being reflected) is the time at which no zones are on and the entire program (all 5 zones, 10 minutes each) is complete, rather than an individual zone.
This may be a remnant of the code thinking that the "program" is an individual "one zone" bhyve hose timer rather than a program that runs multiple zones from the sprinkler controller?
This may be a remnant of the code thinking that the "program" is an individual "one zone" bhyve hose timer rather than a program that runs multiple zones from the sprinkler controller?
This is almost certainly the case - I only have the faucet timer devices which have a 1:1 mapping of zone-program.
I'd be happy to take a look and try improve the functionality to support this hardware, but in order to do so I'll need you to upload a bunch of logs and event data.
Step 1: Enable debugging & packet dumps
Add the following to configuration.yaml
and then restart Home Assistant.
logger:
logs:
custom_components.bhyve: debug
bhyve:
username: !secret bhyve_username
password: !secret bhyve_password
packet_dump: true
Step 2: Wait for (or trigger) the zone watering
⏳ wait for watering 💦🌷
Step 3: Upload debug data
- Open
home-assistant.log
- Identify lines which begin with:
DEBUG (MainThread) [custom_components.bhyve] Devices:
DEBUG (MainThread) [custom_components.bhyve] Programs:
- Copy these two lines and paste them in a comment below.
- Open
.bhyve/packets.dump
- Copy all the contents (or upload the file)
Sure thing, glad to help out. See attached for a filtered log and the dump file.
~deleted~
Thanks @jbrukardt. I've deleted the file you've uploaded as it contained some longitude/latitude location in the logs which you uploaded (these were stray HA logs, not from my integration).
@jbrukardt I'm interested to know what data is available in the BHyve app...
From the logs and event stream which you provided, there are individual watering started events for each zone, but there is only one watering completed event:
{ 'current_station': 1, // Garden Sprinklers
'event': 'watering_in_progress_notification',
'run_time': 10 }
{ 'current_station': 2, // Front Lawn Sprinkler
'event': 'watering_in_progress_notification',
'run_time': 10 }
{ 'current_station': 3, // Driveway Sprinkler
'event': 'watering_in_progress_notification',
'run_time': 10 }
{ 'current_station': 5, // Barn Sprinkler
'event': 'watering_in_progress_notification',
'run_time': 10 }
{ 'current_station': 7, // Oil Tank Sprinklers
'event': 'watering_in_progress_notification',
'run_time': 10 }
{ 'event': 'watering_complete' }
I'm curious if the BHyve app shows this data, and if it does... then where/how.
Thanks for the clear on the lat/long, missed those.
In the bhyve app, it shows watering start times for each zone in the watering history, but no end time. However, during a watering program, it does send push notifications when each zone finishes.
I see where you're getting at though, nowhere in the app, except when the program is running, does it have indications of zone watering complete as a logged event. It all seems to reference start time and duration.
Id be willing to privately share access to my bhyve account for development, you could run short test events/etc if itd be helpful