bMotes Gateway para Opendomo, los comandos

 

Hemos trabajado en hacer que el gateway sea lo más autoconfigurable posible dentro del entorno de Opendomo, y creo que lo hemos conseguido.

La configuración de red por defecto es DHCP, lo que hará que el gateway configure por defecto su IP y la conexión a la res Ethernet. Una vez autoconfigurada la red el equipo, siguiendo el protocolo de Opendomo se anuncia en la misma, de dos maneras, por un lado envía un paquete de UDP para que aparezca en la pantalla de configuración del ODNetwork, por otro lado envía paquetes, también de UDP para que el ODNetwork lo autoconfigure y cree sus puertos de forma automática. El gateway pasa al ODNetwork los puertos que tiene configurados, pero ¿de dónde saca la información?.

Al arrancar el gateway este monta la red Zigbee y hace un reconocimiento de los nodos de la red, cada nodo pasa al gateway una información que almacena en su EEPROM, el nombre,las direcciones, el tipo de nodo, etc. El Gateway a partir del tipo de nodo sabe los puertos que tiene que configurar, sus capacidades y sus nombres.

El resultado es el buscado, encendemos los nodos, encendemos el gateway y todo funciona…

Adicionalmente a esto el gateway tiene un interfaz de configuración basado en Telnet en el puerto 1729, desde windows tenemos que instalar especificamente el protocolo en los componentes o podemos utilizar un cliente, por ejemplo el putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html), es recomendable habilitar la opción para haga un CR implicito en cada LF (que además de saltar de línea vuelva al principio).

En el interfaz telnet podrermos ver, además los cambios en los puertos, la forma en la que está montada la red, etc.

A continuación una lista de los comandos más habituales y su explicación:

Funciones para la configuración de la red Ethernet:

  • eth ip XXX.XXX.XXX.XXX -> Configura una dirección IP (ojo, los valores siempre con tres cifras, por ejemplo eth ip 192.168.000.001).
  • eth gw XXX.XXX.XXX.XXX -> Configura el default gateway (igual que el anterior)
  • eth nm XXX.XXX.XXX.XXX-> Configura la máscara de red.
  • eth dhcp -> configura la red para utilizar el protocolo DHCP.
  • eth view -> muestra la configuración de la red (si está configurado como DHCP muestra los valores adquiridos y lo indica)eth view
    I:IP->192.168.51.106.DHCP
    I:GW->192.168.51.2.DHCP
    I:NM->255.255.255.0.DHCP

Funciones para guardar y recuperar la configuración:

  • sav -> Guarda la configuración de la red y de los puertos configurados.
  • loa -> Carga la configuración guardada.
  • def -> Borra la configuración actual, e inicia el reconocimiento de la red Zigbee (despues hay que hacer un sav para guardarla)

Funciones adicionales:

  • ech-> (des)activa el eco local.
  • deb-> Activa alternativamente diferentes niveles de información de debug.
  • ver-> Muestra la versión del firmware de la placa.
  • mem-> Muestra la memoria disponible en la placa.

Funciones para visualizar y seleccionar los puertos:

  • lst-> Muestra una lista de los puertos y de sus valores.
  • set [puerto] [valor]-> Escrive un valor en un puerto especificado.
  • zls-> Muestra un mapa de la red Zigbee, como el siguiente:

Pantalla de salida del comando zls

En esta pantalla podemos ver una red formada por 6 nodos, un módulo de sensores (puertos de temperatura, iluminación, sensor magnético y la medición de su batería), un dimmer (un único puerto para enviar la intensidad), un nodo con cuatro pulsadores y tres leds (placa de desarrollo), otro nodo de las mismas características, el coordinador (no tiene puertos) y un nodo sensor de presencia a baterías con medida de temperatura. En cada nodo se ve el número asignado ZX, su dirección física 0013A…, el nombre configurado, el tiempo que lleva sin recibir samples y el tipo de nodo, en la línea de abajo sus puertos.

 

Funciones de configuración de los nodos Zigbee:

Todos los puertos de la red Zigbee son autoconfigurados y su nombre es ZXYYY, dónde Z es un valor fijo, X es un número diferente para cada nodo de la red Zigbee e YYY es el tipo del puerto. Por ejemplo: la tensión de la batería en el segundo nodo que ha descubierto la red es: Z1BAT (el primer nodo sería el Z0XXX).

La configuración se almacena en los nodos, no en el gateway, de forma que un nodo configurado con unos parámetros concretos podría trasladarse a una nueva red y mantendría su configuración. Todos los valores son persistentes y aguantan un apagado/encendido, en los valores de los puertos hay algunos valores que lo son y otros que no, esto viene definido por el tipo de nodo.

Todos los comandos de configuración de los nodos tienen el formato atc [comando] [valor], a continuación un resumen de los más habituales:

  • NI-> le da un nombre reconocible al nodo.
  • NT-> tiempo de descubrimiento del nodo.
  • ZS-> Zigbee stak profile (siempre 2)
  • NJ-> Tiempo durante el cual el coordinador admitirá nuevos nodos en la red (si se pone a cero no se podrá incorporar ningún nodo nuevo, si se pone un valor es el número de segundos que el coordinador admitirá nuevos nodos, si se pone FF el coordinador admitirá nuevos nodos siempre).
  • PL-> nivel de potencia, del 1 al 4, ajustándolo ahorraremos batería.
  • IR-> tiempo en el que el nodo enviará las lecturas de los puertos
  • IC-> detección de cambios en los puertos digitales, enviará la lectura de los puertos siempre que haya un cambio.
  • VR-> lee la versión de FW del nodo.
  • HV -> Lee la versión de hardware del nodo.
  • %V-> lee la tensión en mV con la que está alimentado el nodo.
  • SM-> modo de sleep (0: ninguno; 4 sleep; 5 sleep con posibilidad de despertar)
  • SP-> Tiempo de sleep.
  • ST-> Tiempo antes del sleep.
  • DD-> Tipo de nodo, en función de este valor el gateway incluirá unos puertos o otros, es el valor de autoconfiguración.

Evidentemente, por cuestiones de espacio este post solo pretende ser una introducción, hay muchos más parámetros para hacer muchas más cosas. Seguiremos….

 

 

Deja un comentario