No solo monitorea
La API no solo registra datos. Tambien sincroniza salidas, mantiene el estado operativo y alimenta reglas que luego se reflejan en el panel.
X Grow Labs une dispositivos de monitoreo, nodos de control y automatizaciones dentro de una misma plataforma. Puede trabajar con sensores ambientales, humedad de suelo, luz, CO2, pH, EC, nivel de agua y nuevos perfiles, siempre que el dispositivo pueda autenticarse, enviar JSON por HTTPS y reportar sus lecturas con nombres de medicion consistentes.
https://dashboard.xgrowlabs.com/api/v1
X Grow Labs no depende de una sola placa, una sola marca ni un solo paquete de sensores. La arquitectura separa identidad del dispositivo, perfil de capacidades, muestras de sensores, comandos pendientes y automatizacion. Gracias a eso, la misma web puede recibir nodos sencillos de temperatura y humedad, estaciones multipunto, controladores de reles o equipos mas especializados, todo dentro de un mismo flujo de trabajo.
La API no solo registra datos. Tambien sincroniza salidas, mantiene el estado operativo y alimenta reglas que luego se reflejan en el panel.
El modelo soporta familias de medicion y perfiles nuevos. Lo importante es que cada lectura llegue con una llave conocida para el dispositivo o para su perfil provisionado.
El sistema organiza dispositivos por tenant, ubicacion, tipo y estado. Eso facilita operar desde instalaciones pequeñas hasta entornos con varios espacios y controladores.
La web funciona como capa de orquestacion. Los dispositivos envian observaciones, la plataforma las ordena, el dashboard las presenta y las automatizaciones convierten esas lecturas en decisiones operativas sobre riego, ambiente o salidas fisicas.
Mide variables, consulta salidas y se identifica con su token.
Valida, registra telemetria y publica estados de control.
Muestra datos, activa reglas y prepara automatizaciones.
Para integrarse, un equipo no tiene que pertenecer a una marca especifica. Solo necesita cumplir un contrato sencillo: identificarse con un token propio, enviar peticiones HTTPS, hablar JSON y reportar sus mediciones con llaves de sensor coherentes con su perfil. A partir de ahi, la web puede incorporarlo al flujo completo de datos y automatizacion.
Primero se registra el device en la web. En ese momento se define su tipo, tenant, ubicacion y perfil de capacidades. Ese perfil es el que determina que sensores y actuadores se esperan para ese hardware.
Cada dispositivo recibe un token unico. Ese token autentica la comunicacion y vincula automaticamente cada request con el device y el tenant correctos.
El firmware puede enviar datos por lote usando metrics, readings o samples. Lo importante es que la llave de cada medicion coincida con una capacidad provisionada.
Si el equipo controla reles u otros actuadores, consulta el estado deseado desde la API, aplica cambios fisicos y confirma el resultado para mantener sincronizada la web con el hardware.
| Requisito | Que debe hacer el dispositivo | Resultado dentro de la web |
|---|---|---|
| Autenticacion | Enviar X-Device-Token en cada request |
La API resuelve device, tenant y permisos operativos |
| Telemetria | Mandar JSON con llaves y valores numericos | Las muestras se registran por sensor, device y tenant |
| Heartbeat | Enviar lecturas o consultar estado periodicamente | La plataforma actualiza last_seen_at, IP y estado online |
| Actuacion | Consultar reles y confirmar estado aplicado | El dashboard refleja salidas reales y cierra comandos pendientes |
La arquitectura esta preparada para crecer por perfiles. En la practica, un dispositivo personalizado puede integrarse siempre que se defina su conjunto de capacidades y que sus llaves de medicion entren al catalogo operativo esperado por la plataforma. Eso evita amarrar la web a un solo tipo de placa o sensor.
Este es el recorrido real dentro de la web, desde que se crea un dispositivo hasta que sus datos se convierten en informacion visible y acciones automatizadas.
El operador crea el dispositivo, lo asigna a un tenant y, si corresponde, a una ubicacion del cultivo.
El sistema genera sensores y actuadores esperados segun el tipo de hardware o su perfil de configuracion.
Se crea la credencial unica con la que el firmware podra autenticarse en cada llamada a la API.
El dispositivo envia muestras por lotes. La API guarda los valores, actualiza el estado operativo y registra firmware e IP.
La web consulta las metricas mas recientes y las presenta por dispositivo, ubicacion y contexto del cultivo.
Los procesos de automatizacion revisan condiciones, horarios, fases de cultivo y estado de actuadores.
Cuando una regla requiere accion, la plataforma deja un comando pendiente para que el dispositivo lo recoja al consultar la API.
El equipo aplica cambios, responde con ack y la web conserva la trazabilidad entre intencion, ejecucion y estado final.
No solo ves datos. Tambien obtienes estado vivo del hardware, historial operativo, sincronizacion entre interfaz y reles, y una base clara para escalar automatizaciones por entorno, tenant o fase de cultivo.
La plataforma fue organizada para que el crecimiento no dependa de reescribir la operacion central cada vez que entra un nuevo nodo. El escalado se resuelve por separacion de tenant, perfiles de dispositivo, llaves de sensor, lotes de telemetria y consultas controladas de actuadores.
Cada request se ata a un tenant. Eso permite atender varios proyectos o instalaciones sin mezclar datos, dispositivos, automatizaciones o dashboards.
La web no necesita una pantalla distinta por cada equipo. Lo que cambia es el perfil de sensores y actuadores que el sistema provisiona para ese dispositivo.
La API acepta lotes de lecturas y puede registrar varias muestras en una sola peticion, lo que reduce carga de red y simplifica la logica del firmware.
Las reglas y grow runs se ejecutan de manera desacoplada mediante procesos cron, lo que evita cargar a los dispositivos con logica pesada.
Los siguientes endpoints forman la superficie operativa actual para nodos de telemetria, control de salidas y tareas de automatizacion. Los ejemplos estan listos para copiar, adaptar e integrar con rapidez.
Recibe metricas numericas desde nodos IoT en formato metrics o readings.
https://dashboard.xgrowlabs.com/api/v1/telemetry
{
"metrics": {
"temperature": 25.3,
"humidity": 58.1
},
"at": "2026-05-27T12:00:00Z",
"firmware_version": "esp01_th_v1-1.4.2"
}
{
"ok": true,
"message": "Telemetria registrada.",
"data": {
"inserted": 2,
"device_id": 17
}
}
Formato optimizado para ESP32 con sensores indexados y lotes de samples.
https://dashboard.xgrowlabs.com/api/v1/telemetry/samples
{
"at": "2026-05-27T12:00:00Z",
"firmware_version": "esp32_soil6_env_v1-0.9.0",
"samples": [
{ "key": "air_temperature", "value": 24.8 },
{ "key": "air_humidity", "value": 56.4 },
{ "key": "soil_1", "value": 41 },
{ "key": "soil_2", "value": 39 }
]
}
{
"ok": true,
"message": "Muestras registradas.",
"data": {
"inserted": 4,
"device_id": 24
}
}
Devuelve el snapshot actual de salidas para que el firmware sincronice actuadores.
https://dashboard.xgrowlabs.com/api/v1/relays/state
curl -X GET "https://dashboard.xgrowlabs.com/api/v1/relays/state" \ -H "X-Device-Token: YOUR_DEVICE_TOKEN"
{
"ok": true,
"message": "OK",
"data": {
"device": {
"id": 12,
"hardware_uid": "esp01-4relay-lab-a"
},
"relays": {
"1": 1,
"2": 0,
"3": 0,
"4": 1
}
}
}
El dispositivo informa el estado fisico aplicado para cerrar comandos pendientes.
https://dashboard.xgrowlabs.com/api/v1/relays/ack
{
"relays": {
"1": 1,
"2": 0,
"3": 0,
"4": 1
}
}
{
"ok": true,
"message": "Reles actualizados.",
"data": {
"device": {
"id": 12,
"hardware_uid": "esp01-4relay-lab-a"
}
}
}
Dispara reglas y grow runs de todos los tenants desde un job externo.
https://dashboard.xgrowlabs.com/api/v1/cron/relays?token=YOUR_CRON_TOKEN
curl -X GET "https://dashboard.xgrowlabs.com/api/v1/cron/relays?token=YOUR_CRON_TOKEN"
{
"ok": true,
"message": "OK",
"data": {
"runs": [
{
"tenant_id": 3,
"name": "Cultivo Norte",
"result": {},
"grow_plan_result": {}
}
]
}
}
Permite probar automatizacion y calendario de un tenant especifico.
https://dashboard.xgrowlabs.com/api/v1/cron/relays/tenant/{tenant_id}?token=YOUR_CRON_TOKEN
curl -X GET "https://dashboard.xgrowlabs.com/api/v1/cron/relays/tenant/3?token=YOUR_CRON_TOKEN"
{
"ok": true,
"message": "OK",
"data": {
"tenant_id": 3,
"tenant": "Cultivo Norte",
"result": {},
"grow_plan_result": {}
}
}
Estos ejemplos muestran la idea general para distintos tipos de cliente. El objetivo es que cualquier equipo, desde un microcontrolador hasta un servicio intermedio, pueda entender como entrar al flujo de X Grow Labs.
Ideal para nodos de lectura y control. El firmware mide, empaqueta un JSON pequeño y lo envia directamente a la API.
POST /api/v1/telemetry/samples
Headers:
Content-Type: application/json
X-Device-Token: YOUR_DEVICE_TOKEN
Body:
{
"firmware_version": "esp32-grow-node-v1",
"samples": [
{ "key": "air_temperature", "value": 24.8 },
{ "key": "air_humidity", "value": 56.4 },
{ "key": "light_lux", "value": 18450 }
]
}
Funciona bien como puente entre varios sensores, protocolos locales y la API central. Puede consolidar lecturas y enviarlas en lotes.
Flujo sugerido: 1. Leer sensores locales o equipos por serial, Modbus o GPIO 2. Transformar lecturas a llaves compatibles 3. Enviar batches periodicos a /telemetry o /telemetry/samples 4. Consultar /relays/state si tambien controla salidas
Si tu hardware no puede salir directo a internet, un servicio intermedio puede autenticarse, normalizar nombres de medicion y reenviar datos hacia la plataforma.
Responsabilidades del integrador: - Recibir lecturas del hardware - Mapear nombres internos a llaves compatibles - Validar rangos y tipos numericos - Enviar payloads HTTPS a la API - Consultar reles y devolver ack cuando aplique
Hoy la plataforma ya contempla familias comunes para monitoreo de cultivo y control. Eso incluye temperatura, humedad, luz, humedad de suelo, CO2, pH, EC y nivel de agua, ademas de salidas como reles y displays. En terminos de producto, esto significa que la web puede representar nodos simples, nodos de ambiente, controladores de salidas y estaciones mas completas con varias entradas simultaneas.
Temperatura ambiente, humedad relativa, luz y variantes indexadas para dispositivos con multiples puntos de captura.
Humedad de suelo, CO2, pH, EC y nivel de agua para escenarios de monitoreo mas ricos o automatizacion guiada por datos.
Reles on/off, salidas por canal y actuadores adicionales definidos por perfil para convertir lecturas en acciones reales.
Si un dispositivo puede autenticarse y reportar valores numericos con claves consistentes, puede entrar al flujo operativo de la plataforma. Lo importante no es la marca del sensor, sino el contrato de integracion.
A medida que aparecen nuevas familias de sensores, la web puede extender sus perfiles y mantener una representacion ordenada sin romper el resto de la operacion.
En integraciones IoT, los problemas mas frecuentes no suelen venir del transporte, sino de desalineacion entre llaves de sensor, perfiles provisionados, autenticacion o frecuencia de polling.
Cuando agregues un sensor nuevo o un firmware nuevo, valida primero el contrato de llaves, el perfil del device y el endpoint correcto. Esa pequena disciplina es lo que permite que la web escale sin perder coherencia entre hardware, datos y automatizacion.