-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIoT-data-visualization.py
46 lines (35 loc) · 1.51 KB
/
IoT-data-visualization.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import urllib
from openmtc_app.onem2m import XAE
import uuid
class DataVisualization(XAE):
remove_registration = True
remote_cse = '/mn-cse-1/onem2m'
period = 10
def _on_register(self):
# init variables
self.sensor_register = {}
self.sensor_register = []
self.sensor_values = []
self.name = uuid.uuid1()
self.things_name = urllib.urlopen("https://dweet.io/follow/%s" % self.name)
print "Thing name :", self.name
print "link for the current data type and values :", self.things_name.geturl()
# start endless loop
self.periodic_discover(self.remote_cse,
{'labels': ["openmtc:sensor_data"]},
self.period, self.handle_discovery_sensor)
def handle_discovery_sensor(self, discovery):
for uri in discovery:
self.add_container_subscription(uri, self.handle_sensor_data)
def handle_sensor_data(self, container, content):
data ={}
self.sensor_register.append(content[0]['n'])
self.sensor_values.append(content[0]['v'])
for i, k in zip(self.sensor_register , self.sensor_values):
data.update({i: k})
params = urllib.urlencode(data)
urllib.urlopen("https://dweet.io/dweet/for/%s?%s" % (self.name, params))
if __name__ == "__main__":
from openmtc_app.flask_runner import SimpleFlaskRunner as Runner
ep = "http://localhost:8000"
Runner(DataVisualization(), port=6050, host='auto').run(ep)