Device monitoring platform
Sofar CLOUD
Live monitoring for Sofar PV inverters, hybrid inverters, ESI all-in-one systems, and BESS — residential, commercial & industrial. Direct alternative to SolarMan / FusionSolar, with Sofar owning the data, the analytics, and the customer relationship.
In build
What it monitors
- PV string + microinverter output — voltage, current, power, daily/monthly/yearly yield.
- Hybrid + ESI all-in-one — load, grid import/export, battery SOC, charge/discharge cycles.
- BESS plants — pack-level health, cell balancing, thermal, derating events.
- Commercial & Industrial fleets — multi-MW plants, multiple inverters, weather-corrected performance ratio.
- Alarms — per-device fault codes mapped to Sofar Knowledge articles + suggested actions.
Plant + fleet views
Three rendering modes: Single-device (residential customer looking at their inverter), Plant (one site, multiple devices, weather + production summary), Fleet (installer or utility looking at hundreds of plants — the high-value commercial view).
IoT ingestion
- WiFi dongle
- low-bandwidth telemetry every 5 minutes, MQTT over TLS
- 4G / GPRS dongle
- cellular, same MQTT contract, more expensive but plant-anywhere
- Ethernet
- high-bandwidth, sub-minute resolution for C&I
- Local logger
- on-prem data logger pushes batched telemetry — for offline-capable installations
Data model (selected)
- Plant
- orgId, accountId (FK to Sofar USER), name, address, lat/lng, system size kW, commissioned at
- Device
- plantId, productId, serialNumber, dongleId, lastSeenAt, firmwareVersion, status
- TelemetrySample
- deviceId, timestamp, kpiKey (string), value (double) — stored in TimescaleDB hypertable
- AlarmEvent
- deviceId, code, severity, openedAt, acknowledgedAt, closedAt
- EnergyDailyAgg
- plantId, date, gen kWh, load kWh, gridImport kWh, gridExport kWh, battery cycles
API + dashboard surface
MQTT broker — device telemetry ingestGET /api/cloud/plantsGET /api/cloud/plants/:idGET /api/cloud/plants/:id/devicesGET /api/cloud/devices/:id/telemetry?from=&to=&keys=GET /api/cloud/plants/:id/energy?period=dailyGET /api/cloud/alarmsPOST /api/cloud/alarms/:id/acknowledge
Operational notes
- Time-series store: TimescaleDB on a separate Postgres (telemetry write-heavy; doesn't share the OLTP database).
- Cold storage: object-store rollups (S3-compatible) for > 12-month aggregates.
- Real-time dashboard: server-sent events or WebSockets for live plant view; HTTP polling for fleet view.
- Customer-side mobile app: optional v3, separate from the engineer mobile app.
Integrates with
Sofar USER (customer account + plant ownership)Sofar CORP (asset registry, product catalogue)Sofar Tickets (open support ticket from a device alarm)Sofar CSP (warranty status when raising RMA from an alarm)Sofar Knowledge (alarm-code lookup)

