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)