Mercurial > code > home > repos > homeauto
changeset 376:b3dac05ab9fa
drop frontdoor lcd message code
Ignore-this: 59f5f748a3cca41ec3b4055f4aca76a7
author | drewp@bigasterisk.com |
---|---|
date | Tue, 11 Dec 2018 15:05:11 -0800 |
parents | c154a2ba099b |
children | 5b690bfc31b2 |
files | service/frontDoorMessage/automsg.py service/frontDoorMessage/frontDoorMessage.py service/frontDoorMessage/index.html |
diffstat | 3 files changed, 0 insertions(+), 157 deletions(-) [+] |
line wrap: on
line diff
--- a/service/frontDoorMessage/automsg.py Tue Dec 11 15:02:56 2018 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -""" -write the automatic last line to LCD /lastLine -""" -import sys, time -sys.path.append("/my/site/magma") -from datetime import datetime -from graphitetemp import getAllTemps - -import restkit - -# needs poller with status report - -while True: - fd = restkit.Resource("http://bang:9081/") - - allTemp = getAllTemps() - now = datetime.now() - - line = "%02d:%02d %02dF in, %02dF out" % (now.hour, now.minute, - allTemp.get('livingRoom', 0), - allTemp.get('frontDoor', 0)) - fd.put("lastLine", payload=line) - time.sleep(60)
--- a/service/frontDoorMessage/frontDoorMessage.py Tue Dec 11 15:02:56 2018 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -""" -holds the current message on the front door lcd -""" -import cyclone.web, sys, socket -import restkit -from twisted.internet import reactor -from twisted.internet.defer import inlineCallbacks -sys.path.append("/my/proj/homeauto/lib") -from cycloneerr import PrettyErrorHandler -from logsetup import log - -class LcdParts(object): - def __init__(self, putUrl, pingUrl): - self.putUrl, self.pingUrl = putUrl, pingUrl - log.info("restarting- message is now empty") - self.message = "" - self.lastLine = "" - - def updateLcd(self): - whole = "%-147s%-21s" % (self.message, self.lastLine) - try: - restkit.request(url=self.putUrl, - method="PUT", - body=whole, - headers={"content-type":"text/plain"}) - except socket.error, e: - log.warn("update lcd failed, %s" % e) - - try: - restkit.request(url=self.pingUrl, method="POST", body="") - except socket.error, e: - log.warn("ping failed, %s" % e) - -class Index(PrettyErrorHandler, cyclone.web.RequestHandler): - @inlineCallbacks - def get(self): - - # refresh output, and make an error if we can't talk to them - yield self.settings.lcdParts.updateLcd() - - self.set_header("Content-Type", "application/xhtml+xml") - self.write(open("index.html").read()) - -def getArg(s): - return s.request.body.encode("ascii") - -class Message(PrettyErrorHandler, cyclone.web.RequestHandler): - def get(self): - self.set_header("Content-Type", "text/plain") - self.write(self.settings.lcdParts.message) - - def put(self): - self.settings.lcdParts.message = getArg(self) - self.settings.lcdParts.updateLcd() - self.set_status(204) - -class LastLine(PrettyErrorHandler, cyclone.web.RequestHandler): - def get(self): - self.set_header("Content-Type", "text/plain") - self.write(self.settings.lcdParts.lastLine) - - def put(self): - self.settings.lcdParts.lastLine = getArg(self) - self.settings.lcdParts.updateLcd() - self.set_status(204) - -class Application(cyclone.web.Application): - def __init__(self, lcdParts): - handlers = [ - (r"/", Index), - (r"/message", Message), - (r'/lastLine', LastLine), - ] - settings = {"lcdParts" : lcdParts} - cyclone.web.Application.__init__(self, handlers, **settings) - -if __name__ == '__main__': - - config = { - 'frontDoorArduino': "http://slash:9080/", - 'doorChangePost' : 'http://bang:8014/frontDoorChange', - 'servePort' : 9081, - } - - lcdParts = LcdParts(config['frontDoorArduino'] + 'lcd', - config['doorChangePost']) - - reactor.listenTCP(config['servePort'], Application(lcdParts)) - reactor.run()
--- a/service/frontDoorMessage/index.html Tue Dec 11 15:02:56 2018 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" -"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <title>front door message</title> - <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> - </head> - <body> - - Front door message: - <div><textarea name="message"></textarea></div> - <div><input type="text" name="lastLine"/></div> - <div id="save"></div> -<script type="text/javascript"> -// <![CDATA[ - -$(function () { - - function setup(elem, url) { - $.get(url, function (data) { elem.val(data) }); - - elem.keyup(function() { - $("#save").css("color", "yellow").text("saving..."); - $.ajax({ - type: "PUT", - url: url, - data: elem.val(), - success: function () { - $("#save").css("color", "black").text("ok"); - } - }); - }); - } - - setup($("textarea[name=message]"), "message"); - setup($("input[name=lastLine]"), "lastLine"); - -}); - -// ]]> -</script> - - </body> -</html> \ No newline at end of file