Configuration

Everything is set with environment variables. On Vercel: Project → Settings → Environment Variables. After changing anything, redeploy (Deployments → ⋯ → Redeploy). Variables are read at build and start time.

Required

VariableWhat it isExample
SHINE_USERShineMonitor / SmartClient username, exactly as you log in (case-sensitive)MyName123
SHINE_PASSShineMonitor password. Server-only
DASH_USERUsername for your Helio dashboard. Case-insensitivefamily
DASH_PASSWORDPassword for your Helio dashboard. 12+ characters, different from SHINE_PASS
AUTH_SECRETRandom text that signs sessions. Changing it signs everyone outopenssl rand -hex 32
TARIFFWhat you pay the grid per unit (kWh)7.5

Optional

VariableDefaultWhat it does
EXPORT_TARIFF0What the grid pays per exported unit. When set, values show as a range. See Accuracy and savings
CURRENCY₹Currency symbol, e.g. $, €, £
LOCALEen-INNumber and date formatting, e.g. en-US, de-DE
TIMEZONEAsia/KolkataIANA timezone of your plant, e.g. Europe/Berlin
SHINE_PLANT_IDfirst plantOnly for accounts with several plants: the API plant id to show
NEXT_PUBLIC_BRAND_NAMERishi ShahName in the footer credit
NEXT_PUBLIC_BRAND_URLhttps://rishishah.inLink for the footer credit
NEXT_PUBLIC_PROJECT_URLhttps://helio.rishishah.in"About Helio" link on the demo page
NEXT_PUBLIC_REPO_URLhttps://github.com/byrishi/helioGitHub links in the app

Changing rates without redeploying

TARIFF, EXPORT_TARIFF and CURRENCY are the defaults. Anyone signed in can override them from What it's worth → Edit rates on the dashboard. That choice is saved in their browser only, so each phone can use its own rates, and Reset goes back to the defaults.

Advanced

Only change these if ShineMonitor changes something or your account lives on a vendor-specific portal.

VariableDefaultNotes
SHINE_BASE_URLhttps://web.shinemonitor.com/public/API endpoint
SHINE_COMPANY_KEYShineMonitor web portal keyVendor portals may use their own
SHINE_SUFFIXemptyExtra query parameters on every request. Never add source=1, which targets the battery-storage platform and returns ERR_NOT_FOUND_USR for solar accounts

Example .env.local

SHINE_USER=MyName123
SHINE_PASS=••••••••
DASH_USER=family
DASH_PASSWORD=••••••••••••
AUTH_SECRET=3f9c…
TARIFF=7.5
EXPORT_TARIFF=2.25
CURRENCY=₹
TIMEZONE=Asia/Kolkata

Custom domain

  1. Vercel → Project → Settings → Domains → add e.g. solar.yourdomain.com.
  2. At your domain provider, add the record Vercel shows (usually a CNAME to cname.vercel-dns.com).
  3. HTTPS is issued automatically within a few minutes.

Share with family

  • Send the link and the DASH_USER / DASH_PASSWORD privately, never in a group.
  • iPhone: Safari → Share → Add to Home Screen. Android: Chrome → ⋮ → Add to Home screen.
  • Sign-in lasts 30 days per device. To sign everyone out, change AUTH_SECRET and redeploy.

Updating

One-click deploys create a copy of the repo, so updates aren't automatic:

git clone https://github.com/<you>/helio.git && cd helio
git remote add upstream https://github.com/byrishi/helio.git
git pull upstream main
git push              # Vercel redeploys on push

Watch the repo (Watch → Custom → Releases) to hear about new versions.

Something wrong or unclear? Edit this page on GitHub