Beispiel #1
0
 def push(self, database, series, value):
     """
     Pushes a single value with current timestamp to the given database/series
     """
     db = self._databases[database]
     client = Client(db['api_key'], db['api_secret'])
     data = [DataPoint(datetime.now(), float(value))]
     client.write_key(series, data)
Beispiel #2
0
 def push(self, database, series, value):
     """
     Pushes a single value with current timestamp to the given database/series
     """
     try:
         db = self._databases[database]
         client = Client(db['api_key'], db['api_secret'])
         data = [DataPoint(datetime.now(), float(value))]
         client.write_key(series, data)
         self.last_response = 'OK'
         return True
     except Exception as e:
         self.last_response = e
         return False
Beispiel #3
0
 def push(self, database, series, value):
     """
     Pushes a single value with current timestamp to the given database/series
     """
     try:
         db =  self._databases[database]
         client = Client(db['api_key'], db['api_secret'])
         data = [DataPoint(datetime.now(), float(value))]
         client.write_key(series, data)
         self.last_response = 'OK'
         return True
     except Exception as e:
         self.last_response = e
         return False
Beispiel #4
0
class TempoDBOutput(Output):
    def __init__(self, **tempo_kwargs):
        self.client = Client(**tempo_kwargs)

    def __repr__(self):
        return '<%s>' % self.__class__.__name__

    def send(self, key, value):
        if isinstance(value, bool):
            value = 1 if value else 0

        self.client.write_key(
            key,
            [DataPoint(datetime.now(), value)]
        )
Beispiel #5
0
def import_samples():
	sin = [math.sin(math.radians(d)) for d in range(0,3600)]
	cos = [math.cos(math.radians(d)) for d in range(0,3600)]

	sin_data = []
	cos_data = []
	start_time = datetime.datetime(2013,07,26)
	for i in range(len(sin)):
		current_time =  start_time + datetime.timedelta(minutes=i)
		sin_data.append(DataPoint(current_time, sin[i]))
		cos_data.append(DataPoint(current_time, cos[i]))

	client = Client(API_KEY, API_SECRET)
	client.write_key('type:trig.function:sin.1',sin_data)
	client.write_key('type:trig.function:cos.1', cos_data)
Beispiel #6
0
    temp = 1 / (1/THERMISTOR_REF_TEMP + math.log(resistance / THERMISTOR_REF_RESISTANCE) / THERMISTOR_B_VALUE)
    print "Temperature is: %f K, (%f degC)" % (temp, temp-273.15)
    return temp-273.15

ser = serial.Serial('/dev/tty.usbserial-A800etDk', 9600)
temperature_array = []
while 1:
    r = ser.readline()
    split = r.split(",")
    if(len(split) == 3):
        # Deal with the temperature pin first
        value = split[0].strip()
        temp = calculate_temp(value)
        temperature_array.append(temp)
        if(len(temperature_array) >= 20):
            mean = sum(temperature_array) / float(len(temperature_array)) 
            print "Saving off this minute's mean: %f" % mean
            client.write_key('temperature', [DataPoint(datetime.datetime.utcnow(), mean)])
            temperature_array = []

        # And now the LDR resistance
        value = split[1].strip()
        voltage = float(value) / 1024 * 5
        resistance = POTENTIAL_DIVIDER_RESISTOR / (5 / voltage - 1)
        print "LDR resistance is: %f Ohms" % resistance

        # And finally, the humidity
        value = split[2].strip()
        print "Humidity reading is: %d" % float(value)

Beispiel #7
0
class ClientTest(TestCase):

    def setUp(self):
        self.client = Client('key', 'secret', 'example.com', 443, True)
        self.client.session = mock.Mock()
        self.headers = {
            'User-Agent': 'tempodb-python/%s' % tempodb.get_version(),
            'Accept-Encoding': 'gzip',
        }
        self.get_headers = self.headers
        self.delete_headers = self.headers
        self.put_headers = dict({
            'Content-Type': 'application/json',
        }, **self.headers)
        self.post_headers = self.put_headers

    def test_init(self):
        client = Client('key', 'secret', 'example.com', 80, False)
        self.assertEqual(client.key, 'key')
        self.assertEqual(client.secret, 'secret')
        self.assertEqual(client.host, 'example.com')
        self.assertEqual(client.port, 80)
        self.assertEqual(client.secure, False)

    def test_defaults(self):
        client = Client('key', 'secret')
        self.assertEqual(client.host, 'api.tempo-db.com')
        self.assertEqual(client.port, 443)
        self.assertEqual(client.secure, True)

    def test_port_defaults(self):
        """ 80 is the default port for HTTP, 443 is the default for HTTPS """
        client = Client('key', 'secret', 'example.com', 80, False)
        self.assertEqual(client.build_full_url('/etc'), 'http://example.com/v1/etc')
        client = Client('key', 'secret', 'example.com', 88, False)
        self.assertEqual(client.build_full_url('/etc'), 'http://example.com:88/v1/etc')
        client = Client('key', 'secret', 'example.com', 443, False)
        self.assertEqual(client.build_full_url('/etc'), 'http://example.com:443/v1/etc')
        client = Client('key', 'secret', 'example.com', 443, True)
        self.assertEqual(client.build_full_url('/etc'), 'https://example.com/v1/etc')
        client = Client('key', 'secret', 'example.com', 88, True)
        self.assertEqual(client.build_full_url('/etc'), 'https://example.com:88/v1/etc')
        client = Client('key', 'secret', 'example.com', 80, True)
        self.assertEqual(client.build_full_url('/etc'), 'https://example.com:80/v1/etc')

    def test_get_series(self):
        self.client.session.get.return_value = MockResponse(200, """[{
            "id": "id",
            "key": "key",
            "name": "name",
            "tags": ["tag1", "tag2"],
            "attributes": {"key1": "value1"}
        }]""")

        series = self.client.get_series()
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        expected = [Series('id', 'key', 'name', {'key1': 'value1'}, ['tag1', 'tag2'])]
        self.assertEqual(series, expected)

    def test_create_series(self):
        self.client.session.post.return_value = MockResponse(200, """{
            "id": "id",
            "key": "my-key.tag1.1",
            "name": "",
            "tags": ["my-key", "tag1"],
            "attributes": {}
        }""")
        series = self.client.create_series("my-key.tag1.1")

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/',
            data="""{"key": "my-key.tag1.1"}""",
            auth=('key', 'secret'),
            headers=self.post_headers
        )
        expected = Series('id', 'my-key.tag1.1', '', {}, ['my-key', 'tag1'])
        self.assertEqual(series, expected)

    def test_create_series_validity_error(self):
        with self.assertRaises(ValueError):
            series = self.client.create_series('key.b%^.test')

    def test_update_series(self):
        update = Series('id', 'key', 'name', {'key1': 'value1'}, ['tag1'])
        self.client.session.put.return_value = MockResponse(200, simplejson.dumps(update.to_json()))

        updated = self.client.update_series(update)

        self.client.session.put.assert_called_once_with(
            'https://example.com/v1/series/id/id/',
            auth=('key', 'secret'),
            data=simplejson.dumps(update.to_json()),
            headers=self.put_headers
        )
        self.assertEqual(update, updated)

    def test_read_id(self):
        self.client.session.get.return_value = MockResponse(200, """{
            "series": {
                "id": "id",
                "key": "key",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000",
            "end": "2012-03-28T00:00:00.000",
            "data": [{"t": "2012-03-27T00:00:00.000", "v": 12.34}],
            "summary": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_id('id', start, end)

        expected = DataSet(Series('id', 'key'), start, end, [DataPoint(start, 12.34)], Summary())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/id/id/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(dataset, expected)

    def test_read_key(self):
        self.client.session.get.return_value = MockResponse(200, """{
            "series": {
                "id": "id",
                "key": "key1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000",
            "end": "2012-03-28T00:00:00.000",
            "data": [{"t": "2012-03-27T00:00:00.000", "v": 12.34}],
            "summary": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_key('key1', start, end)

        expected = DataSet(Series('id', 'key1'), start, end, [DataPoint(start, 12.34)], Summary())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(dataset, expected)

    def test_read_key_escape(self):
        self.client.session.get.return_value = MockResponse(200, """{
            "series": {
                "id": "id",
                "key": "ke:y/1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000",
            "end": "2012-03-28T00:00:00.000",
            "data": [{"t": "2012-03-27T00:00:00.000", "v": 12.34}],
            "summary": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_key('ke:y/1', start, end)

        expected = DataSet(Series('id', 'ke:y/1'), start, end, [DataPoint(start, 12.34)], Summary())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(dataset, expected)

    def test_read(self):
        self.client.session.get.return_value = MockResponse(200, """[{
            "series": {
                "id": "id",
                "key": "key1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000",
            "end": "2012-03-28T00:00:00.000",
            "data": [{"t": "2012-03-27T00:00:00.000", "v": 12.34}],
            "summary": {}
        }]""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        datasets = self.client.read(start, end, keys=['key1'])

        expected = [DataSet(Series('id', 'key1'), start, end, [DataPoint(start, 12.34)], Summary())]
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00&key=key1',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(datasets, expected)

    def test_delete_id(self):
        self.client.session.delete.return_value = MockResponse(200, "")
        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        result = self.client.delete_id("id1", start, end)

        self.client.session.delete.assert_called_once_with(
            'https://example.com/v1/series/id/id1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.delete_headers
        )
        self.assertEquals(result, '')

    def test_delete_key(self):
        self.client.session.delete.return_value = MockResponse(200, "")
        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        result = self.client.delete_key("key1", start, end)

        self.client.session.delete.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.delete_headers
        )
        self.assertEquals(result, '')

    def test_delete_key_escape(self):
        self.client.session.delete.return_value = MockResponse(200, "")
        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        result = self.client.delete_key("ke:y/1", start, end)

        self.client.session.delete.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.delete_headers
        )
        self.assertEquals(result, '')

    def test_write_id(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_id("id1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/id/id1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_write_key(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_key("key1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_write_key_escape(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_key("ke:y/1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_increment_id(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_id("id1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/id/id1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_increment_key(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_key("key1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/key1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_increment_key_escape(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_key("ke:y/1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_write_bulk(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [
            { 'id': '01868c1a2aaf416ea6cd8edd65e7a4b8', 'v': 4.164 },
            { 'id': '38268c3b231f1266a392931e15e99231', 'v': 73.13 },
            { 'key': 'your-custom-key', 'v': 55.423 },
            { 'key': 'foo', 'v': 324.991 },
        ]
        ts = datetime.datetime(2012, 3, 27)
        result = self.client.write_bulk(ts, data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/data/',
            auth=('key', 'secret'),
            data="""{"data": %s, "t": "2012-03-27T00:00:00"}""" % simplejson.dumps(data),
            headers=self.post_headers
        )
        self.assertEqual(result, '')

    def test_increment_bulk(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [
            { 'id': '01868c1a2aaf416ea6cd8edd65e7a4b8', 'v': 4 },
            { 'id': '38268c3b231f1266a392931e15e99231', 'v': 2 },
            { 'key': 'your-custom-key', 'v': 1 },
            { 'key': 'foo', 'v': 1 },
        ]
        ts = datetime.datetime(2012, 3, 27)
        result = self.client.increment_bulk(ts, data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/increment/',
            auth=('key', 'secret'),
            data="""{"data": %s, "t": "2012-03-27T00:00:00"}""" % simplejson.dumps(data),
            headers=self.post_headers
        )
        self.assertEqual(result, '')
"""
http://tempo-db.com/api/write-series/#write-series-by-key
"""

import datetime
import random
from tempodb import Client, DataPoint

client = Client('your-api-key', 'your-api-secret')

date = datetime.datetime(2012, 1, 1)

for day in range(1, 10):
    # print out the current day we are sending data for
    print date

    data = []
    # 1440 minutes in one day
    for min in range (1, 1441):
        data.append(DataPoint(date, random.random() * 50.0))
        date = date + datetime.timedelta(minutes=1)

    client.write_key('your-custom-key', data)
Beispiel #9
0
from datetime import datetime
from time import sleep
import random
from tempodb import Client, DataPoint
import tempodb
from os import getenv

API_KEY = getenv('API_KEY')
assert API_KEY, "API_KEY is required"

API_SECRET = getenv('API_SECRET')
assert API_SECRET, "API_SECRET is required"

SERIES_KEY = getenv('SERIES_KEY', 'prng')
API_HOST = getenv('API_HOST', tempodb.client.API_HOST)
API_PORT = int(getenv('API_PORT', tempodb.client.API_PORT))
API_SECURE = bool(getenv('API_SECURE', True))

client = Client(API_KEY, API_SECRET, API_HOST, API_PORT, API_SECURE)

while True:
    client.write_key(SERIES_KEY, [DataPoint(datetime.now(), random.random() * 50.0)])
    sleep(1)
        date = datetime.datetime.now()
# 1: Pressure
# correct pressure for height above sea level
# see http://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel#Reduktion_auf_Meeresh.C3.B6he
# baro[0] is the current temperature of the sensor
# baro[1] is the absolute atmospheric pressure
# p0 is the corrected atmospheric pressure adjusted to HEIGHT
        temperature = baro[0]
        temperature = 6
        efactor=5.6402 * (-0.0916 + math.exp(0.06 * temperature))
        xfactor = (9.80665 / (287.05 * ((273.15 + temperature) + .12 * efactor + 0.0065 * (HEIGHT/2)))) * HEIGHT
        p0 = baro[1] * math.exp(xfactor)
# upload to tempoDB
        data = []
        data.append(DataPoint(date, p0))
        tmp=tempodbclient.write_key(SERIES_KEY1, data)

# 2. Temperature
        data = []
        data.append(DataPoint(date, temperature))
        tmp=tempodbclient.write_key(SERIES_KEY2, data)
        print tmp
        sys.stdout.flush()

# wait 5minutes
        time.sleep(300.0)
   
    tag.disconnect()
    del tag
Beispiel #11
0
"""
http://tempo-db.com/api/write-series/#write-series-by-key
"""

import datetime
import random
from tempodb import Client, DataPoint

# Modify these with your credentials found at: http://tempo-db.com/manage/
API_KEY = 'a68ffbe8f6fe4fb3bbda2782002680f0'
API_SECRET = '3fe37f49b1bb4ae481dec13932c9bb92'
SERIES_KEY = 'paul-python-1'

client = Client(API_KEY, API_SECRET)

date = datetime.datetime(2012, 1, 1)

for day in range(1, 10):
    # print out the current day we are sending data for
    print date

    data = []
    # 1440 minutes in one day
    for min in range(1, 1441):
        data.append(DataPoint(date, random.random() * 50.0))
        date = date + datetime.timedelta(minutes=1)

    client.write_key(SERIES_KEY, data)
Beispiel #12
0
class ClientTest(TestCase):

    def setUp(self):
        self.client = Client('key', 'secret', 'example.com', 443, True)
        self.client.session = mock.Mock()
        self.headers = {
            'User-Agent': 'tempodb-python/%s' % tempodb.get_version(),
            'Accept-Encoding': 'gzip',
        }
        self.get_headers = self.headers
        self.delete_headers = self.headers
        self.put_headers = dict({
            'Content-Type': 'application/json',
        }, **self.headers)
        self.post_headers = self.put_headers

    def test_init(self):
        client = Client('key', 'secret', 'example.com', 80, False)
        self.assertEqual(client.key, 'key')
        self.assertEqual(client.secret, 'secret')
        self.assertEqual(client.host, 'example.com')
        self.assertEqual(client.port, 80)
        self.assertEqual(client.secure, False)

    def test_defaults(self):
        client = Client('key', 'secret')
        self.assertEqual(client.host, 'api.tempo-db.com')
        self.assertEqual(client.port, 443)
        self.assertEqual(client.secure, True)

    def test_port_defaults(self):
        """ 80 is the default port for HTTP, 443 is the default for HTTPS """
        client = Client('key', 'secret', 'example.com', 80, False)
        self.assertEqual(client.build_full_url('/etc'),
                         'http://example.com/v1/etc')
        client = Client('key', 'secret', 'example.com', 88, False)
        self.assertEqual(client.build_full_url('/etc'),
                         'http://example.com:88/v1/etc')
        client = Client('key', 'secret', 'example.com', 443, False)
        self.assertEqual(client.build_full_url('/etc'),
                         'http://example.com:443/v1/etc')
        client = Client('key', 'secret', 'example.com', 443, True)
        self.assertEqual(client.build_full_url('/etc'),
                         'https://example.com/v1/etc')
        client = Client('key', 'secret', 'example.com', 88, True)
        self.assertEqual(client.build_full_url('/etc'),
                         'https://example.com:88/v1/etc')
        client = Client('key', 'secret', 'example.com', 80, True)
        self.assertEqual(client.build_full_url('/etc'),
                         'https://example.com:80/v1/etc')

    def test_get_series(self):
        self.client.session.get.return_value = MockResponse(200, """[{
            "id": "id",
            "key": "key",
            "name": "name",
            "tags": ["tag1", "tag2"],
            "attributes": {"key1": "value1"}
        }]""")

        series = self.client.get_series()
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        expected = [
            Series('id', 'key', 'name', {'key1': 'value1'}, ['tag1', 'tag2'])]
        self.assertEqual(series, expected)

    def test_delete_series(self):
        self.client.session.delete.return_value = MockResponse(
            200, """{"deleted":2}""")

        summary = self.client.delete_series(
            [], [], [], {'key': 'one', 'key2': 'two'})
        self.assertEqual(summary.deleted, 2)

    def test_create_series(self):
        self.client.session.post.return_value = MockResponse(200, """{
            "id": "id",
            "key": "my-key.tag1.1",
            "name": "",
            "tags": ["my-key", "tag1"],
            "attributes": {}
        }""")
        series = self.client.create_series("my-key.tag1.1")

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/',
            data="""{"key": "my-key.tag1.1"}""",
            auth=('key', 'secret'),
            headers=self.post_headers
        )
        expected = Series('id', 'my-key.tag1.1', '', {}, ['my-key', 'tag1'])
        self.assertEqual(series, expected)

    def test_create_series_validity_error(self):
        with self.assertRaises(ValueError):
            series = self.client.create_series('key.b%^.test')

    def test_update_series(self):
        update = Series('id', 'key', 'name', {'key1': 'value1'}, ['tag1'])
        self.client.session.put.return_value = MockResponse(
            200, simplejson.dumps(update.to_json()))

        updated = self.client.update_series(update)

        self.client.session.put.assert_called_once_with(
            'https://example.com/v1/series/id/id/',
            auth=('key', 'secret'),
            data=simplejson.dumps(update.to_json()),
            headers=self.put_headers
        )
        self.assertEqual(update, updated)

    def test_read_id(self):
        self.client.session.get.return_value = MockResponse(200, """{
            "series": {
                "id": "id",
                "key": "key",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000Z",
            "end": "2012-03-28T00:00:00.000Z",
            "data": [{"t": "2012-03-27T00:00:00.000Z", "v": 12.34}],
            "summary": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_id('id', start, end)

        expected = DataSet(Series('id', 'key'), start, end,
                           [DataPoint(start, 12.34)], Summary())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/id/id/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(dataset, expected)

    def test_read_key(self):
        self.client.session.get.return_value = MockResponse(200, """{
            "series": {
                "id": "id",
                "key": "key1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000Z",
            "end": "2012-03-28T00:00:00.000Z",
            "data": [{"t": "2012-03-27T00:00:00.000Z", "v": 12.34}],
            "summary": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_key('key1', start, end)

        expected = DataSet(Series('id', 'key1'), start, end,
                           [DataPoint(start, 12.34)], Summary())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(dataset, expected)

    def test_read_key_escape(self):
        self.client.session.get.return_value = MockResponse(200, """{
            "series": {
                "id": "id",
                "key": "ke:y/1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000Z",
            "end": "2012-03-28T00:00:00.000Z",
            "data": [{"t": "2012-03-27T00:00:00.000Z", "v": 12.34}],
            "summary": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_key('ke:y/1', start, end)

        expected = DataSet(Series('id', 'ke:y/1'), start,
                           end, [DataPoint(start, 12.34)], Summary())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(dataset, expected)

    def test_read(self):
        self.client.session.get.return_value = MockResponse(200, """[{
            "series": {
                "id": "id",
                "key": "key1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000Z",
            "end": "2012-03-28T00:00:00.000Z",
            "data": [{"t": "2012-03-27T00:00:00.000Z", "v": 12.34}],
            "summary": {}
        }]""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        datasets = self.client.read(start, end, keys=['key1'])

        expected = [
            DataSet(Series('id', 'key1'), start, end, [DataPoint(start, 12.34)], Summary())]
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00&key=key1',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(datasets, expected)

    def test_delete_id(self):
        self.client.session.delete.return_value = MockResponse(200, "")
        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        result = self.client.delete_id("id1", start, end)

        self.client.session.delete.assert_called_once_with(
            'https://example.com/v1/series/id/id1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.delete_headers
        )
        self.assertEquals(result, '')

    def test_delete_key(self):
        self.client.session.delete.return_value = MockResponse(200, "")
        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        result = self.client.delete_key("key1", start, end)

        self.client.session.delete.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.delete_headers
        )
        self.assertEquals(result, '')

    def test_delete_key_escape(self):
        self.client.session.delete.return_value = MockResponse(200, "")
        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        result = self.client.delete_key("ke:y/1", start, end)

        self.client.session.delete.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.delete_headers
        )
        self.assertEquals(result, '')

    def test_write_id(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_id("id1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/id/id1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_write_key(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_key("key1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_write_key_escape(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_key("ke:y/1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_increment_id(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_id("id1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/id/id1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_increment_key(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_key("key1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/key1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_increment_key_escape(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_key("ke:y/1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers
        )
        self.assertEquals(result, '')

    def test_write_bulk(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [
            {'id': '01868c1a2aaf416ea6cd8edd65e7a4b8', 'v': 4.164},
            {'id': '38268c3b231f1266a392931e15e99231', 'v': 73.13},
            {'key': 'your-custom-key', 'v': 55.423},
            {'key': 'foo', 'v': 324.991},
        ]
        ts = datetime.datetime(2012, 3, 27)
        result = self.client.write_bulk(ts, data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/data/',
            auth=('key', 'secret'),
            data="""{"data": %s, "t": "2012-03-27T00:00:00"}""" % simplejson.dumps(data),
            headers=self.post_headers
        )
        self.assertEqual(result, '')

    def test_increment_bulk(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [
            {'id': '01868c1a2aaf416ea6cd8edd65e7a4b8', 'v': 4},
            {'id': '38268c3b231f1266a392931e15e99231', 'v': 2},
            {'key': 'your-custom-key', 'v': 1},
            {'key': 'foo', 'v': 1},
        ]
        ts = datetime.datetime(2012, 3, 27)
        result = self.client.increment_bulk(ts, data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/increment/',
            auth=('key', 'secret'),
            data="""{"data": %s, "t": "2012-03-27T00:00:00"}""" % simplejson.dumps(data),
            headers=self.post_headers
        )
        self.assertEqual(result, '')

    def test_write_multi(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [
            {'t': datetime.datetime(2013, 8, 21), 'id':
             '01868c1a2aaf416ea6cd8edd65e7a4b8', 'v': 4.164},
            {'t': datetime.datetime(2013, 8, 22), 'id':
             '38268c3b231f1266a392931e15e99231', 'v': 73.13},
            {'t': datetime.datetime(2013, 8, 23), 'key':
             'your-custom-key', 'v': 55.423},
            {'t': datetime.datetime(2013, 8, 24), 'key': 'foo', 'v': 324.991},
        ]
        result = self.client.write_multi(data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/multi/',
            auth=('key', 'secret'),
            data=simplejson.dumps(data, default=tempodb.DATETIME_HANDLER),
            headers=self.post_headers
        )
        self.assertEqual(result, '')

    def test_write_multi_207(self):
        expected_response = """{
            "{'error': {"multistatus": [
                { "status": "422", "messages": [ "Must provide a series ID or key" ] },
                { "status": "200", "messages": [] },
                { "status": "422", "messages": [ "Must provide a numeric value", "Must provide a series ID or key" ] }
            ]}}"""
        self.client.session.post.return_value = MockResponse(
            207, expected_response)

        data = [
            {'t': datetime.datetime(2013, 8, 21), 'v': 4.164},
            {'t': datetime.datetime(2013, 8, 22), 'id':
             '38268c3b231f1266a392931e15e99231'},
            {}
        ]
        result = self.client.write_multi(data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/multi/',
            auth=('key', 'secret'),
            data=simplejson.dumps(data, default=tempodb.DATETIME_HANDLER),
            headers=self.post_headers
        )

        self.assertEqual(result["error"], expected_response)

    def test_write_multi(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [
            {'t': datetime.datetime(2013, 8, 21), 'id':
             '01868c1a2aaf416ea6cd8edd65e7a4b8', 'v': 4164},
            {'t': datetime.datetime(2013, 8, 22), 'id':
             '38268c3b231f1266a392931e15e99231', 'v': 7313},
            {'t': datetime.datetime(2013, 8, 23), 'key':
             'your-custom-key', 'v': 55423},
            {'t': datetime.datetime(2013, 8, 24), 'key': 'foo', 'v': 324991},
        ]
        result = self.client.write_multi(data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/multi/',
            auth=('key', 'secret'),
            data=simplejson.dumps(data, default=tempodb.DATETIME_HANDLER),
            headers=self.post_headers
        )
        self.assertEqual(result, '')
import datetime, time
from tempodb import Client, DataPoint
from Temperature import Temperature
from config import USER, PWD, API_KEY, API_SECRET

UPDATE_INTERVAL = 60 # seconds

tempoDB = Client(API_KEY, API_SECRET)
core = Temperature(USER, PWD, 'mutant_jetpack')
core.setInterval(UPDATE_INTERVAL)
core.setRGB(0)
print core

while core.isConnected():
    tempc = core.temperature() 
    date = datetime.datetime.utcnow()
    if tempc:
        tempoDB.write_key("TEMPERATURE", [DataPoint(date, tempc)])
        print "%s, %1.2f" % (datetime.datetime.now(), tempc)
        time.sleep(UPDATE_INTERVAL)
Beispiel #14
0
"""
http://tempo-db.com/api/write-series/#write-series-by-key
"""

from datetime import datetime, timedelta
import random
from tempodb import Client, DataPoint

client = Client('a93feb1d6a7e49919331b09eab299967', '67fd4ee803df456b845cdeb5e675d465')

# for id in range(1,33):
#     station='station_'+str(id)
#     series = client.create_series(station)

date = datetime(2012, 1, 1)

for day in range(1, 10):
    # print out the current day we are sending data for
    print date

    for id in range(1,33):
        data = []
        # 1440 minutes in one day
        for min in range (1, 1441):
            data.append(DataPoint(date, random.random() * 50.0))
            date = date + timedelta(minutes=1)

        station='station_'+str(id)
        client.write_key(station, data)
Beispiel #15
0
import math, datetime
from tempodb import Client, DataPoint

client = Client("a755539a9e124278b04f988d39bc5ef9", "43f97dc4dbbc46499bd6694a3455210c")
sin = [math.sin(math.radians(d)) for d in range(0,3600)]
cos = [math.cos(math.radians(d)) for d in range(0,3600)]
start = datetime.datetime(2013,01,01)
sin_data = []
cos_data = []

for i in range(len(sin)):
	sin_data.append(DataPoint(start + datetime.timedelta(minutes=i), sin[i]))
	cos_data.append(DataPoint(start + datetime.timedelta(minutes=i), cos[i]))

client.write_key('type:sin.1',sin_data)
client.write_key('type:cos.1', cos_data)

client.read_key('type:sin.1', start, datetime.datetime(2013,01,05))

attributes={
		"type": "sin"
}

client.read(start, datetime.datetime(2013,01,05), attributes= attributes)

"""
http://tempo-db.com/api/write-series/#write-series-by-key
"""

import datetime
import random
from tempodb import Client, DataPoint

client = Client('your-api-key', 'your-api-secret')

date = datetime.datetime(2012, 1, 1)

for day in range(1, 10):
    # print out the current day we are sending data for
    print date

    data = []
    # 1440 minutes in one day
    for min in range(1, 1441):
        data.append(DataPoint(date, random.random() * 50.0))
        date = date + datetime.timedelta(minutes=1)

    client.write_key('your-custom-key', data)
"""
http://tempo-db.com/api/write-series/#write-series-by-key
"""

import datetime
import random
from tempodb import Client, DataPoint

# Modify these with your credentials found at: http://tempo-db.com/manage/
API_KEY = '680d1adbbb0c42a398b5846c8e1517dd'
API_SECRET = 'f2db65d178634a36b4c25467f8bc2099'
SERIES_KEY = 'your-custom-key'

client = Client(API_KEY, API_SECRET)

date = datetime.datetime(2012, 1, 1)

for day in range(1, 10):
    # print out the current day we are sending data for
    print date

    data = []
    # 1440 minutes in one day
    for min in range (1, 1441):
        data.append(DataPoint(date, random.random() * 50.0))
        date = date + datetime.timedelta(minutes=1)

    client.write_key(SERIES_KEY, data)
Beispiel #18
0
		sys.exit()
	volstep = (int(vollimitup) - int(vollimitdown)) / 10
	print "[INIT]: ",AMIXER," limits from ",vollimitdown," to ",vollimitup,". Current volume is ",volvalue,". Volume Step is ",volstep
	i=0
	tempArray = []
	lightArray = []
	softArray = []
	client = Client(API_KEY, API_SECRET)
	while 1:
		sensors = ser.readline()
		#Temp: 26.66. Light: 125. softPot: 99
		sensorsRegEx = re.compile("Temp: ([0-9.]*). Light: (\d{0,3}). softPot: (\d{0,3})")
		sensorsLine = sensorsRegEx.search(sensors)
		if i == 1000:
			sys.stderr.write("Sending data to tempodb...\n")
			client.write_key("light", lightArray)
			client.write_key("soft", softArray)
			client.write_key("temp", tempArray)
			tempArray = []
			lightArray = []
			softArray = []
			i = 0
		i+=1
		if sensorsLine:
			temp  = sensorsLine.group(1)
			light = sensorsLine.group(2)
			slide = int(sensorsLine.group(3))
			curtime = datetime.datetime.now()
			tempArray.append(DataPoint(curtime,float(temp)))
			lightArray.append(DataPoint(curtime,float(light)))
			softArray.append(DataPoint(curtime,float(slide)))