Ich stelle gerade ein Skript für eine Energiesparfunktion für meinen digitalen Bilderrahmen zusammen, das Geofencing über IFTTT nutzt, um auf Basis des Handys der Hausbewohner zu entscheiden, wann der Rahmen aus- und angeschaltet werden soll. Dabei sendet IFTTT eine Email an den RPi, der dann auf Basis verschiedener Bedingungen entscheidet, was gemacht werden soll.
Eine solche Bedingung ist der Zeitpunkt des Sonnenuntergangs. Zu diesem Zeitpunkt soll der Bilderrahmen für einige Stunden anbleiben, egal ob jemand zuhause ist, oder nicht.
Die Feststellung der Sonnenuntergangszeit habe ich auf Basis von gefundenen Snippets über PyEphem gut hinbekommen:
#!usr/bin/python
from datetime import datetime, timedelta
from time import localtime, strftime
import ephem
SEC30 = timedelta(seconds=3600) #Unterschied von UTC zu CET
home = ephem.Observer()
# replace lat, long, and elevation to yours
home.lat = '50.1422'
home.long = '8.4967'
home.elevation = 150
sun = ephem.Sun()
fmt = "%d-%b-%Y %H%M CET"
if __name__ == '__main__':
sun.compute(home)
nextset = home.next_setting(sun)
nextsetcet= nextset.datetime() + SEC30
print "next sunset: ", nextsetcet.strftime(fmt)
# end of sunset code for PyEphem
Alles anzeigen
Die Email Abfrage geschieht im Master Skript. Dieses wiederum soll jetzt auf den aktuellen Sonnenuntergangswert ("nextsetcet") zugreifen.
Mein Testskript zum Aufruf sieht folgendermaßen aus:
Bei der Ausführung bekomme ich dann die Fehlermeldung
Zitatnext sunrise:
Traceback (most recent call last):
File "/home/pi/frame/CheckPresence.py", line 11, in <module>
print "next sunset ", nextset.strftime(fmt)
NameError: name 'nextset' is not defined
Wahrscheinlich ist es ein ganz banaler Fehler, aber ich komme gerade nicht weiter..