Solar Assistant Complete Walkthrough: Monitor Your Solar System Like a Pro

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

  1. What is Solar Assistant?
  2. What You Need
  3. Step 1: Flash the Raspberry Pi Image
  4. Step 2: Initial Network Setup
  5. Step 3: Connect to Your Inverter
  6. Step 4: Configure Monitoring
  7. Step 5: Understanding the Dashboard
  8. Step 6: Setting Up Automations
  9. Step 7: Home Assistant Integration
  10. Step 8: MQTT for Advanced Users
  11. Troubleshooting Common Issues
  12. 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

  1. Purchase a license at solar-assistant.io
  2. Download the latest image from your account dashboard
  3. 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
  1. Click "Choose OS" → scroll down → "Use custom"
  2. Select the Solar Assistant .img.gz file
  3. Click "Choose Storage" → select your microSD card
  4. 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
  1. Click "Write" and wait for it to complete

Using balenaEtcher:

1. Download balenaEtcher from balena.io/etcher
  1. Click "Flash from file" → select the .img.gz
  2. Select your SD card
  3. 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

  1. Insert the flashed SD card into your Pi
  2. Connect Ethernet cable (recommended) or ensure WiFi is configured
  3. Connect the USB-C power supply
  4. 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

  1. Power off your inverter (or at minimum, disable communication ports if your model supports hot-swap)
  2. Connect the communication cable between the inverter and the Raspberry Pi
  3. For USB: plug directly into any USB port on the Pi
  4. 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

  1. Navigate to SettingsInverter
  2. Select your inverter brand and model from the dropdown
  3. Select the communication port (usually /dev/ttyUSB0 for USB adapters)
  4. Set the baud rate (most inverters default to 9600 — check your manual)
  5. Set the Modbus address (usually 1 for single-inverter setups)
  6. 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 SettingsBattery 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 SettingsGrid:

  • 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 SettingsSolar:

  • 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

  1. Navigate to SettingsAutomations
  2. Click Add Automation
  3. Set your conditions (AND/OR logic supported)
  4. Set actions (inverter register writes, notifications, MQTT publishes)
  5. 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

  1. Navigate to SettingsMQTT
  2. 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)
  1. 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 SettingsDevices & ServicesMQTT.

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:

  1. Install InfluxDB and Telegraf on your server
  2. Configure Telegraf to subscribe to Solar Assistant MQTT topics and write to InfluxDB
  3. 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:

  1. Verify battery capacity is correctly entered in settings
  2. Perform a full charge cycle (charge to 100%, then let it calibrate)
  3. Check if your BMS is reporting SOC via the inverter — some inverters can relay BMS data directly
  4. 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

  1. Check internet connectivity from the Pi:
ssh pi@solar-assistant.local

ping -c 3 solar-assistant.io

  1. Manual update:
sudo apt update && sudo apt upgrade -y
  1. 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 SettingsBackupDownload. 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:

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


This article contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no cost to you.