bhyve-home-assistant icon indicating copy to clipboard operation
bhyve-home-assistant copied to clipboard

Zone Turned Off time is not correct, actually reflects program end time rather than zone end time

Open jbrukardt opened this issue 3 years ago • 7 comments

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 avatar Oct 21 '20 19:10 jbrukardt

@jbrukardt what output are you expecting?

And what's the difference between the zone shutting off vs the program ending?

sebr avatar Oct 22 '20 02:10 sebr

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?

jbrukardt avatar Oct 22 '20 14:10 jbrukardt

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

  1. Open home-assistant.log
  2. Identify lines which begin with:
DEBUG (MainThread) [custom_components.bhyve] Devices:
DEBUG (MainThread) [custom_components.bhyve] Programs:
  1. Copy these two lines and paste them in a comment below.
  2. Open .bhyve/packets.dump
  3. Copy all the contents (or upload the file)

sebr avatar Oct 23 '20 00:10 sebr

Sure thing, glad to help out. See attached for a filtered log and the dump file.

~deleted~

jbrukardt avatar Oct 24 '20 16:10 jbrukardt

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).

sebr avatar Oct 25 '20 08:10 sebr

@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.

sebr avatar Oct 25 '20 10:10 sebr

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

jbrukardt avatar Oct 26 '20 02:10 jbrukardt