Mandar stream a plataforma IoT Carriots mediante Python

Written by

Nota: Ahora Carriots se llama: Altair Smartworks (mas info en https://www.altairsmartworks.com)

Últimamente el termino IoT esta en boca de todos, parece ser que en este año y los venideros veremos por fin el establecimiento real del concepto “Todo conectado”. Internet Of Things es un paso mas allá en el mundo de las comunicaciones, es el siguiente paso.

Existen varias plataformas sobre las que construir este avance, una de ellas es Carriots. Para seguir este mini-tutorial es necesario tener un cuenta en la plataforma: http://carriots.com/joinus

Bueno pues vamos al trapo, os presento aquí un pequeño script en python capaz de mandar un stream de datos a la plataforma Carriots.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import time, datetime
import json

class Client (object):
    api_url = 'http://api.carriots.com/streams'

    def __init__ (self, api_key = None, client_type = "json"):
            self.client_type = client_type
            self.api_key = api_key
            self.content_type = 'application/vnd.carriots.api.v2+%s' % (self.client_type)
            self.headers = {"User-Agent": "Python-Client-Carriots",
                            "Content-Type": self.content_type,
                            "Accept": self.content_type,
                            "Carriots.apikey": self.api_key}

    def send (self, data):
            self.data = json.dumps(data)
            request = urllib2.Request(Client.api_url, self.data, self.headers)
            self.response = urllib2.urlopen(request)
            return self.response

def main():
    client_carriots = Client ('TU APIKEY')
    data = {'protocol': 'v2',
            'device': 'TU DEVICE',
            'at': int(time.mktime(datetime.datetime.utcnow().timetuple())),
            'data': {'TUDATO':'VALOR DATO'}
            }
    carriots_response = client_carriots.send(data)
    return 0

if __name__ == "__main__":
    main()

Simplemente deberías cambiar los datos con los tuyos de tu cuenta de Carriots y a jugar!

Si necesitas mas información sobre Carriots: http://carriots.com/documentation