Micro Solar AI – Smart Solar Export Controller with ESP32
March 8, 2026 – 1:39 pmDIN-rail mounted, ready to deploy. Volume discounts available.
Intelligent Solar Energy Export Controller
Micro Solar AI is a compact, DIN-rail mountable IoT controller built on the ESP32 platform with hardwired Ethernet (LAN8720). It reads real-time power data from inverters and grid meters via Modbus RTU (RS485), integrates solar production and weather forecasts, and intelligently drives up to 4 digital outputs — maximizing self-consumption in residential and commercial PV installations. Unlike simple timer-based or threshold-based controllers, Micro Solar AI uses a predictive approach: it knows how much energy your panels will produce tomorrow and adjusts battery charging, load switching, and export strategies accordingly.
Key Features
Three Independent Modbus RTU Tasks Each task polls a separate Modbus slave device — inverter, grid meter, battery BMS, or any RS485 sensor. Fully configurable: slave ID, register address, function code (FC03/FC04), 16-bit or 32-bit word order, custom scaling (multiply/divide), and export mode for bidirectional meters. Polling intervals from 100ms to 60s per task. A built-in moving average filter (1–64 samples) smooths noisy readings before output decisions. Each output has independent ON/OFF thresholds with hysteresis, minimum ON and OFF timers to protect connected equipment, configurable fail-safe states, and consecutive bad-read counters before declaring a fault. Solar Forecast Integration Connects to the forecast.solar free API and retrieves hourly production estimates for up to 3 independent panel groups — each with its own orientation (azimuth), tilt (declination), and peak power (kWp). The dashboard displays a 48-hour bar chart showing today’s and tomorrow’s expected production. A system-wide efficiency factor (inverter losses, cable losses, dust/shading) adjusts the raw forecast to match real-world output. Automatic retry on API errors with intelligent caching to survive reboots. Weather Forecast Pulls 24-hour weather data from the Open-Meteo API: min/max temperature, hourly wind speed and gusts, cloud cover percentage, humidity, and precipitation. Configurable alerts with thresholds for:
- Frost warning — protect sensitive equipment when temperature drops below threshold
- Heat warning — activate cooling when temperature exceeds limit
- High wind alert — retract awnings or secure outdoor equipment
- Rain/precipitation risk — close greenhouse vents or trigger drainage
Smart Output Control Four digital outputs (via PCF8574 I2C expander) with per-channel configuration:
- Independent ON/OFF trigger thresholds with hysteresis
- Minimum ON time and minimum OFF time (equipment protection)
- Active-high or active-low output polarity
- Fail-safe state (ON or OFF) when communication is lost
- Consecutive fault counter — tolerates brief glitches
- Switch between AUTO (algorithm-driven) and MANUAL mode via web or Modbus TCP
Battery SOC Strategy Reads battery state-of-charge from any Modbus-connected BMS or hybrid inverter. Automatically adjusts the minimum SOC setpoint based on tomorrow’s solar forecast:
- Sunny day expected ? allows deeper discharge (lower min SOC) to maximize solar absorption
- Cloudy day expected ? charges more conservatively (higher min SOC) to ensure backup capacity
- Configurable cloud cover threshold and SOC limits for sunny vs cloudy scenarios
- Optional: writes the calculated min SOC back to the inverter via Modbus register
Data Logging & History 288-entry RAM ring buffer with 5-minute resolution, plus 7-day CSV archive stored on flash (LittleFS). View interactive history charts directly in the browser — no external tools needed. Data survives reboots thanks to automatic filesystem persistence. Log can be cleared remotely via the web interface. Email & SMTP Alerts Three independent alarm channels, each monitoring any input parameter (voltage, temperature, power). Configurable trigger threshold with hysteresis and direction (above/below). State machine tracks alarm lifecycle: NORMAL ? ACTIVE ? CLEARED. Sends formatted email notifications via STARTTLS or SSL with bilingual templates (English and Romanian). MQTT Publishing Publishes complete device status as a JSON payload to any MQTT broker (Mosquitto, HiveMQ, AWS IoT, etc.) at configurable intervals. Supports authenticated connections with username/password. Perfect for integration with Home Assistant, Node-RED, Grafana, or custom dashboards. Zabbix Monitoring Native Zabbix sender protocol support — pushes key-value pairs directly to a Zabbix server or proxy. Ideal for enterprise environments where centralized monitoring and alerting infrastructure is already in place. Configuration Import/Export Full device configuration can be exported as a JSON file (backup) and imported on the same or different unit (restore/clone). Makes it easy to deploy multiple units with identical settings or recover from a factory reset.
Connectivity
| Ethernet | LAN8720 PHY, 10/100 Mbps, auto-MDIX, DHCP or static IP |
| WiFi | 802.11 b/g/n, STA mode (connect to router) or AP mode (192.168.1.25) for initial setup |
| RS485 | Modbus RTU, half-duplex, configurable baud rate (9600–115200), 3 independent tasks |
| Modbus TCP | Port 502, up to 4 concurrent clients, coils + discrete inputs + input/holding registers |
| Web Dashboard | Port 80 — read-only monitoring with real-time WebSocket push |
| Config & Control | Port 8080 — configuration + manual output control, separate credentials |
| OTA Update | Port 8081 — upload new firmware over the network, no physical access needed |
| mDNS | Access via http://micro-solar-ai.local — no IP address needed |
Web Interface
Dashboard (Port 80) Real-time overview of all Modbus readings (raw, scaled, averaged, export watts), output states, failure counters, and error messages. Solar forecast with 48-hour bar chart. Weather forecast with temperature, wind, cloud, and precipitation data. History tab with interactive 7-day charts. Info tab with device details, network status, and uptime. All data updates live via WebSocket — no page refresh needed. Configuration & Control (Port 8080) Tabbed interface with two main views:
- Configuration tab — all device settings: network, Modbus tasks, thresholds, solar panels, weather alerts, MQTT, Zabbix, email, alarms, authentication. Save, Reboot, Export, and Import buttons.
- Control tab — live output control: AUTO/MANUAL mode switch, individual output toggles, ALL ON/ALL OFF, live status grid (firmware, uptime, network, IP, free heap, temperature, task values, solar production), system actions (Reboot, Clear Log, Solar Reset).
Bilingual user interface: English and Romanian, switchable from the configuration page.
Security
- Port separation — monitoring (port 80) and control (port 8080) use independent credentials
- HTTP Basic Auth on all ports — no anonymous access
- OTA protected — firmware upload requires control credentials
- Read-only dashboard — port 80 cannot modify outputs, reboot, or clear logs
Hardware Specifications
| MCU | ESP32 dual-core Xtensa LX6, 240 MHz, 520 KB SRAM, 4 MB Flash |
| Ethernet | LAN8720A PHY, 10/100 Mbps, RJ45 connector |
| RS485 | MAX485 / SP3485 transceiver, screw terminal |
| Digital Outputs | 4x relay/SSR drivers via PCF8574 I2C expander, active-high or active-low |
| Temperature | Dallas DS18B20 (1-Wire), -55 to +125 C, 0.5 C accuracy |
| Power Supply | 12–24V DC, onboard regulator |
| Mounting | DIN-rail mount |
| Storage | LittleFS on 4MB flash — logs, config cache, solar cache |
| Firmware | Arduino framework, OTA-updatable, safe boot counter |
Use Cases
- Solar self-consumption optimization — read the grid meter and automatically switch loads (water heater, pool pump, EV charger) to absorb excess solar production instead of exporting to the grid
- Zero-export control — keep grid export at zero by managing multiple loads in priority order based on available surplus power
- Battery strategy optimization — adjust battery min SOC based on tomorrow’s weather forecast, maximizing solar utilization while maintaining backup capacity
- Greenhouse automation — combine temperature sensor + weather forecast for heating/cooling and frost protection
- Industrial monitoring — read any Modbus RTU device and publish data to MQTT/Zabbix with configurable alerts
- Multi-inverter installations — monitor up to 3 Modbus devices simultaneously with independent polling and scaling
What’s in the Box
- 1x Micro Solar AI controller (DIN-rail mount)
- 1x DS18B20 temperature sensor with cable
- 1x Quick start guide
Free shipping within EU. Volume discounts available for 5+ units.
Contact us for custom configurations and OEM inquiries.
Orders & inquiries: florin@microelemente.r0