Case Study · Personal / IoT

Monitoring my own off-grid solar system in real time

The Stack

LaravelInertia.js + ReactSQLiteWebSocketsPython
warning

The Problem

I live on Gili Raja, a small island off Madura where grid electricity is only available at night. For roughly 13 hours a day my house runs on a solar setup I'm building myself (250Wp panel, LiFePO4 battery, MPPT controller). I had zero visibility into charge state, panel output, or load draw. When the battery dies mid-afternoon, so does my work day.

lightbulb

The Approach

A Laravel + Inertia React dashboard that ingests sensor readings and streams them to the browser over WebSockets. Since the physical sensor hardware is still being assembled, I wrote a Python virtual sensor script that simulates realistic panel/battery telemetry (solar curves by time of day, load spikes) so the full pipeline (ingestion, storage, live charting) could be built and tested end to end before the hardware arrives.

Live Telemetry

Simulated feed
Battery87%
Solar Output214W
Load Draw63W
Panel Voltage18.4V

Key decisions

  • developer_board
    Virtual sensor firstSimulate telemetry to unblock the software pipeline; swap in real hardware without touching the dashboard.
  • database
    SQLite on purposeSingle-user, single-device workload; no reason to run a heavier database on constrained infrastructure.
  • bolt
    WebSockets over pollingThe point is watching values move in real time when clouds pass.
solar_power

Status

Software pipeline complete with simulated telemetry. Hardware integration in progress as the physical PLTS build finishes.