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()