class RelayrSensorApp(App): def __init__(self, **kwargs): super(RelayrSensorApp, self).__init__(**kwargs) from kivy.storage.jsonstore import JsonStore self.relayr_config = JsonStore('relayr_credentials.json') self.relayr_configure() def mqtt_callback(self, topic, payload): self.root.update(topic, payload) def relayr_configure(self): from relayr import Client from relayr.dataconnection import MqttStream self.client = Client(token=self.relayr_config["token"]) self.devices = {self.client.get_device(id=device['id']): device['name'] for device in self.relayr_config["devices"]} self.mqtt_stream = MqttStream(self.mqtt_callback, self.devices.keys()) def on_start(self): self.mqtt_stream.start() def on_pause(self): self.mqtt_stream.stop() def on_resume(self): self.mqtt_stream.start() def on_stop(self): self.mqtt_stream.stop() def build(self): from widgets import MainWidget return MainWidget(self.devices)
class RelayrService: def __init__(self, token, deviceId): # device 'fe4bb3e0-400f-48fa-aac0-0c2713a92827' #token 'FvhcUVcNkTsHqg4qI1w3wVs-Gadryj8O' self.client = Client(token=token) self.device = self.client.get_device(id=deviceId) def startStream(self, callback): self.stream = MqttStream(callback, [self.device]) self.stream.start() def stopStream(self): self.stream.stop()
def main(): "Get some current sensor values from a prototype." # Use token from your relayr API keys page. # *** REPLACE WITH YOUR OWN! *** c = Client(token='kKSWtiYvfFoTHD1RY-d7Lif4tPRhUKgU') dev = c.get_device(id=creds['user']) def mqtt_callback(topic, payload): print json.loads(payload)['readings'] stream = MqttStream(mqtt_callback, [dev]) stream.start() time.sleep(10) stream.stop()
class RelayrSensorApp(App): def __init__(self, **kwargs): super(RelayrSensorApp, self).__init__(**kwargs) from kivy.storage.jsonstore import JsonStore self.relayr_config = JsonStore('relayr_credentials.json') self.relayr_configure() def mqtt_callback(self, topic, payload): self.root.update(topic, payload) def relayr_configure(self): from relayr import Client from relayr.dataconnection import MqttStream self.client = Client(token=self.relayr_config["token"]) self.devices = { self.client.get_device(id=device['id']): device['name'] for device in self.relayr_config["devices"] } self.mqtt_stream = MqttStream(self.mqtt_callback, self.devices.keys()) def on_start(self): self.mqtt_stream.start() def on_pause(self): self.mqtt_stream.stop() def on_resume(self): self.mqtt_stream.start() def on_stop(self): self.mqtt_stream.stop() def build(self): from widgets import MainWidget return MainWidget(self.devices)
from relayr import Client from relayr.dataconnection import MqttStream # read config filename with open('config.yml', 'r') as f: config = yaml.load(f) print(config) # how often to write to plot.ly in seconds UPDATE_INTERVALL = config["update_intervall"] # relayr auth and temperature sensor device c = Client(token=config["relayr"]["token"]) dev = c.get_device(id=config["relayr"]["deviceid"]) # plot.ly auth py.sign_in(config["plotly"]["user"], config["plotly"]["apikey"]) # one stream token per trace to be plotted # https://plot.ly/settings/api tls.set_credentials_file(stream_ids=config["plotly"]["stream_ids"]) stream_ids = tls.get_credentials_file()['stream_ids'] # plotly: Get first stream token from stream id list stream_id = stream_ids[0] # plotly: Make instance of stream id object stream = go.Stream(
import time from relayr import Client from relayr.dataconnection import MqttStream try: import json except ImportError: import simplejson as json with open('apikeys.txt', 'r') as keyFile: keyFile = open('apikeys.txt', 'r') CLIENT_TOKEN = keyFile.readline().rstrip() DEVICE_ID = keyFile.readline().rstrip() keyFile.closed c = Client(token=CLIENT_TOKEN) dev = c.get_device(id=DEVICE_ID) def mqtt_callback(topic, payload): print('%s %s' % (topic, payload)) stream = MqttStream(mqtt_callback, [dev]) stream.start() time.sleep(10) stream.stop() #example code where I scraped json to see how to do that # sound = twitter.statuses.user_timeline.tweets(screen_name="amandapalmer", since_id = int(readData), # exclude_replies = "true", include_rts = "false") # # #step through list of last tweets
import time from relayr import Client from relayr.dataconnection import MqttStream c = Client(token='<my_access_token>') dev = c.get_device(id='<my_device_id>') def mqtt_callback(topic, payload): print('%s %s' % (topic, payload)) stream = MqttStream(mqtt_callback, [dev]) stream.start() time.sleep(10) stream.stop()
import json import sqlite3 from relayr import Client from relayr.dataconnection import MqttStream conn = sqlite3.connect('relayr_sensorsdb.sqlite3') cur = conn.cursor() #cur.execute('DROP TABLE IF EXISTS sensors') cur.execute('CREATE TABLE IF NOT EXISTS sensors (x TEXT, door TEXT, hum TEXT, temp TEXT)') # works most of the time but sometimes this gives error messages... still needs some fixing while True: stuff = list() c = Client(token='<insert your relayr token here>') dev = c.get_device(id='<insert your relayr device id here>') def mqtt_callback(topic, payload): payvar = '%s' % (payload) stuff.append(payvar) stream = MqttStream(mqtt_callback, [dev]) stream.start() time.sleep(3) x = datetime.datetime.now() print x #there is an erro with the stuff[0] from time to time. I thought the line commented below helped but error still occures occasionally #if stuff[0] == None : break payvar = stuff[0] try: js = json.loads(payvar) except: js = None door = js["readings"][0]["value"] hum = js["readings"][1]["value"]
import time from relayr import Client from relayr.dataconnection import MqttStream try: import json except ImportError: import simplejson as json with open('apikeys.txt', 'r') as keyFile: keyFile = open('apikeys.txt', 'r') CLIENT_TOKEN = keyFile.readline().rstrip() DEVICE_ID = keyFile.readline().rstrip() keyFile.closed c = Client(token=CLIENT_TOKEN) dev = c.get_device(id=DEVICE_ID) def mqtt_callback(topic, payload): print('%s %s' % (topic, payload)) stream = MqttStream(mqtt_callback, [dev]) stream.start() time.sleep(10) stream.stop() #example code where I scraped json to see how to do that # sound = twitter.statuses.user_timeline.tweets(screen_name="amandapalmer", since_id = int(readData), # exclude_replies = "true", include_rts = "false") #