Which controller do you have?

We'll show what works with it on every page.

My smart home

Help me choose

KB-104 - Z-Wave Parámetros del dispositivo: hexadecimal, decimal, binario, bits, bytes... ¡¿Qué?!

Al consultar los manuales de los dispositivos o nuestras propias guías, es posible que encuentre algunos términos con los que no esté familiarizado, como binario, hexadecimal, bit, byte, etc.

Esta es una guía rápida sobre los términos habituales empleados para garantizar una terminología común y unificada.

Introducción a los números binarios, decimales y hexadecimales

Aunque pueda parecer complejo al principio, los sistemas binario, decimal y hexadecimal son simplemente formas distintas de representar un número.

Revisemos brevemente las diferencias entre ellos.

Decimal

No es necesario profundizar demasiado en el sistema decimal, ya que es el sistema más utilizado en la actualidad.

Se denomina sistema de «base 10» porque utiliza 10 símbolos: del 0 al 9.

Una vez alcanzado el 9, se agotan los símbolos disponibles, por lo que se añade 1 dígito a la izquierda y se vuelve a comenzar en 0.

Binario

Un número binario está compuesto únicamente por 0 y 1. Por este motivo, se denomina sistema de «base 2».

Esto significa que un solo dígito binario solo puede representar 2 valores distintos, en lugar de los 10 dígitos habituales.

La regla general para contar mediante el sistema binario es la misma que en el sistema decimal: se cuenta hasta justo antes de la «base» y luego se reinicia en 0, añadiendo primero 1 al número situado a la izquierda.


Binario: 0 1 10 11 100 101 110 111 1000 1001 1010
Decimal: 0 1 2 3 4 5 6 7 8 9 10

Hexadecimal

Los números hexadecimales resultan especialmente interesantes, ya que corresponden a un sistema de «base 16».

Tienen la misma representación que los números decimales hasta el 9, pero luego utilizan letras («A», «B», «C», «D», «E», «F») en lugar de los números decimales del 10 al 15.

Un solo dígito hexadecimal puede representar 16 valores distintos, en lugar de los 10 dígitos a los que estamos habituados.

Nuevamente, una vez agotados los símbolos (al llegar a F), se reinicia en 0 y se suma 1 a la siguiente posición hacia la izquierda.


Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
Decimal: 0 1 2 3 4 5 6 7 8 910 11 12 13 14 15

Véalo en acción

Elija uno de los sistemas a continuación y observe cómo cuenta:

Conversión entre sistemas

Si le interesan las matemáticas, puede aprender cómo convertir números entre diferentes sistemas de base.

Sin embargo, la forma más sencilla es utilizar un conversor de números en línea.

Bits frente a bytes

Los bits y los bytes suelen confundirse, pero en realidad existe una gran diferencia entre ellos.

Un bit es la unidad más pequeña de información que se puede almacenar o manipular en un ordenador. Cuando se representa como un número, los bits pueden tener un valor de "1" (uno) o "0" (cero).

Por otro lado, un byte es mucho más grande: contiene ocho bits. Matemáticamente, n bits generan 2 ^ n patrones, por lo que un byte puede contener un número comprendido entre 0 y 255.


bit 0 1 2 3 4 5 6 7
  2 ^ 0 2 ^ 1 2 ^ 2 2 ^ 3 2 ^ 4 2 ^ 5 2 ^ 6 2 ^ 7
valor 0 2 4 8 16 32 64 128

Es importante saber que los bytes se abrevian con una B mayúscula, mientras que los bits utilizan una b minúscula. Por lo tanto, Mbps corresponde a megabits por segundo y MBps a megabytes por segundo.

Integración de conceptos

Quizás se pregunte por qué hemos estado hablando de bits, bytes y de todos estos sistemas numéricos diferentes.

Al agregar un parámetro de dispositivo, debe seleccionar su tamaño de datos. Entre 1, 2 o 4 bytes y Hex o Dec, dispone de 6 opciones para elegir.

Puede tener la tentación de seleccionar simplemente la primera opción y continuar, pero un parámetro de tamaño de datos incorrecto no funcionará en absoluto y, en algunas ocasiones, puede impedir que el propio dispositivo funcione correctamente.

Tamaño de los datos

Lo primero que debe saber es que, a menos que se indique lo contrario, todos los parámetros son de decimal de 1 byte.

No obstante, existen algunos dispositivos que requieren otros tamaños de datos. Por este motivo, es sumamente importante leer atentamente el manual de sus dispositivos antes de realizar cualquier cambio.

Hacemos todo lo posible para mantener todas las páginas de productos con manuales actualizados.

En el caso excepcional de que nos falte un manual o la información presentada no sea lo suficientemente clara, le sugerimos buscar su dispositivo en la base de datos Z-Wave de pepper1 o en el sitio web de la Z-Wave Alliance.

Valores negativos

El sentido común dicta usar el signo menos para designar un número entero negativo. Sin embargo, los ordenadores solo pueden almacenar información en bits que, como hemos visto, únicamente pueden tener los valores cero o uno. Por lo tanto, el almacenamiento de enteros negativos en un parámetro requerirá un enfoque diferente.

Sin entrar en detalles, una forma de almacenar valores negativos es utilizar la convención del complemento a dos, en la que los valores negativos se representan mediante el complemento a dos de su propio valor. Esto significa básicamente que los números que tienen un «1» en el bit situado más a la izquierda son negativos.

Para configurar valores negativos en un parámetro, se toma el valor máximo (según el tamaño del parámetro, es decir, 1, 2 o 4 bytes) y se resta el valor deseado.

Ejemplos

Todo es más fácil de entender con un ejemplo, así que examinemos algunos dispositivos de uso cotidiano que requieren operaciones matemáticas con bits antes de configurar sus parámetros.

Philio Multisensor GEN5

Un vistazo rápido al manual de Philio Multisensor permite notar de inmediato que la mayoría de los valores de sus parámetros no corresponden al habitual decimal de 1 byte.

Tomemos el Parámetro 7 como ejemplo. Nota: para este ejemplo utilizaremos los parámetros del PST02-1A.

Necesitamos habilitar la clase de comando de informe de sensor binario (Binary Sensor Report Command Class) y hacer que el dispositivo informe de «despejado» tras un evento de movimiento para lograr que tanto los sensores de movimiento como los magnéticos funcionen en la mayoría de los controladores Z-Wave.

Para ello, debemos habilitar el bit 1 y el bit 4, y sumarlos al bit 2 ya habilitado por defecto.

Esto se traduce en: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Por lo tanto, nuestro parámetro decimal de 1 byte debe ajustarse en 22.

Aeon Clamp Meter

Los parámetros decimales de 4 bytes utilizados por el Aeon Clamp Meter pueden ser complejos en comparación con un parámetro decimal de 1 byte.

A modo de ejemplo, supongamos que deseamos configurar la versión de una sola pinza de este dispositivo. Hemos aprendido aquí que el Parámetro 103 debe fijarse en 2304, pero ¿por qué?

Si consultamos el manual, podemos ver en la página 7 una tabla que muestra todas las opciones posibles para el Valor 1 al 4.

También nos indica que el Valor 1 es el MSB (byte más significativo) y el Valor 4 es el LSB (byte menos significativo).

Sabiendo esto, podemos aplicar la misma lógica empleada anteriormente comenzando desde el byte LSB (Valor 4). Esto se traduce en:


Valor 1 (MSB)
Bit7 6 5 4 3 2 1 0
Valor 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216
Valor 2
Bit 7 6 5 4 3 2 1 0
Valor 8388608 4194304 2097152 1048576 524288 262144 131072 65536
Valor 3
Bit 7 6 5 4 3 2 1 0
Valor 32768 16384 8192 4096 2048 1024 512 256
Valor 4 (LSB)
Bit 7 6 5 4 3 2 1 0
Valor 128 64 32 16 8 4 2 1

Para obtener informes de Watt y kWh necesitamos habilitar el bit 0 y el bit 3 en el Valor 3.

Esto nos da: 2048 + 256 = 2304

Por lo tanto, nuestro parámetro de decimal de 4 bytes debe configurarse en 2304.

Aeon Siren GEN5

El parámetro 37 de decimal de 2 bytes de la Aeon Siren GEN5 puede almacenar dos bytes o 16 bits, como sabemos.

Esto nos permite configurar diferentes sonidos y ajustar el volumen, todo en un único parámetro.

Consultando el manual, podemos ver que el Valor 1 tiene 6 ajustes posibles, mientras que el Valor 2 tiene 4. Esto se traduce en:

Valor 1 (MSB)
Sonido 5 Sonido 4 Sonido 3 Sonido 2 Sonido 1
Bit 4 3 2 1 0
Valor 4096 2048 1024 512 256
Valor 2 (LSB)
Volumen 3 Volumen 2 Volumen 1
Bit 2 1 0
Valor 4 2 1

Sin embargo, Aeon ha utilizado una lógica diferente en este parámetro, lo que puede dificultar un poco la comprensión. Si consultamos el manual tenemos:

  • Valor 1
    • 0: no cambiar el sonido actual de Siren
    • 1: se selecciona el sonido de Siren 1
    • 2: se selecciona el sonido de Siren 2
    • 3: se selecciona el sonido de Siren 3
    • 4: se selecciona el sonido de Siren 4
    • 5: se selecciona el sonido de Siren 5
  • Valor 2
    • 0: no cambiar el volumen actual
    • 1: ajustar el volumen a 88 dB
    • 2: ajustar el volumen a 100 dB
    • 3: ajustar el volumen a 105 dB

Estos son los valores decimales, pero se aplican distribuyéndose a lo largo de un valor de 2 bytes.

Dado que los valores de sonido y volumen se aplican como un único parámetro de 2 bytes, es necesario convertir los patrones de bits de forma adecuada.

Probablemente sea más fácil de entender con un ejemplo:

  • Observe el sonido 4 de Siren; el manual indica que su valor es 4
  • Ahora observe el patrón de valores de 8 bit anterior: ¿qué «bit» marcaríamos para obtener un valor de 4? La respuesta es el bit 2
  • ¿Y qué valor tiene el bit 2 en el segundo byte de un valor de 2 byte? La respuesta es 1024

Si esto parece complicado, puede llegar a serlo :-)

Veamos un segundo ejemplo:

  • Observe el Sound 3 de la sirena con valor 3
  • ¿Qué «bit» marcaríamos para obtener un valor de 3? Tendríamos que habilitar el bit 0 y 1 (1 + 2)
  • ¿Cuál es la suma del valor del bit 0 y 1 en un patrón estándar de valores de 8 bit? La respuesta es 768 (512 + 256)

Nota: para obtener una lista completa de los valores decimales que deben utilizarse con la sirena Aeon, consulte esta guía

Fibaro Swipe

Parámetros 31-36 permite al usuario crear secuencias de dos o tres gestos para ampliar el número de acciones posibles.

Son parámetros de decimal de 2 byte en los que cada gesto ocupa 4 bits.

Cada gesto puede identificarse de la siguiente manera:

Valor 4 bits Gesto
0 0000 vacío
1 0001 ^
2 0010 v
3 0011 <
4 0100 >

El patrón de bits de la secuencia puede interpretarse como:

Valor 1 (MSB) - reservado
Bit 3 2 1 0
Valor 32768 16384 8192 4096
Valor 2 - primer gesto
Bit 3 2 1 0
Valor 20481024 512 256
Valor 3 - segundo gesto
Bit 3 2 1 0
Valor 128 64 32 16
Valor 4 (LSB) - tercer gesto
Bit 3 2 1 0
Valor 8 4 2 1

Para crear una secuencia ^ (arriba) > (derecha) < (izquierda):

  • El valor 1 está reservado, por lo que su valor es 0
  • El valor 2 es "arriba", por lo que activaríamos el bit 0 (0001) = 256
  • El valor 3 es "derecha", por lo que activaríamos el bit 2 (0100) = 64
  • El valor 4 es "izquierda", por lo que activaríamos los bits 0 y 1 (0011) = 2 + 1

Si sumamos todos los valores obtenemos 323.

Fibaro Motion Sensor GEN5

El Parámetro 66 en decimal de 2 bytes del Fibaro Motion Sensor GEN5 puede almacenar dos bytes o 16 bits, lo que permite configurar una compensación de temperatura de -100 a 100 ºC en incrementos de 0.1ºC.

Para configurar una compensación de temperatura de -2.0 ºC, restaría el valor absoluto deseado (20) al valor máximo que puede tomar el parámetro (2^16).

Esto se traduce en (2^16) – 20 = 65516.

Por lo tanto, nuestro parámetro decimal de 2 bytes debe configurarse en 65516.

Información relacionada


Copyright Vesternet 2017

Actualizado: 07/11/2017

Your quote

Loading your cart…

Edit cart