Saltar al contenido principal
Versión: Próxima

Rastreadores y sensores automatizados

Openbeehive registra la temperatura y la humedad — dentro y fuera de la colmena, además del peso de la colmena. Puedes rellenar estos datos a mano durante una inspección, o dejar que lo haga el hardware: una báscula de colmena, una sonda de temperatura del nido de cría o un sensor de humedad pueden enviar las lecturas directamente a la API de forma programada. Como la API es abierta, tus abejas pueden llevar su propio diario.

La idea

Un rastreador no es más que un pequeño cliente que, cada cierto tiempo, envía una lectura al endpoint CreateInspection. Cada lectura se convierte en un registro de inspección en la colmena correspondiente, y aparece de inmediato en la aplicación — en el registro de visitas de la colmena y en sus gráficos de desarrollo (Inspecciones).

sensor (DHT22 / DS18B20 / load cell)
│ reads temp / humidity / weight

microcontroller or Raspberry Pi
│ HTTP POST (JSON)

Openbeehive → InspectionService.CreateInspection → hive record + charts

Los campos climáticos

Campo JSONSignificadoUnidadSensor típico
tempHiveTemperatura dentro de la colmena°CDS18B20, sonda de cría
tempOutsideTemperatura exterior / ambiente°CDHT22, BME280
humidityHiveHumedad relativa dentro de la colmena%SHT31, BME280
humidityOutsideHumedad relativa exterior%DHT22, BME280
weight_kgPeso de la colmenakgbáscula con celda de carga

Todos son opcionales — envía solo los que mida tu dispositivo.

Un rastreador mínimo

Cualquier lenguaje sirve; esto es HTTP puro. Una lectura cada 15–60 minutos es más que suficiente para el clima del nido de cría y las tendencias de la báscula.

#!/usr/bin/env bash
# Post one reading for hive h-7. Run from cron, a timer, or your device loop.
BASE="https://bees.example.com" # your self-hosted instance
HIVE="h-7"

curl -fsS -X POST \
"$BASE/openbeehive.v1.InspectionService/CreateInspection" \
-H "Content-Type: application/json" \
-d "{
\"hiveId\": \"$HIVE\",
\"tempHive\": $(read_sensor brood_temp),
\"tempOutside\": $(read_sensor ambient_temp),
\"humidityHive\": $(read_sensor brood_rh),
\"humidityOutside\": $(read_sensor ambient_rh),
\"weight_kg\": $(read_sensor scale),
\"note\": \"auto\"
}"

En un microcontrolador (ESP32/ESP8266, MicroPython o Arduino), haz el mismo POST con tu biblioteca HTTP después de leer los sensores.

Autenticación para clientes desatendidos

Un sensor funciona sin que haya una persona que inicie sesión, así que la configuración sin fricciones hoy en día es una instancia autoalojada de un solo usuario sin inicio de sesión configurado — el dispositivo publica directamente en tu propio servidor, en tu propia red. Consulta Autenticación.

Si tu instancia tiene el inicio de sesión habilitado, envía Authorization: Bearer <token>. Los tokens de API de primera clase para dispositivos están en la hoja de ruta; hasta entonces, mantén la publicación automatizada en una instancia autoalojada que controles.

Buenas prácticas

  • Una asignación de colmena por dispositivo. Mantén un hiveId estable por sensor; encuéntralo en la aplicación o mediante ListHives.
  • Cadencia razonable. De 15 a 60 min captura las tendencias del clima de cría y del peso sin saturar el registro. Cada hora es un valor predeterminado acertado.
  • Almacena en búfer cuando estés sin conexión. Si la red o el servidor están caídos, encola las lecturas localmente en el dispositivo y reenvíalas más tarde — el mismo principio offline-first que usa la aplicación.
  • Etiqueta las entradas automatizadas. Una note como "auto" facilita distinguir las lecturas de máquina de las visitas escritas a mano.
  • Cuida las unidades. Temperatura en °C, humedad en % (0–100), peso en kg.

Lo que obtienes

Una vez que las lecturas comienzan a fluir, los gráficos de desarrollo de cada colmena trazan la temperatura, la humedad y el peso a lo largo del tiempo — para que puedas ver cómo se calienta el nido de cría en primavera, detectar la termorregulación deficiente de una colonia sin reina o seguir la entrada de néctar en la báscula, todo sin abrir una sola colmena.