Mercurial > code > home > repos > homeauto
comparison service/wifi/wifi.py @ 1225:b8c0daabe5a5
factor out some URI generation
Ignore-this: 3c982a1fdbadcc3154278fbae3d2ce0
darcs-hash:22be14eeb34ca3e87842f4619af6277851033561
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Sat, 30 Mar 2019 18:59:19 -0700 |
parents | e1202af42d4d |
children | 7de8f0cd3392 |
comparison
equal
deleted
inserted
replaced
1224:e1202af42d4d | 1225:b8c0daabe5a5 |
---|---|
21 import docopt | 21 import docopt |
22 from influxdb import InfluxDBClient | 22 from influxdb import InfluxDBClient |
23 from pymongo import MongoClient as Connection, DESCENDING | 23 from pymongo import MongoClient as Connection, DESCENDING |
24 from rdflib import Namespace, Literal, URIRef, ConjunctiveGraph | 24 from rdflib import Namespace, Literal, URIRef, ConjunctiveGraph |
25 | 25 |
26 from scrape import Wifi | 26 from scrape import Wifi, macUri |
27 | 27 |
28 from patchablegraph import PatchableGraph, CycloneGraphEventsHandler, CycloneGraphHandler | 28 from patchablegraph import PatchableGraph, CycloneGraphEventsHandler, CycloneGraphHandler |
29 | 29 |
30 from cycloneerr import PrettyErrorHandler | 30 from cycloneerr import PrettyErrorHandler |
31 from logsetup import log | 31 from logsetup import log |
32 | 32 |
33 | 33 |
34 AST = Namespace("http://bigasterisk.com/") | |
34 DEV = Namespace("http://projects.bigasterisk.com/device/") | 35 DEV = Namespace("http://projects.bigasterisk.com/device/") |
35 ROOM = Namespace("http://projects.bigasterisk.com/room/") | 36 ROOM = Namespace("http://projects.bigasterisk.com/room/") |
36 reasoning = "http://bang:9071/" | 37 reasoning = "http://bang:9071/" |
37 | 38 |
38 class Index(PrettyErrorHandler, cyclone.web.RequestHandler): | 39 class Index(PrettyErrorHandler, cyclone.web.RequestHandler): |
229 raise ValueError("poll data is stale. age=%s" % age) | 230 raise ValueError("poll data is stale. age=%s" % age) |
230 | 231 |
231 for dev in self.lastAddrs: | 232 for dev in self.lastAddrs: |
232 if not dev.get('connected'): | 233 if not dev.get('connected'): |
233 continue | 234 continue |
234 uri = URIRef("http://bigasterisk.com/mac/%s" % dev['mac'].lower()) | 235 mac = dev['mac'].lower() |
235 g.add((uri, ROOM['macAddress'], Literal(dev['mac'].lower()), ctx)) | 236 uri = macUri(mac) |
237 g.add((uri, ROOM['macAddress'], Literal(mac), ctx)) | |
236 | 238 |
237 g.add((uri, ROOM['connected'], { | 239 g.add((uri, ROOM['connected'], { |
238 'wireless': URIRef("http://bigasterisk.com/wifiAccessPoints"), | 240 'wireless': AST['wifiAccessPoints'], |
239 '2.4G': URIRef("http://bigasterisk.com/wifiAccessPoints"), | 241 '2.4G': AST['wifiAccessPoints'], |
240 '5G': URIRef("http://bigasterisk.com/wifiAccessPoints"), | 242 '5G': AST['wifiAccessPoints'], |
241 '-': URIRef("http://bigasterisk.com/wifiUnknownConnectionType"), | 243 '-': AST['wifiUnknownConnectionType'], |
242 'Unknown': URIRef("http://bigasterisk.com/wifiUnknownConnectionType"), | 244 'Unknown': AST['wifiUnknownConnectionType'], |
243 'wired': URIRef("http://bigasterisk.com/houseOpenNet")}[dev['contype']], ctx)) | 245 'wired': AST['houseOpenNet']}[dev['contype']], ctx)) |
244 if 'clientHostname' in dev and dev['clientHostname']: | 246 if 'clientHostname' in dev and dev['clientHostname']: |
245 g.add((uri, ROOM['wifiNetworkName'], Literal(dev['clientHostname']), ctx)) | 247 g.add((uri, ROOM['wifiNetworkName'], Literal(dev['clientHostname']), ctx)) |
246 if 'name' in dev and dev['name']: | 248 if 'name' in dev and dev['name']: |
247 g.add((uri, ROOM['deviceName'], Literal(dev['name']), ctx)) | 249 g.add((uri, ROOM['deviceName'], Literal(dev['name']), ctx)) |
248 if 'signal' in dev: | 250 if 'signal' in dev: |
283 masterGraph = PatchableGraph() | 285 masterGraph = PatchableGraph() |
284 wifi = Wifi() | 286 wifi = Wifi() |
285 poller = Poller(wifi, mongo) | 287 poller = Poller(wifi, mongo) |
286 task.LoopingCall(poller.poll).start(1/float(args['--poll'])) | 288 task.LoopingCall(poller.poll).start(1/float(args['--poll'])) |
287 | 289 |
288 reactor.listenTCP(int(args['--port']), | 290 reactor.listenTCP( |
289 cyclone.web.Application( | 291 int(args['--port']), |
290 [ | 292 cyclone.web.Application( |
291 (r"/", Index), | 293 [ |
292 (r'/json', Json), | 294 (r"/", Index), |
293 (r'/graph', CycloneGraphHandler, {'masterGraph': masterGraph}), | 295 (r'/json', Json), |
294 (r'/graph/events', CycloneGraphEventsHandler, {'masterGraph': masterGraph}), | 296 (r'/graph', CycloneGraphHandler, {'masterGraph': masterGraph}), |
295 (r'/table', Table), | 297 (r'/graph/events', CycloneGraphEventsHandler, {'masterGraph': masterGraph}), |
296 #(r'/activity', Activity), | 298 (r'/table', Table), |
297 ], | 299 #(r'/activity', Activity), |
298 wifi=wifi, | 300 ], |
299 poller=poller, | 301 wifi=wifi, |
300 mongo=mongo)) | 302 poller=poller, |
303 mongo=mongo)) | |
301 import twisted; print('twisted', twisted.__version__) | 304 import twisted; print('twisted', twisted.__version__) |
302 reactor.run() | 305 reactor.run() |