Simple test¶
Ensure your device works with this simple test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
# SPDX-License-Identifier: MIT
import time
import uschedule as schedule
def greet():
print("Hello, world!")
# Note: pass functions, not function calls - i.e. "greet", not "greet()"
# schedule every 10 seconds
schedule.every(10).seconds.do(greet)
# schedule every 10 minutes
schedule.every(10).minutes.do(greet)
# schedule once a day
schedule.every().day.at("10:30").do(greet)
# schedule from 5 to 10 minutes
schedule.every(5).to(10).minutes.do(greet)
# schedule on a particular day
schedule.every().monday.do(greet)
# schedule day and time
schedule.every().wednesday.at("13:15").do(greet)
# schedule once a minute at seventeen seconds
schedule.every().minute.at(":17").do(greet)
while True:
# Run any pending jobs
schedule.run_pending()
time.sleep(1)
|
Additional utilities¶
Additional utilities that are available
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
# SPDX-License-Identifier: MIT
import time
import uschedule as schedule
def greet():
print("Hello, world!")
# schedule every 10 seconds
schedule.every(10).seconds.do(greet)
# Get the datetime of next run
next_run_datetime = schedule.next_run()
# Get the number of seconds until the next run
next_run_seconds = schedule.idle_seconds()
# cancel all jobs
schedule.clear()
# schedule every 1 second
schedule.every(1).second.do(greet)
while True:
# Run any pending jobs
schedule.run_pending()
time.sleep(1)
|
Real Time Clock¶
This module works great in combination with a Real Time Clock (RTC), if one is available on your device. For example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
# SPDX-FileCopyrightText: Copyright (c) 2021 Nathan Byrd
# SPDX-License-Identifier: MIT
import time
import rtc
import busio
import board
import adafruit_pcf8523
import uschedule as schedule
def greet():
print("Hello, world!")
i2c = busio.I2C(board.SCL, board.SDA)
rtc_device = adafruit_pcf8523.PCF8523(i2c)
rtc.RTC().datetime = rtc_device.datetime
# schedule every 10 seconds
schedule.every(10).seconds.do(greet)
# schedule every 10 minutes
schedule.every(10).minutes.do(greet)
# schedule once a day
schedule.every().day.at("10:30").do(greet)
# schedule from 5 to 10 minutes
schedule.every(5).to(10).minutes.do(greet)
# schedule on a particular day
schedule.every().monday.do(greet)
# schedule day and time
schedule.every().wednesday.at("13:15").do(greet)
# schedule once a minute at seventeen seconds
schedule.every().minute.at(":17").do(greet)
while True:
# Run any pending jobs
schedule.run_pending()
time.sleep(1)
|