comparison service/wifi/wifi.py @ 422:19460b3f7baf

factor out some URI generation Ignore-this: 3c982a1fdbadcc3154278fbae3d2ce0
author drewp@bigasterisk.com
date Sat, 30 Mar 2019 18:59:19 -0700
parents 47d7dd31bb2c
children e0703c7824e9
comparison
equal deleted inserted replaced
421:47d7dd31bb2c 422:19460b3f7baf
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()