sábado, 13 de septiembre de 2014

Servidor Nabaztag : Primeros conceptos y ordenes.

Bien, anteriormente montamos a nuestro nucleo y conectamos nuestro conejo .. pero no hace nada. Ahora empezaremos a "hacer" cosas.

Conceptos Base

Aunque me repetiré, lo considero importante.
Nabaztag simplemente consulta cada 30 segundos, al archivo //servidor/vl/p4.php , las consultas las realiza a través de un GET  (ante la duda ... el access.log de apache), vamos a analizar que transporta el GET.

Para orientarnos extraeré una registro del access.log y comentare los campos:



/vl/p4.php?sn=0013d3849772&v=65802&st=1&sd=0&tc=7fffffff&h=4

Bien ahora analizaremos la informacion ofrecida:

  • sn: es el numero de serie de nuestro conejo, es importante ya que es su identificador unico para futuras aplicaciones o acciones.
  • v : es la versión, recordaros que teníamos los V1 y los V2.
  • st : estado , siempre es 1 en los registros que e realizado.
  • sd : registra las acciones externas (orejas y botón) es el mas importante para registrar interacción externa, ya hablaremos con mas profundidad de el.
  • tc : yo lo denomino como estado de respuesta, ya modifica cuando esta en modo sueño , inicia sesión o activo. 
  • h : siempre es 4, no se que es ... XD.
adicionalmente tenemos un parámetro mas que solo apararece cuando lee una tarjeta RFID
  • rf : indica la MAC de la tarjeta RFID
Estos son los datos de transporta las llamadas del conejo y con ellos realizaremos las distintas interacciones.

Ordenes a Nabaztag

Sabemos que nos trae el conejo , ahora hablaremos de lo que "lee" ya que el equipo conecta a la url y esta "si existe acción" indica una respuesta. 

Vamos a indicar las que conozco y como actúan. 
  • BOTTOMCOLOR : determina el color de la base, una vez indicado no cambia hasta nueva orden o reinicio, el nombre de color tiene que ser en minúsculas.
    • ejemplo: BOTTOMCOLOR Red
  • LED1 / LED2 / LED3 / LED4 : inicia el led con el color determinado (por si solo no hace nada necesita un WAIT .. pero ya profundizaremos en ello.). Los nombres tienen que ir en MAYUSCULA.
    • ejemplo : LED1 RED WAIT 1000
  • EARSUP : sube las orejas del conejo. Se aplica tal cual.
  • EARSDOWN : baja las orejas del conejo. Se aplica tal cual.
  • LEFTTWITCH : mueve la oreja izquierda, tenemos que indicar cuanto la mueve.
    • ejemplo : LEFTTWITCH 5
  • RIGHTTWITCH : mueve la oreja derecha, tenemos que indicar cuanto la mueve.
    • ejemplo : RIGHTTWITCH 6
  • DOTAICHI : hace taichi. Se aplica tal cual.
  • WAIT : espera * mili-segundos a la siguiente acción.
    • ejemplo WAIT 1000
  • FINISH : Termina una sentencia este donde este (actúa como un break). Se aplica tal cual.
  • PLAY : reproduce un Mp3 del servidor (es muuuy sibarita con esto ya explicare por que).
    • ejemplo : PLAY ./media/broad/bienvendia.mp3
  • STREAM : repdoruce una radio-online ... pasa como con el PLAY.
    • ejemplo : STREAM http://url_radio_online/stream.mp3
Estas son lar ordenes que comprende el nabaztag y tienen que ir localizadas en p4.php limpias, etiquetas, notas, csv ... hace que no las ejecute.

Por ello si quieres probarlas , el primer ejercicio seria tan simple como :

<?php
echo 'BOTTOMCOLOR Red';
?> 


Con este código cambias la base a color rojo (tambien puedes probar Green, Blue, Yellow, White, Teal, Violet).

Así con un poco que sepas de php puedes empezar a dar vida a tu conejo, pero no os preocupéis, pronto colgare ejemplos de lo que hace el mio y lo simple que es. 

viernes, 12 de septiembre de 2014

Conectando Nabaztag a nuestro Servidor

Ayer hablamos de como crear el "nucleo" del servidor usando los archivos de nabaztaglives y la función de estos , hoy vamos a conectar al conejo a nuestro servidor.

Materiales necesarios.

ademas del conejo propiamente dicho, necesitamos un equipo con Wifi para crear entrar a una red Ad-Hoc y un router Wifi (en WAP o WEP pero no en WAP2).

Una vez listo los material , con el conejo apagado pulsamos el botón superior y lo conectamos a la red eléctrica (sin soltar el botón), las luces centrales quedaran azules indicando que la red Ad-hoc esta lista.

Bien ahora tenemos que buscar la red generada (NabaztagXX), una vez dentro con el DHCP activo nos dirigiremos a la Ip 192.168.0.1

Pantalla de presentación
1. Seleccionamos nuestra red , protocolo de encriptado y clave 
2. Una vez seleccionado al final incluimos la Ip del servidor (los Nombres no les gusta)
Con estos simples pasos tenemos el conejo listo para enlazar con el servidor , ahora hablemos de las luces e referencia según estos pasos.


  1. Creando la red Ad-hoc: se encontrara con los led de color azul.
  2. Configurado : los led serán naranjas y pasaran a verde hasta apagarse.

Cazando errores

Vamos a hablar de los errores que e detectado y como los e solventado (tengo 3 conejos) así explicaremos como hacer frente a los errores típicos.

  • Tras configurar el conejo ese se queda con todos los led naranja : Este error significa que no conecta a la red , comprueba la configuración y si esta bien en muchos foros te dirán que actualices... 
    • Truco: Tengo la mala costumbre de no actualizar las cosas a lo loco, primero busco otra posible solución, en este caso en concreto encontré que la configuración la carga por una petición GET y modificando esta petición es mas seguro que la configuración por menú. así que os dejo la petición con los datos prepararos para una red WAP/WAP2.
    • http://192.168.0.1/b.htm?w=-&k=nombre_de_la_red&m=2&n=clave_de_la_red=Update+and+Start&l=0&f=1&g=0.0.0.0&h=0.0.0.0&i=0.0.0.0&j=0.0.0.0&c=0&d=0.0.0.0&e=0&a=ip_servidor.
    • Pegando esta petición en el navegador, dentro de la red del conejo (modificando los parámetros) siempre me conecta, adicional mente os marco el m=2 que signfica que es WPA (m=1 WEP)
  • Tras configurar el conejo pasan los led a verde y parpadea : es simple conecta la red pero no al servidor, comprueba que la ruta vl esta en el raid y la ip configurada en este y en el local.jsp.
Y con esto el conejo se encontraría en vuestro server , próximamente acciones básicas. 

jueves, 11 de septiembre de 2014

Reviviendo a Nabaztag

Buenos días,

Llevo una temporada con  material que pasar al blog pero por falta de "tiempo & ganas" la verdad es que no e podido.

Pero aprovechando unos días libres quiero subir los "manuales" que estado preparando estos meses sobre los proyectos que e empezado , tanto como referencia personal o para cualquiera que se aventure por los mismos caminos.

Hace años ... pero años compre un Nabaztag que decía la hora, el tiempo y 4 cosas mas, no controlaba nada critico pero hacia compañía, como un reloj de pared, hasta que un día cerraron los servidores y paso a ser un gato de escayola.

Desde entonces esta impasible como un guardia de roca, de vez en cuando buscaba alternativas a los servidores oficiales, pero nada me convencía ... hasta hace unos meses que encontré nabaztaglives.

Ya sea por mi falta de conocimiento en Java (es mas bien escasa) o por el echo de que le no atinaba pie con bola nada me había convencido pero nabaztaglives esta en Php, algo que si entiendo y puedo moverme ... pero antes de seguir aclaremos puntos.

¿Que es Nabaztag?

Nabaztag es un "conejo" fabricado por Violet , una empresa francesa que termino cerrada, aya en el 2011, y como todo servicio apoyado en la red, si muere la empresa, muere el producto,

Centrándonos en el equipo se trata de un conejo-fantasma que se conecta por Wifi y realiza peticiones GET y POST al servidor cada 30 segundos. Ademas cuenta con un botón en la parte superior, orejas que se mueven interactivas y un lector RFID (ISO/IEC 14443 Type B), un led inferior de 7 colores y 4 led centrales de 5 colores, ademas de un altavoz y un micrófono.

El funcionamiento es simple, el equipo ni almacena ni sabe, solo espera ordenes del servidor y las ejecuta dentro de sus posibilidades.

¿Por que nabaztaglives?

Simple y directo, instalado nabaztaglives cuentas con en servidor estándar (contiene las voces originales en varios idiomas) y en 2 pasos lo tienes listo ... pero vamos a ir un poco mas , vamos a usar lo básico para crear nuestro propio servidor y aumentar las posibilidades del equipo, ademas de aprender que siempre viene bien.

Preparando el "núcleo"

Primero lo primero, bajamos el paquete alojado en sourceforge.
Este es el código en el que el autor aun continua trabajando, despacio pero continua (Animo!!).

Este paquete pesa alrededor de los 65 mb y es que contiene todos los sonidos en varios idiomas, como comentamos anteriormente queremos crear uno desde lo mas cercano a 0  así que vamos a quedarnos lo imprescindible para hacer que el conejo enlace y espere ordenes.

Archivos de conexión 

vamos a hablar cronológicamente de los archivos requeridos por el conejo (equipo) para así conocer paso por paso como actúa.

 Una vez configurado en conejo (lo veremos en el próximo articulo) el conejo busca el archivo "locate.jsp" y "bc.jsp" ambos tienen que encontrarse en la misma carpeta , esta la busca el conejo.
  •  locate.jsp : Contiene la IP del equipo servidor , esto puede ser por que se utilizaba un balanceador y según la saturación de la maquina se redirija a uno o otro , tiene que ser la ip de red publica o red local , pero no la ip local (127.0.0.1) , el Ipv6 no lo traga.
  • bc.jsp : Binario no tocar.

Archivos de acción 

Una vez conectado e indicado la maquina que realizara de servidor el conejo empezara su tarea consultiva.

Importante:  El conejo una vez negociado con "localte.jsp" Siempre, siempre buscara la ruta //servidor/vl , nada de sub-rutas que se lía y adiós muy buenas. Aqui dentro solo consultara 2 archivos "p4.php" y "record.jsp".

  • p4.php : Es el cerebro, donde nabaztag siempre va a consultar que pasa ahora y donde vamos a picar todo el código para poder actuar con el , vamos que todos los problemas vienen derivados de este archivo y lo que gestione. 
  • record.jsp : En nabaztaglives ya nos informan que no lo usan, en mi caso solo se que se activa al hablarle y envía una petición POST, poco mas por ahora. No es necesario tenerlo para que funcione pero me parece interesante mencionarlo.

Y con solo estos archivos tendríamos listo al conejo para esperar instrucciones, así de simple.

En breve comentare como conectar a nuestro servidor y los comandos básicos de Nabaztag.