
Resumen
- La mayoría de los rastreadores ya envían por túnel bytes RS-232/485 hacia la nube, así que recibes ASCII o HEX en bruto, no valores cuidadosamente analizados.
- IoT Logic convierte ese flujo en bruto en métricas utilizables con un flujo visual, decodificas en Initiate Attribute (JEXL y operaciones a nivel de bits), guardas un historial de 12 lecturas, ramificas con IF/THEN y distribuyes resultados en abanico, sin backend personalizado.
- El Monitor de Flujo de Datosr hace que la resolución de problemas sea sencilla, observas cargas útiles en bruto y campos calculados en tiempo real, y siempre ves las últimas 12 lecturas válidas como una radiografía.
- En la práctica se siente como enchufar y usar, analizas pares clave-valor de Technoton vía Teltonika, extraes IDs de conductor de los túneles de Queclink, decodificas tramas 0x9B de Concox, obtienes RPM y conteos de personas de Digital Matter o Streamax, y luego disparas alertas, inmovilizas o activas relés.
- Reutiliza expresiones simples, máscaras de bits, deltas entre valor actual y anterior, y verificaciones con reconocimiento de tiempo con srvTime o genTime, para amortiguar ruido, detectar tendencias, mantenerte agnóstico del proveedor y publicar tableros de sensores sin nuevos proyectos de backend.
Imagina esto. Tu rastreador está en línea y reportando sin problemas, pero el sensor peculiar conectado a su puerto RS-232 —una sonda de combustible, un lector RFID, quizá hasta un contador de pasajeros— no habla el mismo idioma que tu aplicación en la nube. En su lugar, solo escupe tramas en bruto: 79 79 … 9B … 0D 0A o una línea críptica como can_tot_fuel_used=2076.4139.

El dispositivo GPS, la dashcam o el MDVR no intentan interpretarlo. Simplemente actúan como una pasarela, encapsulando esos bytes y enviándolos a la nube sin tocar. Esa flexibilidad es excelente para conectar sensores raros o de nicho, pero puede resultar abrumadora cuando un cliente espera tableros y alertas el mismo día.
Este es exactamente el mundo para el que se creó IoT Logic de Navixy. Te permite tomar esos bytes, separar bits y campos con un flujo visual y sencillo, reutilizar expresiones basadas en JEXL (sí, incluidas operaciones a nivel de bits), razonar sobre las últimas 12 lecturas, ramificar con IF/THEN y mostrar, reenviar o incluso enviar comandos de vuelta a los dispositivos sin necesidad de backend personalizado.
En toda la industria, los modos “transparentes” o de “paso” están por todas partes:
Teltonika (FMB/FMC): configura RS-232/485 en TCP ASCII/Binario y todo lo que envíe el periférico va directo a tu servidor, encapsulado como Codec 12; las cargas almacenadas en búfer —y cuando la opción de marca de tiempo está activada— usan Codec 13. ASCII espera <CR><LF>; Binario se envía tras ~30 ms de silencio. No hay análisis en el dispositivo.
Queclink (GV/GL): el protocolo @Track incluye +RESP:GTDAT para el túnel serial ASCII; también puedes enviar en bajada con AT+GTDAT. Para cargas seriales binarias/hex, los fabricantes suelen usar el reporte GTDTT.
Jimi/Concox: el paquete 0x9B de “Transmisión Transparente” encapsula datos RS-232 (ASCII/HEX) con una pequeña cabecera/CRC para que el servidor pueda decodificarlos.
Ruptela: el Canal Transparente usa el Comando 14/114 para subir/bajar bytes seriales en bruto. Incluso registra la hora en que llegan los datos en el lado RS-232.
Suntech/STLab: los reportes de la familia ST300 incluyen campos de datos RS-232 de usuario (cientos de bytes por mensaje) — reenviados a la plataforma.
Digital Matter (G120/G150): modo explícito de paso RS-232; las pasarelas BLE reenvían datos de etiquetas/sensores.
Streamax (MDVR/dashcams): los MDVR exponen RS-232/RS-485 para periféricos (contadores de pasajeros, letreros LED, etc.), reenviando eventos/valores junto con telemetría de video.
IoT Logic te da una canalización de arrastrar y soltar:

Decodificas, enriqueces y enrutas — todo en un mismo lugar.
Initiate Attribute es tu bloque decodificador. Creas atributos con nombre y transformas cargas en bruto con el Lenguaje de Expresiones de Navixy (basado en JEXL), desde divisiones de cadenas hasta matemáticas y máscaras de bits.
Otra función destacada: IoT Logic almacena el valor actual y hasta 12 valores anteriores por parámetro. En una expresión, value('sensor', N, 'valid') te permite obtener “ahora” (índice 0) o retroceder por 12 posiciones de historial limpio y válido. También puedes solicitar la hora del dispositivo (gen) o del servidor para cada valor con genTime() / srvTime(). Eso significa que el antirrebote, las comprobaciones de delta y la lógica de tendencias son triviales sin una base de datos.
Cuando quieres decidir, el nodo Logic evalúa una expresión booleana y divide el flujo (IF/THEN). Y cuando hay que actuar, el Nodo de acción puede enviar comandos a los dispositivos o avisar a sistemas externos. Para distribuir resultados, el nodo Output Endpoint reparte hacia la interfaz de Navixy y/o tus propias apps/servicios en paralelo.
Para la resolución de problemas en vivo, Monitor de Flujo de Datos muestra la entrada cruda del dispositivo y tus atributos calculados a medida que fluyen, con esas últimas 12 lecturas visibles de un vistazo. Es una radiografía de tu canalización.
Un adaptador Technoton en RS-232 transmite datos ASCII en pares clave-valor:
can_ign=1;can_speed=54;can_tot_fuel_used=2076.4139
En el modo TCP ASCII de Teltonika el rastreador reenvía cada línea tras <CR><LF> directamente al servidor como Codec 12/13. Initiate Attribute de IoT Logic analiza los pares, guarda can_speed como número y registra la tasa de cambio para fuel_used usando el valor válido anterior en el índice 1. Si speed > 0 mientras un bit de “puerta abierta” está activado, el nodo Logic eleva una alerta; si se detecta una caída rápida de combustible con el encendido apagado, Action puede accionar un relé o enviar un comando.
El reporte +RESP:GTDAT de Queclink es literalmente un túnel de texto serial; el servidor puede enviar AT+GTDAT en bajada para hablar con el periférico. Para cargas binarias, GTDTT transporta hex. En IoT Logic divides o decodificas hex una vez y luego conservas campos como driver_id como atributos de primera clase. A partir de ahí es sencillo: si la tarjeta no está en tu lista blanca, ramificas a “no autorizado” y con Action envías un comando de inmovilización.
Los rastreadores Concox encapsulan bytes de periféricos en paquetes 0x9B. Ejemplo de estructura de paquete:
79 79 … 9B 03 … 02 31 42 30 30 31 33 46 37 37 37 38 38 03 … 0D 0A
Esos bytes internos se decodifican como una cadena RFID; IoT Logic la almacena, la compara con el valor anterior (índice 1) para filtrar duplicados y solo emite cambios. Si en su lugar es una sonda de combustible, mapeamos bytes a litros, suavizamos con la ventana de 12 valores y publicamos.
La definición oficial de “transmisión transparente” para 0x9B también es pública, si quieres los detalles en el cable.
Los G120/G150 de Digital Matter admiten paso RS-232; el sensor de tambor Dingtek DZ300, por ejemplo, reporta RPM del barril (+/– indica dirección). Lo elevas a un atributo y luego ramificas según el estado del PTO para detectar cemento al ralentí.
Para mover personas, los MDVR de Streamax transportan contadores por RS-232/RS-485; IoT Logic fusiona “IN/OUT” con una etiqueta BLE de temperatura y activa un ventilador auxiliar si la cabina está abarrotada y caliente.
¿Tienes un paquete de bits de estado OBD/CAN o banderas de puertas? Puedes extraer solo el que te importa:
(value('status_flags', 0, 'valid') & 0x10) != 0
Eso comprueba si el bit 4 está establecido y enruta solo cuando es verdadero.
¿Necesitas detectar picos o caídas repentinas? Compara la última lectura con la anterior:
value('fuel_l', 0, 'valid') - value('fuel_l', 1, 'valid')
Añade un umbral y tienes antirrebote instantáneo o filtrado de vaivén de combustible — sin acrobacias SQL.
A veces no es solo el valor, sino cuánto tiempo permanece ahí. Ejemplo: eleva una alerta si la temperatura ha estado por encima de 26 °C durante tres minutos:
srvTime('temp', 0, 'valid') - srvTime('temp', 1, 'valid') > 180000
&& value('temp', 0, 'valid') > 26
Tus flujos se mantienen limpios y legibles porque el nodo Logic solo necesita un sí/no. El nodo Initiate Attribute hace el trabajo pesado (renombrar, escalar, enmascarar) y el nodo Action decide qué hacer después: accionar un relé, actualizar la interfaz o enviar el evento a MQTT o a tu app.
Con IoT Logic, no necesitas crear un nuevo servicio de backend cada vez que aparece un sensor nuevo en campo. Decodificas una vez en Initiate Attribute, lo reutilizas en dispositivos y te mantienes agnóstico del proveedor — ya sea que los datos vengan de Teltonika, Ruptela, Concox, una dashcam o una etiqueta BLE.
Al mismo tiempo, Monitor de Flujo de Datos te da visibilidad instantánea de los valores en bruto y procesados, mientras las salidas van en paralelo a los paneles de Navixy y a tus propios sistemas. Menos código personalizado, menos dolores de soporte y ningún combate presupuestario por “un sensor más”.
Listo para convertir bytes en bruto en métricas claras y accionables? Permítenos mapear tu flujo hacia resultados y luego contacta a nuestro equipo de Ventas para planificar el despliegue.