Fjärrstyrning via email.

Ett sätt att fjärrstyra saker, t.ex. omstart av en server, stänga av lampor eller annat liknande kan vara via email. I princip kan man styra allt som en Raspberry Pi kan styra, via email. Programmet härunder, skrivet i Python, slår bara på och av en lysdiod på en Pibrella men bara fantasin sätter gränser för vad man kan göra. Det här programmet är också tänk att köras som ett cronjobb och jag kör det en gång per minut. Ladda hem programmet här.

Även om det inte är speciellt upphetsande så slängde jag ihop en liten film på det.

 

 

#! /usr/bin/python
# -*- coding: utf-8 -*-
 
# mailremote.py - Göran Gustafsson 2015 - http://gorgusgfx.se
#
# Det här programmet kopplar upp sig mot en mailserver 
# och kollar igenom subject efter nyckelord på alla olästa 
# mail. 
 
import imaplib
from email.parser import HeaderParser
import RPi.GPIO as gpio
 
# Definiera lite
LED = 4
lamp='None'
 
# Ställ in gpio
gpio.setwarnings(False)
gpio.setmode(gpio.BCM)
gpio.setup(LED,gpio.OUT)
 
# Logga in på mailkontot
imap = imaplib.IMAP4_SSL('imap.mailserver.com',993)
imap.login('username', 'password')
imap.select('INBOX')
 
# kolla om det finns några olästa mail
typ, data = imap.search(None, 'UNSEEN')
 
# Om det finns olästa mail så gå igenom dem och kolla
# om subject motsvarar ett nyckelord och isf vidta
# de åtgärder som bestämts. Här tänds eller släcks
# den gröna lysdioden på en Pibrella, men vadsomhelst
# som kan kontrolleras av en Raspberry Pi kan kontrolleras.
for num in data[0].split():
    typ, data = imap.fetch(num, '(RFC822)')
    msg=HeaderParser().parsestr(data[0][1])
    temp=msg['Subject']
    lamp=temp.lower()
 
if (lamp != 'None'):
    if (lamp=='lampa=1'):
        gpio.output(LED,True)
    elif (lamp=='lampa=0'):
        gpio.output(LED,False)
 
    # När mailen gåtts igenom och kollats så tar vi
    # bort alla mail.
    typ, data = imap.search(None, 'ALL')
    for num in data[0].split():
        imap.store(num, '+FLAGS', '\\Deleted')
    imap.expunge()
 
# Nu är vi färdiga och stänger anslutningen till mailkontot
imap.close()
imap.logout()

 

One comment on “Fjärrstyrning via email.

  1. Niclas on said:

    Jag fattar inte att du vet var det ska stå vad… 🙂

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

* Copy This Password *

* Type Or Paste Password Here *

3 954Spamkommentarer blockerade hittillsSpam Free Wordpress

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

Översätt sidan
EnglishFrenchGermanItalianPortugueseRussianSpanish
Live data
Besökskarta
Login-box
  • Login
    Login

Ditt IP-nummer:
54.146.135.173