Previous topic

Examples

Next topic

Brewery

This Page

SprinklersΒΆ

Here is the setup I use to water my yard:

import sys
from gadgets import get_gadgets, Addresses, Sockets
from gadgets.pins.rpi import pins

sprinklers = {
    'locations': {
        'back garden': {
            'sprinklers': {
                'type': 'switch',
                'pin': pins['gpio'][11],
                'on': 'water {location}'
                'off': 'stop watering {location}'
                },
            },
        'front yard': {
            'sprinklers': {
                'type': 'switch',
                'pin': pins['gpio'][13],
                'on': 'water {location}'
                'off': 'stop watering {location}'
                },
            },
        'sidewalk': {
            'sprinklers': {
                'type': 'switch',
                'pin': pins['gpio'][15],
                'on': 'water {location}'
                'off': 'stop watering {location}'
                },
            },
        'back yard': {
            'sprinklers': {
                'type': 'switch',
                'pin': pins['gpio'][16],
                'on': 'water {location}'
                'off': 'stop watering {location}'
                },
            },
        'front garden': {
            'sprinklers': {
                'type': 'switch',
                'pin': pins['gpio'][18],
                'on': 'water {location}'
                'off': 'stop watering {location}'
                },
            },
        }
    }

if __name__ == '__main__':
    addresses = Addresses()
    gadgets = get_gadgets(sprinklers, addresses)
    gadgets.start()

This is the cron script that I use to run a watering schedule. The ‘gadgets’ command accepts a ‘–command’ argument, which starts a Sockets instance, sends the command, and then exits:

#Minute  Hour  Day  Month  Day of Week Command
    0     5     *     *        Wed     gadgets --command 'water front yard for 20 minutes'
    0     5     *     *        Fri     gadgets --command 'water front yard for 20 minutes'
    25    5     *     *        Wed     gadgets --command 'water back yard for 20 minutes'
    25    5     *     *        Fri     gadgets --command 'water back yard for 20 minutes'
    50    5     *     *        Wed     gadgets --command 'water sidewalk for 20 minutes'
    50    5     *     *        Fri     gadgets --command 'water sidewalk for 20 minutes'
    0     4     *     *        Mon     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Tue     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Wed     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Thu     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Fri     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Sat     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Sun     gadgets --command 'water front garden for 5 minutes'
    0     4     *     *        Mon     gadgets --command 'water back garden for 5 minutes'
    0     4     *     *        Tue     gadgets --command 'water back garden for 5 minutes'
    0     4     *     *        Wed     gadgets --command 'water back garden for 5 minutes'
    0     4     *     *        Thu     gadgets --command 'water back garden for 5 minutes'
    0     4     *     *        Fri     gadgets --command 'water back garden for 5 minutes'
    0     4     *     *        Sat     gadgets --command 'water back garden for 5 minutes'
    0     4     *     *        Sun     gadgets --command 'water back garden for 5 minutes'