Experiment record
SwitchBot Plug Mini OpenAPI: stale values explained by layered reporting thresholds
Independent logging and a manufacturer development-team response show that long unchanged OpenAPI values can be normal for Plug Mini because reporting is triggered by load-band-specific change thresholds.
Short conclusion
For the investigated SwitchBot Plug Mini (JP), polling OpenAPI v1.1 every one or five minutes did not guarantee that the returned electrical status values were freshly reported by the device. SwitchBot support, after escalation to its development team, stated that Plug Mini uses a layered reporting mechanism based on load-dependent change thresholds. At the approximately 110 W load involved in this case, a 30 W change was required before a new report was generated.
This means that a collector’s retrieval timestamp must not automatically be treated as the underlying device-state update timestamp.
Objective
Determine why voltage, electricCurrent, weight, and electricityOfDay could remain exactly unchanged for long periods even while the OpenAPI endpoint was polled repeatedly, and distinguish a client-side defect, a device/cloud fault, and intentional reporting behavior.
Observed facts
- A five-second polling run collected 151 samples over about 12 minutes 32 seconds.
- A one-second polling run collected 223 samples over about 3 minutes 43 seconds.
- In short runs,
weightandelectricCurrentcommonly changed on roughly a 2–3 second timescale; one-second polling frequently returned repeated values. - In longer logging,
voltage,electricCurrent,weight, andelectricityOfDaycould remain exactly identical for extended periods and then jump together to newer values. - One representative stale interval lasted about 20 minutes.
- A Python one-minute logger and an independent Google Apps Script five-minute logger returned the same stale values over the same time interval.
- Opening the target Plug Mini detail screen in the SwitchBot app was followed by refreshed OpenAPI values multiple times.
- The app-associated refresh was also observed with Bluetooth disabled and with Wi-Fi disabled while the phone used cellular data.
- Resetting the Plug Mini did not eliminate the stale behavior.
Manufacturer verification
SwitchBot support reported the following result from its development-team investigation:
| Load band | Change required for report |
|---|---|
| ≤ 10 W | > 4 W |
| ≤ 100 W | > 10 W |
| ≤ 300 W | > 30 W |
| ≤ 500 W | > 50 W |
| ≤ 700 W | > 70 W |
| ≤ 1000 W | > 100 W |
| ≤ 1500 W | > 100 W |
The support response stated that the investigated load was about 110 W, so the 30 W threshold applied. It also stated that, for the investigated device, the 100–300 W threshold could be changed from 30 W to 10 W through a backend command.
With that manufacturer response, the earlier change-of-value explanation moved from an unconfirmed hypothesis to VERIFIED (supported by additional direct evidence) for the existence and threshold behavior of this reporting mechanism in the investigated case.
How to read the evidence labels
This site uses evidence labels so that direct observations, interpretations, and unresolved questions are not presented as if they had the same level of support.
| Label | Meaning on this site |
|---|---|
| VERIFIED | Supported by additional confirmation such as a manufacturer response, specification, or independent verification |
| OBSERVED | Directly seen or measured during the experiment or in retained logs |
| INFERRED | The interpretation that best fits the observations, but is not directly confirmed |
| HYPOTHESIS | A plausible explanation that still requires testing or confirmation |
| DISPROVEN | An explanation that investigation did not support under the tested conditions |
The open questions below are not a separate claim-evidence state; they simply identify points for which this investigation did not reach a conclusion.
Evidence summary for this experiment
VERIFIED
- A load-band-specific layered reporting mechanism exists for the investigated behavior.
- Around the investigated 110 W load, the applicable reporting threshold was 30 W.
- The threshold table above was supplied by SwitchBot support based on development-team investigation.
- The investigated device’s 100–300 W threshold could be reduced to 10 W from the backend, according to support.
OBSERVED
- Short-poll repeated values.
- Multi-field long stale intervals.
- Agreement between independent Python and Google Apps Script collectors.
- App-detail-screen-associated OpenAPI refreshes.
- Refreshes with BLE disabled and cellular-only phone connectivity.
INFERRED
weight is most consistent with instantaneous active power in watts. The retained experiment notes report a calculation of weight / (voltage × current) over 223 samples, with a mean of about 0.893 and median of about 0.945, physically plausible for an AC load. No retained manufacturer specification directly confirming the field meaning was available, so this remains an inference rather than VERIFIED.
Open questions
- Whether a threshold-triggered power report guarantees simultaneous refresh of
voltage,electricCurrent, andelectricityOfDay. - Whether opening the app detail screen sends a specific forced synchronization command and, if so, through which protocol or message path.
- Whether the same default thresholds apply identically across every Plug Mini (JP) hardware and firmware revision.
Practical implication for collectors
A one-minute API polling interval means only that the collector asks for status once per minute. It does not prove that the Plug Mini generated a new measurement report once per minute. Long-running collectors should detect repeated identical snapshots and represent freshness separately from retrieval time.
Reproduction resources
For a separate purchasing/reproduction aid, see the SwitchBot Plug Mini OpenAPI reproduction BOM.
The BOM is a separate purchasing and reproduction aid. Product availability, successor listings, and affiliate links shown there are not evidence for the findings, analysis, or conclusions of this Experiment.
About this record and privacy
This article was organized from the experiment records created on 2026-08-12 together with manufacturer information obtained through 2026-08-19. Device identifiers, MAC addresses, purchase/order data, email addresses, credentials, and household-identifying details are not published.
The original raw logger files were not retained, so Raw Data is not published for this Experiment. Sample counts, averages, medians, and similar numerical summaries in this article come from values retained in the experiment notes.
Structured data
A machine-readable structured record for this Experiment is publicly available as JSON.