comparison service/mqtt_graph_bridge/mqtt_graph_bridge.py @ 460:7051b8b4766a

build updates. hack in r/g/b and some fixed multipliers Ignore-this: 155d402cd863cf9be2b59f5595131c0d
author drewp@bigasterisk.com
date Sat, 20 Apr 2019 23:32:36 -0700
parents 79d041273e26
children 30022797642e
comparison
equal deleted inserted replaced
459:a471688fb7b7 460:7051b8b4766a
8 from mqtt_client import MqttClient 8 from mqtt_client import MqttClient
9 9
10 ROOM = Namespace('http://projects.bigasterisk.com/room/') 10 ROOM = Namespace('http://projects.bigasterisk.com/room/')
11 11
12 devs = { 12 devs = {
13 ROOM['kitchenLight']: {'root': 'h801_skylight', 'ctx': ROOM['kitchenH801']}, 13 ROOM['kitchenLight']: {
14 ROOM['kitchenCounterLight']: {'root': 'h801_counter', 'ctx': ROOM['kitchenH801']}, 14 'root': 'h801_skylight',
15 'ctx': ROOM['kitchenH801']
16 },
17 ROOM['kitchenCounterLight']: {
18 'root': 'h801_counter',
19 'ctx': ROOM['kitchenH801']
20 },
15 } 21 }
16 22
17 logging.basicConfig() 23 logging.basicConfig()
18 log = logging.getLogger() 24 log = logging.getLogger()
19 25
42 48
43 def _onStatement(self, stmt): 49 def _onStatement(self, stmt):
44 ignored = True 50 ignored = True
45 for dev, attrs in devs.items(): 51 for dev, attrs in devs.items():
46 if stmt[0:2] == (dev, ROOM['brightness']): 52 if stmt[0:2] == (dev, ROOM['brightness']):
47 self.settings.mqtt.publish("%s/light/kit_w1/command" % attrs['root'], 53 for chan, scale in [('w1', 1),
48 json.dumps({'state': 'ON', 'brightness': int(stmt[2].toPython() * 255)})) 54 ('r', 1),
49 self.settings.masterGraph.patchObject(attrs['ctx'], 55 ('g', .8),
50 stmt[0], stmt[1], stmt[2]) 56 ('b', .8)]:
57 out = stmt[2].toPython() * scale
58 self.settings.mqtt.publish(
59 "%s/light/kit_%s/command" % (attrs['root'], chan),
60 json.dumps({
61 'state': 'ON',
62 'brightness': int(out * 255)}))
63 self.settings.masterGraph.patchObject(
64 attrs['ctx'],
65 stmt[0], stmt[1], stmt[2])
51 ignored = False 66 ignored = False
52 if ignored: 67 if ignored:
53 log.warn("ignoring %s", stmt) 68 log.warn("ignoring %s", stmt)
54 69
55 if __name__ == '__main__': 70 if __name__ == '__main__':
68 83
69 mqtt = MqttClient(brokerPort=1883) 84 mqtt = MqttClient(brokerPort=1883)
70 85
71 port = 10008 86 port = 10008
72 reactor.listenTCP(port, cyclone.web.Application([ 87 reactor.listenTCP(port, cyclone.web.Application([
88 (r"/()", cyclone.web.StaticFileHandler,
89 {"path": ".", "default_filename": "index.html"}),
73 (r"/graph", CycloneGraphHandler, {'masterGraph': masterGraph}), 90 (r"/graph", CycloneGraphHandler, {'masterGraph': masterGraph}),
74 (r"/graph/events", CycloneGraphEventsHandler, 91 (r"/graph/events", CycloneGraphEventsHandler,
75 {'masterGraph': masterGraph}), 92 {'masterGraph': masterGraph}),
76 (r'/output', OutputPage), 93 (r'/output', OutputPage),
77 ], mqtt=mqtt, masterGraph=masterGraph, debug=arg['-v']), interface='::') 94 ], mqtt=mqtt, masterGraph=masterGraph, debug=arg['-v']), interface='::')