The full power of TDengine, now free forever for up to 5,000 tags.

Explore More

How Zendure Scaled Its Home Energy Platform to 1.17 Million Devices—and Cut Storage Costs by 80%

TDengine Team

September 11, 2026 /

Introduction

Zendure’s plug-and-play home energy management systems are backed by a home energy storage data platform. Its solar storage devices are used in more than 60 countries and regions in Europe, North America, and Asia-Pacific, with more than 1.17 million connected devices. The product line grew from one storage category to nine, including solar flow controllers, smart current transformers, and smart plugs. Data volume grew from tens of millions of records to hundreds of billions. To handle rising write pressure and storage costs, Zendure upgraded from TDengine TSDB-OSS to a TDengine TSDB-Enterprise cluster. Storage costs fell by roughly 80%, single-device queries now return results in milliseconds, and the cluster has run without failure for more than nine months.

Business context

About Zendure

Zendure is a global energy management brand focused on plug-and-play home energy management systems. Its core product is the SolarFlow series of smart storage inverters, from balcony solar products such as SolarFlow 800 to rooftop storage products such as SolarFlow 2400 Pro and 4000 Mix AC+. Companion devices include expandable battery modules in the AB series, Smart Meter CT, Smart Plug Pro, and Power Hub. Together, these products make up Zendure’s home energy management system. Zendure users are spread across major markets in Europe, North America, and Asia-Pacific. The company has more than seven years of technology development experience and over 150 global patents. In 2024 alone, Zendure users generated 13,172 MWh of solar power, about the amount 800,000 electric vehicles would consume while driving 100 kilometers.

Business scenarios

Modern home with rooftop solar panels, home battery storage, and an electric vehicle charging in the driveway

The home energy storage data platform supports two main home energy management scenarios:

Balcony Power Plant. Many apartment dwellers in Europe cannot install rooftop solar. Zendure’s approach is to mount two to four solar panels on a balcony railing, connect them to a SolarFlow inverter and battery, and plug the system into a household outlet. During the day, solar power charges the battery. At night, the battery discharges. Users can watch energy flow and electricity savings in real time through the app.

AC-coupled storage. For owners of detached homes that already have rooftop solar, the Mix AC+ series adds storage without modifying the existing system, which can raise the solar self-consumption rate.

In both scenarios, every device continuously produces time-series data such as power, current, and input/output energy. The app also uses AI algorithms for charge and discharge scheduling. It forecasts generation from weather data, charges during low-price windows based on dynamic electricity tariffs such as France’s EDF Tempo, and schedules around each household’s consumption patterns.

Single-family home interior with household appliances labeled by power consumption

Technical challenges

When Zendure first started with TDengine, it had three Supertables and a few thousand devices. A little over a year later, the business had grown a hundredfold and the data layer was under increasing pressure.

Challenge 1: Concurrent writes from 1.17 million devices

Several product lines ramped up at the same time, including solar flow controllers, smart CTs, and smart plugs. Connected devices climbed from a few thousand to 1.17 million. Every device produces power, current, energy, and other time-series data at high frequency. A single solar flow power table has accumulated close to 100 billion rows, and peak write volume reaches hundreds of thousands of data points per second. The original single-machine deployment could no longer absorb that write pressure.

Challenge 2: Annual storage costs above US$200,000

Zendure deploys on AWS, where EBS storage is billed monthly. With 1.17 million devices, high-frequency collection, and retention of about 10 years, the data volume reaches hundreds of billions of records. At that scale, uncompressed storage would require 7 to 8 TB and cost more than US$200,000 per year. For a growing global company, that is a significant expense.

Challenge 3: Query latency visible in the app

As data volume grew, the load time for power curves in the app went from a few hundred milliseconds to several seconds, and some wide-range queries timed out entirely. Users began reporting that “the app got slow.” The target was millisecond-level query response even as the dataset continued to grow.

Challenge 4: Keeping a global service available 24/7

Zendure users span multiple time zones, so the system has to run 24/7. A single-machine failure once left European users unable to view app data for two hours, and the company received a flood of complaints. High availability has been a hard requirement ever since.

Evaluating the options

Once the open-source edition reached its limits, Zendure formed a technical selection team to evaluate write throughput, query efficiency, compression, and cluster high availability.

DimensionMySQLInfluxDBTDengine
Write performanceBarely holds up after sharding, complex to operateOpen-source edition does not support clustersNative distributed cluster, linear scaling
Compression ratioNo native compressionFrom 3:1 to 5:1From 6:1 to 60:1
Query performanceMinutes for large-table queriesSeconds for aggregate queriesMilliseconds per device, seconds across devices
Cluster high availabilityRequires primary-replica plus read/write splittingClustered edition is closed-source and paidNative three-replica cluster
SQL compatibilityFull SQLSQL-like (non-standard)Standard SQL
Operational costHigh (sharding plus index maintenance)MediumLow (automated operations)

InfluxDB is a solid choice for some IoT scenarios, but its open-source edition does not support cluster deployment. The clustered edition is a commercial closed-source product, and its compression ratio was lower in this evaluation. With MySQL, the cost of sharding and index maintenance rises sharply as data grows.

TDengine best matched the evaluation criteria for write performance, compression ratio, cluster capability, and SQL compatibility. Because Zendure already had experience with the open-source edition, it upgraded to TDengine TSDB-Enterprise.

Architecture and data modeling

System architecture

The system uses a layered architecture spanning the access, application, domain, and base layers:

Layered architecture diagram showing the access, application, domain, and base layers of the Zendure home energy management system

Data model design

Zendure uses TDengine’s Supertable-plus-subtable modeling approach. The core design principle is simple: Supertables are divided by business category, subtables by device, and Tags by query dimension.

Zendure created 16 Supertables in total (11 currently in use and five reserved for future product lines), grouped by product line:

Business lineSupertablesDevicesNotes
Solar flow controlpower / electric / inout~190,000 eachCore business, largest data volume
Smart current transformerpower / inout~90,000 eachPrecise current metering
Smart plugpower / inout~60,000 eachHousehold electricity management
Power forecastpredic_power40,000AI power forecasting
ROI analysishems_profit76,000Return-on-investment display
User energy consumptionconsumer_energy102,000Household energy profiles
Tesla integrationtesla_inout1,268Third-party storage integration

The Supertable for SolarFlow power data looks like this:

-- Supertable for solar flow power
CREATE STABLE st_device_solar_flow_power (
    ts       TIMESTAMP,    -- collection timestamp
    power    INT,          -- real-time power value (W)
    type     INT,          -- power type (charging / discharging / solar, etc.)
    hems_id  BIGINT        -- ID of the home energy management system
) TAGS (
    device_id  BIGINT      -- unique device identifier
);

A single SolarFlow inverter has one subtable under each of the power, current, and input/output energy tables. The device_id tag identifies the device, and the business layer links to the household dimension through hems_id.

Typical query scenarios:

-- 1. Latest power for one device (real-time app display)
SELECT last_row(*) FROM st_device_solar_flow_power 
WHERE device_id = 100048;
-- Response time: < 10ms

-- 2. Power trend for one device over the past 24 hours (app power curve)
SELECT _irowts, AVG(power), MAX(power), MIN(power) 
FROM st_device_solar_flow_power
WHERE ts >= NOW() - 1d AND device_id = 100048
INTERVAL(5m);
-- Response time: < 100ms

-- 3. Daily total generation for all devices this month (operational analysis)
SELECT _irowts, SUM(energy) 
FROM st_device_solar_flow_inout
WHERE ts >= '2026-07-01'
INTERVAL(1d);
-- Response time: ~2 seconds (covering 180,000+ devices)

-- 4. Average power aggregated by household (HEMS analysis)
SELECT hems_id, AVG(power) 
FROM st_device_solar_flow_power
WHERE ts >= NOW() - 1d
PARTITION BY hems_id;
-- Response time: ~3 seconds

Results

Core metrics

MetricBefore (MySQL-Based)After (TDengine TSDB-Enterprise)Improvement
Write performanceSingle-machine bottleneck, write latency at peak3-node cluster, stable high-throughput writesStable at peak load
Query performanceMinutes for wide-range queriesUnder 10ms per device, about 2 seconds across devices100x or more
Storage compressionNo compression on MySQL, 5 to 9% on OSS15% to 31% compression ratioAbout 1:6 to 1:60
Storage costAbout US$200,000+ per year (estimated)About US$35,000 per yearAbout 80% cost savings
High availabilitySingle machine, no redundancy3 nodes and 3 replicas, 9+ months without failureRedundant cluster
Data retentionNo long-term retention possibleAbout 10 years (KEEP 3650d)Supports long-term retention

Data growth at a glance

Solar flow control is by far the largest data producer. Power data alone accounts for nearly 100 billion records, more than 60% of the total data volume.

Final thoughts

With TDengine TSDB-Enterprise, Zendure handled concurrent writes from more than a million devices and stored hundreds of billions of records. Storage costs fell by about 80%, while the cluster met the 24/7 availability requirement and ran without failure for more than nine months.

The move from the open-source edition to the enterprise edition used the taosX data migration tool and completed with zero downtime. The Supertable and subtable model also meant that new product lines required only new table definitions, without changes to existing business logic. These choices reduced development and operations costs.

As Zendure continues to expand in global markets, it plans to explore tiered hot and cold data storage to reduce costs further and deepen its analytics capabilities. The goal is to use its historical data more effectively in the business. The company also thanks the TDengine team for its technical support during migration and operations.

  • TDengine Team