Deye Solar Monitor

v1.0.0 · Last updated 24 October 2026

Deye Solar Monitor

Deye Solar Monitor is a free, self-hosted real-time dashboard for Deye solar inverters, built on the official Deye Cloud Open API. It shows PV production, home load, battery state and grid import/export live, adds a production forecast that learns from your own roof, measured battery health, monthly savings, CSV export and Discord/Telegram alerts, and installs on a phone as a PWA. It runs entirely on the Cloudflare Workers + D1 free tier (no monthly cost). The app interface is Thai.

กลางวันแดดเย็นกลางคืน

Features

หน้าหลัก
วันนี้
อากาศ
ย้อนหลัง
01

Live view

  • Home — a rotatable 3D house with power flowing in the real direction between panels, battery, grid and home; system status; today's production and savings, plus savings so far this month with a whole-month estimate
  • Battery now — charging or discharging, the reason in one sentence, and when it will run out or be full, from measured capacity and the cut-off learned from this house
  • Today — produced, used, bought and exported, self-sufficiency and energy flow, as a whole day or noon-to-noon (daytime and night-time use apart)
  • Device detail — per-phase, PV string and BMS values, real inverter alarms, a quiet-when-normal health check, trends over 1–90 days
  • Several stations — a switcher appears when the account has more than one system
02

Analysis and forecast

  • A forecast that learns — system size calibrated from clear days, cloud factors re-learned daily from forecast vs actual (recent days weigh more, so it follows the season); an accuracy card with a score and each day's production bar with a tick at the forecast, labelled on target / too low / too high
  • Weather — Thai Meteorological Department forecast (or Open-Meteo), sun path and best sun window, UV index, hourly and 7-day
  • Measured battery health — usable capacity from real discharges, SOH against the BMS rating, cycles, average depth, 60-day trend
  • History and year overview — day / month / year / all-time charts, a month summary (savings, whole-month estimate, produced / used / bought / battery or exported), best and worst months, year-on-year, a whole-year estimate from the site's sunlight
  • Recommendations — derived from the energy balance of measured values, adjusted for on-grid, hybrid or off-grid
  • Compare and export — against the previous period at the same time of day; CSV every 5 minutes, daily or monthly
03

Hands-off reliability

  • Alerts (optional) — Discord webhook or Telegram: inverter offline, alarm raised or cleared, grid loss, low battery, clear sky but no production, plus "back to normal"; confirmed over several polls before sending
  • No fake values — a dropped logger or stuck Deye values are detected and not stored; gaps are backfilled automatically when data returns
  • Clear status — cannot reach Deye, collection stopped or inverter silent, each explained in the app; /api/_health for uptime monitors
  • Installable PWA — install hints per device (Android, iPhone, Mac, others), works offline
04

Install

  • Supports: any Deye system on Deye Cloud — on-grid, hybrid, off-grid
  • Needs: a Deye developer account (developer.deyecloud.com) for an App ID and App Secret
  • One click: the Deploy to Cloudflare button above; Cloudflare creates the repo and the D1 database and asks for the secrets
  • One command: npx wrangler login, cp .dev.vars.example .dev.vars, then npm run setup — see DEPLOY.md

FAQ

What is Deye Solar Monitor?

A free, self-hosted web app that shows a Deye solar system live — production, home load, battery and grid — using the official Deye Cloud Open API, with a forecast that learns from your own roof, measured battery health, savings and alerts. It installs on a phone as a PWA.

Does it cost anything?

No. It runs on the free tier of Cloudflare Workers and D1. It polls every 5 minutes (288 requests a day), far below the free limit of 100,000 a day.

Which inverters does it support?

Any system that reports to Deye Cloud — on-grid, hybrid or off-grid. You need a developer account at developer.deyecloud.com for an App ID and App Secret.

Is the interface in English?

The app interface is Thai, built for Thai households with large numbers and labelled colours. The code, API and setup work the same anywhere Deye Cloud is available.

Are my Deye credentials safe?

Deye keys and the account password are server-side secrets only and never reach the phone. People sign in with a PIN, the app is marked noindex, and all stored history lives in your own Cloudflare account. If DEYE_RELAY_URL is set, outgoing Deye requests (including the token request with the email and password hash) pass through that relay, so only use a relay you run or trust, or remove the setting.