How mickmake/gosungrow works
GoSungrow is a Go client and CLI for iSolarCloud, with higher-level plant/device queries and integrations for Home Assistant and Modbus. The main workflow is CLI command dispatch, cloud authentication and API access, then display or export of plant data. The README also documents graphing, broad API endpoint coverage, multiple output formats, and MQTT publishing. The sampled source confirms authentication, query, endpoint-catalog, and MQTT behavior; wiring for unsampled features is shown only where the README establishes the capability.
Main entry points: commands.go Command dispatch · highlevel_ps.go Cloud client · auth.go Cloud login · main.go Program entry
Components 20
CLI workflows
- Program entry
main.go - Command dispatch
cmd/commands.go
iSolarCloud access
- Cloud login
iSolarCloud/AppService/login/auth.go - Cloud client
iSolarCloud/highlevel_ps.go - App endpoints
iSolarCloud/AppService/struct.go - Web endpoints
iSolarCloud/WebAppService/struct.go - ISCM endpoints
iSolarCloud/WebIscmAppService/struct.go
Data presentation
- Plant queries
iSolarCloud/highlevel_ps.go - Show commands
cmd/cmd_show.go - Data output
cmd/cmd_data.go - Tabular data
tablib/tablib_dataset.go
Integrations
- MQTT command
cmd/cmd_mqtt.go - HA entities
cmdHassio/lights.go - Modbus command
cmd/cmd_modbus.go - Modbus decoding
cmdModbus/struct.go
Other components
- CLI user
- iSolarCloud
- Token file
- Home Assistant
- MQTT broker
Connections 23
- CLI user → Program entry: runs
- Program entry → Command dispatch: executes
- Command dispatch → Cloud login: logs in
- Cloud login → iSolarCloud: authenticates
- Cloud login → Token file: reads/writes
- Command dispatch → Cloud client: queries
- Cloud client → App endpoints: uses endpoints
- Cloud client → Web endpoints: uses endpoints
- Cloud client → ISCM endpoints: uses endpoints
- App endpoints → iSolarCloud: calls API
- Web endpoints → iSolarCloud: calls API
- ISCM endpoints → iSolarCloud: calls API
- Cloud client → Plant queries: provides queries
- Command dispatch → Show commands: dispatches
- Show commands → Plant queries: requests data
- Command dispatch → Data output: dispatches
- Data output → Tabular data: formats data
- Command dispatch → MQTT command: dispatches
- MQTT command → HA entities: publishes entities
- HA entities → MQTT broker: publishes topics
- Home Assistant → MQTT broker: subscribes
- Command dispatch → Modbus command: dispatches
- Modbus command → Modbus decoding: decodes values