Never worry about your water tank again. A solar-powered sensor on the rooftop, a quiet hub on the wall, and smart water monitoring that keeps working — even when the internet doesn't. Long-range LoRa (RYLR998) to an ESP32 hub, local web UI, Home Assistant via HACS, optional cloud PWA. Open at the core.
The indoor hub (left), the solar tank sensor with non-contact ultrasonic measurement (centre), and the custom circular TX PCB (right) — current production hardware, REV 2.2 (May 2026), tested through Delhi summer at 45°C ambient.
Why I built TankSync, the local-first philosophy, and how the rooftop sensor + indoor hub stay reliable when the internet doesn't. Watch on YouTube →
👉 tanksync.smartghar.org/firmware/
No esptool, no Python, no CLI. Plug your board into USB, click Install, the browser does the flashing through WebSerial. Works on Chrome/Edge desktop. Takes ~45 seconds per board.
Most "smart tank" products treat the cloud as the product. TankSync treats reliability as the product — and the cloud as an optional layer of polish on top.
- Works fully offline. Hub keeps showing levels, lighting the LED ring, and beeping on overflow — even when your WiFi, your ISP, or our cloud is down. Local operation is the default; cloud is opt-in.
- Long-range LoRa, no rooftop WiFi. Sensor talks to the hub over 865 MHz LoRa — through concrete walls, between floors, across a property. Up to 5 km line-of-sight. The rooftop doesn't need WiFi. Ever.
- Solar-powered transmitter. Mounts on the tank lid. Charges in regular daylight, runs on a single 18650, deep-sleeps between readings. Months of autonomy. No wires to the tank.
- Home Assistant native. Auto-discovery via MQTT plus a dedicated HACS integration — every tank shows up as an HA device with live sensors, fill events, and editable settings.
- Open at the core. Firmware (AGPL-3.0), hardware (CC BY-SA 4.0), schematics, BOM, and flashing tools are all public. Self-host it. Fork it. Modify it. Audit it. No vendor lock-in.
- Built for Indian realities. Designed and tested through Delhi summer (45 °C ambient). UV-stabilised PETG, IP65 sealing, monsoon-ready. Engineered for terrace tanks, high-rise apartments, thick walls, and unreliable connectivity.
LoRa 865/915 MHz (up to 5 km, through walls)
==============================================>
TRANSMITTER HUB (RECEIVER)
ESP32-C3 SuperMini ESP32 DevKit
+ JSN-SR04T Ultrasonic + RYLR998 LoRa
+ RYLR998 LoRa + SH1106 OLED
+ 18650 + solar + WS2812 LED ring
+ WiFi (optional)
|
+-----------+-----------+
| |
MQTT (TLS) Local web UI
| 192.168.x.x
+---------+---------+
| |
Home Assistant Cloud dashboard
(HACS integration) (optional, hosted)
| Component | Part | Approx cost (INR) |
|---|---|---|
| Receiver MCU | ESP32 DevKit v1 | ₹300–400 |
| Transmitter MCU | ESP32-C3 SuperMini | ₹200 |
| LoRa module | REYAX RYLR998 (×2) | ₹650 each |
| Ultrasonic sensor | JSN-SR04T (waterproof) | ₹350 |
| Display | SH1106 1.3" OLED I²C | ₹250 |
| Battery | Protected 18650 + holder | ₹200 |
| Solar charger | CN3791 MPPT module | ₹120 |
| Boost converter | MT3608 3.7 V → 5 V | ₹50 |
Total: ~₹3,800-5,200 per complete system (one hub + one tank). Per-tank addition: ~₹1,500.
📐 Detailed wiring + power chains → 📋 Full BOM →
👉 tanksync.smartghar.org/firmware/
Plug your board into a USB port, pick the right card (Receiver Hub or Transmitter), click Install. Done in ~45 sec.
Download the latest .bin from Releases.
# Receiver (ESP32 DevKit)
esptool.py --chip esp32 -b 460800 write_flash 0x10000 tanksync-receiver-rx-vX.Y.Z.bin
# Transmitter (ESP32-C3 SuperMini)
esptool.py --chip esp32c3 -b 460800 write_flash 0x10000 tanksync-transmitter-tx-vX.Y.Z.binNote on source versions. The firmware source in this repo corresponds to the rx-v2.8.6 / tx-v2.0.15 line (and earlier) and is licensed AGPL-3.0 — build it, audit it, fork it. Releases after that version are published as ready-to-flash binaries (see Releases) rather than source. The full local-first feature set and the in-browser flasher work with both.
Prerequisites: ESP-IDF v5.4+
# Receiver Hub
cd firmware/Receiver-ESP32-DevKit
idf.py build
idf.py -p /dev/ttyUSB0 flash
# Transmitter
cd firmware/Transmitter-IDF
idf.py set-target esp32c3
idf.py build
idf.py -p /dev/ttyACM0 flash- Hub starts in AP mode → connect to
TankSync-XXXXWiFi from your phone - Captive portal opens (or visit
192.168.4.1) - Configure home WiFi + (optional) MQTT broker + LoRa settings
Two surfaces — pick either, or both. They show the same data.
Left: the PWA at tanksync.smartghar.org — works from anywhere. Right: the hub's local web UI — works fully offline. Full walkthrough in the Wiki.
- Transmitter pairs over the air — hold its
BOOTbutton for 2 sec, hub LED turns green when paired
Renders of the production sensor — the threaded boss + hex lock-nut secure the sensor through a standard tank-lid hole; the solar panel sits flush on the case top.
More photos + STL files for the case + schematics + 3D STEP models: hardware/.
Two routes — pick whichever fits your setup:
- Native MQTT auto-discovery — the hub publishes auto-discovery topics; tanks appear in HA as sensor entities with zero setup beyond pointing HA at the same broker. Read-only.
- HACS integration: SmartGhar — full bidirectional control. Every tank is an HA device with grouped Sensors / Events / Configuration / Diagnostic entities, plus a hub device with buzzer + LED controls. Capacity, sleep interval, samples-per-wake are editable from inside HA and ride the same MQTT command channel as the PWA, so both stay in sync.
HACS repo: github.com/Techposts/smartghar-homeassistant · Full setup + entity reference: HACS Integration wiki page
This is the open-source TankSync firmware + hardware mirror. The hosted cloud dashboard (PWA at tanksync.smartghar.org) is a separate proprietary product that adds:
- Remote access from anywhere (no port forwarding)
- Push notifications to your phone
- Multi-tank history + insights
- QR-code device linking
- Multi-hub fleet management for societies, farms, hotels
The firmware works fully without the cloud — local web UI on the hub gives you tank levels, settings, OTA updates, Home Assistant integration. Cloud is opt-in convenience, never a dependency.
| Component | License | What this means |
|---|---|---|
Firmware source (firmware/) |
AGPL-3.0 | Source through rx-v2.8.6 / tx-v2.0.15. Free for personal + community use; commercial users who modify and distribute must open-source their changes under AGPL. |
| Newer firmware (Releases) | Binary, proprietary | Versions after the line above ship as ready-to-flash .bin files. Free to download and flash on TankSync™ hardware; not redistributable or reverse-engineerable for resale. |
Hardware (hardware/) |
CC BY-SA 4.0 | Attribution + ShareAlike. Build it, sell it, modify it — credit the source and share-alike. |
| HA Integration | MIT (separate repo) | Frictionless for HA ecosystem. |
Why a source freeze + binary releases? The published firmware source (rx-v2.8.6 / tx-v2.0.15 and earlier, AGPL-3.0) stays open for hobbyists and HA users to build, audit, and fork. Development now focuses on the cloud platform, so newer firmware is distributed as binaries instead of source — the local-first experience is unchanged, and the in-browser flasher always carries the latest build. If you want a commercial firmware license for embedded use, reach out to the maintainer.
Issues and PRs welcome. Read the wiring guide before opening hardware-related issues.
Ravi Singh (@ravis1ngh on YouTube) — solo-building open-source home infrastructure in India under the TechPosts Media / SmartGharLabs™ banner. Design, firmware, hardware, PCB layouts, and 3D-printed enclosures — all done in-house.
TankSync™ is part of the SmartGhar ecosystem (smartghar.org) — calm, local-first smart-home infrastructure engineered for real-world Indian deployments.
TankSync™ and SmartGharLabs™ are trademarks of SmartGharLabs.

















