Solar Assistant Complete Walkthrough: Monitor Your Solar System Like a Pro
Meta Description: Complete Solar Assistant setup guide for DIY solar. Install on Raspberry Pi, connect to your inverter, monitor production, configure automations, and integrate with Home Assistant.
Target Keywords: Solar Assistant setup guide, Solar Assistant Raspberry Pi, Solar Assistant inverter monitoring, solar monitoring software, Solar Assistant Home Assistant integration
If you’ve built a DIY solar system with a hybrid inverter — whether it’s a LuxPower, Deye, Growatt, or any of the dozens of supported brands — Solar Assistant is the single best monitoring tool you can install. It turns a $35 Raspberry Pi into a real-time solar monitoring station that rivals the cloud dashboards costing hundreds per year.
I’ve been running Solar Assistant on my own system for over a year, and it’s become the nerve center of my entire energy setup. This walkthrough covers everything from initial install to advanced automations.
Table of Contents
- What is Solar Assistant?
- What You Need
- Step 1: Flash the Raspberry Pi Image
- Step 2: Initial Network Setup
- Step 3: Connect to Your Inverter
- Step 4: Configure Monitoring
- Step 5: Understanding the Dashboard
- Step 6: Setting Up Automations
- Step 7: Home Assistant Integration
- Step 8: MQTT for Advanced Users
- Troubleshooting Common Issues
- Tips and Best Practices
What is Solar Assistant?
Solar Assistant is a lightweight Linux application that runs on a Raspberry Pi (or similar SBC) and communicates with your solar inverter over RS-232, RS-485, or USB. It provides:
- Real-time monitoring — Solar production, battery state of charge, grid consumption, and load power updated every few seconds
- Historical data — Graphs and statistics going back months or years
- Automations — Rules engine that can control your inverter settings based on conditions (e.g., switch to grid charging when battery hits 20%)
- MQTT integration — Publish all data to an MQTT broker for use in Home Assistant, Node-RED, Grafana, or custom scripts
- Multi-inverter support — Monitor multiple inverters on a single Pi
- Web dashboard — Accessible from any device on your network
The license is a one-time purchase (around $15 USD), and there are no recurring fees. All data stays on your local network — no cloud dependency.
Supported Inverters
Solar Assistant supports an impressive range of inverters:
- LuxPower — SNA5000, SNA6000, SNA8000, SNA12000 (all tested extensively)
- Deye — Sun-5K-SG03LP1, Sun-8K-SG01LP1, and most hybrid models
- Growatt — SPF3000-5000TL, MIN series, MID series
- Victron — All models via VE.Direct and VE.Bus
- MPP Solar — PIP series, Axpert series
- Voltronic — Infinisolar, Axpert King
- SolarEdge, Fronius, SMA — via Modbus TCP
- And many more — check solar-assistant.io/supported-inverters for the full list
What You Need
Hardware
| Component | Recommended | Estimated Cost |
|---|---|---|
| Raspberry Pi | Pi 4 Model B (2GB+ RAM) | $35–55 |
| microSD Card | 32GB+ Class 10 (Samsung EVO recommended) | $8–12 |
| Power Supply | Official Pi 4 USB-C PSU (5V 3A) | $8 |
| Communication Cable | RS-232/RS-485 to USB adapter OR direct USB | $5–15 |
| Ethernet Cable | Cat5e or better (recommended over WiFi) | $5 |
Total cost: ~$60–95 plus the Solar Assistant license (~$15).
Communication Cable Details
The cable you need depends on your inverter:
USB Direct (Easiest)
Most modern LuxPower and Deye inverters have a USB port. You just need a standard USB-A to USB-A cable (yes, both ends are A — it’s unusual but that’s what these inverters use). Some use USB-B.
RS-232/RS-485 (Most Common)
Many inverters expose an RJ45 or DB9 serial port. You’ll need:
- An RS-232 or RS-485 to USB adapter (FTDI chipset recommended for reliability)
- The correct pinout for your inverter (check Solar Assistant documentation)
Modbus TCP (Network)
Some inverters (SolarEdge, Fronius, SMA) communicate over your local network via Modbus TCP. No physical cable needed — just ensure both the Pi and inverter are on the same subnet.
> Pro tip: Spring for an FTDI-based USB adapter instead of the cheap CH340 clones. The CH340 adapters are notorious for dropping connections under load, and you’ll spend hours debugging “communication lost” errors before realizing it’s the $3 cable.
Step 1: Flash the Raspberry Pi Image
Solar Assistant provides a pre-built Raspberry Pi image. This is the recommended installation method — it includes the OS, Solar Assistant, and all dependencies pre-configured.
Download the Image
- Purchase a license at solar-assistant.io
- Download the latest image from your account dashboard
- The file will be named something like
solar-assistant-rpi-v2.x.x.img.gz
Flash to SD Card
Use Raspberry Pi Imager (recommended) or balenaEtcher:
Using Raspberry Pi Imager:
1. Download and install Raspberry Pi Imager from raspberrypi.com
- Click "Choose OS" → scroll down → "Use custom"
- Select the Solar Assistant .img.gz file
- Click "Choose Storage" → select your microSD card
- Click the gear icon (⚙️) for advanced options:
- Set hostname: solar-assistant
- Enable SSH: yes (password authentication)
- Set username/password: pi / [your password]
- Configure WiFi (optional — Ethernet recommended)
- Set locale/timezone
- Click "Write" and wait for it to complete
Using balenaEtcher:
1. Download balenaEtcher from balena.io/etcher
- Click "Flash from file" → select the .img.gz
- Select your SD card
- Click "Flash"
> Important: Don’t skip the hostname and SSH setup in Raspberry Pi Imager. You’ll need SSH access for initial configuration, and a known hostname makes it easier to find on your network.
Boot the Pi
- Insert the flashed SD card into your Pi
- Connect Ethernet cable (recommended) or ensure WiFi is configured
- Connect the USB-C power supply
- Wait 2–3 minutes for the first boot to complete
Step 2: Initial Network Setup
Find Your Pi on the Network
If you set a hostname, try:
ping solar-assistant.local
If that doesn’t work (mDNS isn’t universal), check your router’s DHCP leases or use:
From a Linux/Mac terminal
nmap -sn 192.168.1.0/24 | grep -B2 "Raspberry"
Or scan for the Solar Assistant web port
nmap -p 80 192.168.1.0/24 --open
Access the Web Dashboard
Open a browser and navigate to:
http://[PIIPADDRESS]
or
http://solar-assistant.local
You should see the Solar Assistant setup wizard.
Set a Static IP (Recommended)
For reliable monitoring, assign a static IP via your router’s DHCP reservation, or configure it on the Pi:
ssh pi@solar-assistant.local
sudo nano /etc/dhcpcd.conf
Add at the bottom:
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domainnameservers=192.168.1.1 8.8.8.8
Reboot:
sudo reboot
Step 3: Connect to Your Inverter
Physical Connection
- Power off your inverter (or at minimum, disable communication ports if your model supports hot-swap)
- Connect the communication cable between the inverter and the Raspberry Pi
- For USB: plug directly into any USB port on the Pi
- For RS-232/RS-485: connect the adapter to the Pi’s USB port, then wire to the inverter’s serial port
Configure in Solar Assistant
- Navigate to Settings → Inverter
- Select your inverter brand and model from the dropdown
- Select the communication port (usually
/dev/ttyUSB0for USB adapters) - Set the baud rate (most inverters default to 9600 — check your manual)
- Set the Modbus address (usually
1for single-inverter setups) - Click Save and then Test Connection
Verify Communication
If the connection is successful, you’ll see data populate on the dashboard within 10–30 seconds:
- Battery voltage and SOC
- PV input power
- Grid voltage/frequency
- Load power
- Inverter temperature
If you see “Communication error” or no data appears, jump to the Troubleshooting section.
Step 4: Configure Monitoring
Battery Settings
Navigate to Settings → Battery and configure:
- Battery capacity (Ah): Enter your total battery bank capacity
- Battery chemistry: LiFePO4 or Lead Acid (affects SOC calculation)
- Number of batteries: For accurate per-cell monitoring
- Low SOC alarm: Set to 10% for LiFePO4, 40% for Lead Acid
- High SOC alarm: Set to 100% (or your BMS cutoff)
Grid Settings
Navigate to Settings → Grid:
- Grid available: Yes (for grid-tied/hybrid) or No (for off-grid)
- Grid voltage nominal: 120V (US) or 230V (international)
- Grid cost per kWh: Enter your utility rate for cost calculations
- Feed-in tariff: If your utility pays for exported solar (enter rate)
Solar Panel Settings
Navigate to Settings → Solar:
- PV array size (W): Total nameplate capacity of your panels
- Panel orientation: Helps with production forecasting
- Expected daily production: Leave blank for automatic calculation
Step 5: Understanding the Dashboard
The Solar Assistant dashboard is information-dense but well-organized. Here’s what you’re looking at:
Power Flow Diagram
The center of the dashboard shows a real-time power flow diagram with four nodes:
- PV (Solar) — Current production in watts, daily total in kWh
- Battery — Current charge/discharge rate, SOC percentage
- Grid — Import/export power, daily totals
- Load — Current consumption, daily total
Animated lines show the direction of power flow. Green = solar, blue = grid, orange = battery.
Key Metrics to Watch
Daily Production vs Consumption Ratio
Your PV daily kWh divided by your Load daily kWh. A ratio above 1.0 means you’re producing more than you’re using — the excess goes to battery or grid export.
Battery Cycles
Under Settings → Battery → Statistics, you can see estimated charge cycles. LiFePO4 batteries are rated for 4,000–6,000 cycles; if you’re cycling more than once per day, your battery bank may be undersized.
Grid Import Hours
Track when and how much you’re pulling from the grid. If you’re importing during peak rate hours, you might benefit from adjusting your inverter’s time-of-use settings.
Historical Graphs
Click any metric to see historical data:
- Hourly view — Detailed power curves for the day
- Daily view — Bar charts of production, consumption, import, export
- Monthly view — Trends and seasonal patterns
- Yearly view — Year-over-year comparison
Step 6: Setting Up Automations
Solar Assistant’s automation engine lets you create rules that control your inverter based on real-time conditions. This is where Solar Assistant really shines over basic monitoring.
Example: Winter Night Grid Charging
Charge your battery from the grid overnight when rates are low, so you have a full battery for daytime use when solar production is minimal:
Automation: Winter Night Charge
Condition: Time is between 00:00 and 06:00
AND Battery SOC < 80%
AND Month is November, December, January, February
Action: Set grid charge enabled = ON
Set grid charge current = 30A
Otherwise: Set grid charge enabled = OFF
Example: Storm Prep (Full Charge)
When severe weather is forecast, ensure batteries are topped off:
Automation: Storm Prep Override
Condition: Battery SOC < 95%
AND Manual trigger (toggle switch in UI)
Action: Set grid charge enabled = ON
Set grid charge current = MAX
Example: Load Shedding
If battery drops critically low, reduce load:
Automation: Critical Battery
Condition: Battery SOC < 15%
Action: Send notification (email/MQTT)
Set output source priority = Grid
Otherwise: Set output source priority = Solar-Battery-Grid
Creating Automations
- Navigate to Settings → Automations
- Click Add Automation
- Set your conditions (AND/OR logic supported)
- Set actions (inverter register writes, notifications, MQTT publishes)
- Test with the Run Now button before enabling
Step 7: Home Assistant Integration
If you’re running Home Assistant (and if you have a DIY solar system, you probably should be), Solar Assistant integrates beautifully via MQTT.
Enable MQTT in Solar Assistant
- Navigate to Settings → MQTT
- Enter your MQTT broker details:
- Broker IP: Your Home Assistant IP (if using Mosquitto add-on) or external broker
- Port: 1883 (default) or 8883 (TLS)
- Username/Password: Your MQTT broker credentials
- Topic prefix:
solar_assistant(default)
- Click Save and Test Connection
Auto-Discovery in Home Assistant
Solar Assistant supports Home Assistant MQTT auto-discovery. Once MQTT is connected, entities will automatically appear in Home Assistant under Settings → Devices & Services → MQTT.
You’ll get entities like:
sensor.solarassistantbatterystateof_charge— Battery SOC (%)sensor.solarassistantpv_power— Solar production (W)sensor.solarassistantgrid_power— Grid import/export (W)sensor.solarassistantload_power— Load consumption (W)sensor.solarassistantbattery_power— Battery charge/discharge (W)sensor.solarassistantbattery_voltage— Battery voltage (V)sensor.solarassistantinverter_temperature— Inverter temp (°C)
Home Assistant Dashboard Card
Create an Energy dashboard card in Home Assistant:
In your Lovelace dashboard configuration
type: energy-distribution
link_dashboard: true
Or build a custom card:
type: entities
title: Solar System
entities:
- entity: sensor.solarassistantpv_power
name: Solar Production
icon: mdi:solar-power
- entity: sensor.solarassistantbatterystateof_charge
name: Battery
icon: mdi:battery
- entity: sensor.solarassistantgrid_power
name: Grid
icon: mdi:transmission-tower
- entity: sensor.solarassistantload_power
name: House Load
icon: mdi:home-lightning-bolt
Home Assistant Automations
With Solar Assistant data in Home Assistant, you can create powerful cross-system automations:
Example: Turn off AC when battery is low
automation:
trigger:
- platform: numeric_state
entityid: sensor.solarassistantbatterystateofcharge
below: 30
action:
- service: climate.turn_off
target:
entityid: climate.livingroom_ac
Example: Notify when daily production exceeds a record
automation:
trigger:
- platform: numeric_state
entityid: sensor.solarassistantpvpower_daily
above: 50
action:
- service: notify.mobile_app
data:
message: "🎉 New daily solar record: {{ states('sensor.solarassistantpvpowerdaily') }} kWh!"
Step 8: MQTT for Advanced Users
If you want to go beyond Home Assistant, Solar Assistant’s MQTT output is clean and well-structured.
Topic Structure
solarassistant/inverter1/batterystateof_charge/state → 85
solarassistant/inverter1/pv_power/state → 3200
solarassistant/inverter1/grid_power/state → -150
solarassistant/inverter1/load_power/state → 1800
solarassistant/inverter1/battery_power/state → 1250
solarassistant/inverter1/battery_voltage/state → 52.4
solarassistant/inverter1/device_mode/state → Solar/Battery
Grafana Integration
For beautiful historical charts beyond what Solar Assistant’s built-in graphs offer:
- Install InfluxDB and Telegraf on your server
- Configure Telegraf to subscribe to Solar Assistant MQTT topics and write to InfluxDB
- Build Grafana dashboards with InfluxDB as the data source
This gives you unlimited historical data retention, custom queries, and professional-grade visualizations.
Node-RED Processing
Use Node-RED to process Solar Assistant data for complex logic:
[{"id":"mqtt-in","type":"mqtt in","topic":"solarassistant/inverter1/batterystateof_charge/state"},
{"id":"function","type":"function","func":"if (parseFloat(msg.payload) < 20) { msg.payload = 'CRITICAL: Battery at ' + msg.payload + '%'; return msg; }"},
{"id":"telegram","type":"telegram sender","chatId":"YOURCHATID"}]
Troubleshooting Common Issues
“Communication Error” or No Data
Check 1: Verify the cable
- Ensure the USB cable is firmly seated at both ends
- Try a different USB port on the Pi
- For RS-232/RS-485: verify pinout matches your inverter manual
Check 2: Verify the port
ssh pi@solar-assistant.local
ls -la /dev/ttyUSB*
Should show /dev/ttyUSB0 (or similar)
If no ttyUSB device appears, the adapter isn’t being recognized. Try:
dmesg | tail -20
Look for USB device detection messages
Check 3: Baud rate mismatch
Different inverters use different baud rates. Common values:
- 9600 (most common default)
- 19200 (some Growatt models)
- 115200 (some newer models)
Try each one in Solar Assistant settings until data appears.
Check 4: Modbus address
If you have multiple inverters on one bus, each needs a unique Modbus address (1, 2, 3, etc.). Single-inverter setups should use address 1.
Intermittent Disconnections
Cause 1: Cheap USB adapter
CH340-based adapters are unreliable under continuous polling. Replace with an FTDI-based adapter.
Cause 2: Power supply issues
Underpowered Pi = USB brownouts. Use the official 5V 3A PSU, not a phone charger.
Cause 3: Long cable run
RS-232 signals degrade over long distances. Keep cables under 15 meters, or switch to RS-485 (which supports runs up to 1200 meters).
Dashboard Shows Incorrect SOC
Solar Assistant calculates SOC from voltage curves. If the reading seems off:
- Verify battery capacity is correctly entered in settings
- Perform a full charge cycle (charge to 100%, then let it calibrate)
- Check if your BMS is reporting SOC via the inverter — some inverters can relay BMS data directly
- For LiFePO4: voltage-to-SOC mapping is very flat in the 20–80% range, making voltage-based SOC inherently imprecise. BMS-reported SOC is more accurate.
Solar Assistant Won’t Update
- Check internet connectivity from the Pi:
ssh pi@solar-assistant.local
ping -c 3 solar-assistant.io
- Manual update:
sudo apt update && sudo apt upgrade -y
- If the update breaks something, reflash from the latest image (your configuration is exportable via Settings → Backup).
Tips and Best Practices
1. Set Up Backups
Export your Solar Assistant configuration regularly. Navigate to Settings → Backup → Download. Store the backup file somewhere safe. If your SD card dies (and they do), you can restore to a new one in minutes.
2. Use a Quality SD Card
Cheap SD cards fail. Solar Assistant writes data continuously, which burns through low-quality flash storage. Use a Samsung EVO Plus or SanDisk Extreme. Consider an SSD via USB for long-term reliability.
3. Monitor the Pi Itself
Add the Pi’s CPU temperature and SD card health to your monitoring:
CPU temperature
vcgencmd measure_temp
SD card health (wear indicator)
cat /sys/block/mmcblk0/device/life_time
4. Leverage Time-of-Use Data
If your utility charges different rates at different times, use Solar Assistant’s cost tracking to calculate your actual savings. Compare monthly bills before and after solar to measure true ROI.
5. Join the Community
The Solar Assistant community forum and Facebook group are active and helpful. Search before posting — most common issues have been solved multiple times.
6. Document Your Setup
Take photos of your wiring, note your settings, and save your configuration. Future you (or whoever inherits your system) will thank present you.
What’s Next?
With Solar Assistant running, you’ve got the monitoring foundation for a professional-grade solar installation. From here, consider:
- How to Size Your Solar Battery Bank — If you’re planning an upgrade
- LuxPower Inverter Complete Setup Guide — Detailed inverter configuration
- Adding a second inverter — Solar Assistant supports multi-inverter setups on a single Pi
- Grafana dashboards — For presentation-quality monitoring
Solar Assistant turns your DIY solar project from a “hope it’s working” guessing game into a data-driven energy management system. For $15 and an hour of setup time, it’s the best investment you’ll make in your solar journey.
Have questions about your Solar Assistant setup? Drop a comment below or check out our other DIY solar guides
Affiliate Disclosure: Some links in this article are affiliate links. We may earn a small commission if you purchase through them, at no extra cost to you. This helps support our content creation. We only recommend products we’ve personally used and trust.
Recommended Products for Solar Assistant Setup
- Raspberry Pi 4 Model B – The brain of your Solar Assistant system
- SanDisk 32GB MicroSD Card – Reliable storage for your Pi
- Victron SmartSolar MPPT Charge Controller – Compatible charge controller with VE.Direct
This article contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no cost to you.