Water Duration set to LESS THAN 1 minute

Is there any way to set watering duration for programmes to less than 1 minute. I have rachio set to refill my dogs’ water bowls twice daily with fresh water and 1 minute is overkill. I need about 10-15 seconds of on time to replace and fill the bowl. I think this was asked for previously. Any chance of implementing it in future updates? Thanks.

1 Like

Sorry but there is no way to set that. Not currently on the roadmap. Bigger bowl? (just kidding!) I will pass this feedback along to the product team.

:cheers:

2 Likes

Install a low flow spay head and adjust the flow to fill the water dish

3 Likes

I agree with @dave11 that the low tech way is easiest.

Normally, this wouldn’t be an issue. The API accepts watering durations in seconds, as it should.

If the UI were a simple form where you typed in the desired number of minutes, you could e.g. enter 0.2 to get a 12-second run. Unfortuately, the designer thought it was cute to have + and - buttons that adjust duration up or down one minute with each press.

Here is a simple perl script to run a zone for a desired number of seconds. On Mac or Linux, the built-in perl is all you need. For Windows, get http://strawberryperl.com/ .

Edit the values of $user and $pass for your Rachio account. Edit the last line as desired for your system. After running the script manually to test, set up Scheduled Task (Windows), iCal (Mac) or crontab (Linux) to run the script at the times desired, taking care to avoid times that the normal Rachio schedules may be running.

#!/usr/bin/perl

use LWP::UserAgent;
use JSON;

$user = 'me@mydomain.com';      # replace with the email address for your Rachio account
$pass = 'supersecret';          # replace with your Rachio account password

sub doreq {                     # print error and exit if request unsuccessful
    my ($name, $resp) = @_;
    return $resp->content if $resp->is_success;
    my $err = $resp->content;
    print "Request for $name failed: $err\n";
    exit(1);
}

sub run1 {                      # args are zone number, duration in seconds
    my ($zone, $duration) = @_;
    my $putdata = "{device_id: \"$devid\", runs: [{duration: $duration, zone_number: $zone}]}";
    my $resp = doreq('run zone', $ua->post("$cfg->{API_URL}/device/setManualSchedule",
                                'Authorization' => "Bearer $token", 'Content-Type' => 'application/json', 'Content' => $putdata));
    sleep($duration + 5);       # wait for completion
}

$ua = LWP::UserAgent->new();
#$ua->proxy(['http', 'https'], 'http://127.0.0.1:8888/');

# get config data
$cfg = decode_json(doreq('config', $ua->get('https://app.rach.io/env.json')));

# log in and get access token
$token = decode_json(doreq('login', $ua->post("$cfg->{AUTH_SERVICE_URL}/token",
                                 [ 'grant_type' => 'password', 'username' => $user, 'password' => $pass,
                                   'client_id' => $cfg->{CLIENT_ID}, 'client_secret' => $cfg->{CLIENT_SECRET} ])))->{access_token};

# get first device associated with this account
$devid = decode_json(doreq('device', $ua->get("$cfg->{API_URL}/location/listLocations/true", 'Authorization' => "Bearer $token")))
    ->{locationSummary}->[0]->{location}->{deviceId}->[0];

# do the real work
run1(4, 12); # run zone 4 for 12 seconds
2 Likes

Add a cheap valve and close it to restrict your needs.

I would like to see sub-minute watering resolution in the future.

To further elaborate Dave’s suggestion, use a drip emitter over the bowl. Drip emitters can be as low as 1/2 US Gal/hour (2 Liters per hour). Using this emitter for one minute, you would get about 1 US Oz of liquid (30 ml) which should be low enough and probably too low so you would want possibly 2 or three minutes.
The real problem you would have is matching consumption draw down to a fixed schedule of filling in increments of 1 US oz. Depending on the daily variations in drinking habits of your dog, you would sometimes have too little water or sometimes too much and get overflow. If the bowl is over part of the yard, overflow would not matter much. Even if you had increments in seconds, you will never be able to match your dogs consumption perfectly every day.
I would suggest looking online for a self filling water bowl. Something like this:
https://smile.amazon.com/AmazonBasics-Small-Gravity-Water-Dispenser/dp/B07227RQJ9/
Or if you wish to have your own DIY project, set up a float valve over a bowl.
Cheers!

1 Like

we use a automatic water trough stainless steel and self filling with a water float just hook up a hose, get them on ebay they are like $30