Mercurial > code > home > repos > homeauto
diff service/environment/environment.py @ 876:351292938d7c
twilight computation for rules to use
Ignore-this: c40016acb3c3f957cb17d2b918698c77
darcs-hash:20130411043221-312f9-7af02fd32d1df6a01f151753150d2e4ff87a59c0
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Wed, 10 Apr 2013 21:32:21 -0700 |
parents | 9e99114dde57 |
children | 86345d1d8514 |
line wrap: on
line diff
--- a/service/environment/environment.py Wed Apr 10 21:31:51 2013 -0700 +++ b/service/environment/environment.py Wed Apr 10 21:32:21 2013 -0700 @@ -7,11 +7,13 @@ import sys, datetime, cyclone.web from twisted.internet import reactor from dateutil.tz import tzlocal +from dateutil.relativedelta import relativedelta, FR from rdflib import Namespace, Literal sys.path.append("/my/site/magma") from stategraph import StateGraph sys.path.append("/my/proj/homeauto/lib") from cycloneerr import PrettyErrorHandler +from twilight import isWithinTwilight ROOM = Namespace("http://projects.bigasterisk.com/room/") DEV = Namespace("http://projects.bigasterisk.com/device/") @@ -26,6 +28,15 @@ now = datetime.datetime.now(tzlocal()) g.add((DEV.environment, ROOM.localHour, Literal(now.hour))) + + for offset in range(-12, 7): + d = now.date() + datetime.timedelta(days=offset) + if d == d + relativedelta(day=31, weekday=FR(-1)): + g.add((DEV.calendar, ROOM.daysToLastFridayOfMonth, + Literal(offset))) + + g.add((DEV.calendar, ROOM.twilight, + ROOM['withinTwilight'] if isWithinTwilight(now) else ROOM['daytime'])) self.set_header('Content-type', 'application/x-trig') self.write(g.asTrig())