-
-
Save ladyada/3062225 to your computer and use it in GitHub Desktop.
cat <<! > raspi-gmail.py | |
#!/usr/bin/env python | |
import RPi.GPIO as GPIO, feedparser, time | |
DEBUG = 1 | |
USERNAME = "username" # just the part before the @ sign, add yours here | |
PASSWORD = "password" | |
NEWMAIL_OFFSET = 1 # my unread messages never goes to zero, yours might | |
MAIL_CHECK_FREQ = 60 # check mail every 60 seconds | |
GPIO.setmode(GPIO.BCM) | |
GREEN_LED = 18 | |
RED_LED = 23 | |
GPIO.setup(GREEN_LED, GPIO.OUT) | |
GPIO.setup(RED_LED, GPIO.OUT) | |
while True: | |
newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"]) | |
if DEBUG: | |
print "You have", newmails, "new emails!" | |
if newmails > NEWMAIL_OFFSET: | |
GPIO.output(GREEN_LED, True) | |
GPIO.output(RED_LED, False) | |
else: | |
GPIO.output(GREEN_LED, False) | |
GPIO.output(RED_LED, True) | |
time.sleep(MAIL_CHECK_FREQ) | |
! |
Rad program. I made a simpler version of it that checks whether a web site is up or down:
Hi guys,
May I kindly ask what would be the python script like if I would only want to use a single LED(green) for first incoming email and allow it to stay on until the second new email comes in? In a nutshell, the new email turns the led on, second email turn it off and the next turn it on and so forth, emails that are read should not be considered in this. Any help will be highly appreciated.
I wrote a version that uses imaplib, since there seems to be a problem with authentication for the Gmail atom feed. https://gist.github.com/egocks/e32f320af67edfbc0619#file-raspi-gmail-imaplib-py
i am new to Pi 2 ...for this project no need to install anything like "imapclient" ???
please respond
I have a quick fix for this code for you below. I found out if you don't cleanup when closing the program, it will stop working and cause a "Channel in use" type of warning.