🎨 Appearance

Choose how the dashboard looks. Your selection is remembered on this device.

⚙️ Environment Mode

⚡ LLM Engine

Choose between local model (node-llama-cpp) or Ollama server. Ollama enables GPU acceleration on Qualcomm Adreno devices. Changes require a server restart.

Loading engine info...
Use "Ollama Server" for GPU acceleration via OpenCL on Adreno GPUs, or "Local" for embedded CPU inference with no external dependencies.
Absolute path to the GGUF model file (or a folder containing one). On the Rubik Pi this must point to a file that exists on the device. Changing it requires a restart.
Set to 99 for maximum GPU usage, 0 for CPU only (use 0 on the Rubik Pi / ARM).

Hardware Configuration

Configure the API endpoints for your greenhouse hardware. These endpoints will be called by the AI to control the environment.

🌱 Optimal Ranges

Set the optimal environment ranges. The AI uses these to decide when to activate devices, and metrics uses the midpoints for deviation tracking.

Used to fetch outdoor weather from Open-Meteo and include it in AI reasoning.
No location configured.

🛡️ Safety Settings

Deterministic guardrails that override the AI agent. When a reading enters a danger zone, the matching relay is forced and the agent cannot change it until the reading returns to a safe range. These mirror the receiver firmware's own thresholds.

When disabled, the AI has full control and these thresholds are ignored.

💡 Light Control (LDR)

Light turns ON when LDR value is below this value (dark room).
0=very dark · 800=dim · 2000=light · 3200=bright
LDR control is active from this hour. E.g. 7 = from 07:00.
Active until this hour. If end < start the window wraps overnight (e.g. 20→06).

💨 Fan Control

Fan turns ON when humidity rises above this value.
Fan stays ON for this long after humidity drops back below threshold.

🔥 Heating Control

Heating turns ON when temperature drops below this value.
Heating stays ON for this long after temperature rises back above threshold.

🔥 Heater

💡 Light

🌀 Exhaust Fan

🧠 AI Memory

What the AI remembers about your plants and environment.

Loading...

🤖 Autonomous Loop

LLM analysis diagnostics. If the LLM makes no function calls, a rule-based fallback issues commands when conditions are outside thresholds.

When enabled, the system will issue corrective commands based on threshold logic if the LLM fails to invoke device functions (common on Intel CPU backends).
Loading...

🔍 Gateway Debug

Inbound requests from gateway and outbound requests sent to gateway.

TimeDirSourceEndpointStatusSuccessError
Loading...

Sensor Data API

Send sensor readings to your greenhouse AI using this endpoint:

POST /api/sensors
{
  "device_id": 2,
  "device_name": "RESEARCH_IRELAND",
  "ts": "2026-03-11T14:30:00",
  "temperature": 22.50,
  "humidity": 65.00,
  "ldr": 450,
  "ldr_label": "dark",
  "soil_pct": 72,
  "light": true,
  "fan": false,
  "heating": false
}

Example with curl:

curl -X POST http://localhost:3000/api/sensors \ -H "Content-Type: application/json" \ -d '{"device_id":2,"device_name":"RESEARCH_IRELAND","ts":"2026-03-11T14:30:00","temperature":22.5,"humidity":65,"ldr":450,"ldr_label":"dark","soil_pct":72,"light":true,"fan":false,"heating":false}'