Rinho en Wialon
Esta nota reúne todo lo necesario para dar de alta y aprovechar un equipo Rinho en Wialon : qué tipo de dispositivo elegir, cómo apuntar el equipo, con qué nombre aparece cada dato en Wialon y cómo sumar datos propios sin pedir cambios en la plataforma.
Los nombres de parámetros, el mapeo CAN y el comportamiento del campo AP de esta nota se
midieron en Wialon Hosting el 10/11/2026 con un Spider IoT y un Zero IoT con firmware
1.09.28.T63, enviando tramas con valores conocidos y leyendo lo que publicó Wialon.
1. Dos formas de conectar
| Protocolo Rinho TAIP | Wialon IPS | |
|---|---|---|
| Tipo de dispositivo en Wialon | Uno por modelo (Rinho Zero IoT, Rinho SPIDER IoT, …) | Rinho IPS, el mismo para todos los modelos |
| Transporte | UDP | TCP |
| Qué decodifica | Las tramas Rinho (CQ, ER, EQ, …), CAN incluido, más el campo AP | Posición, altitud, HDOP, entradas, salidas, tensiones y los parámetros de la plantilla del equipo |
| Configuración del equipo | La de siempre: el mismo equipo puede reportar a Wialon y a otra plataforma con la misma trama | Protocolo W, contraseña y plantilla de reporte |
| Plantilla WLP | La del modelo | La misma que en TAIP |
| Recomendado para | Flotas que ya trabajan con TAIP, CAN, todos los modelos | Integradores que ya trabajan todo en Wialon IPS |
Para la mayoría de los casos conviene TAIP: es el protocolo nativo del equipo, Wialon lo decodifica completo y con el campo AP se puede publicar cualquier dato adicional sin cambiar de protocolo. Con las plantillas de esta nota, los dos protocolos publican los datos con los mismos nombres: se puede pasar de uno al otro sin tocar Wialon.
2. Tipos de dispositivo y puertos
Tipos Rinho disponibles en Wialon Hosting:
| Modelo | Tipo de dispositivo en Wialon | Puerto |
|---|---|---|
| Rinho Zero IoT | Rinho Zero IoT | 22912 |
| Rinho Spider IoT | Rinho SPIDER IoT | 22496 |
| Rinho Smart IoT | Rinho SMART IoT | 22499 |
| Rinho C5 Plus | Rinho C5 Plus | 21757 |
| Rinho C3 | Rinho C3 | 22497 |
| Rinho Ultralite | Rinho Ultralite | 22498 |
| Cualquier modelo IoT con Wialon IPS | Rinho IPS | 22500 |
- Servidor de Wialon Hosting: el que indica Wialon para cada tipo de dispositivo. Los equipos de
prueba de esta nota reportan a
nl.gpsgsm.org. En Wialon Local o en un servidor de un integrador, el host y el puerto los define quien administra ese servidor. - ID único de la unidad: el que el equipo manda en el campo
ID=de cada trama. En los modelos IoT es el IMEI. Se consulta con>QID<. - Todos los modelos usan el mismo protocolo: el tipo de dispositivo define el puerto y el nombre del modelo en Wialon, pero los datos se decodifican igual (Spider y Zero publicaron exactamente lo mismo en todas las pruebas).
3. Receta: dar de alta un equipo en Wialon
Con el protocolo Rinho TAIP (recomendado)
1. En Wialon, crear la unidad:
| Campo | Valor |
|---|---|
| Tipo de dispositivo | El del modelo (tabla de la sección 2) |
| ID único | El IMEI del equipo (>QID<) |
| Contraseña | Vacía (TAIP no la usa) |
2. En el equipo, apuntarlo al puerto del tipo de dispositivo (ejemplo para un Zero IoT):
>SIP0"nl.gpsgsm.org",22912< // servidor principal
>SIP1"nl.gpsgsm.org",22912< // servidor principal redundante
>SCXIPPP5< // TAIP por UDP en el canal principal y en el de respaldo3. Plantilla de reporte: el reporte de usuario estándar con campo AP (lo trae la configuración Wialon del configurador). En Spider IoT y Smart IoT, para los datos del motor, la regla periódica tiene que generar un reporte ER (J1939) o EQ (OBD-II).
4. Importar la plantilla WLP del modelo (sección 10).
5. Verificar: en Wialon aparecen mensajes nuevos, y en el equipo >QBU< responde
RBUOK00000 (nada esperando confirmación).
Con Wialon IPS
1. En Wialon, crear la unidad con tipo de dispositivo Rinho IPS, ID único = IMEI. La
contraseña puede quedar vacía o tener una: el equipo tiene que mandar la misma (paso 2).
2. En el equipo (ejemplo para un Zero IoT):
>SCXIPWP5< // Wialon IPS en el canal principal, TAIP UDP en el de respaldo
>SIP0"nl.gpsgsm.org",22500< // puerto del tipo "Rinho IPS"
>SIP1"nl.gpsgsm.org",22500<
>SWLNA< // unidad sin contraseña en Wialon: NA. Si tiene, SWL<la contraseña>
>SUC00 QWD0| $rep_num:1:| #| $,cel_level:1:'CSQ',pwr_int:2:'V/100'<Para Spider IoT y Smart IoT, la plantilla con los datos del motor:
>SUC00 QWD0| $rep_num:1:| #| $,cel_level:1:'CSQ',pwr_int:2:'V/100',rpm:1:'ECU(0;0)',fuel_lvl:2:'ECU(2;0)',odometer:2:'ECU(3;0)',odoliter:2:'ECU(4;0)',refr_temp:1:'ECU(6;0)',oil_press:1:'ECU(7;0)',trip_time:2:'ECU(10;0)'<Las reglas que ya tiene el equipo no se tocan: siguen generando el reporte de usuario GU0…, que
ahora sale en Wialon IPS.
3. Importar la misma plantilla WLP del modelo (sección 10):
no hay una plantilla aparte para Rinho IPS. Las plantillas de equipo de arriba usan los mismos
nombres de parámetros que TAIP, así que los sensores son los mismos.
4. Verificar: >QBU< en RBUOK00000 y >QDL< sin pendientes (el segundo número en 00000).
Contraseña: con SWL vacío el equipo manda #L#<IMEI>; y Wialon rechaza el login sin
avisar: la unidad no recibe ningún mensaje. Sin contraseña en Wialon hay que cargar >SWLNA<.
Cambiar de protocolo con el equipo instalado
Los reportes que el equipo ya tiene en cola quedaron armados para el protocolo anterior y el
servidor nuevo no los confirma: frenan a todos los que vienen detrás. Antes de cambiar, revisar
>QBU< y >QDL<. Si quedan pendientes y se pueden descartar, después del cambio:
>CBU< // vacía la cola de envío
>SDLC< // vacía el datalogNotas
- Transporte: TAIP usa UDP (el de fábrica). Wialon IPS usa TCP.
- Confirmación (TAIP): Wialon responde
>ACK;#<nro>;ID=<id>;*<checksum><a cada trama. El equipo reenvía hasta recibirla y recién ahí descarga su cola: sin cobertura no se pierde nada. Desde abril de 2025 Wialon confirma también las tramas con fecha y hora en cero. - Keep-alive: si está configurado (
>SKA120,B<, por ejemplo), cada keep-alive usa un número de mensaje. Por eso en Wialonmess_num“salta” un número cada tanto: no es una trama perdida.
4. Qué decodifica Wialon de cada trama
| Trama | Qué publica Wialon |
|---|---|
| CQ | Posición y los campos base |
| ER | Campos base + los 10 datos CAN J1939 |
| EQ | Campos base + los datos OBD-II (sin el VIN) |
| BQ | Campos base. La batería interna no se publica |
| HQ | Campos base. La batería interna y el horómetro no se publican |
| HV | Campos base. Batería interna, horómetro y temperaturas no se publican |
| CV | Campos base. Las temperaturas no se publican |
Reportes de usuario (GU…) | Lo mismo que la trama que imitan, si empiezan con $RCQ, $RER, etc. |
Lo que Wialon no publica de BQ, HQ, HV y CV se puede mandar igual: en el campo AP de cualquier trama, con el nombre que se quiera.

5. Parámetros base
Todas las tramas publican:
| Parámetro en Wialon | Campo Rinho | Significado |
|---|---|---|
msg_type | Encabezado | Tipo de trama: RCQ, RER, REQ, RBQ, RHQ, RHV, RCV |
rep_num | AA | Número de evento. Ver número de evento |
pwr_int | JJJ | Tensión de alimentación principal (V) |
odo | KKKKKKKK | Odómetro del equipo (m) |
gps_status | L | GPS encendido (1) o apagado (0) |
gps_fix | M | 2 = fix 2D, 3 = fix 3D |
pdop | NN | PDOP |
pwr_status | Q | Módem encendido (1) o apagado (0) |
gsm_status | R | Registro en la red celular (0 a 5) |
cel_level | SS | Señal celular CSQ (0 a 30, 99 = sin señal) |
mess_num | #nnnn | Número de mensaje (el que confirma el ACK) |
Además, Wialon toma de la trama la velocidad, el rumbo, la cantidad de satélites y las
entradas y salidas. Las tramas TAIP no traen altitud: en Wialon figura 0.
Entradas y salidas
El byte de entradas de la trama (HH) se publica tal cual en las entradas de Wialon, y el de
salidas (II) en las salidas:
| Wialon | Equipo Rinho |
|---|---|
in1 … in7 | IN0 … IN6 |
in8 | Ignición (IGN) |
out1 | XP0 |
out2 | XP1 |
Verificado con una trama con entradas A5 y salidas 02: Wialon mostró entradas 165 (in1,
in3, in6, in8) y salidas 2 (out2). Para un sensor de ignición en Wialon se usa in8.
6. CAN: nombres en Wialon
ER — CAN J1939
| Campo Rinho | Dato | Parámetro en Wialon |
|---|---|---|
2010 | RPM | rpm |
5000 | Posición del acelerador (%) | acc |
1030 | Combustible total consumido (L) | odoliter |
4201 | Nivel de combustible (%) | fuel_lvl |
1020 | Odómetro del vehículo (km) | odometer |
1010 | Velocidad de la ECU (km/h) | speed_sub |
2012 | Temperatura del refrigerante (°C) | refr_temp |
2013 | Presión de aceite (kPa) | oil_press |
2020 | Horas de motor (h) | trip_time |
3010 | Combustible del viaje (L) | l_cons_trip |
Las horas de motor (2020) llegan a Wialon con el nombre trip_time. Para un sensor de
motohoras en Wialon hay que usar ese parámetro. Los campos que la ECU no informa (!3) no se
publican.
EQ — OBD-II
| Campo Rinho | Dato | Parámetro en Wialon |
|---|---|---|
1 | VIN | No se publica |
2 | RPM | rpm |
3 | Velocidad de la ECU (km/h) | wh_speed |
B | Odómetro (km) | odometer |
14 | Combustible total consumido (L) | odoliter |
15 | Nivel de combustible (%) | fuel_lvl |
2A | Temperatura del refrigerante (°C) | refr_temp |
2C | Presión de aceite (kPa) | oil_press |
Para cualquier otro dato de la ECU (consumo instantáneo, torque, etc.) se usa un reporte de usuario
con ECU dentro del campo AP.
7. Datos propios: el campo AP
Wialon decodifica un campo opcional AP (parámetros adicionales) en cualquier trama TAIP,
con el mismo esquema que Wialon IPS. Cada parámetro aparece en Wialon con el nombre que le pone el
equipo: sirve para sensores BLE, contadores, horómetro, batería interna, temperaturas o cualquier
valor de EVAL, sin pedir cambios en el
parser.
>RCQ00…<datos del reporte>;AP=temp1:2:25.50,door:1:1,driver:3:JUAN;#0017;ID=865413053386354;*26<| Parte | Formato |
|---|---|
| Ubicación | Al final de los datos, antes de ;#<nro>. En ER va después del bloque CAN |
| Cada parámetro | nombre:tipo:valor, separados por coma |
| Nombre | Letras, números y guion bajo, de 1 a 32 caracteres |
| Tipo | 1 entero, 2 decimal, 3 texto |
| Valor | Sin ; , : < > * |
Cómo se comporta Wialon
| Caso | Resultado |
|---|---|
| Entero, decimal, texto, negativos | Se publican con su tipo |
El nombre coincide con un parámetro base (ej. pwr_int) | Gana el valor de AP |
Valor que no coincide con el tipo (abc en un entero) | Se descarta ese parámetro; el resto se publica |
Valor vacío (fl1:1:) | No se publica |
| Tipo distinto de 1, 2 o 3 | Se descarta |
| Nombre de más de 32 caracteres | Se descarta |
| Nombre repetido en la misma trama | Queda el último valor |
| 15 parámetros en una trama | Llegan todos |
Etiqueta distinta de AP (ej. PA=) | Se ignora sin error |
| Trama sin AP | Se interpreta igual que siempre |
Armar el AP en el equipo
El AP se arma con un reporte de usuario
que copia una trama nativa y le agrega el campo. El patrón sirve para cualquier familia
($RCQ| #| QCQ,5,100, $RER| #| QER,5,200, $RBQ| #| QBQ,5,120, …):
// UC00: trama CQ con señal, tensión, velocidad, entrada 0 y canal de envío
>SUC00 $RCQ| #| QCQ,5,100| $;AP=rpt:1:| $'RNU'| $,csq:1:| $'CSQ'| $,vcc:1:| $'V'| $,in0:1:| $'IN(0)'| $,pwr:2:| $'V/100'| $,vel:2:| $'VEL'| $,canal:3:| $'CHN'<
// Reporte cada vez que vence TD00 con la ignición encendida
>SRL00E;TRG=TD00+;CND=IGN;ACC={GU000L;@LOG}<En Wialon aparecen rpt, csq, vcc, in0, pwr, vel y canal (WIFI o GPRS).
Cada expresión entre comillas simples ('CSQ', 'V/100') tiene que ir dentro de un tramo $.
Suelta, el equipo la toma como comando y el reporte sale cortado. Una plantilla de más de ~220
caracteres puede ser rechazada sin respuesta: verificar con >QUC00< que quedó guardada.
Ejemplos listos en el configurador: el nivel de varillas de combustible BLE
(;AP=fl1:1:2997,ag1:1:3,…) y el resto de las recetas que reportan a Wialon.
8. Wialon IPS en detalle
Los modelos IoT (Zero, Spider y Smart) hablan también Wialon IPS: login #L#, datos #D# y
datos cortos #SD#, por TCP. Está disponible desde el firmware 1.09.19; se recomienda 1.09.24
o superior, que completa los comandos SWL, QWL y QWD. La receta está en la
sección 3.
Puerto y login
Respuestas de Wialon Hosting al login de un equipo dado de alta como Rinho IPS sin contraseña:
| Puerto | Login enviado | Respuesta |
|---|---|---|
22500 | #L#<IMEI>;NA | #AL#1: aceptado |
22500 | #L#<IMEI>; (contraseña vacía) | #AL#0: rechazado |
22500 | #L#<IMEI>;otra | #AL#01: contraseña incorrecta |
20332 | #L#<IMEI>;NA | #AL#0: rechazado |
- El puerto es el del tipo de dispositivo:
22500paraRinho IPS. El20332es el del tipo genéricoWialon IPSy rechaza a una unidad dada de alta comoRinho IPS. - Sin contraseña en Wialon, el equipo tiene que mandar
NA(>SWLNA<). Con contraseña, la misma en los dos lados. - Un login rechazado no deja rastro en Wialon: la unidad simplemente no recibe mensajes. En el
equipo se ve porque
>QBU<o>QDL<no bajan. Después de 5 intentos el equipo espera 60 segundos y prueba por el otro canal (WiFi o celular).
Qué publica Wialon
Del paquete #D#, siempre:
| En Wialon | Dato |
|---|---|
| Posición, velocidad, rumbo, altitud, satélites | GPS |
hdop | HDOP |
Entradas in1 … in8 | El mismo byte que en TAIP: in8 es la ignición |
Salidas out1, out2 | XP0, XP1 |
adc1 | Tensión principal (V) |
adc2 | Batería de respaldo (V) |
Y los parámetros de la plantilla, con el nombre que se les ponga. Las plantillas de esta nota
usan los mismos nombres que Wialon le da a TAIP (rep_num, cel_level, pwr_int, rpm,
fuel_lvl, …): la misma plantilla WLP sirve para los dos protocolos, y se puede cambiar de
protocolo sin tocar los sensores.
La plantilla del equipo
QWD0 arma el paquete #D# completo y termina en NA;. Lo que sigue en los tramos $ son los
parámetros, con el formato nombre:tipo:valor del campo AP:
>SUC00 QWD0| $rep_num:1:| #| $,cel_level:1:'CSQ',pwr_int:2:'V/100'<
#D#101126;140806;2746.8504;S;06415.5070;W;0;358;199;12;0.1;131;0;11.73,3.91;NA;rep_num:1:00,cel_level:1:99,pwr_int:2:11.67| Detalle | Comportamiento verificado |
|---|---|
# (número de evento) | Sale como está escrito en la regla: el evento 31 llega como 31 |
Eventos con letras (1E, 0A) | No son un entero válido: Wialon descarta rep_num. Usar eventos 00 a 99 |
'ECU(n;0)' sin bus CAN | Llega 0, no vacío |
'OT' (odómetro del equipo) | En metros |
'CHN' (canal de envío) | No se resuelve en Wialon IPS: llega el texto 'CHN'. Sólo funciona en TAIP |
| Largo | Una plantilla de más de ~220 caracteres puede ser rechazada sin respuesta. Verificar con >QUC00< que quedó guardada |
Para ver la trama que el equipo mandaría, sin enviarla:
>QWD0<.
9. Número de evento
Wialon no lee el número de evento igual en todas las tramas:
| Trama | Cómo lo lee | Ejemplo: evento 31 |
|---|---|---|
| CQ, EQ | Hexadecimal | rep_num = 49 |
| BQ, ER, HQ, HV, CV | Decimal | rep_num = 31 |
| Wialon IPS (plantillas de esta nota) | Tal cual se escribió | rep_num = 31 |
En TAIP ocurre con y sin AP, y ya se informó a Wialon. Mientras tanto:
- Para eventos del
00al09no hay diferencia. - Al traducir eventos en Wialon (sensor sobre
rep_num), cargar el valor según la familia de trama: en CQ y EQ, el número leído en hexadecimal.
10. Plantillas WLP por modelo
Plantillas de unidad para importar en Wialon (Propiedades de la unidad → Importar desde WLP).
Cada una sirve para TAIP y para Wialon IPS (con las plantillas de equipo de la
sección 3): una unidad Rinho IPS usa la misma plantilla que una TAIP del
mismo modelo.
| Modelo | Plantilla (TAIP y Rinho IPS) | Sensores |
|---|---|---|
| Zero IoT | rinho-zero-iot.wlp | Ignición, tensión, batería de respaldo, IN0-IN1, XP0, señal, evento |
| Spider IoT | rinho-spider-iot.wlp | Lo anterior con IN0-IN2 y XP0-XP1, más los 8 sensores CAN |
| Smart IoT | rinho-smart-iot.wlp | Lo anterior con IN0-IN6, más los 8 sensores CAN |
| Sensor | Tipo en Wialon | Parámetro |
|---|---|---|
| Ignición | Ignición | in8 |
| Tensión principal | Voltaje | pwr_int |
| Batería de respaldo | Voltaje | adc2 (sólo llega en Wialon IPS) |
| Entrada IN0, IN1, … | Digital | in1, in2, … |
| Salida XP0, XP1 | Digital | out1, out2 |
| Señal celular | Personalizado | cel_level |
| Evento | Personalizado | rep_num |
| RPM | Tacómetro | rpm |
| Nivel de combustible | Nivel de combustible | fuel_lvl |
| Temperatura de motor | Temperatura | refr_temp |
| Presión de aceite | Personalizado | oil_press |
| Odómetro del vehículo | Kilometraje | odometer |
| Horas de motor | Motohoras | trip_time |
| Combustible consumido | Consumo absoluto de combustible | odoliter |
| Acelerador | Personalizado | acc (sólo en TAIP: la plantilla IPS no lo incluye por largo) |
Las plantillas se probaron en Wialon Hosting:
- TAIP, en una unidad Spider IoT: con una trama ER de valores conocidos, Wialon calculó RPM 1234, combustible 50 %, temperatura 85 °C, presión 300 kPa, odómetro 20000 km, horas de motor 1500 y consumo 10000 L.
- Wialon IPS, en una unidad Rinho IPS: ignición, tensión, batería de respaldo, entradas, señal, evento y los sensores CAN calcularon con las plantillas de equipo de la sección 3.
Notas:
- Salidas: la trama trae XP0 y XP1, por eso las plantillas de Spider y Smart incluyen dos.
- El sensor Evento va sin tabla de textos: los números de evento dependen de cómo esté configurado cada equipo. Cargarlos según las reglas del equipo y la nota sobre el número de evento.
- Los demás parámetros del campo AP (sensores BLE, contadores…) se agregan como sensores nuevos con el nombre que use el reporte de usuario del equipo.
11. Comandos desde Wialon
Wialon puede mandar comandos al equipo, en TAIP y en Wialon IPS: se definen en la unidad
como mensaje personalizado (custom_msg) con el comando Rinho completo, por ejemplo >QVR<.
Verificado en los dos protocolos con un comando >STAG…< enviado desde Wialon, que cambió la
etiqueta del equipo.
Las plantillas incluyen dos comandos de consulta: Versión de equipo (>QVR<) y Posición
actual (>QCQ<).
- En TAIP (UDP) el comando sale cuando el equipo vuelve a comunicarse (con el próximo reporte o keep-alive): un equipo que reporta cada pocos segundos lo recibe enseguida.
- Wialon registra el envío del comando, pero no guarda la respuesta del equipo (
RVR…) como mensaje. Para leerla, usar el configurador o una regla que mande la información en un reporte.
Un comando que acciona una salida (corte de motor >SSSXP0011<, por ejemplo) se ejecuta apenas
llega, con el vehículo en la condición que esté. Para cortes de motor conviene una regla en el equipo
que solo corte a baja velocidad, y que el comando de Wialon active esa regla en lugar de la salida.
12. Si algo no aparece en Wialon
- No llega nada (TAIP):
>QIP0<y>QCXIP<. El puerto tiene que ser el del tipo de dispositivo de la unidad, y el ID único el que el equipo manda enID=(>QID<). - No llega nada (Wialon IPS): casi siempre es el login.
>QWL<tiene que devolver la contraseña de la unidad, oNAsi no tiene; el puerto,22500paraRinho IPS. - La cola no baja (
>QBU<o>QDL<con pendientes): el servidor no confirma. Si se acaba de cambiar de protocolo, ver cambiar de protocolo. - Llegan tramas repetidas o con atraso: el equipo no recibe la confirmación y reenvía. Revisar el tipo de dispositivo de la unidad y que el puerto sea el de ese tipo.
- Falta un parámetro: ver la tabla de la sección 4. Lo que Wialon no publica se manda en el campo AP.
- Un parámetro AP no aparece: valor vacío, tipo equivocado o nombre de más de 32 caracteres.
- El evento no coincide: ver número de evento.
- Para ver la trama exacta:
>QWD0<en Wialon IPS;>QCQ<,>QER<, etc. en TAIP.
Ver También
- Reporte CQ - Formato de la trama base
- Reporte ER - CAN J1939
- Reporte EQ - OBD-II
- Reportes de usuario - Armar el campo AP
- Confirmación de la recepción - ACK
- Comando WL - Contraseña de Wialon IPS