The Baseflow PoC runs OpenClaw + Ollama + NVIDIA Nemotron 3 on a solar-powered Jetson edge node. Three Python MCP servers bridge the AI agent to real solar hardware โ reading inverters, forecasting generation, and sending alerts to operators via Telegram.
Seven layers from raw Modbus register reads to operator Telegram alerts โ all running on a single solar-powered edge node with zero cloud dependency.
Each MCP server is a Python process that exposes typed tools to the OpenClaw agent. The agent calls them like functions โ with full schema validation and structured JSON responses.
Reads inverters, string combiners, energy meters, and battery BMS via Modbus TCP (SunSpec). Supports control commands โ power limiting, reactive power, connect/disconnect. Auto-simulates data when hardware is offline.
Fetches 7-day solar irradiance (GHI/DNI/DHI), cloud cover, and temperature from Open-Meteo. Pulls PV power forecasts from Forecast.Solar calibrated to the site's kWp, tilt, and azimuth. Compares actual vs expected generation.
Sends fault notices, daily generation reports, and performance alerts to operators via Telegram. Severity-based throttling (critical = instant, info = 5-min cooldown). Keeps in-memory alert history.
| Tool | Server | Description |
|---|---|---|
| read_inverter | scada | DC/AC power, voltage, current, temperature, energy today, fault code |
| read_all_inverters | scada | Fleet snapshot โ all inverters in parallel, total AC/DC kW, efficiency |
| read_string_combiner | scada | Per-string currents โ flags underperforming and open strings automatically |
| read_energy_meter | scada | Total generation, grid export/import, net power, power factor |
| read_battery | scada | SoC %, available kWh, charge/discharge power, temperature, cycle count |
| get_active_faults | scada | Decodes SunSpec fault bitmasks across all devices โ 16 fault types mapped |
| send_inverter_command | scada | Power limit, reactive power, grid connect/disconnect via Modbus write |
| get_weather_forecast | weather | 7-day hourly GHI, cloud cover, temp, wind โ Open-Meteo (free) |
| get_solar_forecast | weather | Expected kWh per hour for 7 days โ Forecast.Solar, site-calibrated |
| compare_actual_vs_forecast | weather | Performance ratio, deviation %, AI diagnosis of underperformance cause |
| send_alert / send_report / send_fault_notice | alerts | Telegram dispatch with throttling, fault notices, and formatted daily reports |
When an operator asks the agent "Why is my site underperforming today?", OpenClaw + Nemotron orchestrates multiple tool calls automatically โ no hardcoded logic.
Quick Start
Each Baseflow node is a self-contained AI compute unit. Solar-powered, passively cooled, and capable of running inference continuously at zero marginal cost.
Four phases taking the Baseflow AI stack from local simulation to a production multi-site fleet across Thailand.
OpenClaw + Ollama + Llama 3.1 8B on Jetson Orin Nano. Python MCP servers for Modbus and weather. Telegram alerts. Simulation mode for offline dev.
Swap edge model to Nemotron 3 Nano (1M context, reasoning mode). Deploy Nemotron 3 Super NIM for cross-site analysis. Add forecasting skills and SCADA history queries.
Fine-tune 8B model on Baseflow's accumulated Thai SCADA data via NVIDIA NeMo LoRA. Deploy via Ollama on all nodes. Llama 4 Scout for investor reporting with 10M-token site history context.
Nemotron 3 Ultra (H1 2026) for highest-stakes planning. Llama 4 Maverick multilingual support (Thai, Vietnamese, Indonesian). Autonomous fleet dispatch with human-in-the-loop approval.