Skip to content

Introduction

SunReye is a self-hosted monitoring, control, and integration platform for solar / hybrid inverters.

It polls your inverter over Modbus, stores every reading as time-series data, and gives you a live dashboard, a typed REST API, and an MQTT bridge with Home Assistant auto-discovery — all generated from a single description of the inverter.

The core idea: an inverter is data, not code

Section titled “The core idea: an inverter is data, not code”

Each supported inverter ships as a profile — a plain description of its Modbus register map plus semantic metadata: what each value means (PV string power, battery state of charge, a writable charge-current setting, an enum status, …).

The dashboard, the REST routes, the MQTT topics, and Home Assistant discovery all build themselves from that profile. Adding a metric — or supporting a whole new inverter — means adding data, not touching the engine.

See Profiles as data for how this works end to end.

  • Live monitoring — 1 Hz polling of the inverter, streamed to the browser over WebSocket. A manifest-driven dashboard renders itself from the active inverter’s capabilities (PV strings, battery, grid phases, generator, backup load) with animated KPIs and live sparklines. See Dashboard.
  • History & analytics — every sample persisted to TimescaleDB; per-minute / hourly / daily continuous-aggregate rollups make multi-week charts cheap, with automatic retention cleanup. See History & Analytics.
  • Control — writable settings (charge/discharge currents, work mode, grid charge, solar-sell …) exposed as validated controls, guarded by the same validation everywhere. See Controls.
  • Costs & tariffs — import/export tariffs with time-of-use bands, cost dashboards, savings vs. grid-only, self-sufficiency and self-consumption. See Costs & Tariffs.
  • Third-party REST API (/api/v1) — an auto-generated integration surface: entity catalog, current state, per-entity history, and one validated write route per writable entity, with OpenAPI docs. API-key authenticated (fails closed in production). See REST API.
  • MQTT bridge — publishes every entity to retained topics, accepts writes, and optionally publishes Home Assistant MQTT Discovery configs. See MQTT Bridge and Home Assistant.
  • Downloadable profiles — browse and install inverter profiles from git-hosted repos at runtime; no redeploy. See Distributing Profiles.
  • Built-in simulator — run the whole stack with a coherent fake inverter (no hardware needed) for development and demos. See Quick Start.
  • Auth — email/password sessions via Better-Auth, with admin roles and first-run onboarding. See Users & Roles.

Deye / Sunsynk hybrid inverters (≈99 metrics, ≈38 writable) ship as a first-party profile. More profiles are added as data — see Supported Inverters and the Roadmap.

SunReye is deliberately focused: a self-hosted, profile-driven platform for monitoring, controlling, and integrating hybrid inverters, where new hardware and new capabilities are added as data and configuration — not forks of the engine. It is not a general-purpose home-automation hub.