{"id":616,"date":"2010-10-27T00:48:04","date_gmt":"2010-10-26T23:48:04","guid":{"rendered":"http:\/\/www.zigbe.net\/?p=616"},"modified":"2010-10-27T00:48:04","modified_gmt":"2010-10-26T23:48:04","slug":"midiendo-la-energia-21-integrando-con-el-x4","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=616","title":{"rendered":"Midiendo la energ\u00eda: 21 Integrando con el X4"},"content":{"rendered":"<div class=\"mceTemp mceIEcenter\">\u00a0<\/div>\n<p>Si la semana pasada fu\u00e9 dura&#8230; esta lleva el mismo camino&#8230; es una pena porque estoy en un punto muy interesante.<\/p>\n<p>En el art\u00edculo anterior ten\u00edamos lista la parte de HW de la PDU, est\u00e1bamos enviando la informaci\u00f3n en modo texto a trav\u00e9s de la red Zigbee emulando un puerto serie y nos plante\u00e1bamos el modelo a seguir con la activaci\u00f3n (o mejor dicho la desactivaci\u00f3n) de los rel\u00e9s. A decir verdad en el tema de la desactivaci\u00f3n de los rel\u00e9s he cambiado de opini\u00f3n, despues de mucho sufrimiento para lograr entender como funcionan los drivers del X4 he visto que\u00a0parece bastante sencillo, enviando la \u00f3rden para que sea controlada a trav\u00e9s del micro podemos a\u00f1adir una \u00abfeature\u00bb a la PDU, podemos configurarla para que desconecte el rel\u00e9 en el momento en el que la tensi\u00f3n (o la corriente podemos hacerlo configurable) pase por cero. Parece un a caracter\u00edstica tonta, pero ofrece un valor a\u00f1adido importante, si desconectamos en ese momento no hay picos de tensi\u00f3n y se reduce la posibilidad de poder estropear el equipo en el apagado. Esta no es una posibilidad provocada por la PDU, existe incluso cuando se apaga a mano.<\/p>\n<div id=\"attachment_617\" style=\"width: 299px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/10\/Idigi.jpg\"><img aria-describedby=\"caption-attachment-617\" loading=\"lazy\" class=\"size-full wp-image-617\" title=\"Idigi\" src=\"http:\/\/blog.whatsbee.net\/wp-content\/uploads\/2010\/10\/Idigi.jpg\" alt=\"\" width=\"289\" height=\"175\" \/><\/a><p id=\"caption-attachment-617\" class=\"wp-caption-text\">I Digi D\u00eda<\/p><\/div>\n<p>En la parte del microprocesador de la PDU (recuerdo que estaba basado en un Atmel 328 con el botloader de Arduino por la simplicidad) enviaremos los datos utilizando la librer\u00eda Xbee-Arduino, que est\u00e1 disponible en Google Code de forma gratuita. El tipo de paquete que enviaremos es el Transmit Request, que se corresponde con el API frame 0x10 de Xbee. Podr\u00edamos haber enviado el paquete con el API frame 0x11 (que nos hubiera permitido elegir el cluster, el profile y el endpoint), pero no es necesario, trabajaremos con los de Digi, de momento no buscamos interoperabilidad con nada que no sea de este fabricante. Los datos los meteremos en el payload del paquete con el formato que queramos, intentando respetar el tama\u00f1o m\u00e1ximo del payload de 72 bytes. De momento para simplificar esta parte el payload que estoy enviando es la frase \u00abPrueba PDU\u00bb. De momento tambi\u00e9n estoy enviando un paquete cada 5 segundos y comprobando unicamente que le llega al acknoledge del coordinador conforme lo ha recibido. Las pruebas de comunicaci\u00f3n las estoy haciendo con un Arduino Duemilanove, una Xbee Shield u un m\u00f3dulo Xbee.\u00a0 Como la UART del Arduino la tengo ocupada con el Xbee he instalado la librer\u00eda newsoftserial que permite emular otra UART por SW para mandar mensajes de debug a un terminal. No he hecho demasiados cambios sobre el ejemplo de la librer\u00eda Xbee.<\/p>\n<p>Cuando pones en marcha eso te quedas con la incertidumbre absoluta, en teor\u00edas manda paquetes por la red (que no ves) en el coordinador tampoco ves nada, pero reciber un paquete de ACK (que tampoco ves). Pruebo con el sniffer y veo los paquetes de ida y de vuelta.<\/p>\n<p>Entender la parte de X4 no es f\u00e1cil, por lo menos para mi. El X4 es un gateway, una plataforma de HW que incorpora un FW y toda una serie de pantallas de configuraci\u00f3n. El FW del X4 es capaz de correr un int\u00e9rprete de <a href=\"http:\/\/www.python.org\/\" target=\"_blank\">Pyhton<\/a>, Python es un lenguaje de programaci\u00f3n que corre en la mayor\u00eda de las plataformas, que est\u00e1 bastante estructurado visualmente y que, para el que lo conozca, debe de ser muy productivo.\u00a0 Recientemente la gente de Digi ha sacado un IDE basado en Eclipse que a decir verdad facilita bastante las cosas, hasta ese momento se creaba un fichero de configuraci\u00f3n, se comprim\u00eda el c\u00f3digo y las librer\u00edas en un .zip, se hac\u00eda un upload al gateway y se arrancaba mediante una ventana de terminal, ahora la cosa ha mejorado un poco, es un poco m\u00e1s visual, pero ha empeorado para mi porque tampoco conoc\u00eda el Eclipse, es una cuesti\u00f3n de pr\u00e1ctica.<\/p>\n<p>He modificado un driver existente, que utilizaba el mismo formato de paquete (0x10). He entendido como procesa los paquetes el driver, como se definen sus propiedades, etc. El siguiente paso ser\u00e1 definir el formato del payload, parsearlo con el Python y asignar valores a las propiedades. La verdad es que ayer llegu\u00e9 a pensar que era imposible que llegara a hacer algo, hoy soy mucho m\u00e1s optimista.<\/p>\n<p>Nos quedan cuatro \u00abcosillas\u00bb y tendremos:<\/p>\n<ul>\n<li>Un PDU gestionable claramente mejorable (pero eso es f\u00e1cil)<\/li>\n<li>Una forma de comunicar est\u00e1ndar dentro de su entorno, supongo que tambi\u00e9n mejorable.<\/li>\n<li>Un conocimiento de como tratar las comunicaciones hacie y desde el X4, lo cual nos permitir\u00e1 acelerar los siguientes desarollos.<\/li>\n<\/ul>\n<p>Nos faltar\u00e1:<\/p>\n<ul>\n<li>Ser capaces de sacar toda la informaci\u00f3n que somos capaces de meter en el X4 y representarla, ya lo sabemos hacer con Pachube y hay ejemplos para graficar con los APIS de Google, pero esto est\u00e1 \u00abchupao\u00bb..<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 Si la semana pasada fu\u00e9 dura&#8230; esta lleva el mismo camino&#8230; es una pena porque estoy en un punto muy interesante. En el art\u00edculo anterior ten\u00edamos lista la parte de HW de la PDU, est\u00e1bamos enviando la informaci\u00f3n en&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=616\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[16,17,2,7,9,10],"tags":[28,35,37,56,76,102,109,110,111,173,175,197],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/616"}],"collection":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=616"}],"version-history":[{"count":0,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/616\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}