Mercurial > code > home > repos > homeauto
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='::') |