X Grow Labs
X Grow Labs API Docs
Guia de integracion para dispositivos, sensores y automatizacion del cultivo.
Integracion abierta

Una API clara para conectar dispositivos, leer sensores y automatizar operaciones.

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.

Base API https://dashboard.xgrowlabs.com/api/v1
Protocolo de integracion HTTPS, JSON y token por dispositivo
Modelo operativo Telemetria, control de salidas y automatizacion por tenant
Overview

La plataforma esta pensada para crecer con tu operacion.

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.

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.

No solo sirve a un sensor

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.

No solo sirve a un solo nodo

El sistema organiza dispositivos por tenant, ubicacion, tipo y estado. Eso facilita operar desde instalaciones pequeñas hasta entornos con varios espacios y controladores.

Idea central del producto

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.

Mapa del flujo

Como viajan los datos dentro del sistema

Dispositivo

Mide variables, consulta salidas y se identifica con su token.

API

Valida, registra telemetria y publica estados de control.

Dashboard y reglas

Muestra datos, activa reglas y prepara automatizaciones.

Integration

Como puede comunicarse un dispositivo con la plataforma

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.

1. Alta y perfil del dispositivo

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.

2. Token e identidad operativa

Cada dispositivo recibe un token unico. Ese token autentica la comunicacion y vincula automaticamente cada request con el device y el tenant correctos.

3. Envio de muestras

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.

4. Control de salidas

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
Sobre sensores nuevos o hardware personalizado

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.

Workflow

Flujo completo entre hardware, API, dashboard y automatizacion

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.

1. Registro en la web

El operador crea el dispositivo, lo asigna a un tenant y, si corresponde, a una ubicacion del cultivo.

2. Provisioning de capacidades

El sistema genera sensores y actuadores esperados segun el tipo de hardware o su perfil de configuracion.

3. Generacion de token

Se crea la credencial unica con la que el firmware podra autenticarse en cada llamada a la API.

4. Ingesta de telemetria

El dispositivo envia muestras por lotes. La API guarda los valores, actualiza el estado operativo y registra firmware e IP.

5. Lectura en dashboard

La web consulta las metricas mas recientes y las presenta por dispositivo, ubicacion y contexto del cultivo.

6. Evaluacion de reglas

Los procesos de automatizacion revisan condiciones, horarios, fases de cultivo y estado de actuadores.

7. Comandos pendientes

Cuando una regla requiere accion, la plataforma deja un comando pendiente para que el dispositivo lo recoja al consultar la API.

8. Confirmacion fisica

El equipo aplica cambios, responde con ack y la web conserva la trazabilidad entre intencion, ejecucion y estado final.

Que gana tu web con este flujo

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.

Scale

Escalabilidad, apertura y evolucion del sistema

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.

Escala por tenants

Cada request se ata a un tenant. Eso permite atender varios proyectos o instalaciones sin mezclar datos, dispositivos, automatizaciones o dashboards.

Escala por perfiles de hardware

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.

Escala por volumen de muestras

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.

Escala por automatizacion

Las reglas y grow runs se ejecutan de manera desacoplada mediante procesos cron, lo que evita cargar a los dispositivos con logica pesada.

Reference

Referencia activa de endpoints

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.

Endpoint 1

Ingesta de telemetria

Recibe metricas numericas desde nodos IoT en formato metrics o readings.

POST X-Device-Token
https://dashboard.xgrowlabs.com/api/v1/telemetry
Request
{
  "metrics": {
    "temperature": 25.3,
    "humidity": 58.1
  },
  "at": "2026-05-27T12:00:00Z",
  "firmware_version": "esp01_th_v1-1.4.2"
}
Response
{
  "ok": true,
  "message": "Telemetria registrada.",
  "data": {
    "inserted": 2,
    "device_id": 17
  }
}
Endpoint 2

Ingesta por muestras

Formato optimizado para ESP32 con sensores indexados y lotes de samples.

POST X-Device-Token
https://dashboard.xgrowlabs.com/api/v1/telemetry/samples
Request
{
  "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 }
  ]
}
Response
{
  "ok": true,
  "message": "Muestras registradas.",
  "data": {
    "inserted": 4,
    "device_id": 24
  }
}
Endpoint 3

Estado deseado de reles

Devuelve el snapshot actual de salidas para que el firmware sincronice actuadores.

GET X-Device-Token
https://dashboard.xgrowlabs.com/api/v1/relays/state
Request
curl -X GET "https://dashboard.xgrowlabs.com/api/v1/relays/state" \
  -H "X-Device-Token: YOUR_DEVICE_TOKEN"
Response
{
  "ok": true,
  "message": "OK",
  "data": {
    "device": {
      "id": 12,
      "hardware_uid": "esp01-4relay-lab-a"
    },
    "relays": {
      "1": 1,
      "2": 0,
      "3": 0,
      "4": 1
    }
  }
}
Endpoint 4

Confirmacion de salida

El dispositivo informa el estado fisico aplicado para cerrar comandos pendientes.

POST X-Device-Token
https://dashboard.xgrowlabs.com/api/v1/relays/ack
Request
{
  "relays": {
    "1": 1,
    "2": 0,
    "3": 0,
    "4": 1
  }
}
Response
{
  "ok": true,
  "message": "Reles actualizados.",
  "data": {
    "device": {
      "id": 12,
      "hardware_uid": "esp01-4relay-lab-a"
    }
  }
}
Endpoint 5

Ejecucion global de automatizaciones

Dispara reglas y grow runs de todos los tenants desde un job externo.

GET Query token
https://dashboard.xgrowlabs.com/api/v1/cron/relays?token=YOUR_CRON_TOKEN
Request
curl -X GET "https://dashboard.xgrowlabs.com/api/v1/cron/relays?token=YOUR_CRON_TOKEN"
Response
{
  "ok": true,
  "message": "OK",
  "data": {
    "runs": [
      {
        "tenant_id": 3,
        "name": "Cultivo Norte",
        "result": {},
        "grow_plan_result": {}
      }
    ]
  }
}
Endpoint 6

Ejecucion por tenant

Permite probar automatizacion y calendario de un tenant especifico.

GET Query token
https://dashboard.xgrowlabs.com/api/v1/cron/relays/tenant/{tenant_id}?token=YOUR_CRON_TOKEN
Request
curl -X GET "https://dashboard.xgrowlabs.com/api/v1/cron/relays/tenant/3?token=YOUR_CRON_TOKEN"
Response
{
  "ok": true,
  "message": "OK",
  "data": {
    "tenant_id": 3,
    "tenant": "Cultivo Norte",
    "result": {},
    "grow_plan_result": {}
  }
}
Examples

Ejemplos por tipo de integracion

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.

ESP32 o ESP8266

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 }
  ]
}
Raspberry Pi o gateway local

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
Servicio intermedio o integrador propio

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
Sensors

Sensores, actuadores y capacidades que la web puede modelar

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.

Sensores ambientales
Lecturas de clima

Temperatura ambiente, humedad relativa, luz y variantes indexadas para dispositivos con multiples puntos de captura.

Sensores de proceso
Mediciones agronomicas

Humedad de suelo, CO2, pH, EC y nivel de agua para escenarios de monitoreo mas ricos o automatizacion guiada por datos.

Actuadores
Control operativo

Reles on/off, salidas por canal y actuadores adicionales definidos por perfil para convertir lecturas en acciones reales.

Compatibilidad practica

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.

Escalado por catalogo

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.

Errors

Errores comunes y como evitarlos

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.

  • 401 Unauthorized: falta X-Device-Token, el token no existe o el firmware envia un formato invalido.
  • 422 Unprocessable Entity: el payload es valido como JSON, pero no coincide con la estructura o las capacidades esperadas por el dispositivo.
  • 400 Bad Request: falta metrics, readings o samples, o el dispositivo no quedo bien vinculado a tenant.
  • 403 Forbidden: el token de cron no coincide y la automatizacion queda bloqueada por seguridad.
  • Lecturas sin impacto visual: normalmente indica que la llave reportada por el firmware no coincide con una capacidad provisionada para ese perfil.
Recomendacion de integracion

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.