コード例 #1
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def on(relay_num, log=True, max_duration=None):
    pin = relays[relay_num]
    GPIO.output(pin, ON)
    cancel_timer(relay_num)
    if max_duration is not None:
        timers[relay_num] = util.delay(off, max_duration, [relay_num], {"log_extra": "via timer"})
    if log:
        log_action(relay_num, "turn on")
コード例 #2
0
ファイル: gpio.py プロジェクト: mscalora/garage
def on(relay_num, log=True, max_duration=None):
    pin = relays[relay_num]
    GPIO.output(pin, ON)
    cancel_timer(relay_num)
    if max_duration is not None:
        timers[relay_num] = util.delay(off, max_duration, [relay_num],
                                       {"log_extra": "via timer"})
    if log:
        log_action(relay_num, "turn on")
コード例 #3
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def toggle(relay_num, log=True, max_duration=None):
    pin = relays[relay_num]
    new_state = not bool(GPIO.input(pin))
    GPIO.output(pin, new_state)
    cancel_timer(relay_num)
    if new_state == ON and max_duration is not None:
        timers[relay_num] = util.delay(off, max_duration, [relay_num], {"log_extra": "via timer"})
    if log:
        log_action(relay_num, "toggle %s" % ('off' if new_state == OFF else 'on'))
    return new_state
コード例 #4
0
ファイル: gpio.py プロジェクト: mscalora/garage
def toggle(relay_num, log=True, max_duration=None):
    pin = relays[relay_num]
    new_state = not bool(GPIO.input(pin))
    GPIO.output(pin, new_state)
    cancel_timer(relay_num)
    if new_state == ON and max_duration is not None:
        timers[relay_num] = util.delay(off, max_duration, [relay_num],
                                       {"log_extra": "via timer"})
    if log:
        log_action(relay_num,
                   "toggle %s" % ('off' if new_state == OFF else 'on'))
    return new_state
コード例 #5
0
ファイル: gpio.py プロジェクト: mscalora/garage
def set_relay(relay_num, state):
    pin = relays[relay_num]
    GPIO.output(pin, state)
コード例 #6
0
ファイル: gpio.py プロジェクト: mscalora/garage
def get_relay(relay_num):
    pin = relays[relay_num]
    return 'on' if GPIO.input(pin) == ON else 'off'
コード例 #7
0
ファイル: gpio.py プロジェクト: mscalora/garage
def off(relay_num, log=True, log_extra=""):
    pin = relays[relay_num]
    GPIO.output(pin, OFF)
    cancel_timer(relay_num)
    if log:
        log_action(relay_num, "turn off %s" % log_extra)
コード例 #8
0
ファイル: gpio.py プロジェクト: mscalora/garage
def all_off(log=True):
    for relay_num, pin in relays.iteritems():
        GPIO.output(pin, OFF)
    if log:
        log_action("all", "turn off")
コード例 #9
0
ファイル: gpio.py プロジェクト: mscalora/garage
def get_sensor(sensor_num):
    return GPIO.input(sensors[sensor_num])
コード例 #10
0
ファイル: gpio.py プロジェクト: mscalora/garage
    1: 23,
    2: 22,
    3: 18,
    4: 17,
}

sensors = {1: 24}

timers = {}

ON = False
OFF = True

max_synchronous_delay = 0.10

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
for relay, pin_num in relays.iteritems():
    GPIO.setup(pin_num, GPIO.OUT)
    GPIO.output(pin_num, OFF)

for sensor, pin_num in sensors.iteritems():
    GPIO.setup(pin_num, GPIO.IN)


def log_action(device, action):
    print("GPIO Device: %s Action: %s" % (device, action))


def cancel_timer(relay_num, remove_only=False):
    if relay_num in timers:
コード例 #11
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def get_relay(relay_num):
    pin = relays[relay_num]
    return 'on' if GPIO.input(pin) == ON else 'off'
コード例 #12
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def off(relay_num, log=True, log_extra=""):
    pin = relays[relay_num]
    GPIO.output(pin, OFF)
    cancel_timer(relay_num)
    if log:
        log_action(relay_num, "turn off %s" % log_extra)
コード例 #13
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def all_off(log=True):
    for relay_num, pin in relays.iteritems():
        GPIO.output(pin, OFF)
    if log:
        log_action("all", "turn off")
コード例 #14
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def get_sensor(sensor_num):
    return GPIO.input(sensors[sensor_num])
コード例 #15
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
def set_relay(relay_num, state):
    pin = relays[relay_num]
    GPIO.output(pin, state)
コード例 #16
0
ファイル: gpio.py プロジェクト: mscalora/garage-pi-server
}

sensors = {
    1: 24
}

timers = {

}

ON = False
OFF = True

max_synchronous_delay = 0.10

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
for relay, pin_num in relays.iteritems():
    GPIO.setup(pin_num, GPIO.OUT)
    GPIO.output(pin_num, OFF)

for sensor, pin_num in sensors.iteritems():
    GPIO.setup(pin_num, GPIO.IN)


def log_action(device, action):
    print("GPIO Device: %s Action: %s" % (device, action))


def cancel_timer(relay_num, remove_only=False):
    if relay_num in timers: