# Zigbee Network Congestion

{% hint style="info" %}
**Applies to:** All Zigbee Connectivity Products | **Scenario:** Connectivity Issue | **Updated:** 2026-03-24
{% endhint %}

### Symptom

When deploying multiple SPM (Miniature Energy Meter) or SDM (Compact Energy Meter) devices, you may experience one or more of the following issues:

* Zigbee network congestion or "data storms"
* Dropped packets or missing data points in your dashboard
* Delayed device responses
* Gateway crashes or unresponsiveness

These symptoms typically occur in high-density setups, such as a smart home with 15+ meters in a distribution box, or a commercial electrical panel with dozens of meters.

### Cause

Network congestion in Zigbee energy monitoring systems is usually caused by the sheer volume of data being transmitted. This stems from two main factors:

1. **High-Frequency Default Reporting:** Out-of-the-box, our meters come with a fixed 30-second reporting cycle for all attributes (Voltage, Current, Power, Energy, etc.) to provide a reliable baseline. While most gateways handle this fine for a few devices, it can easily overwhelm Zigbee bandwidth as you scale up.
2. **Inefficient Data Packing (Tuya Private Zigbee):** If you are using Tuya Private Zigbee firmware, the adaptive data packing mechanism is disabled. The device sends separate data packets for each individual attribute (one for voltage, another for current, etc.), creating massive overhead.

### Resolution

To resolve network congestion and optimize your energy monitoring system, follow the steps below.

#### Step 1: Ensure you are using Standard Zigbee 3.0 Firmware

For local integrations (like Home Assistant via Z2M/ZHA) and high-density deployments, we strongly recommend using our **Standard Zigbee 3.0 models** rather than Tuya-compatible models.

* **Why?** Standard Zigbee 3.0 retains native **Attribute Batching**. It intelligently bundles multiple attributes into a single payload (or at most 2-3 optimized packets). This drastically reduces the number of radio transmissions, keeping the airwaves clean and your network rock-solid.

#### Step 2: Optimize ZCL Reporting Intervals

Standard Zigbee 3.0 firmware allows you to independently configure the update frequency for every parameter using the **ZCL Configure Reporting** command.

To reduce network load, you should adjust the **Min Interval**, **Max Interval**, and **Reportable Change (Threshold)** away from the factory defaults (30s/30s/0) based on your specific use case.

**Recommended Configuration Profiles**

Choose the profile that best matches your deployment scale:

* **Profile A: Automation & Granular Tracking (HEMS)** *Best for DIY smart homes requiring fast reactions to power changes to trigger automations (e.g., dynamic load balancing).*
* **Profile B: High-Density Pure Monitoring (BEMS / Sub-metering)** *Best for commercial buildings or branch-monitoring focusing on load profiling without choking the network.*

| Parameter        | Profile A: HEMS (Automation)                      | Profile B: BEMS (High-Density)                    | Configuration Logic & Rationale                                                                                                                                                                                                   |
| ---------------- | ------------------------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Active Power** | <p>Min: 2s<br>Max: 900s<br>Change: 20W</p>        | <p>Min: 60s<br>Max: 300s<br>Change: 50W\~100W</p> | <p><strong>HEMS:</strong> Needs fast reporting for triggers.<br><strong>BEMS:</strong> Pure monitoring doesn't need sub-second reactions. A 60s Min and 50W threshold capture meaningful trends without spamming the network.</p> |
| **RMS Current**  | <p>Min: 3s<br>Max: 900s<br>Change: 0.1A</p>       | <p>Min: 60s<br>Max: 300s<br>Change: 0.5A</p>      | Similar to Active Power. In high-density setups, minor current fluctuations under 0.5A are treated as noise and ignored.                                                                                                          |
| **RMS Voltage**  | <p>Min: 5s<br>Max: 3600s<br>Change: 3V</p>        | <p>Min: 5s<br>Max: 3600s<br>Change: 5V</p>        | A short Min interval (5s) allows for near real-time over/under-voltage alerts. Relying on a solid threshold (3V-5V) filters out normal grid noise.                                                                                |
| **Power Factor** | <p>Min: 60s<br>Max: 3600s<br>Change: 0.05</p>     | <p>Min: 300s<br>Max: 3600s<br>Change: 0.05</p>    | <p><strong>HEMS:</strong> Rarely used for logic.<br><strong>BEMS:</strong> Crucial for power quality audits, but changes slowly. 5-minute intervals are perfect.</p>                                                              |
| **AC Frequency** | <p>Min: 300s<br>Max: 3600s<br>Change: 0.5Hz</p>   | <p>Min: 300s<br>Max: 3600s<br>Change: 0.5Hz</p>   | Grid frequency is highly stable. Set a high threshold so it only reports during severe grid anomalies, saving massive bandwidth.                                                                                                  |
| **Energy (kWh)** | <p>Min: 60s<br>Max: 3600s<br>Change: 0.01 kWh</p> | <p>Min: 300s<br>Max: 900s<br>Change: 0.1 kWh</p>  | <p><strong>HEMS:</strong> 0.01 kWh increments provide smooth daily charts.<br><strong>BEMS:</strong> 0.1 kWh thresholds with 5m/15m intervals align perfectly with 15-minute billing cycles, optimizing database storage.</p>     |

> 💡 **Key Takeaway for High-Density Installations:** For large-scale setups (like the SPM02 FLEX or SDM01 Combo installed in distribution boards), increasing the **Min interval** and **Threshold (Change)** is the ultimate key to balancing accurate energy monitoring with long-term network reliability.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bituo-technik.com/troubleshooting/electrical/zigbee-network-congestion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
