Philips Hue Lampen mit dem Raspberry Pi per eMail schalten

Raspberry Pi mit offenem Gehäuse und WLAN-Nano-Stick, klicken um zu vergrößern

Raspberry Pi mit offenem Gehäuse und WLAN-Nano-Stick, klicken um zu vergrößern

Nachdem ich schon einige Beiträge über die Philips-Hue und über den Raspberry Pi geschrieben habe, hatte ich mir noch ein paar Gedanken darüber gemacht, auf welcher Weise man mit der Philips Hue noch Lampen schalten könnte. Die Antwort war: über eMail. Man schreibt an einer bestimmten eMail-Adresse, die der Raspberry Pi kennt, eine eMail mit einem Befehl und der Pi führt ihn zusammen mit der
Philips-Hue aus. Ein Befehl könnte lauten: Licht an (in der Betreffzeile) und schon geht an vorbestimmten Stellen das Licht an.
Vorteil: Man kann die Hue-Lampen sogar von unterwegs bedienen. Also kein VPN und Dyndns-Gedöns notwendig.


Was wird an Hardware benötigt:

Die Implementierung Software gestaltet sich relativ einfach. Per Python wird das eMail-Postfach abgerufen. Anschließend wird gecheckt, was sich in der
Betreffzeile befindet. Wenn im Betreff der Steuercode erkannt wurde (Licht an), wird an der Hue der Befehl ausgeführt.
Es sollte natürlich niemand die eMail-Adresse wissen, um Unfug zu vermeiden. Um die Hue zu steuern muss hier noch die dazu notwendige Python-Datei heruntergeladen werden. Ich habe das Script in

[sourcecode language=“text“ gutter=“false“]/usr/local/bin/emailhue/[/sourcecode]

geschubst und die notwendige phue.py (Download hier) ebenfalls in dem Ordner untergebracht.

# filname email2hue.py
import imaplib
import email

#get the hue
import sys
from phue import Bridge
# be sure to copy phue.py in the folder where this script is

#change to IP address of your Philips Hue Hub
b = Bridge('192.168.178.17')
# insert your Hue IP there
# Philips Hue must be already authenticated!

#connect to gmail

mail = imaplib.IMAP4_SSL('imap.gmail.com')
# if there is a 2 way google authentication go in the google account
# an create a google-defined password
mail.login('youremail@gmail.com','bieomhrulgjcrvsd')
mail.select('inbox')
mail.list()

typ, data = mail.search(None, 'ALL')
for num in data[0].split():
typ, data = mail.fetch(num, '(RFC822)')
typ, data = mail.search(None, 'All')
ids = data[0]
id_list = ids.split()

# get most recent email id

latest_email_id = int( id_list[-1] )

for i in range( latest_email_id, latest_email_id-1, -1):
typ, data = mail.fetch( i, '(RFC822)')
for response_part in data:
if isinstance(response_part, tuple):
msg = email.message_from_string(response_part[1])
varSubject = msg['subject']
varFrom = msg['from']
varFrom = varFrom.replace('<','')
varFrom = varFrom.replace('>','')
if len( varSubject ) >35:
varSubject = varSubject[0:32] ='...'

# unREMARK this line to test if email-connection works

print varSubject
# switch light 2 on
if varSubject == 'licht an':
b.set_light(2,'on', True)
# switch light 2 off
if varSubject == 'licht aus':
b.set_light(2,'on', False)

Wichtig sind hier im Code noch die Einrückungen zu erwähnen. Python möchte bei for und if den Source-Text eingerückt haben. Python-Profis wissen das, als Anfänger knallt man sonst gegen einen Fehler.

Gestartet wird das Script mit python /usr/local/bin/emailhue/email2hue.py
Das Script wird nur einmal ausgeführt, um das Script ständig auszuführen kann man im Crontab (/etc/crontab) noch folgende Zeile hinzufügen

*/15 * * * * root /usr/bin/python /usr/local/bin/emailhue/email2hue.py

Dort wird dann alle 15min nach Post geschaut. Beim ersten Aufruf des Scripts einmal noch die weiße Taste der Hue drücken, dann dass Programm nochmals starten. Es sollte dann so etwas in der Konsole stehen und die Lampe 2 sollte eingeschaltet werden.

root@raspbmc:~# /usr/bin/python /usr/local/bin/emailhue/email2hue.py
INFO:phue:Logging level set to info
INFO:phue:Attempting to connect to the bridge...
INFO:phue:Error opening config file, will attempt bridge registration
INFO:phue:Writing configuration file to /root/.python_hue
INFO:phue:Reconnecting to the bridge
INFO:phue:Attempting to connect to the bridge...
INFO:phue:Using ip: 192.168.178.17
INFO:phue:Using username from config: d4ad637bb169f27287e83e8feeaf

Dieser Beitrag wurde unter Philips Hue, Raspberry Pi abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.