Para quien no lo conozca, Pachube es una web donde poder transmitir la información que generan nuestros dispositivos (lo que se conoce como Internet de las cosas). Todos alguna vez hemos creado/tenido un dispositivo que genera información que nos gustaría consultar: Un sensor de temperatura o de humedad, un contador de entradas a un recinto, cuantas veces se ha ejecutado un comando, etc. Cualquier cosa que queramos saber y se pueda medir es susceptible de usarse con Pachube. Eso si, nuestro dispositivo debe tener una conexión a Internet para poder subir los datos (Wifi, ethernet, GPRS u estar conectado a otro dispositivo que lo tenga como un PC). La ventaja es que mediante nuestro ordenador/móvil/tablet podremos consultar los datos que nuestro dispositivo envía en la web de Pachube de una forma gráfica. El servicio es gratuito, podemos hacer que nuestros feeds sean públicos o privados, podemos consultar el historial de datos y enviar alarmas y notificaciones a nuestros dispositivos. Tiene limitaciones como que no se puede hacer más de 100 peticiones por minuto, pero en la mayoría de los casos nos da de sobra.
Voy a explicar de una forma sencilla cómo enviar los datos, aunque si queréis profundizar tendréis que leer la documentación. Lo primero que hay que hacer es registrarse en su web. Es un proceso sencillo y rápido.
Lo segundo es crear una key en el menú My keys. Esta sirve para poder autentificarnos en las acciones que enviamos a Pachube. Además se les asignan permisos para que pueda ser usando en cualquier feed, en todos nuestros feeds (públicos o privados) o en unos determinados feed de nuestra elección. Además se les asigna los permisos de lectura de feeds, creación de feeds, actualización de feeds o borrado de feeds. Igualmente tiene restricciones avanzadas como caducidad de la key, sólo dejar a una IP o acceder desde una URL concreta para ejecutar el comando. La guardamos y ya nos aparecerá en el menú de My keys.
El siguiente paso es crear un feed en el menú Create a feed. Un feed no es nada más que un servicio donde se almacenarán los datos que envíe nuestro dispositivo y que puede ser consultado a posteriori. Puede ser creado directamente desde las web de Pachube o desde la API de Pachube. Para crearlo debemos rellenar datos sobre su nombre, la ubicación de nuestro dispositivo, si es privado (sólo lo podemos consultar nosotros) o público (cualquier puede consultarlo), etc. Finalmente tenemos que añadir tantos datastreams como distintos datos envía nuestro dispositivo: Si por ejemplo es un sensor de temperatura y de humedad tendremos que dar de alta dos datastreams. Los datastreams necesitan un identificador único en ese feed, un tag (nombre) que lo identifique, un nombre de la unidad en que se va a medir y el símbolo que se usa para esa unidad de medida. Lo guardamos y ya nos aparece en el menú de My feeds.
Ahora si accedemos al menu de My feeds podemos ver nuestro feed y si pulsamos sobre el podemos observar entre otras cosas qué número único le ha asignado Pachube en el campo Website.
Para meterle datos simplemente tenemos que rellenar los datapoints, que son los datos de nuestro sensor. Podemos hacerlo manualmente desde la misma página del feed, pero no tiene sentido ya que se supone que será nuestro dispositivo (u otro intermediario) conectado a internet el que los proporcione. Este debe tener la opción de comunicarse mediante peticiones HTTP a la web de Pachube. Yo lo voy a enseñar desde el nivel más bajo, pero si el dispositivo intermedio es un PC podéis usar curl mediante scipts o las librerías que vuestro dispositivo tenga para usar TCP/IP y HTTP. Voy a poner un ejemplo de una petición PUT para actualizar un feed que contiene como datastream el uso de una supuesta CPU de un servidor ubicado en la isla Perejil. Me conecto al puerto 80 del host api.pachube.com y le envío esto:
|
PUT /v2/feeds/48063.csv HTTP/1.0 Host:api.pachube.com Content-Length:6 X-PachubeApiKey:nL8l2h_XRp62DSXwV48jhFtjXtWSAKxZUmJUZlExNmpXOD0g cpu,90 |
Después de lanzar esa petición, si todo ha ido bien, recibiremos esta respuesta del servidor de Pachube:
|
HTTP/1.1 200 OK Date: Tue, 13 Mar 2012 16:22:37 GMT Content-Type: text/plain; charset=utf-8 Connection: close X-Pachube-Logging-Key: logging.AzQG9Tniho13k7PtFTBo X-PachubeRequestId: a498efd825d85bbeaab4be98ba3fa014874ca175 Cache-Control: max-age=0 Content-Length: 1 Age: 0 Vary: Accept-Encoding |
Que indica con el código 200 que todo ha ido bien y que se ha guardado el datapoint en nuestro datastream. En nuestra petición le hemos indicado la URL de nuestro feed con la extensión csv para indicar que los datos que queremos subir están en ese formato, pero también podemos subirlos en XML o JSON (ver aquí una guía rápida). También hemos de enviar la key que tiene permisos para escribir en nuestro feed. Finalmente enviamos los datapoints en formato <datastream>,<valor> (uno por línea).
Así si nos vamos a la URL de nuestro feed (en este caso https://pachube.com/feeds/48063) podremos ver toda la información del feed: nombre, localización, lectura de los datos en formato JSON, XML y CSV y finalmente un gráfico que podemos configurar a nuestro gusto para ver cómo han ido evolucionando los valores.