예제 #1
0
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)
예제 #2
0
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()
예제 #4
0
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)
예제 #5
0
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(
예제 #6
0
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
예제 #7
0
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()
예제 #8
0
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"]
예제 #9
0
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")
#