Live PoC ยท March 2026

AI Agents.
Solar-Powered.
Running Now.

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.

๐Ÿ”ฌ See the Stack โš™๏ธ MCP Tools
15โ€“30W Node power draw
18 tok/s Nemotron Nano on Jetson
11 MCP tools live
$0 Inference cost
1M Token context window
Architecture

The Full PoC Stack

Seven layers from raw Modbus register reads to operator Telegram alerts โ€” all running on a single solar-powered edge node with zero cloud dependency.

LAYER 7 OpenClaw Agent Autonomous 24/7 agent ยท Telegram / LINE operator UI ยท 13,700+ skills ยท MCP orchestration โœ“ Live
โ†“
LAYER 6 Ollama (local inference) On-device LLM server ยท OpenAI-compatible API ยท auto-discovers installed models โœ“ Live
โ†“
LAYER 5 NVIDIA Nemotron 3 Nano 4B active params ยท 1M token context ยท native tool calling ยท reasoning mode ยท 18 tok/s on Jetson โœ“ Live
โ†“
LAYER 4 Python MCP Servers solar-scada ยท weather ยท alerts โ€” 11 tools total bridging the AI to hardware and APIs โšก PoC
โ†“
LAYER 3 Modbus TCP / SunSpec Direct inverter reads ยท SunSpec Model 101/201/802 registers ยท pymodbus async client โšก PoC
โ†“
LAYER 2 Open-Meteo + Forecast.Solar Free weather APIs ยท 7-day GHI / cloud cover ยท PV power forecast calibrated to site kWp โœ“ Free API
โ†“
LAYER 1 Solar Hardware PV inverters ยท string combiners ยท energy meters ยท battery BMS ยท irradiance sensors โ†’ Phase 2
MCP Servers

11 Tools. 3 Servers.

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.

solar-scada
โšก

Solar SCADA Server

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.

weather
๐ŸŒค

Weather Forecast Server

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.

alerts
๐Ÿ“ฒ

Alert Dispatcher Server

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
How It Works

Agent in Action

When an operator asks the agent "Why is my site underperforming today?", OpenClaw + Nemotron orchestrates multiple tool calls automatically โ€” no hardcoded logic.

Agent reasoning trace # Operator: "Why is Node 001 underperforming today?" # Step 1 โ€” agent calls read_all_inverters() # โ†’ total_ac_power_kw: 6.2 (expected ~9.1 for this time of day) # โ†’ inverter-2: status="throttled", ac_power_kw: 1.1 # Step 2 โ€” agent calls read_string_combiner(unit_id=2) # โ†’ underperforming_strings: [3, 4] (current 4.2A vs avg 9.8A) # Step 3 โ€” agent calls compare_actual_vs_forecast(actual_kwh=28.4) # โ†’ performance_ratio: 0.68 (32% below forecast) # โ†’ current_weather: cloud_cover_pct: 12 (clear sky โ€” not weather) # Step 4 โ€” agent calls get_active_faults() # โ†’ inverter-2: INSULATION_FAIL (severity: critical) # Step 5 โ€” agent calls send_fault_notice(...) # โ†’ Telegram: "๐Ÿšจ FAULT: inverter-2 INSULATION_FAIL # Strings 3-4 show 57% current drop in clear conditions. # Diagnosis: PV string insulation degraded โ€” likely moisture ingress. # Action: Dispatch technician. Do not reconnect until IR scan complete."
bash # 1. Pull the edge model ollama pull nemotron-3-nano # 2. Install Python MCP dependencies pip install -r baseflow-poc/mcp/requirements.txt # 3. Configure site environment cp baseflow-poc/mcp/.env.example baseflow-poc/mcp/.env # โ†’ set MODBUS_HOST, TELEGRAM_BOT_TOKEN, SITE_LATITUDE/LONGITUDE # 4. Add MCP servers to OpenClaw config # โ†’ merge openclaw.mcp.json into ~/.openclaw/openclaw.json # 5. Start OpenClaw openclaw gateway --port 18789
Hardware

Edge Node Specs

Each Baseflow node is a self-contained AI compute unit. Solar-powered, passively cooled, and capable of running inference continuously at zero marginal cost.

Jetson Orin Nano

Phase 1 Edge Node
RAM8 GB unified
GPU1024 CUDA cores
Power draw7โ€“15W
Best modelNemotron Nano 4B
Inference speed18 tok/s
Cost~$200

Jetson AGX Orin

Phase 2 Full Node
RAM64 GB unified
GPU2048 CUDA cores
Power draw15โ€“30W
Best modelLlama 3.1 8B / Nano 4B
Inference speed25+ tok/s
Cost~$1,500

Nemotron 3 Nano 4B

Primary Edge Model
Active params3.2B (MoE)
Context window1M tokens
Tool callingNative โœ“
Reasoning modeToggleable โœ“
VRAM needed~3โ€“4 GB (Q4)
Ollama pullnemotron-3-nano

Nemotron 3 Super

Cloud Orchestrator
Active params12B (120B MoE)
Context window1M tokens
Agentic score85.6% PinchBench
Throughput5ร— vs Super v1
DeploymentNVIDIA NIM
Use caseMulti-site fleet AI
Rollout Plan

From PoC to Production

Four phases taking the Baseflow AI stack from local simulation to a production multi-site fleet across Thailand.

01

Foundation โ€” 3 Pilot Sites โ— Current Phase

OpenClaw + Ollama + Llama 3.1 8B on Jetson Orin Nano. Python MCP servers for Modbus and weather. Telegram alerts. Simulation mode for offline dev.

OpenClaw Ollama Llama 3.1 8B Python MCP Telegram alerts Jetson Orin Nano
02

Testnet โ€” Upgrade to Nemotron + Cloud

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.

Nemotron 3 Nano Nemotron 3 Super NIM Forecast.Solar MCP InfluxDB historian
03

Mainnet / TGE โ€” Fine-tuned Thai Solar Model

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.

NeMo LoRA fine-tune Thai solar model Llama 4 Scout (10M ctx) Investor reports
04

ASEAN Expansion โ€” Multi-language Fleet Intelligence

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.

Nemotron 3 Ultra Llama 4 Maverick multilingual ASEAN expansion Autonomous dispatch

Ready to Run Your Own Node?

Join the waitlist to be among the first Baseflow node operators in Thailand. Early operators receive enhanced staking yields and priority hardware allocation.