El UnaProtect utiliza un sensor magnético para detectar la apertura y cierre de puertas, ventanas o cajones. Siguiendo esta guía, podrás decodificar los datos del UnaProtect para capturar y contar el cambio de encendido/apagado del interruptor de lámina.
La funcionalidad del UnaProtect depende de su configuración de Modo, puede ser:
Modo Temporizador: Contar el cambio del interruptor de lámina durante un período de tiempo.
Modo Evento: Capturar el cambio de encendido/apagado del interruptor de lámina.
Requisitos
Una cuenta activa de Sigfox.
Sensor UnaProtect que ya esté 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 capturar o contar los cambios del interruptor de lámina. Es importante tener en cuenta que la decodificación depende del modo en que el sensor está configurado.
1.1. Datos del modo temporizador
La siguiente estructura de carga útil es un ejemplo de los datos que se envían de Sigfox a Ubidots específicamente para un sensor UnaProtect configurado para el Modo Temporizador.
{"device_id": "410902""data": "018b000b000a000b000a00b00a", }
Datos de muestra del Sensor Sigfox: 018b000b000a000b000a00b00a
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 que se envían de Sigfox a Ubidots específicamente para un sensor UnaProtect 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:
0x01
: Cerrado0x02
: Abierto
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 función de decodificación. Aquí es donde comenzaremos a decodificar los datos que provienen del UnaProtect.
Paso 3: Copia y pega el código a continuación en el editor de código reemplazando la función 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".