Mercurial > code > home > repos > homeauto
changeset 1047:e3d77b7f16ca
rearrange Actions
Ignore-this: abd7b4dbaa1e83f071ae898b78344068
darcs-hash:84c6fae3fc79b2ecc0556a2dc1362add830c2998
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Tue, 02 Feb 2016 01:52:29 -0800 |
parents | 79c566654151 |
children | f3c7f617c335 |
files | service/reasoning/actions.py |
diffstat | 1 files changed, 36 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/service/reasoning/actions.py Mon Feb 01 03:29:30 2016 -0800 +++ b/service/reasoning/actions.py Tue Feb 02 01:52:29 2016 -0800 @@ -55,13 +55,6 @@ #self._frontDoorPuts(deviceGraph, inferred) - - def _put(self, url, payload): - def err(e): - log.warn(" put %s failed (%r)", url, e) - log.info(" PUT %s payload=%r", url, payload) - fetch(url, method="PUT", postdata=payload, timeout=2).addErrback(err) - def _oneShotPostActions(self, deviceGraph, inferred): """ Inferred graph may contain some one-shot statements. We'll send @@ -101,32 +94,58 @@ http://{mpd}/addAndPlay?uri={toPlay} or maybe toPlay as the payload which would be fairly general but still allow toPlay uris to be matched with any player.""" - def post(postTarget): - log.info("special mpd POST %s", postTarget) - def err(e): - log.warn("post %s failed", postTarget) - fetch(postTarget, method="POST", timeout=2).addErrback(err) rootSkippingAuth = "http://brace:9009/" for mpd in [URIRef("http://bigasterisk.com/host/brace/mpd")]: - for song in inferred.objects(mpd, ROOM['startMusic']): log.info("mpd statement: %r" % song) assert song.startswith('http://bigasterisk.com/music/') - post(rootSkippingAuth + "addAndPlay" + urllib.quote(song[len("http://bigasterisk.com/music"):])) + self.post(rootSkippingAuth + "addAndPlay" + urllib.quote(song[len("http://bigasterisk.com/music"):])) for state in inferred.objects(mpd, ROOM['playState']): log.info('hello playstate %s', state) if state == ROOM['pause']: log.info("mpd %s %s", mpd, state) - post(rootSkippingAuth + "mpd/pause") + self.post(rootSkippingAuth + "mpd/pause") for vol in inferred.objects(mpd, ROOM['audioState']): if vol == ROOM['volumeStepUp']: - post(rootSkippingAuth + "volumeAdjust?amount=6&max=70") + self.post(rootSkippingAuth + "volumeAdjust?amount=6&max=70") if vol == ROOM['volumeStepDown']: - post(rootSkippingAuth + "volumeAdjust?amount=-6&min=10") + self.post(rootSkippingAuth + "volumeAdjust?amount=-6&min=10") + + def _frontDoorPuts(self, deviceGraph, inferred): + # todo: shouldn't have to be a special case + brt = inferred.value(DEV.frontDoorLcd, ROOM.brightness) + if brt is None: + return + url = deviceGraph.value(DEV.frontDoorLcdBrightness, ROOM.putUrl) + log.info("put lcd %s brightness %s", url, brt) + self._put(str(url) + "?brightness=%s" % str(brt), payload='') + + msg = "open %s motion %s" % ( + inferred.value(DEV['frontDoorOpenIndicator'], ROOM.text), + inferred.value(DEV['frontDoorMotionIndicator'], ROOM.text)) + # this was meant to be 2 chars in the bottom row, but the + # easier test was to replace the whole top msg + #restkit.Resource("http://slash:9080/").put("lcd", message=msg) + + + + + def _put(self, url, payload): + def err(e): + log.warn(" put %s failed (%r)", url, e) + log.info(" PUT %s payload=%r", url, payload) + fetch(url, method="PUT", postdata=payload, timeout=2).addErrback(err) + + def post(self, postTarget): + log.info("special mpd POST %s", postTarget) + def err(e): + log.warn("post %s failed", postTarget) + fetch(postTarget, method="POST", timeout=2).addErrback(err) + def _putZero(self, deviceGraph, dev, pred, putUrl): # zerovalue should be a function of pred as well. value = deviceGraph.value(dev, ROOM.zeroValue) @@ -151,21 +170,3 @@ else: log.warn("don't know what payload to put for %s. obj=%r", putUrl, obj) - - def _frontDoorPuts(self, deviceGraph, inferred): - # todo: shouldn't have to be a special case - brt = inferred.value(DEV.frontDoorLcd, ROOM.brightness) - if brt is None: - return - url = deviceGraph.value(DEV.frontDoorLcdBrightness, ROOM.putUrl) - log.info("put lcd %s brightness %s", url, brt) - self._put(str(url) + "?brightness=%s" % str(brt), payload='') - - msg = "open %s motion %s" % ( - inferred.value(DEV['frontDoorOpenIndicator'], ROOM.text), - inferred.value(DEV['frontDoorMotionIndicator'], ROOM.text)) - # this was meant to be 2 chars in the bottom row, but the - # easier test was to replace the whole top msg - #restkit.Resource("http://slash:9080/").put("lcd", message=msg) - -