Documentation

Quick Start

SunComms runs on a Raspberry Pi (4 or 5) and monitors solar inverters via Modbus RTU (RS-485) and Modbus TCP.

Hardware Requirements

Installation

git clone https://github.com/foodisbeast/suncomms.git
cd suncomms
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py

Architecture

SunComms is a monolithic Python/Flask application with modular subsystems:

API Reference

Status

GET /api/status        — System status
GET /api/devices       — All configured devices
GET /api/readings      — Latest readings
GET /api/network       — Network status

Health & Diagnostics

GET  /api/health/comms          — Comms health per device
GET  /api/health/backoff        — Backoff/retry status
GET  /api/health/healing        — Self-healing history
GET  /api/health/time           — NTP sync status
GET  /api/health/changes        — Config change log
GET  /api/alerts                — Active alerts
POST /api/diag/read             — Live register read
GET  /api/diag/frames           — Raw Modbus frames
POST /api/diag/snapshot         — Diagnostic snapshot

Fleet & OTA

GET  /api/fleet                 — Fleet overview
GET  /api/ota/status            — Update status
POST /api/ota/check             — Check for updates
POST /api/ota/update            — Apply update

Supported Inverters

Contributing

SunComms is open source. Check the GitHub repository for issues and pull requests.