El UnaBeacon es un dispositivo pequeño y simple alimentado por batería que utiliza un sensor de acelerómetro para detectar el movimiento de los activos. Siguiendo esta guía, podrás decodificar los datos del UnaBeacon para detectar y contar el movimiento del dispositivo.
La funcionalidad del UnaBeacon depende de su configuración de Modo, puede ser:
Modo Temporizador: Contar el movimiento del dispositivo durante un período de tiempo.
Modo Evento: Detectar el movimiento del dispositivo.
Requisitos
Una cuenta activa de Sigfox.
Sensor UnaBeacon ya transmitiendo datos a Sigfox y Ubidots (Ver Plugins: Conectar Sigfox con Ubidots)
1. Entendiendo los datos
Así es como se están decodificando los datos según la documentación para detectar o contar el movimiento del dispositivo. Es importante tener en cuenta que la decodificación depende del modo en que se configure el sensor.
1.1. Datos del modo temporizador
La siguiente estructura de carga útil es un ejemplo de los datos enviados desde Sigfox a Ubidots específicamente para un sensor UnaBeacon configurado para el Modo Temporizador.
{"device_id": "410902""data": "018b000b000a000b000a00b00a", }
Datos de muestra del sensor Sigfox: 018b018b000b000a000b000a00b00a
0x01
- Modo Byte #00x8b
- Intervalo Byte #10x00
- Actividad 1/10 Byte #20x0b
- Actividad 2/10 Byte #30x00
- Actividad 3/10 Byte #40x0a
- Actividad 4/10 Byte #50x00
- Actividad 5/10 Byte #60x0b
- Actividad 6/10 Byte #70x00
- Actividad 7/10 Byte #80x0a
- Actividad 8/10 Byte #90x0b
- Actividad 9/10 Byte #100x0a
- Actividad 10/10 Byte #11
Bytes en total: 12
1.2. Datos del modo evento
La siguiente estructura de carga útil es un ejemplo de los datos enviados desde Sigfox a Ubidots específicamente para un sensor UnaMotion configurado para el Modo Evento.
{"device_id": "410902""data": "0201", }
Datos de muestra del sensor Sigfox: 0201
0x02
- Modo Byte #00x01
- Estado Byte #1
Bytes en total: 2
NOTA: El byte de estado representa el estado actual del objeto, puede ser:
0x00
: No movido0x01
: Movido
2. Función de decodificación en el Plugin de Sigfox
Paso 1: Ve al plugin de Sigfox y abre la opción de Decodificador.
Paso 2: Encuentra la sección de la función de Decodificación. Aquí es donde comenzaremos a decodificar los datos que provienen del UnaBeacon.
Paso 3: Copia y pega el código a continuación en el editor de código reemplazando el decode_data()
.
def decode_data(hex_array): payload = {} status = hex_array[0] if status == 0 or status == 4: voltage = (int(hex_array[1:3].hex(), 16))/1000 payload["voltage"] = voltage elif status == 1: payload["activity_count"] = int(hex_array[2:12].hex(), 16) elif status == 2: payload["state"] = int(hex_array[1:2].hex(), 16) return payload
Guarda el código haciendo clic en el botón "GUARDAR & HACER VIVO".